@hexclave/cli 1.0.18 → 1.0.19

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 (299) hide show
  1. package/dist/dashboard/apps/dashboard/.next/BUILD_ID +1 -1
  2. package/dist/dashboard/apps/dashboard/.next/build-manifest.json +5 -5
  3. package/dist/dashboard/apps/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dist/dashboard/apps/dashboard/.next/required-server-files.json +1 -1
  5. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/new-project/page/build-manifest.json +2 -2
  6. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/new-project/page_client-reference-manifest.js +1 -1
  7. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/playground/page/build-manifest.json +2 -2
  8. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/playground/page_client-reference-manifest.js +1 -1
  9. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/projects/page/build-manifest.json +2 -2
  10. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/projects/page/server-reference-manifest.json +3 -3
  11. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/(outside-dashboard)/projects/page_client-reference-manifest.js +1 -1
  12. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/-selector-/[...path]/page/build-manifest.json +2 -2
  13. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/-selector-/[...path]/page_client-reference-manifest.js +1 -1
  14. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/(overview)/page/build-manifest.json +2 -2
  15. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/(overview)/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page/build-manifest.json +2 -2
  17. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page_client-reference-manifest.js +1 -1
  18. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/clickmaps/page/build-manifest.json +2 -2
  19. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/clickmaps/page_client-reference-manifest.js +1 -1
  20. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/overview/page/build-manifest.json +2 -2
  21. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/overview/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/page/build-manifest.json +2 -2
  23. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/page_client-reference-manifest.js +1 -1
  24. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/queries/page/build-manifest.json +2 -2
  25. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/queries/page_client-reference-manifest.js +1 -1
  26. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/tables/page/build-manifest.json +2 -2
  27. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/analytics/tables/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys/page/build-manifest.json +2 -2
  29. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  30. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys-app/page/build-manifest.json +2 -2
  31. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/api-keys-app/page_client-reference-manifest.js +1 -1
  32. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page/build-manifest.json +2 -2
  33. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/page/build-manifest.json +2 -2
  35. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/apps/page_client-reference-manifest.js +1 -1
  36. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/auth-methods/page/build-manifest.json +2 -2
  37. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/auth-methods/page_client-reference-manifest.js +1 -1
  38. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/conversations/page/build-manifest.json +2 -2
  39. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/conversations/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/convex/page/build-manifest.json +2 -2
  41. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/convex/page_client-reference-manifest.js +1 -1
  42. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/[dashboardId]/page/build-manifest.json +2 -2
  43. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/[dashboardId]/page_client-reference-manifest.js +1 -1
  44. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/page/build-manifest.json +2 -2
  45. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/dashboards/page_client-reference-manifest.js +1 -1
  46. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/page/build-manifest.json +2 -2
  47. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/page_client-reference-manifest.js +1 -1
  48. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/[storeId]/page/build-manifest.json +2 -2
  49. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/[storeId]/page_client-reference-manifest.js +1 -1
  50. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/page/build-manifest.json +2 -2
  51. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/data-vault/stores/page_client-reference-manifest.js +1 -1
  52. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/chart-demo/page/build-manifest.json +2 -2
  53. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/chart-demo/page_client-reference-manifest.js +1 -1
  54. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/datagrid-demo/page/build-manifest.json +2 -2
  55. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/datagrid-demo/page_client-reference-manifest.js +1 -1
  56. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/page/build-manifest.json +2 -2
  57. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/page_client-reference-manifest.js +1 -1
  58. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/realistic-demo/page/build-manifest.json +2 -2
  59. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/design-language/realistic-demo/page_client-reference-manifest.js +1 -1
  60. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/domains/page/build-manifest.json +2 -2
  61. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/domains/page_client-reference-manifest.js +1 -1
  62. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/page/build-manifest.json +2 -2
  63. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/[draftId]/page_client-reference-manifest.js +1 -1
  64. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/page/build-manifest.json +2 -2
  65. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-drafts/page_client-reference-manifest.js +1 -1
  66. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-outbox/page/build-manifest.json +2 -2
  67. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-outbox/page_client-reference-manifest.js +1 -1
  68. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/no-source/page/build-manifest.json +2 -2
  69. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/no-source/page_client-reference-manifest.js +1 -1
  70. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/page/build-manifest.json +2 -2
  71. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-sent/page_client-reference-manifest.js +1 -1
  72. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-settings/page/build-manifest.json +2 -2
  73. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-settings/page_client-reference-manifest.js +1 -1
  74. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/page/build-manifest.json +2 -2
  75. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/page_client-reference-manifest.js +1 -1
  76. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/sent/page/build-manifest.json +2 -2
  77. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/[templateId]/sent/page_client-reference-manifest.js +1 -1
  78. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/page/build-manifest.json +2 -2
  79. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-templates/page_client-reference-manifest.js +1 -1
  80. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/[themeId]/page/build-manifest.json +2 -2
  81. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/[themeId]/page_client-reference-manifest.js +1 -1
  82. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/page/build-manifest.json +2 -2
  83. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-themes/page_client-reference-manifest.js +1 -1
  84. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-viewer/[emailId]/page/build-manifest.json +2 -2
  85. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/email-viewer/[emailId]/page_client-reference-manifest.js +1 -1
  86. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/emails/page/build-manifest.json +2 -2
  87. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/emails/page_client-reference-manifest.js +1 -1
  88. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/expert-mode/page/build-manifest.json +2 -2
  89. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/expert-mode/page_client-reference-manifest.js +1 -1
  90. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/external-db-sync/page/build-manifest.json +2 -2
  91. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/external-db-sync/page_client-reference-manifest.js +1 -1
  92. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/launch-checklist/page/build-manifest.json +2 -2
  93. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/launch-checklist/page_client-reference-manifest.js +1 -1
  94. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/onboarding/page/build-manifest.json +2 -2
  95. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/onboarding/page_client-reference-manifest.js +1 -1
  96. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/customers/page/build-manifest.json +2 -2
  97. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/customers/page_client-reference-manifest.js +1 -1
  98. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/page/build-manifest.json +2 -2
  99. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/page_client-reference-manifest.js +1 -1
  100. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/payouts/page/build-manifest.json +2 -2
  101. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/payouts/page_client-reference-manifest.js +1 -1
  102. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/product-lines/page/build-manifest.json +2 -2
  103. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/product-lines/page_client-reference-manifest.js +1 -1
  104. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/edit/page/build-manifest.json +2 -2
  105. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/edit/page_client-reference-manifest.js +1 -1
  106. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/page/build-manifest.json +2 -2
  107. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/[productId]/page_client-reference-manifest.js +1 -1
  108. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/new/page/build-manifest.json +2 -2
  109. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/new/page_client-reference-manifest.js +1 -1
  110. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/page/build-manifest.json +2 -2
  111. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/products/page_client-reference-manifest.js +1 -1
  112. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/settings/page/build-manifest.json +2 -2
  113. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/settings/page_client-reference-manifest.js +1 -1
  114. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/transactions/page/build-manifest.json +2 -2
  115. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/payments/transactions/page_client-reference-manifest.js +1 -1
  116. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-keys/page/build-manifest.json +2 -2
  117. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-keys/page_client-reference-manifest.js +1 -1
  118. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-permissions/page/build-manifest.json +2 -2
  119. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-permissions/page_client-reference-manifest.js +1 -1
  120. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-settings/page/build-manifest.json +2 -2
  121. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/project-settings/page_client-reference-manifest.js +1 -1
  122. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/query-analytics/page/build-manifest.json +2 -2
  123. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/query-analytics/page_client-reference-manifest.js +1 -1
  124. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/[replayId]/page/build-manifest.json +2 -2
  125. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/[replayId]/page_client-reference-manifest.js +1 -1
  126. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/page/build-manifest.json +2 -2
  127. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/session-replays/page_client-reference-manifest.js +1 -1
  128. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/sign-up-rules/page/build-manifest.json +2 -2
  129. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/sign-up-rules/page_client-reference-manifest.js +1 -1
  130. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/support/page/build-manifest.json +2 -2
  131. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/support/page_client-reference-manifest.js +1 -1
  132. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-permissions/page/build-manifest.json +2 -2
  133. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-permissions/page_client-reference-manifest.js +1 -1
  134. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-settings/page/build-manifest.json +2 -2
  135. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/team-settings/page_client-reference-manifest.js +1 -1
  136. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page/build-manifest.json +2 -2
  137. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  138. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/page/build-manifest.json +2 -2
  139. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/teams/page_client-reference-manifest.js +1 -1
  140. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/[userId]/page/build-manifest.json +2 -2
  141. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/[userId]/page_client-reference-manifest.js +1 -1
  142. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/page/build-manifest.json +2 -2
  143. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/users/page_client-reference-manifest.js +1 -1
  144. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/vercel/page/build-manifest.json +2 -2
  145. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/vercel/page_client-reference-manifest.js +1 -1
  146. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/[endpointId]/page/build-manifest.json +2 -2
  147. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/[endpointId]/page_client-reference-manifest.js +1 -1
  148. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/page/build-manifest.json +2 -2
  149. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/webhooks/page_client-reference-manifest.js +1 -1
  150. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/widget-playground/page/build-manifest.json +2 -2
  151. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/(protected)/projects/[projectId]/widget-playground/page_client-reference-manifest.js +1 -1
  152. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/handler/[...hexclave]/page/build-manifest.json +2 -2
  153. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/handler/[...hexclave]/page_client-reference-manifest.js +1 -1
  154. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/confirm/page/build-manifest.json +2 -2
  155. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/confirm/page/server-reference-manifest.json +1 -1
  156. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/confirm/page_client-reference-manifest.js +1 -1
  157. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/projects/transfer/confirm/page/build-manifest.json +2 -2
  158. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/custom/projects/transfer/confirm/page_client-reference-manifest.js +1 -1
  159. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/featurebase/sso/page/build-manifest.json +2 -2
  160. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/featurebase/sso/page_client-reference-manifest.js +1 -1
  161. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/confirm/page/build-manifest.json +2 -2
  162. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/confirm/page/server-reference-manifest.json +1 -1
  163. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/confirm/page_client-reference-manifest.js +1 -1
  164. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/projects/transfer/confirm/page/build-manifest.json +2 -2
  165. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/integrations/neon/projects/transfer/confirm/page_client-reference-manifest.js +1 -1
  166. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/page/build-manifest.json +2 -2
  167. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/page_client-reference-manifest.js +1 -1
  168. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/[code]/page/build-manifest.json +2 -2
  169. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/[code]/page_client-reference-manifest.js +1 -1
  170. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/return/page/build-manifest.json +2 -2
  171. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/purchase/return/page_client-reference-manifest.js +1 -1
  172. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/wizard-congrats/page/build-manifest.json +2 -2
  173. package/dist/dashboard/apps/dashboard/.next/server/app/(main)/wizard-congrats/page_client-reference-manifest.js +1 -1
  174. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error/page/build-manifest.json +2 -2
  175. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.html +1 -1
  176. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.rsc +1 -1
  177. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  178. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  179. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  180. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  181. package/dist/dashboard/apps/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  182. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found/page/build-manifest.json +2 -2
  183. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  184. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.html +2 -2
  185. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.rsc +15 -15
  186. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  187. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  188. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
  189. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  190. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  191. package/dist/dashboard/apps/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  192. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret/page/build-manifest.json +2 -2
  193. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret/page_client-reference-manifest.js +1 -1
  194. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.html +2 -2
  195. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.rsc +15 -15
  196. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_full.segment.rsc +15 -15
  197. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_head.segment.rsc +4 -4
  198. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_index.segment.rsc +9 -9
  199. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/_tree.segment.rsc +1 -1
  200. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/development-environment/browser-secret/__PAGE__.segment.rsc +3 -3
  201. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/development-environment/browser-secret.segment.rsc +3 -3
  202. package/dist/dashboard/apps/dashboard/.next/server/app/development-environment/browser-secret.segments/development-environment.segment.rsc +3 -3
  203. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug/page/build-manifest.json +2 -2
  204. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug/page_client-reference-manifest.js +1 -1
  205. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.html +2 -2
  206. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.rsc +16 -16
  207. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_full.segment.rsc +16 -16
  208. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_head.segment.rsc +4 -4
  209. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_index.segment.rsc +9 -9
  210. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/_tree.segment.rsc +1 -1
  211. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/health/error-handler-debug/__PAGE__.segment.rsc +4 -4
  212. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/health/error-handler-debug.segment.rsc +3 -3
  213. package/dist/dashboard/apps/dashboard/.next/server/app/health/error-handler-debug.segments/health.segment.rsc +3 -3
  214. package/dist/dashboard/apps/dashboard/.next/server/app/index.html +2 -2
  215. package/dist/dashboard/apps/dashboard/.next/server/app/index.rsc +14 -14
  216. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +2 -2
  217. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/!KG1haW4p.segment.rsc +4 -4
  218. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_full.segment.rsc +14 -14
  219. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_head.segment.rsc +4 -4
  220. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_index.segment.rsc +9 -9
  221. package/dist/dashboard/apps/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  222. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.html +2 -2
  223. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.rsc +17 -17
  224. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/new-project/__PAGE__.segment.rsc +3 -3
  225. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/new-project.segment.rsc +3 -3
  226. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ.segment.rsc +5 -5
  227. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p/!KHByb3RlY3RlZCk.segment.rsc +4 -4
  228. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/!KG1haW4p.segment.rsc +4 -4
  229. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_full.segment.rsc +17 -17
  230. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_head.segment.rsc +4 -4
  231. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_index.segment.rsc +9 -9
  232. package/dist/dashboard/apps/dashboard/.next/server/app/new-project.segments/_tree.segment.rsc +1 -1
  233. package/dist/dashboard/apps/dashboard/.next/server/app/playground.html +2 -2
  234. package/dist/dashboard/apps/dashboard/.next/server/app/playground.rsc +17 -17
  235. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/playground/__PAGE__.segment.rsc +3 -3
  236. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/playground.segment.rsc +3 -3
  237. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ.segment.rsc +5 -5
  238. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p/!KHByb3RlY3RlZCk.segment.rsc +4 -4
  239. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/!KG1haW4p.segment.rsc +4 -4
  240. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_full.segment.rsc +17 -17
  241. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_head.segment.rsc +4 -4
  242. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_index.segment.rsc +9 -9
  243. package/dist/dashboard/apps/dashboard/.next/server/app/playground.segments/_tree.segment.rsc +1 -1
  244. package/dist/dashboard/apps/dashboard/.next/server/app/projects.html +2 -2
  245. package/dist/dashboard/apps/dashboard/.next/server/app/projects.rsc +17 -17
  246. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/projects/__PAGE__.segment.rsc +3 -3
  247. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ/projects.segment.rsc +3 -3
  248. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk/!KG91dHNpZGUtZGFzaGJvYXJkKQ.segment.rsc +5 -5
  249. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p/!KHByb3RlY3RlZCk.segment.rsc +4 -4
  250. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/!KG1haW4p.segment.rsc +4 -4
  251. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_full.segment.rsc +17 -17
  252. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_head.segment.rsc +4 -4
  253. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  254. package/dist/dashboard/apps/dashboard/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  255. package/dist/dashboard/apps/dashboard/.next/server/app/rde-debug/page/build-manifest.json +2 -2
  256. package/dist/dashboard/apps/dashboard/.next/server/app/rde-debug/page_client-reference-manifest.js +1 -1
  257. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.html +2 -2
  258. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.rsc +18 -18
  259. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/!KG1haW4p/wizard-congrats/__PAGE__.segment.rsc +6 -6
  260. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/!KG1haW4p/wizard-congrats.segment.rsc +3 -3
  261. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/!KG1haW4p.segment.rsc +4 -4
  262. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_full.segment.rsc +18 -18
  263. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_head.segment.rsc +4 -4
  264. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_index.segment.rsc +9 -9
  265. package/dist/dashboard/apps/dashboard/.next/server/app/wizard-congrats.segments/_tree.segment.rsc +1 -1
  266. package/dist/dashboard/apps/dashboard/.next/server/chunks/[root-of-the-server]__1m-q0b3._.js +1 -1
  267. package/dist/dashboard/apps/dashboard/.next/server/chunks/_0tnctfw._.js +1 -1
  268. package/dist/dashboard/apps/dashboard/.next/server/chunks/node_modules__pnpm_1_a837b._.js +1 -1
  269. package/dist/dashboard/apps/dashboard/.next/server/chunks/packages_0rk1u8f._.js +1 -1
  270. package/dist/dashboard/apps/dashboard/.next/server/chunks/packages_1eprmn6._.js +1 -1
  271. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0fiuqqk._.js +2 -2
  272. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_0s_ag9o._.js +1 -1
  273. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1-axnoc._.js +1 -1
  274. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_132pp19._.js +1 -1
  275. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1gqr2d9._.js +1 -1
  276. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1wwwu_3._.js +1 -1
  277. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/_1z655xf._.js +1 -1
  278. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0cfdzin._.js +1 -1
  279. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/packages_0kveln1._.js +1 -1
  280. package/dist/dashboard/apps/dashboard/.next/server/chunks/ssr/packages_1r7flhi._.js +1 -1
  281. package/dist/dashboard/apps/dashboard/.next/server/middleware-build-manifest.js +5 -5
  282. package/dist/dashboard/apps/dashboard/.next/server/pages/404.html +2 -2
  283. package/dist/dashboard/apps/dashboard/.next/server/pages/500.html +1 -1
  284. package/dist/dashboard/apps/dashboard/.next/server/server-reference-manifest.js +1 -1
  285. package/dist/dashboard/apps/dashboard/.next/server/server-reference-manifest.json +5 -5
  286. package/dist/dashboard/apps/dashboard/.next/static/chunks/{318nnvnn-sl8t.js.map → 0n00p5nlx6ayh.js.map} +1 -1
  287. package/dist/dashboard/apps/dashboard/.next/static/chunks/{0r6iu-ia8q-nw.js → 0q0p31qp2rh7v.js} +1 -1
  288. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2oo-0k4_w6pyp.js → 0vx5u297-uwg3.js} +1 -1
  289. package/dist/dashboard/apps/dashboard/.next/static/chunks/{3e33usuubhod5.js.map → 1adn3nms-upj2.js.map} +1 -1
  290. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2gi69y0-bsz16.js → 1pczh5gxbdv_d.js} +2 -2
  291. package/dist/dashboard/apps/dashboard/.next/static/chunks/{44_w17-ecl4c5.js → 1srji8ppqq8a0.js} +2 -2
  292. package/dist/dashboard/apps/dashboard/.next/static/chunks/{2gqc6brbja6h-.js → 2kr8cln8ygxbh.js} +3 -3
  293. package/dist/dashboard/apps/dashboard/.next/static/chunks/{turbopack-1jtfyghd6oe6j.js → turbopack-20esn9-qzp-e8.js} +1 -1
  294. package/dist/dashboard/apps/dashboard/package.json +1 -1
  295. package/dist/dashboard/apps/dashboard/server.js +1 -1
  296. package/package.json +4 -4
  297. /package/dist/dashboard/apps/dashboard/.next/static/{MfM1ivPU2qemciTLw35Mh → 5e6CBMynCzr_LZmyqwgSJ}/_buildManifest.js +0 -0
  298. /package/dist/dashboard/apps/dashboard/.next/static/{MfM1ivPU2qemciTLw35Mh → 5e6CBMynCzr_LZmyqwgSJ}/_clientMiddlewareManifest.js +0 -0
  299. /package/dist/dashboard/apps/dashboard/.next/static/{MfM1ivPU2qemciTLw35Mh → 5e6CBMynCzr_LZmyqwgSJ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/cookies.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/app-render/after-task-async-storage-instance.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/app-render/after-task-async-storage.external.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/utils.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","turbopack:///[project]/apps/dashboard/src/lib/hexclave-app-internals.ts","turbopack:///[project]/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_61903d443f318e235810cb4023b9ffb4/node_modules/@radix-ui/react-tooltip/dist/index.mjs","turbopack:///[project]/packages/ui/src/components/ui/tooltip.tsx","turbopack:///[project]/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_61903d443f318e235810cb4023b9ffb4/node_modules/@radix-ui/react-tooltip/src/tooltip.tsx","turbopack:///[project]/apps/dashboard/package.json.[json].cjs/turbopack:///apps/dashboard/package.json","turbopack:///[project]/apps/dashboard/src/components/site-loading-indicator.tsx","turbopack:///[project]/apps/dashboard/src/app/loading.tsx","turbopack:///[project]/node_modules/.pnpm/color-name@2.1.0/node_modules/color-name/index.js","turbopack:///[project]/node_modules/.pnpm/color-string@2.1.4/node_modules/color-string/index.js","turbopack:///[project]/node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/conversions.js","turbopack:///[project]/node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/route.js","turbopack:///[project]/node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/index.js","turbopack:///[project]/node_modules/.pnpm/color@5.0.3/node_modules/color/index.js","turbopack:///[project]/packages/next/src/providers/translation-provider-client.tsx","turbopack:///[project]/packages/next/src/components/elements/ssr-layout-effect.tsx","turbopack:///[project]/apps/dashboard/src/lib/version-check.ts","turbopack:///[project]/packages/next/src/in-page-ui/dom.ts","turbopack:///[project]/packages/shared/src/utils/dev-tool.tsx","turbopack:///[project]/packages/shared/src/utils/analytics-clickmap-overlay.tsx","turbopack:///[project]/packages/shared/src/utils/elements-chain.tsx","turbopack:///[project]/node_modules/.pnpm/cookie@1.1.1/node_modules/cookie/src/index.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/cookies.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/headers.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/draft-mode.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/headers.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","import { RequestCookies } from '../cookies'\n\nimport { ResponseCookies } from '../cookies'\nimport { ReflectAdapter } from './reflect'\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external'\nimport type { RequestStore } from '../../../app-render/work-unit-async-storage.external'\nimport { ActionDidRevalidateStaticAndDynamic } from '../../../../shared/lib/action-revalidation-kind'\n\n/**\n * @internal\n */\nexport class ReadonlyRequestCookiesError extends Error {\n constructor() {\n super(\n 'Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'\n )\n }\n\n public static callable() {\n throw new ReadonlyRequestCookiesError()\n }\n}\n\n// We use this to type some APIs but we don't construct instances directly\nexport type { ResponseCookies }\n\n// The `cookies()` API is a mix of request and response cookies. For `.get()` methods,\n// we want to return the request cookie if it exists. For mutative methods like `.set()`,\n// we want to return the response cookie.\nexport type ReadonlyRequestCookies = Omit<\n RequestCookies,\n 'set' | 'clear' | 'delete'\n> &\n Pick<ResponseCookies, 'set' | 'delete'>\n\nexport class RequestCookiesAdapter {\n public static seal(cookies: RequestCookies): ReadonlyRequestCookies {\n return new Proxy(cookies as any, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n}\n\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies')\n\nexport function getModifiedCookieValues(\n cookies: ResponseCookies\n): ResponseCookie[] {\n const modified: ResponseCookie[] | undefined = (cookies as unknown as any)[\n SYMBOL_MODIFY_COOKIE_VALUES\n ]\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return []\n }\n\n return modified\n}\n\ntype SetCookieArgs =\n | [key: string, value: string, cookie?: Partial<ResponseCookie>]\n | [options: ResponseCookie]\n\nexport function appendMutableCookies(\n headers: Headers,\n mutableCookies: ResponseCookies\n): boolean {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies)\n if (modifiedCookieValues.length === 0) {\n return false\n }\n\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers)\n const returnedCookies = resCookies.getAll()\n\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues) {\n resCookies.set(cookie)\n }\n\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies) {\n resCookies.set(cookie)\n }\n\n return true\n}\n\ntype ResponseCookie = NonNullable<\n ReturnType<InstanceType<typeof ResponseCookies>['get']>\n>\n\nexport class MutableRequestCookiesAdapter {\n public static wrap(\n cookies: RequestCookies,\n onUpdateCookies?: (cookies: string[]) => void\n ): ResponseCookies {\n const responseCookies = new ResponseCookies(new Headers())\n for (const cookie of cookies.getAll()) {\n responseCookies.set(cookie)\n }\n\n let modifiedValues: ResponseCookie[] = []\n const modifiedCookies = new Set<string>()\n const updateResponseCookies = () => {\n // TODO-APP: change method of getting workStore\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pathWasRevalidated = ActionDidRevalidateStaticAndDynamic\n }\n\n const allCookies = responseCookies.getAll()\n modifiedValues = allCookies.filter((c) => modifiedCookies.has(c.name))\n if (onUpdateCookies) {\n const serializedCookies: string[] = []\n for (const cookie of modifiedValues) {\n const tempCookies = new ResponseCookies(new Headers())\n tempCookies.set(cookie)\n serializedCookies.push(tempCookies.toString())\n }\n\n onUpdateCookies(serializedCookies)\n }\n }\n\n const wrappedCookies = new Proxy(responseCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues\n\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.delete(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.set(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n return wrappedCookies\n }\n}\n\nexport function createCookiesWithMutableAccessCheck(\n requestStore: RequestStore\n): ResponseCookies {\n const wrappedCookies = new Proxy(requestStore.mutableCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().delete')\n target.delete(...args)\n return wrappedCookies\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().set')\n target.set(...args)\n return wrappedCookies\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n return wrappedCookies\n}\n\nexport function areCookiesMutableInCurrentPhase(requestStore: RequestStore) {\n return requestStore.phase === 'action'\n}\n\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */\nfunction ensureCookiesAreStillMutable(\n requestStore: RequestStore,\n _callingExpression: string\n) {\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError()\n }\n}\n\nexport function responseCookiesToRequestCookies(\n responseCookies: ResponseCookies\n): RequestCookies {\n const requestCookies = new RequestCookies(new Headers())\n for (const cookie of responseCookies.getAll()) {\n requestCookies.set(cookie)\n }\n return requestCookies\n}\n","import * as React from 'react'\n\nconst errorRef: { current: null | Error } = { current: null }\n\n// React.cache is currently only available in canary/experimental React channels.\nconst cache =\n typeof React.cache === 'function'\n ? React.cache\n : (fn: (key: unknown) => void) => fn\n\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_CACHE_COMPONENTS\n ? console.error\n : console.warn\n\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n (key: unknown) => {\n try {\n logErrorOrWarn(errorRef.current)\n } finally {\n errorRef.current = null\n }\n }\n)\n\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */\nexport function createDedupedByCallsiteServerErrorLoggerDev<Args extends any[]>(\n getMessage: (...args: Args) => Error\n) {\n return function logDedupedError(...args: Args) {\n const message = getMessage(...args)\n\n if (process.env.NODE_ENV !== 'production') {\n const callStackFrames = new Error().stack?.split('\\n')\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message)\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4]\n errorRef.current = message\n flushCurrentErrorIfNew(key)\n }\n } else {\n logErrorOrWarn(message)\n }\n }\n}\n","import type { AfterTaskAsyncStorage } from './after-task-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const afterTaskAsyncStorageInstance: AfterTaskAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\n\n// Share the instance module in the next-shared layer\nimport { afterTaskAsyncStorageInstance as afterTaskAsyncStorage } from './after-task-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { WorkUnitStore } from './work-unit-async-storage.external'\n\nexport interface AfterTaskStore {\n /** The phase in which the topmost `after` was called.\n *\n * NOTE: Can be undefined when running `generateStaticParams`,\n * where we only have a `workStore`, no `workUnitStore`.\n */\n readonly rootTaskSpawnPhase: WorkUnitStore['phase'] | undefined\n}\n\nexport type AfterTaskAsyncStorage = AsyncLocalStorage<AfterTaskStore>\n\nexport { afterTaskAsyncStorage }\n","import { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external'\nimport type { WorkStore } from '../app-render/work-async-storage.external'\n\nexport function throwWithStaticGenerationBailoutErrorWithDynamicError(\n route: string,\n expression: string\n): never {\n throw new StaticGenBailoutError(\n `Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n}\n\nexport function throwForSearchParamsAccessInUseCache(\n workStore: WorkStore,\n constructorOpt: Function\n): never {\n const error = new Error(\n `Route ${workStore.route} used \\`searchParams\\` inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \\`searchParams\\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n\n throw error\n}\n\nexport function isRequestAPICallableInsideAfter() {\n const afterTaskStore = afterTaskAsyncStorage.getStore()\n return afterTaskStore?.rootTaskSpawnPhase === 'action'\n}\n","import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n","import {\n type MetricsResponse,\n type MetricsUserCounts,\n type UserActivityResponse,\n} from \"@hexclave/shared/dist/interface/admin-metrics\";\nimport { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\n\nexport const hexclaveAppInternalsSymbol = Symbol.for(\"StackAuth--DO-NOT-USE-OR-YOU-WILL-BE-FIRED--StackAppInternals\");\n\n// Re-export the metrics response type tree from the shared package so dashboard\n// code can read these types without having to know where the schemas live.\nexport type {\n MetricsActivitySplit,\n MetricsAnalyticsOverview,\n MetricsAuthOverview,\n MetricsDailyEmailStatusBreakdown,\n MetricsDailyRevenuePoint,\n MetricsDataPoint,\n MetricsEmailOverview,\n MetricsLoginMethodEntry,\n MetricsNamedCount,\n MetricsPaymentsOverview,\n MetricsRecentEmail,\n MetricsResponse,\n MetricsTopCountry,\n MetricsTopReferrer,\n MetricsTopRegion,\n MetricsUserCounts,\n UserActivityResponse,\n} from \"@hexclave/shared/dist/interface/admin-metrics\";\n\n/**\n * Pulls the typed `useMetrics` hook out of the admin app via the internals\n * symbol. Throws as a programming error if the symbol is missing or malformed\n * — this should never happen at runtime in a correctly-built admin app.\n *\n * Returns the typed `MetricsResponse` shape derived from the same yup schemas\n * the backend route uses, so dashboard call sites do not need `as ...` casts.\n */\nexport type AnalyticsOverviewFilters = {\n country_code?: string,\n referrer?: string,\n browser?: string,\n os?: string,\n device?: string,\n // ISO 8601 datetimes bounding the analytics top-N breakdowns server-side\n // (top referrers / regions / browsers / OS / devices). The daily and hourly\n // series stay full-window so previous-period deltas can be computed locally.\n since?: string,\n until?: string,\n};\n\n// The typed contract for the hooks the admin app exposes through the internals\n// symbol. The single `as` assertion in `getInternalsHookOrThrow` is the one\n// place the untyped internals object is narrowed to this contract — call sites\n// get inferred return types instead of casting each result.\ntype AdminAppInternalsHooks = {\n useMetrics: (includeAnonymous: boolean, filters?: AnalyticsOverviewFilters) => MetricsResponse,\n useUserActivity: (userId: string) => UserActivityResponse,\n useMetricsUserCounts: () => MetricsUserCounts,\n};\n\nfunction getInternalsHookOrThrow<K extends keyof AdminAppInternalsHooks>(adminApp: object, hookName: K): AdminAppInternalsHooks[K] {\n const internals = Reflect.get(adminApp, hexclaveAppInternalsSymbol);\n if (typeof internals !== \"object\" || internals == null || !(hookName in internals)) {\n throw new HexclaveAssertionError(`Admin app internals are unavailable: missing ${hookName}`);\n }\n\n const hook = (internals as Record<string, unknown>)[hookName];\n if (typeof hook !== \"function\") {\n throw new HexclaveAssertionError(`Admin app internals are unavailable: ${hookName} is not callable`);\n }\n\n return hook as AdminAppInternalsHooks[K];\n}\n\nexport function useMetricsOrThrow(\n adminApp: object,\n includeAnonymous: boolean,\n filters?: AnalyticsOverviewFilters,\n): MetricsResponse {\n return getInternalsHookOrThrow(adminApp, \"useMetrics\")(includeAnonymous, filters);\n}\n\n/**\n * Pulls the typed `useUserActivity` hook out of the admin app via the internals\n * symbol. Returns the daily event counts for a single user (backed by\n * `GET /internal/user-activity`) in the same `{ date, activity }` shape the\n * metrics endpoints use.\n */\nexport function useUserActivityOrThrow(adminApp: object, userId: string): UserActivityResponse {\n return getInternalsHookOrThrow(adminApp, \"useUserActivity\")(userId);\n}\n\nexport function useMetricsUserCountsOrThrow(adminApp: object): MetricsUserCounts {\n return getInternalsHookOrThrow(adminApp, \"useMetricsUserCounts\")();\n}\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst TooltipProvider = forwardRefIfNeeded<\n void,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>\n>((props, ref) => (\n <TooltipPrimitive.Provider\n delayDuration={0}\n {...props}\n />\n));\nTooltipProvider.displayName = TooltipPrimitive.Provider.displayName;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipPortal = TooltipPrimitive.Portal;\n\nconst TooltipContent = forwardRefIfNeeded<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"stack-scope z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipPortal, TooltipProvider };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createSlottable } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype ScopedProps<P = {}> = P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'TooltipProvider';\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\n\ntype TooltipProviderContextValue = {\n isOpenDelayedRef: React.MutableRefObject<boolean>;\n delayDuration: number;\n onOpen(): void;\n onClose(): void;\n onPointerInTransitChange(inTransit: boolean): void;\n isPointerInTransitRef: React.MutableRefObject<boolean>;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipProviderContextProvider, useTooltipProviderContext] =\n createTooltipContext<TooltipProviderContextValue>(PROVIDER_NAME);\n\ninterface TooltipProviderProps {\n children: React.ReactNode;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst TooltipProvider: React.FC<TooltipProviderProps> = (\n props: ScopedProps<TooltipProviderProps>\n) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children,\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n\n return (\n <TooltipProviderContextProvider\n scope={__scopeTooltip}\n isOpenDelayedRef={isOpenDelayedRef}\n delayDuration={delayDuration}\n onOpen={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [])}\n onClose={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => (isOpenDelayedRef.current = true),\n skipDelayDuration\n );\n }, [skipDelayDuration])}\n isPointerInTransitRef={isPointerInTransitRef}\n onPointerInTransitChange={React.useCallback((inTransit: boolean) => {\n isPointerInTransitRef.current = inTransit;\n }, [])}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n </TooltipProviderContextProvider>\n );\n};\n\nTooltipProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n contentId: string;\n open: boolean;\n stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n trigger: TooltipTriggerElement | null;\n onTriggerChange(trigger: TooltipTriggerElement | null): void;\n onTriggerEnter(): void;\n onTriggerLeave(): void;\n onOpen(): void;\n onClose(): void;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipContextProvider, useTooltipContext] =\n createTooltipContext<TooltipContextValue>(TOOLTIP_NAME);\n\ninterface TooltipProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened. This will\n * override the prop with the same name passed to Provider.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst Tooltip: React.FC<TooltipProps> = (props: ScopedProps<TooltipProps>) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp,\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState<HTMLButtonElement | null>(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent =\n disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open) => {\n if (open) {\n providerContext.onOpen();\n\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open);\n },\n caller: TOOLTIP_NAME,\n });\n const stateAttribute = React.useMemo(() => {\n return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n }, [open]);\n\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <TooltipContextProvider\n scope={__scopeTooltip}\n contentId={contentId}\n open={open}\n stateAttribute={stateAttribute}\n trigger={trigger}\n onTriggerChange={setTrigger}\n onTriggerEnter={React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen])}\n onTriggerLeave={React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent])}\n onOpen={handleOpen}\n onClose={handleClose}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n </TooltipContextProvider>\n </PopperPrimitive.Root>\n );\n};\n\nTooltip.displayName = TOOLTIP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TooltipTrigger';\n\ntype TooltipTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface TooltipTriggerProps extends PrimitiveButtonProps {}\n\nconst TooltipTrigger = React.forwardRef<TooltipTriggerElement, TooltipTriggerProps>(\n (props: ScopedProps<TooltipTriggerProps>, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef<TooltipTriggerElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => (isPointerDownRef.current = false), []);\n\n React.useEffect(() => {\n return () => document.removeEventListener('pointerup', handlePointerUp);\n }, [handlePointerUp]);\n\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.button\n // We purposefully avoid adding `type=button` here because tooltip triggers are also\n // commonly anchors and the anchor `type` attribute signifies MIME type.\n aria-describedby={context.open ? context.contentId : undefined}\n data-state={context.stateAttribute}\n {...triggerProps}\n ref={composedRefs}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === 'touch') return;\n if (\n !hasPointerMoveOpenedRef.current &&\n !providerContext.isPointerInTransitRef.current\n ) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n })}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n onClick={composeEventHandlers(props.onClick, context.onClose)}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'TooltipPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createTooltipContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface TooltipPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipPortal: React.FC<TooltipPortalProps> = (props: ScopedProps<TooltipPortalProps>) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return (\n <PortalProvider scope={__scopeTooltip} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nTooltipPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TooltipContent';\n\ntype TooltipContentElement = TooltipContentImplElement;\ninterface TooltipContentProps extends TooltipContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipContent = React.forwardRef<TooltipContentElement, TooltipContentProps>(\n (props: ScopedProps<TooltipContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = 'top', ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n\n return (\n <Presence present={forceMount || context.open}>\n {context.disableHoverableContent ? (\n <TooltipContentImpl side={side} {...contentProps} ref={forwardedRef} />\n ) : (\n <TooltipContentHoverable side={side} {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\n\ntype TooltipContentHoverableElement = TooltipContentImplElement;\ninterface TooltipContentHoverableProps extends TooltipContentImplProps {}\n\nconst TooltipContentHoverable = React.forwardRef<\n TooltipContentHoverableElement,\n TooltipContentHoverableProps\n>((props: ScopedProps<TooltipContentHoverableProps>, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef<TooltipContentHoverableElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState<Polygon | null>(null);\n\n const { trigger, onClose } = context;\n const content = ref.current;\n\n const { onPointerInTransitChange } = providerContext;\n\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n\n const handleCreateGraceArea = React.useCallback(\n (event: PointerEvent, hoverTarget: HTMLElement) => {\n const currentTarget = event.currentTarget as HTMLElement;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, trigger);\n\n trigger.addEventListener('pointerleave', handleTriggerLeave);\n content.addEventListener('pointerleave', handleContentLeave);\n return () => {\n trigger.removeEventListener('pointerleave', handleTriggerLeave);\n content.removeEventListener('pointerleave', handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n const target = event.target as HTMLElement;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener('pointermove', handleTrackPointerGrace);\n return () => document.removeEventListener('pointermove', handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n\n return <TooltipContentImpl {...props} ref={composedRefs} />;\n});\n\nconst [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] =\n createTooltipContext(TOOLTIP_NAME, { isInside: false });\n\ntype TooltipContentImplElement = React.ComponentRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface TooltipContentImplProps extends Omit<PopperContentProps, 'onPlaced'> {\n /**\n * A more descriptive label for accessibility purpose\n */\n 'aria-label'?: string;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `Tooltip`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n}\n\nconst Slottable = createSlottable('TooltipContent');\n\nconst TooltipContentImpl = React.forwardRef<TooltipContentImplElement, TooltipContentImplProps>(\n (props: ScopedProps<TooltipContentImplProps>, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n 'aria-label': ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n\n // Close this tooltip if another one opens\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n\n // Close the tooltip if the trigger is scrolled\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener('scroll', handleScroll, { capture: true });\n return () => window.removeEventListener('scroll', handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={(event) => event.preventDefault()}\n onDismiss={onClose}\n >\n <PopperPrimitive.Content\n data-state={context.stateAttribute}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n >\n <Slottable>{children}</Slottable>\n <VisuallyHiddenContentContextProvider scope={__scopeTooltip} isInside={true}>\n <VisuallyHiddenPrimitive.Root id={context.contentId} role=\"tooltip\">\n {ariaLabel || children}\n </VisuallyHiddenPrimitive.Root>\n </VisuallyHiddenContentContextProvider>\n </PopperPrimitive.Content>\n </DismissableLayer>\n );\n }\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'TooltipArrow';\n\ntype TooltipArrowElement = React.ComponentRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface TooltipArrowProps extends PopperArrowProps {}\n\nconst TooltipArrow = React.forwardRef<TooltipArrowElement, TooltipArrowProps>(\n (props: ScopedProps<TooltipArrowProps>, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to\n // prevent issues in positioning the arrow due to the duplicate\n return visuallyHiddenContentContext.isInside ? null : (\n <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n );\n }\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype Side = NonNullable<TooltipContentProps['side']>;\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left';\n case right:\n return 'right';\n case top:\n return 'top';\n case bottom:\n return 'bottom';\n default:\n throw new Error('unreachable');\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = [];\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ];\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i]!;\n const jj = polygon[j]!;\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice();\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return +1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return +1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1) return points.slice();\n\n const upperHull: Array<P> = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i]!;\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]!;\n const r = upperHull[upperHull.length - 2]!;\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n\n const lowerHull: Array<P> = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]!;\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]!;\n const r = lowerHull[lowerHull.length - 2]!;\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n\n if (\n upperHull.length === 1 &&\n lowerHull.length === 1 &&\n upperHull[0]!.x === lowerHull[0]!.x &&\n upperHull[0]!.y === lowerHull[0]!.y\n ) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\n\nconst Provider = TooltipProvider;\nconst Root = Tooltip;\nconst Trigger = TooltipTrigger;\nconst Portal = TooltipPortal;\nconst Content = TooltipContent;\nconst Arrow = TooltipArrow;\n\nexport {\n createTooltipScope,\n //\n TooltipProvider,\n Tooltip,\n TooltipTrigger,\n TooltipPortal,\n TooltipContent,\n TooltipArrow,\n //\n Provider,\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n TooltipProviderProps,\n TooltipProps,\n TooltipTriggerProps,\n TooltipPortalProps,\n TooltipContentProps,\n TooltipArrowProps,\n};\n","{\"name\":\"@hexclave/dashboard\",\"version\":\"1.0.18\",\"repository\":\"https://github.com/hexclave/hexclave\",\"private\":true,\"scripts\":{\"clean\":\"rimraf .next && rimraf node_modules\",\"typecheck\":\"tsc --noEmit\",\"with-env\":\"dotenv -c development --\",\"with-env:prod\":\"dotenv -c --\",\"dev\":\"concurrently -n \\\"dev,bundle-type-defs\\\" -k \\\"next dev --turbopack --port ${NEXT_PUBLIC_HEXCLAVE_LOCAL_DASHBOARD_PORT:-${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}01}\\\" \\\"pnpm run bundle-type-definitions:watch\\\"\",\"dev:rde-production\":\"node scripts/dev-rde-production.mjs\",\"bundle-type-definitions\":\"tsx scripts/bundle-type-definitions.ts\",\"bundle-type-definitions:watch\":\"tsx watch --clear-screen=false scripts/bundle-type-definitions.ts\",\"build\":\"pnpm run bundle-type-definitions && next build\",\"build:rde-standalone\":\"NEXT_CONFIG_OUTPUT=standalone STACK_NEXT_CONFIG_DISABLE_TYPESCRIPT=true pnpm run build\",\"docker-build\":\"pnpm run bundle-type-definitions && next build --experimental-build-mode compile\",\"analyze-bundle\":\"next experimental-analyze\",\"start\":\"next start --port ${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}01\",\"psql\":\"pnpm run with-env bash -c 'psql $STACK_DATABASE_CONNECTION_STRING'\",\"lint\":\"eslint .\"},\"dependencies\":{\"@ai-sdk/react\":\"^3.0.72\",\"@assistant-ui/react\":\"^0.10.24\",\"@assistant-ui/react-ai-sdk\":\"^0.10.14\",\"@assistant-ui/react-markdown\":\"^0.10.5\",\"@dnd-kit/core\":\"^6.3.1\",\"@dnd-kit/sortable\":\"^10.0.0\",\"@dnd-kit/utilities\":\"^3.2.2\",\"@hookform/resolvers\":\"^3.3.4\",\"@monaco-editor/react\":\"4.7.0\",\"@oslojs/otp\":\"^1.1.0\",\"@phosphor-icons/react\":\"^2.1.10\",\"@radix-ui/react-accordion\":\"^1.2.1\",\"@radix-ui/react-alert-dialog\":\"^1.1.2\",\"@radix-ui/react-aspect-ratio\":\"^1.1.0\",\"@radix-ui/react-avatar\":\"^1.1.1\",\"@radix-ui/react-checkbox\":\"^1.1.2\",\"@radix-ui/react-collapsible\":\"^1.1.1\",\"@radix-ui/react-context\":\"^1.1.1\",\"@radix-ui/react-context-menu\":\"^2.2.2\",\"@radix-ui/react-dialog\":\"^1.1.2\",\"@radix-ui/react-dropdown-menu\":\"^2.1.2\",\"@radix-ui/react-hover-card\":\"^1.1.2\",\"@radix-ui/react-icons\":\"^1.3.1\",\"@radix-ui/react-label\":\"^2.1.0\",\"@radix-ui/react-menubar\":\"^1.1.2\",\"@radix-ui/react-navigation-menu\":\"^1.2.1\",\"@radix-ui/react-popover\":\"^1.1.2\",\"@radix-ui/react-progress\":\"^1.1.0\",\"@radix-ui/react-radio-group\":\"^1.2.1\",\"@radix-ui/react-scroll-area\":\"^1.2.0\",\"@radix-ui/react-select\":\"^2.1.2\",\"@radix-ui/react-separator\":\"^1.1.0\",\"@radix-ui/react-slider\":\"^1.2.1\",\"@radix-ui/react-slot\":\"^1.2.3\",\"@radix-ui/react-switch\":\"^1.1.1\",\"@radix-ui/react-tabs\":\"^1.1.1\",\"@radix-ui/react-toast\":\"^1.2.2\",\"@radix-ui/react-toggle\":\"^1.1.0\",\"@radix-ui/react-toggle-group\":\"^1.1.0\",\"@radix-ui/react-tooltip\":\"^1.1.3\",\"@react-hook/resize-observer\":\"^2.0.2\",\"@sentry/nextjs\":\"^10.11.0\",\"@hexclave/dashboard-ui-components\":\"workspace:*\",\"@hexclave/shared-backend\":\"workspace:*\",\"@hexclave/next\":\"workspace:*\",\"@hexclave/shared\":\"workspace:*\",\"@hexclave/ui\":\"workspace:*\",\"@stripe/connect-js\":\"^3.3.27\",\"@stripe/react-connect-js\":\"^3.3.24\",\"@stripe/react-stripe-js\":\"^3.8.1\",\"@stripe/stripe-js\":\"^7.7.0\",\"@tanstack/react-table\":\"^8.21.3\",\"@tanstack/react-virtual\":\"^3.13.18\",\"@vercel/analytics\":\"^1.2.2\",\"@vercel/speed-insights\":\"^1.0.12\",\"ai\":\"^6.0.0\",\"browser-image-compression\":\"^2.0.2\",\"canvas-confetti\":\"^1.9.2\",\"class-variance-authority\":\"^0.7.0\",\"clsx\":\"^2.1.1\",\"cmdk\":\"^1.0.4\",\"date-fns\":\"^3.6.0\",\"dotenv-cli\":\"^7.3.0\",\"export-to-csv\":\"^1.4.0\",\"geist\":\"^1\",\"input-otp\":\"^1.4.1\",\"jiti\":\"^2.4.2\",\"jose\":\"^6.1.3\",\"libsodium-wrappers\":\"^0.8.2\",\"lodash\":\"^4.17.21\",\"motion\":\"^12.39.0\",\"next\":\"16.2.7\",\"next-themes\":\"^0.2.1\",\"posthog-js\":\"^1.336.1\",\"qrcode\":\"^1.5.4\",\"react\":\"19.2.3\",\"react-day-picker\":\"^9.6.7\",\"react-dom\":\"19.2.3\",\"react-easy-crop\":\"^5.5.6\",\"react-globe.gl\":\"^2.28.2\",\"react-hook-form\":\"^7.53.1\",\"react-icons\":\"^5.0.1\",\"react-markdown\":\"^9.0.1\",\"react-resizable-panels\":\"^2.1.6\",\"react-syntax-highlighter\":\"^15.6.1\",\"recharts\":\"^2.14.1\",\"remark-gfm\":\"^4.0.1\",\"rrweb\":\"^1.1.3\",\"svix\":\"^1.32.0\",\"svix-react\":\"^1.13.0\",\"tailwind-merge\":\"^2.3.0\",\"tailwindcss-animate\":\"^1.0.7\",\"three\":\"^0.169.0\",\"use-debounce\":\"^10.0.5\",\"yup\":\"^1.7.1\",\"zod\":\"^4.0.0\"},\"devDependencies\":{\"@types/canvas-confetti\":\"^1.6.4\",\"@types/lodash\":\"^4.17.5\",\"@types/node\":\"20.17.6\",\"@types/qrcode\":\"^1.5.5\",\"@types/react\":\"19.2.7\",\"@types/react-dom\":\"19.2.3\",\"@types/react-syntax-highlighter\":\"^15.5.13\",\"@types/three\":\"^0.169.0\",\"autoprefixer\":\"^10.4.17\",\"concurrently\":\"^8.2.2\",\"glob\":\"^10.4.1\",\"import-in-the-middle\":\"1.14.2\",\"postcss\":\"^8.4.38\",\"require-in-the-middle\":\"^7.4.0\",\"rimraf\":\"^5.0.5\",\"tailwindcss\":\"^3.4.1\",\"tsx\":\"^4.7.2\"},\"packageManager\":\"pnpm@11.5.0\"}","export function SiteLoadingIndicatorDisplay() {\n // Next.js doesn't like a sticky or fixed position element at the root, so wrap it in a span\n // https://github.com/shadcn-ui/ui/issues/1355\n return <span>\n <span className=\"site-loading-indicator\">\n <span className=\"site-loading-indicator-inner\">\n <span className=\"site-loading-indicator-inner-glow\" />\n </span>\n </span>\n </span>;\n}\n\nexport function SiteLoadingIndicator() {\n return <div className=\"show-site-loading-indicator\" />;\n}\n","import { SiteLoadingIndicator } from \"@/components/site-loading-indicator\";\n\nexport default function Loading() {\n return <SiteLoadingIndicator />;\n}\n","const colors = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50],\n}\n\nfor (const key in colors) Object.freeze(colors[key]);\nexport default Object.freeze(colors);","import colorNames from 'color-name';\n\nconst reverseNames = Object.create(null);\n\n// Create a list of reverse color names\nfor (const name in colorNames) {\n\tif (Object.hasOwn(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nconst cs = {\n\tto: {},\n\tget: {},\n};\n\ncs.get = function (string) {\n\tconst prefix = string.slice(0, 3).toLowerCase();\n\tlet value;\n\tlet model;\n\tswitch (prefix) {\n\t\tcase 'hsl': {\n\t\t\tvalue = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hwb': {\n\t\t\tvalue = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tvalue = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn {model, value};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst abbr = /^#([a-f\\d]{3,4})$/i;\n\tconst hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n\tconst rgba = /^rgba?\\(\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)\\s*(?:[\\s,|/]\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(%?)\\s*)?\\)$/i;\n\tconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/i;\n\tconst keyword = /^(\\w+)$/;\n\n\tlet rgb = [0, 0, 0, 1];\n\tlet match;\n\tlet i;\n\tlet hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tconst i2 = i * 2;\n\t\t\trgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseFloat(match[i + 1]);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.toLowerCase().match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!Object.hasOwn(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/prefer-spread\n\t\trgb = colorNames[match[1]].slice();\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hsl);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst s = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst l = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hwb);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst w = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst b = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function (...rgba) {\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function (...rgba) {\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...rgba) {\n\tconst r = Math.round(rgba[0] / 255 * 100);\n\tconst g = Math.round(rgba[1] / 255 * 100);\n\tconst b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...hsla) {\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// Hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...hwba) {\n\tlet a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (...rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// Helpers\nfunction clamp(number_, min, max) {\n\treturn Math.min(Math.max(min, number_), max);\n}\n\nfunction hexDouble(number_) {\n\tconst string_ = Math.round(number_).toString(16).toUpperCase();\n\treturn (string_.length < 2) ? '0' + string_ : string_;\n}\n\nexport default cs;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nimport cssKeywords from 'color-name';\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\toklab: {channels: 3, labels: ['okl', 'oka', 'okb']},\n\tlch: {channels: 3, labels: 'lch'},\n\toklch: {channels: 3, labels: ['okl', 'okc', 'okh']},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']},\n};\n\nexport default convert;\n\n// LAB f(t) constant\nconst LAB_FT = (6 / 29) ** 3;\n\n// SRGB non-linear transform functions\nfunction srgbNonlinearTransform(c) {\n\tconst cc = c > 0.003_130_8\n\t\t? ((1.055 * (c ** (1 / 2.4))) - 0.055)\n\t\t: c * 12.92;\n\treturn Math.min(Math.max(0, cc), 1);\n}\n\nfunction srgbNonlinearTransformInv(c) {\n\treturn c > 0.040_45 ? (((c + 0.055) / 1.055) ** 2.4) : (c / 12.92);\n}\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tswitch (max) {\n\t\tcase min: {\n\t\t\th = 0;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase r: {\n\t\t\th = (g - b) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase g: {\n\t\t\th = 2 + (b - r) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase b: {\n\t\t\th = 4 + (r - g) / delta;\n\n\t\t\tbreak;\n\t\t}\n\t// No default\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tswitch (v) {\n\t\t\tcase r: {\n\t\t\t\th = bdif - gdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase g: {\n\t\t\t\th = (1 / 3) + rdif - bdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase b: {\n\t\t\t\th = (2 / 3) + gdif - rdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t// No default\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100,\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.oklab = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst lp = Math.cbrt(0.412_221_470_8 * r + 0.536_332_536_3 * g + 0.051_445_992_9 * b);\n\tconst mp = Math.cbrt(0.211_903_498_2 * r + 0.680_699_545_1 * g + 0.107_396_956_6 * b);\n\tconst sp = Math.cbrt(0.088_302_461_9 * r + 0.281_718_837_6 * g + 0.629_978_700_5 * b);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst aa = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst bb = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, aa * 100, bb * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Number.POSITIVE_INFINITY;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn [...cssKeywords[keyword]];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst x = (r * 0.412_456_4) + (g * 0.357_576_1) + (b * 0.180_437_5);\n\tconst y = (r * 0.212_672_9) + (g * 0.715_152_2) + (b * 0.072_175);\n\tconst z = (r * 0.019_333_9) + (g * 0.119_192) + (b * 0.950_304_1);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t3;\n\tlet value;\n\n\tif (s === 0) {\n\t\tvalue = l * 255;\n\t\treturn [value, value, value];\n\t}\n\n\tconst t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tvalue = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tvalue = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tvalue = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tvalue = t1;\n\t\t}\n\n\t\trgb[i] = value * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0: {\n\t\t\treturn [v, t, p];\n\t\t}\n\n\t\tcase 1: {\n\t\t\treturn [q, v, p];\n\t\t}\n\n\t\tcase 2: {\n\t\t\treturn [p, v, t];\n\t\t}\n\n\t\tcase 3: {\n\t\t\treturn [p, q, v];\n\t\t}\n\n\t\tcase 4: {\n\t\t\treturn [t, p, v];\n\t\t}\n\n\t\tcase 5: {\n\t\t\treturn [v, p, q];\n\t\t}\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\t// eslint-disable-next-line no-bitwise\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces, default-case-last */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: { r = v; g = n; b = wh; break;\n\t\t}\n\n\t\tcase 1: { r = n; g = v; b = wh; break;\n\t\t}\n\n\t\tcase 2: { r = wh; g = v; b = n; break;\n\t\t}\n\n\t\tcase 3: { r = wh; g = n; b = v; break;\n\t\t}\n\n\t\tcase 4: { r = n; g = wh; b = v; break;\n\t\t}\n\n\t\tcase 5: { r = v; g = wh; b = n; break;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces, default-case-last */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.240_454_2) + (y * -1.537_138_5) + (z * -0.498_531_4);\n\tg = (x * -0.969_266) + (y * 1.876_010_8) + (z * 0.041_556);\n\tb = (x * 0.055_643_4) + (y * -0.204_025_9) + (z * 1.057_225_2);\n\n\t// Assume sRGB\n\tr = srgbNonlinearTransform(r);\n\tg = srgbNonlinearTransform(g);\n\tb = srgbNonlinearTransform(b);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.xyz.oklab = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\n\tconst lp = Math.cbrt(0.818_933_010_1 * x + 0.361_866_742_4 * y - 0.128_859_713_7 * z);\n\tconst mp = Math.cbrt(0.032_984_543_6 * x + 0.929_311_871_5 * y + 0.036_145_638_7 * z);\n\tconst sp = Math.cbrt(0.048_200_301_8 * x + 0.264_366_269_1 * y + 0.633_851_707 * z);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst a = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst b = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, a * 100, b * 100];\n};\n\nconvert.oklab.oklch = function (oklab) {\n\treturn convert.lab.lch(oklab);\n};\n\nconvert.oklab.xyz = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst a = oklab[1] / 100;\n\tconst b = oklab[2] / 100;\n\n\tconst l = (0.999_999_998 * ll + 0.396_337_792 * a + 0.215_803_758 * b) ** 3;\n\tconst m = (1.000_000_008 * ll - 0.105_561_342 * a - 0.063_854_175 * b) ** 3;\n\tconst s = (1.000_000_055 * ll - 0.089_484_182 * a - 1.291_485_538 * b) ** 3;\n\n\tconst x = 1.227_013_851 * l - 0.557_799_98 * m + 0.281_256_149 * s;\n\tconst y = -0.040_580_178 * l + 1.112_256_87 * m - 0.071_676_679 * s;\n\tconst z = -0.076_381_285 * l - 0.421_481_978 * m + 1.586_163_22 * s;\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.oklab.rgb = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst aa = oklab[1] / 100;\n\tconst bb = oklab[2] / 100;\n\n\tconst l = (ll + 0.396_337_777_4 * aa + 0.215_803_757_3 * bb) ** 3;\n\tconst m = (ll - 0.105_561_345_8 * aa - 0.063_854_172_8 * bb) ** 3;\n\tconst s = (ll - 0.089_484_177_5 * aa - 1.291_485_548 * bb) ** 3;\n\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransform(4.076_741_662_1 * l - 3.307_711_591_3 * m + 0.230_969_929_2 * s);\n\tconst g = srgbNonlinearTransform(-1.268_438_004_6 * l + 2.609_757_401_1 * m - 0.341_319_396_5 * s);\n\tconst b = srgbNonlinearTransform(-0.004_196_086_3 * l - 0.703_418_614_7 * m + 1.707_614_701 * s);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.oklch.oklab = function (oklch) {\n\treturn convert.lch.lab(oklch);\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n\n\t// Illuminant D65 XYZ Tristrimulus Values\n\t// https://en.wikipedia.org/wiki/CIE_1931_color_space\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t/* eslint-disable no-bitwise */\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\t\t/* eslint-enable no-bitwise */\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\t// eslint-disable-next-line no-bitwise\n\tif (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\targs = args[0];\n\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (Math.trunc(args > 50) + 1) * 0.5;\n\t/* eslint-disable no-bitwise */\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\targs = args[0];\n\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\t/* eslint-disable no-bitwise */\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = [...colorString].map(char => char + char).join('');\n\t}\n\n\tconst integer = Number.parseInt(colorString, 16);\n\t/* eslint-disable no-bitwise */\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet hue;\n\n\tconst grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else if (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else if (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2 * s * l) : (2 * s * (1 - l));\n\n\tlet f = 0;\n\tif (c < 1) {\n\t\tf = (l - 0.5 * c) / (1 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0: {\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 1: {\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 2: {\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\t}\n\n\t\tcase 3: {\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\t}\n\n\t\tcase 4: {\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\t}\n\n\t\tdefault: {\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255,\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1 - c);\n\tlet f = 0;\n\n\tif (v > 0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else if (l >= 0.5 && l < 1) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65_535) * 255, (apple[1] / 65_535) * 255, (apple[2] / 65_535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65_535, (rgb[1] / 255) * 65_535, (rgb[2] / 255) * 65_535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\t/* eslint-disable no-bitwise */\n\tconst value = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (value << 16) + (value << 8) + value;\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [value / 255 * 100];\n};\n","import conversions from './conversions.js';\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null,\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let {length} = adjacents, i = 0; i < length; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nfunction route(fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n}\n\nexport default route;\n","import conversions from './conversions.js';\nimport route from './route.js';\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let {length} = result, i = 0; i < length; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfor (const fromModel of models) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\tfor (const toModel of routeModels) {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t}\n}\n\nexport default convert;\n","import colorString from 'color-string';\nimport convert from 'color-convert';\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](...arguments_);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(...arguments_);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(...this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(...rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...arguments_) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments_.length > 0) {\n\t\t\treturn new Color(arguments_, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...arguments_) {\n\t\tlet color = arguments_[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(arguments_, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] ||= [])[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nexport default Color;\n","\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport React from \"react\";\nimport { createGlobal } from \"@hexclave/shared/dist/utils/globals\";\n\ntype TranslationContextValue = {\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n};\n\nexport const TranslationContext = createGlobal<React.Context<TranslationContextValue | null>>(\n \"TranslationContext\",\n () => React.createContext<TranslationContextValue | null>(null),\n);\nTranslationContext.displayName ??= \"TranslationContext\";\n\nexport function TranslationProviderClient(props: {\n children: React.ReactNode,\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n}) {\n return (\n <TranslationContext.Provider value={{\n quetzalKeys: props.quetzalKeys,\n quetzalLocale: props.quetzalLocale,\n }}>\n {props.children}\n </TranslationContext.Provider>\n );\n}\n","\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { useLayoutEffect } from \"react\";\n\nexport function SsrScript(props: { script: string, nonce?: string }) {\n useLayoutEffect(() => {\n // TODO fix workaround: React has a bug where it doesn't run the script on the first CSR render if SSR has been skipped due to suspense\n // As a workaround, we run the script in the <script> tag again after the first render\n // Note that we do an indirect eval as described here: https://esbuild.github.io/content-types/#direct-eval\n (0, eval)(props.script);\n }, []);\n\n return (\n <script\n suppressHydrationWarning // the transpiler is setup differently for client/server targets, so if `script` was generated with Function.toString they will differ\n nonce={props.nonce}\n dangerouslySetInnerHTML={{ __html: props.script }}\n />\n );\n}\n","import { getPublicEnvVar } from '@/lib/env';\nimport { runAsynchronously, wait } from \"@hexclave/shared/dist/utils/promises\";\nimport packageJson from \"../../package.json\";\n\nexport type VersionCheckResult = {\n severe: boolean,\n error: string,\n} | null;\n\nexport type VersionCheckOptions = {\n /** Delay before making the request (in milliseconds) */\n delay?: number,\n /** Whether to silently fail or throw errors */\n silentFailure?: boolean,\n /** Custom error message prefix for logging */\n errorPrefix?: string,\n};\n\n/**\n * Hook to check if non-severe version alerts should be shown\n * Based on NEXT_PUBLIC_VERSION_ALERTER_SEVERE_ONLY environment variable\n */\nexport function shouldShowNonSevereVersionCheck(): boolean {\n // IMPORTANT: THIS ENVIRONMENT VARIABLE IS UNDOCUMENTED AND NOT MEANT FOR PRODUCTION USAGE\n // AND YOU SHOULD ALWAYS KEEP STACK AUTH UP TO DATE. WE CAN'T APPLY SECURITY UPDATES IF\n // YOU DON'T UPDATE STACK AUTH REGULARLY.\n return getPublicEnvVar('NEXT_PUBLIC_VERSION_ALERTER_SEVERE_ONLY') !== \"true\";\n}\n\n/**\n * Utility to determine if a version check result should be displayed\n */\nexport function shouldDisplayVersionResult(\n result: VersionCheckResult,\n enableNonSevereCheck: boolean = shouldShowNonSevereVersionCheck()\n): boolean {\n return result !== null && (enableNonSevereCheck || result.severe);\n}\n\n/**\n * Common utility function for checking version against Hexclave API\n * Used by both VersionAlerter and HexclaveCompanion components\n */\nexport function checkVersion(\n onResult: (result: VersionCheckResult) => void,\n options: VersionCheckOptions = {}\n) {\n const {\n delay = 1000,\n silentFailure = false,\n errorPrefix = \"Version check failed\"\n } = options;\n\n // Skip check for managed hosting\n if (typeof window !== \"undefined\" && window.location.origin === \"https://app.hexclave.com\") {\n return () => {}; // Return cleanup function\n }\n\n let cancelled = false;\n\n runAsynchronously(async () => {\n try {\n await wait(delay);\n if (cancelled) return;\n\n const res = await fetch(`https://api.hexclave.com/api/v1/check-version`, {\n method: \"POST\",\n body: JSON.stringify({\n clientPackageName: packageJson.name,\n clientVersion: packageJson.version,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res.status !== 200) {\n if (silentFailure) {\n return; // Silently fail\n } else {\n throw new Error(`Version check API call failed with status ${res.status}: ${await res.text()}`);\n }\n }\n\n const data = await res.json();\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (cancelled) return;\n\n onResult(data.upToDate ? null : data);\n } catch (e) {\n if (silentFailure) {\n console.warn(`${errorPrefix}:`, e);\n return;\n }\n\n // Wait a little bit because the error may have been caused by a page reload\n await wait(5000);\n if (cancelled) return;\n\n console.error(`${errorPrefix}`, e);\n onResult({\n severe: true,\n error: `Error checking version, please make sure you're connected to the internet. See the console for more details. \\n${e}`\n });\n }\n });\n\n // Return cleanup function\n return () => {\n cancelled = true;\n };\n}\n","\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// Tiny DOM helpers shared by Hexclave's in-page UIs (the dev tool and the\n// standalone clickmap overlay). This module deliberately lives outside both\n// feature folders so either feature can be removed without affecting the other.\n\nexport function h<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n attrs?: Record<string, any> | null,\n ...children: (string | Node | null | undefined)[]\n): HTMLElementTagNameMap[K] {\n const el = document.createElement(tag);\n if (attrs) {\n for (const [k, v] of Object.entries(attrs)) {\n if (v == null) continue;\n if (k === 'className') {\n el.className = v;\n } else if (k === 'style' && typeof v === 'object') {\n Object.assign(el.style, v);\n } else if (k.startsWith('on') && typeof v === 'function') {\n el.addEventListener(k.slice(2).toLowerCase(), v);\n } else {\n el.setAttribute(k, String(v));\n }\n }\n }\n for (const child of children) {\n if (child == null) continue;\n el.appendChild(typeof child === 'string' ? document.createTextNode(child) : child);\n }\n return el;\n}\n\nexport function setHtml(el: HTMLElement, html: string) {\n el.innerHTML = html;\n}\n\nexport function hasAppendChild(value: unknown): value is { appendChild(node: Node): void } {\n return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'appendChild') === 'function';\n}\n\nexport function canMountIntoDom(): boolean {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return false;\n }\n if (typeof document.createElement !== 'function') {\n return false;\n }\n return hasAppendChild(Reflect.get(document, 'body'));\n}\n\n// ---------------------------------------------------------------------------\n// Window-global singleton slot, so remounts (e.g. across HMR or multiple app\n// instances) can tear down the previous instance before mounting a new one.\n// ---------------------------------------------------------------------------\n\nexport type UiGlobalInstance = {\n cleanup: () => void;\n};\n\nfunction isUiGlobalInstance(value: unknown): value is UiGlobalInstance {\n return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'cleanup') === 'function';\n}\n\nexport function getGlobalUiInstance(key: string): UiGlobalInstance | null {\n if (typeof window === 'undefined') return null;\n const value: unknown = Reflect.get(window, key);\n return isUiGlobalInstance(value) ? value : null;\n}\n\nexport function setGlobalUiInstance(key: string, instance: UiGlobalInstance | null) {\n if (typeof window === 'undefined') return;\n if (instance === null) {\n Reflect.deleteProperty(window, key);\n } else {\n Reflect.set(window, key, instance);\n }\n}\n","/**\n * Shared identity of the Hexclave in-page dev tool / clickmap overlay.\n *\n * These constants are the single source of truth for \"is this DOM / event /\n * stored click part of the dev tool itself?\". They are consumed across package\n * boundaries:\n * - the dev tool mounts its root element with {@link DEV_TOOL_ROOT_ID} and\n * prefixes every generated class with {@link DEV_TOOL_CLASS_PREFIX};\n * - the event tracker uses them to skip self-clicks at ingest;\n * - the backend clickmap query uses them to filter dev-tool clicks out of\n * aggregate clickmaps server-side.\n *\n * Keep them here so a rename can never silently desync the SQL filter from the\n * actual DOM identity.\n */\nexport const DEV_TOOL_ROOT_ID = \"__hexclave-dev-tool-root\";\n\n/**\n * Root element id of the standalone clickmap overlay. The clickmap is an\n * independent feature with its own mount (it must survive the dev tool being\n * removed), so it gets its own root — but its self-clicks need the exact same\n * ingest/query exclusions as the dev tool's.\n */\nexport const CLICKMAP_ROOT_ID = \"__hexclave-clickmap-root\";\n\n/** Prefix applied to every class/generated id the dev tool renders. */\nexport const DEV_TOOL_CLASS_PREFIX = \"sdt-\";\n\n/** Legacy class marker still present on older dev-tool builds. */\nexport const DEV_TOOL_LEGACY_CLASS = \"stack-devtool\";\n","/**\n * Wire protocol for handing a clickmap overlay token from the dashboard to the\n * in-page dev tool via `sessionStorage` + a window event.\n *\n * The token is a self-describing JWT: its payload already carries the\n * `project_id` and `origin` it was minted for, so the reader derives both from\n * the token itself and the writer only has to hand over a single value. The\n * dashboard (writer) and the dev tool (reader) live in different packages but\n * must agree on these exact names — this module is the single source of truth so\n * they can never silently desync.\n */\n\nexport const CLICKMAP_OVERLAY_TOKEN_STORAGE_KEY = \"hexclave-clickmap-token\";\nexport const CLICKMAP_OVERLAY_RESUME_STORAGE_KEY = \"hexclave-clickmap-resume\";\nexport const CLICKMAP_OVERLAY_TOKEN_UPDATED_EVENT = \"hexclave:clickmap-token-updated\";\n","/**\n * PostHog-style `elements_chain` format — the single owner of both halves of the\n * contract. The event tracker {@link buildElementsChain serializes} a clicked\n * element (and its ancestors) into a string; the clickmap overlay\n * {@link parseElementsChain parses} that string back into structured segments so\n * it can re-locate the element in a live DOM.\n *\n * Encode and decode MUST round-trip exactly, which is why they live together:\n * the escaping applied here on the write side is reversed by the parser below,\n * and a single round-trip test in `elements-chain.test.tsx` guards the pair.\n *\n * Segment shape (leaf-first, joined by `;`):\n * tag.class1.class2:nth-child=\"2\":nth-of-type=\"1\":text=\"Save\":attr__id=\"x\":href=\"...\"\n */\n\nexport type ElementsChainSegment = {\n tag: string,\n classes: string[],\n attrs: Record<string, string>,\n text: string | null,\n nthChild: number | null,\n nthOfType: number | null,\n href: string | null,\n};\n\nexport const ELEMENTS_CHAIN_MAX_DEPTH = 8;\nexport const ELEMENTS_CHAIN_TEXT_MAX = 80;\nexport const ELEMENTS_CHAIN_ATTR_MAX = 200;\n\n// Attributes we serialise into elements_chain. Mirrors the set PostHog persists:\n// stable identifiers (id, data-testid), semantics (role, type, name, aria-label),\n// and a few we expect downstream tooling to want to match against.\nexport const ELEMENTS_CHAIN_ATTRS = [\n \"id\",\n \"data-testid\",\n \"data-test-id\",\n \"data-hexclave-id\",\n \"name\",\n \"type\",\n \"role\",\n \"aria-label\",\n \"placeholder\",\n \"title\",\n] as const;\n\n// ---------------------------------------------------------------------------\n// Serialization (DOM element -> elements_chain string)\n// ---------------------------------------------------------------------------\n\nfunction escapeElementsChainValue(value: string): string {\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n}\n\n// Class tokens are written into the unquoted, dot-joined prefix of a segment, so\n// any \".\" or \":\" inside a class (e.g. Tailwind variants like `md:hover:bg-blue-500`\n// or arbitrary values like `w-[1.5rem]`) must be escaped to round-trip through the\n// parser, which splits the prefix on unescaped \".\" and the segment on unescaped \":\".\nfunction escapeElementsChainClass(value: string): string {\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/:/g, \"\\\\:\");\n}\n\nfunction getElementClasses(element: Element): string[] {\n const className = (element as HTMLElement).className;\n if (typeof className !== \"string\" || className.trim() === \"\") {\n return [];\n }\n return className.trim().split(/\\s+/).filter(Boolean).slice(0, 4);\n}\n\nfunction getNthChildIndex(element: Element): number | null {\n const parent = element.parentElement;\n if (parent == null) return null;\n const index = Array.prototype.indexOf.call(parent.children, element);\n return index >= 0 ? index + 1 : null;\n}\n\nfunction getNthOfTypeIndex(element: Element): number | null {\n const parent = element.parentElement;\n if (parent == null) return null;\n const tagName = element.tagName;\n const siblings = Array.from(parent.children).filter((child) => child.tagName === tagName);\n if (siblings.length <= 1) return null;\n const index = siblings.indexOf(element);\n return index >= 0 ? index + 1 : null;\n}\n\nfunction serializeElementsChainSegment(element: Element): string {\n const parts: string[] = [];\n parts.push(element.tagName.toLowerCase());\n const classes = getElementClasses(element);\n if (classes.length > 0) {\n parts.push(`.${classes.map(escapeElementsChainClass).join(\".\")}`);\n }\n const text = element.textContent.trim().replace(/\\s+/g, \" \").slice(0, ELEMENTS_CHAIN_TEXT_MAX);\n const nthChild = getNthChildIndex(element);\n const nthOfType = getNthOfTypeIndex(element);\n const attrPairs: string[] = [];\n if (nthChild != null) attrPairs.push(`nth-child=\"${nthChild}\"`);\n if (nthOfType != null) attrPairs.push(`nth-of-type=\"${nthOfType}\"`);\n if (text !== \"\") attrPairs.push(`text=\"${escapeElementsChainValue(text)}\"`);\n for (const attrName of ELEMENTS_CHAIN_ATTRS) {\n const value = element.getAttribute(attrName);\n if (value == null || value === \"\") continue;\n attrPairs.push(`attr__${attrName}=\"${escapeElementsChainValue(value.slice(0, ELEMENTS_CHAIN_ATTR_MAX))}\"`);\n }\n if (element.tagName === \"A\") {\n const href = element.getAttribute(\"href\");\n if (href != null && href !== \"\") {\n attrPairs.push(`href=\"${escapeElementsChainValue(href.slice(0, ELEMENTS_CHAIN_ATTR_MAX))}\"`);\n }\n }\n if (attrPairs.length > 0) {\n parts.push(`:${attrPairs.join(\":\")}`);\n }\n return parts.join(\"\");\n}\n\n/**\n * Serialise a clicked element and up to {@link ELEMENTS_CHAIN_MAX_DEPTH}\n * ancestors (leaf-first) into an `elements_chain` string.\n */\nexport function buildElementsChain(element: Element): string {\n const segments: string[] = [];\n let current: Element | null = element;\n let depth = 0;\n while (current != null && depth < ELEMENTS_CHAIN_MAX_DEPTH && current !== document.documentElement) {\n segments.push(serializeElementsChainSegment(current));\n current = current.parentElement;\n depth += 1;\n }\n return segments.join(\";\");\n}\n\n// ---------------------------------------------------------------------------\n// Parsing (elements_chain string -> structured segments)\n// ---------------------------------------------------------------------------\n\n// Split a string on unescaped occurrences of `.`, unescaping `\\.`, `\\:` and `\\\\`\n// back to their literal characters. Reverses `escapeElementsChainClass`.\nfunction splitEscapedDots(input: string): string[] {\n const out: string[] = [];\n let cur = '';\n for (let i = 0; i < input.length; i++) {\n const ch = input[i];\n if (ch === '\\\\' && i + 1 < input.length) {\n cur += input[i + 1];\n i += 1;\n continue;\n }\n if (ch === '.') {\n out.push(cur);\n cur = '';\n continue;\n }\n cur += ch;\n }\n out.push(cur);\n return out;\n}\n\ntype ElementsChainAttrResult = {\n nthChild?: number,\n nthOfType?: number,\n text?: string,\n href?: string,\n attrKey?: string,\n attrValue?: string,\n};\n\nfunction applyElementsChainAttr(key: string, value: string): ElementsChainAttrResult {\n if (key === 'nth-child') {\n const n = Number.parseInt(value, 10);\n return Number.isFinite(n) ? { nthChild: n } : {};\n }\n if (key === 'nth-of-type') {\n const n = Number.parseInt(value, 10);\n return Number.isFinite(n) ? { nthOfType: n } : {};\n }\n if (key === 'text') {\n return { text: value };\n }\n if (key === 'href') {\n return { href: value, attrKey: key, attrValue: value };\n }\n if (key.startsWith('attr__')) {\n return { attrKey: key.slice('attr__'.length), attrValue: value };\n }\n return { attrKey: key, attrValue: value };\n}\n\nfunction parseElementsChainSegment(segment: string): ElementsChainSegment | null {\n const trimmed = segment.trim();\n if (trimmed === '') return null;\n\n // Find first ':' at top level — separates tag/classes prefix from attribute pairs.\n let prefixEnd = trimmed.length;\n let inQuotes = false;\n for (let i = 0; i < trimmed.length; i++) {\n const ch = trimmed[i];\n if (ch === '\\\\' && i + 1 < trimmed.length) {\n i += 1;\n continue;\n }\n if (ch === '\"') {\n inQuotes = !inQuotes;\n continue;\n }\n if (ch === ':' && !inQuotes) {\n prefixEnd = i;\n break;\n }\n }\n\n const prefix = trimmed.slice(0, prefixEnd);\n const rest = trimmed.slice(prefixEnd);\n const prefixParts = splitEscapedDots(prefix);\n const tag = prefixParts[0].trim().toLowerCase();\n if (tag === '') return null;\n const classes = prefixParts.slice(1).map((c) => c.trim()).filter((c) => c !== '');\n\n const attrs: Record<string, string> = {};\n let nthChild: number | null = null;\n let nthOfType: number | null = null;\n let text: string | null = null;\n let href: string | null = null;\n\n // Parse :key=\"value\" pairs from rest.\n let i = 0;\n while (i < rest.length) {\n if (rest[i] !== ':') {\n i += 1;\n continue;\n }\n i += 1; // skip ':'\n // read key up to '='\n let keyEnd = i;\n while (keyEnd < rest.length && rest[keyEnd] !== '=' && rest[keyEnd] !== ':') keyEnd += 1;\n const key = rest.slice(i, keyEnd).trim();\n if (keyEnd >= rest.length || rest[keyEnd] !== '=') {\n i = keyEnd;\n continue;\n }\n let valStart = keyEnd + 1;\n if (rest[valStart] !== '\"') {\n // unquoted — read until next ':' at top level\n let end = valStart;\n while (end < rest.length && rest[end] !== ':') end += 1;\n const value = rest.slice(valStart, end);\n const result = applyElementsChainAttr(key, value);\n if (result.nthChild != null) nthChild = result.nthChild;\n if (result.nthOfType != null) nthOfType = result.nthOfType;\n if (result.text != null) text = result.text;\n if (result.href != null) href = result.href;\n if (result.attrKey != null) attrs[result.attrKey] = result.attrValue ?? '';\n i = end;\n continue;\n }\n // quoted value — find unescaped closing quote\n valStart += 1;\n let end = valStart;\n let value = '';\n while (end < rest.length) {\n const ch = rest[end];\n if (ch === '\\\\' && end + 1 < rest.length) {\n const next = rest[end + 1];\n if (next === '\"' || next === '\\\\') {\n value += next;\n end += 2;\n continue;\n }\n value += ch;\n end += 1;\n continue;\n }\n if (ch === '\"') break;\n value += ch;\n end += 1;\n }\n const result = applyElementsChainAttr(key, value);\n if (result.nthChild != null) nthChild = result.nthChild;\n if (result.nthOfType != null) nthOfType = result.nthOfType;\n if (result.text != null) text = result.text;\n if (result.href != null) href = result.href;\n if (result.attrKey != null) attrs[result.attrKey] = result.attrValue ?? '';\n i = end + 1; // skip closing quote\n }\n\n return { tag, classes, attrs, text, nthChild, nthOfType, href };\n}\n\n/** Parse an `elements_chain` string into structured, leaf-first segments. */\nexport function parseElementsChain(chain: string): ElementsChainSegment[] {\n // Split top-level by ';' respecting quoted strings.\n const segments: string[] = [];\n let current = '';\n let inQuotes = false;\n for (let i = 0; i < chain.length; i++) {\n const ch = chain[i];\n if (ch === '\\\\' && i + 1 < chain.length) {\n current += ch + chain[i + 1];\n i += 1;\n continue;\n }\n if (ch === '\"') {\n inQuotes = !inQuotes;\n current += ch;\n continue;\n }\n if (ch === ';' && !inQuotes) {\n segments.push(current);\n current = '';\n continue;\n }\n current += ch;\n }\n if (current.length > 0) {\n segments.push(current);\n }\n return segments.map(parseElementsChainSegment).filter((segment): segment is ElementsChainSegment => segment != null);\n}\n\nimport.meta.vitest?.test(\"parseElementsChain parses a simple leaf+ancestor chain\", ({ expect }) => {\n const parsed = parseElementsChain('button.btn.btn-primary:nth-of-type=\"1\":text=\"Save\":attr__id=\"save-btn\";div.container');\n expect(parsed).toEqual([\n { tag: \"button\", classes: [\"btn\", \"btn-primary\"], attrs: { id: \"save-btn\" }, text: \"Save\", nthChild: null, nthOfType: 1, href: null },\n { tag: \"div\", classes: [\"container\"], attrs: {}, text: null, nthChild: null, nthOfType: null, href: null },\n ]);\n});\n\nimport.meta.vitest?.test(\"parseElementsChain reverses class escaping for Tailwind-style tokens\", ({ expect }) => {\n // `md:hover:bg-blue-500` and `w-[1.5rem]` contain the prefix delimiters `:`/`.`,\n // so the serializer escapes them; the parser must recover the literal classes.\n const parsed = parseElementsChain('a.md\\\\:hover\\\\:bg-blue-500.w-\\\\[1\\\\.5rem\\\\]:href=\"/p?a=1\"');\n expect(parsed).toEqual([\n { tag: \"a\", classes: [\"md:hover:bg-blue-500\", \"w-[1.5rem]\"], attrs: { href: \"/p?a=1\" }, text: null, nthChild: null, nthOfType: null, href: \"/p?a=1\" },\n ]);\n});\n\nimport.meta.vitest?.test(\"parseElementsChain unescapes quotes/backslashes and ignores ';' inside quoted values\", ({ expect }) => {\n const parsed = parseElementsChain('span:text=\"a \\\\\"b\\\\\"; c \\\\\\\\ d\"');\n expect(parsed).toEqual([\n { tag: \"span\", classes: [], attrs: {}, text: 'a \"b\"; c \\\\ d', nthChild: null, nthOfType: null, href: null },\n ]);\n});\n\nimport.meta.vitest?.test(\"parseElementsChain drops empty/tagless segments\", ({ expect }) => {\n expect(parseElementsChain(\"\")).toEqual([]);\n expect(parseElementsChain(\";;\")).toEqual([]);\n});\n","/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = <subdomain>\n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * <subdomain> = <label> | <subdomain> \".\" <label>\n * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n * Labels must be 63 characters or less.\n * 'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp> = <let-dig> | \"-\"\n * <let-dig> = <letter> | <digit>\n * <letter> = any one of the 52 alphabetic characters A through Z in\n * upper case and a through z in lower case\n * <digit> = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp =\n /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value = <any CHAR except CTLs or \";\">\n * CHAR = %x01-7F\n * ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n\n/**\n * RegExp to match max-age-value in RFC 6265 sec 5.6.2\n */\nconst maxAgeRegExp = /^-?\\d+$/;\n\nconst __toString = Object.prototype.toString;\n\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () {};\n C.prototype = Object.create(null);\n return C;\n})() as unknown as { new (): any };\n\n/**\n * Parse options.\n */\nexport interface ParseOptions {\n /**\n * Specifies a function that will be used to decode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n * Since the value of a cookie has a limited character set (and must be a simple string), this function can be used to decode\n * a previously-encoded cookie value into a JavaScript string.\n *\n * The default function is the global `decodeURIComponent`, wrapped in a `try..catch`. If an error\n * is thrown it will return the cookie's original value. If you provide your own encode/decode\n * scheme you must ensure errors are appropriately handled.\n *\n * @default decode\n */\n decode?: (str: string) => string | undefined;\n}\n\n/**\n * Cookies object.\n */\nexport type Cookies = Record<string, string | undefined>;\n\n/**\n * Parse a `Cookie` header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nexport function parseCookie(str: string, options?: ParseOptions): Cookies {\n const obj: Cookies = new NullObject();\n const len = str.length;\n // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n if (len < 2) return obj;\n\n const dec = options?.decode || decode;\n let index = 0;\n\n do {\n const eqIdx = eqIndex(str, index, len);\n if (eqIdx === -1) break; // No more cookie pairs.\n\n const endIdx = endIndex(str, index, len);\n\n if (eqIdx > endIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n\n const key = valueSlice(str, index, eqIdx);\n\n // only assign once\n if (obj[key] === undefined) {\n obj[key] = dec(valueSlice(str, eqIdx + 1, endIdx));\n }\n\n index = endIdx + 1;\n } while (index < len);\n\n return obj;\n}\n\nexport interface StringifyOptions {\n /**\n * Specifies a function that will be used to encode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n * Since value of a cookie has a limited character set (and must be a simple string), this function can be used to encode\n * a value into a string suited for a cookie's value, and should mirror `decode` when parsing.\n *\n * @default encodeURIComponent\n */\n encode?: (str: string) => string;\n}\n\n/**\n * Stringifies an object into an HTTP `Cookie` header.\n */\nexport function stringifyCookie(\n cookie: Cookies,\n options?: StringifyOptions,\n): string {\n const enc = options?.encode || encodeURIComponent;\n const cookieStrings: string[] = [];\n\n for (const name of Object.keys(cookie)) {\n const val = cookie[name];\n if (val === undefined) continue;\n\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(`cookie name is invalid: ${name}`);\n }\n\n const value = enc(val);\n\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`cookie val is invalid: ${val}`);\n }\n\n cookieStrings.push(`${name}=${value}`);\n }\n\n return cookieStrings.join(\"; \");\n}\n\n/**\n * Set-Cookie object.\n */\nexport interface SetCookie {\n /**\n * Specifies the name of the cookie.\n */\n name: string;\n /**\n * Specifies the string to be the value for the cookie.\n */\n value: string | undefined;\n /**\n * Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.2).\n *\n * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n * so if both are set, they should point to the same date and time.\n */\n maxAge?: number;\n /**\n * Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.1).\n * When no expiration is set, clients consider this a \"non-persistent cookie\" and delete it when the current session is over.\n *\n * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n * so if both are set, they should point to the same date and time.\n */\n expires?: Date;\n /**\n * Specifies the value for the [`Domain` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.3).\n * When no domain is set, clients consider the cookie to apply to the current domain only.\n */\n domain?: string;\n /**\n * Specifies the value for the [`Path` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.4).\n * When no path is set, the path is considered the [\"default path\"](https://tools.ietf.org/html/rfc6265#section-5.1.4).\n */\n path?: string;\n /**\n * Enables the [`HttpOnly` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.6).\n * When enabled, clients will not allow client-side JavaScript to see the cookie in `document.cookie`.\n */\n httpOnly?: boolean;\n /**\n * Enables the [`Secure` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.5).\n * When enabled, clients will only send the cookie back if the browser has an HTTPS connection.\n */\n secure?: boolean;\n /**\n * Enables the [`Partitioned` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/).\n * When enabled, clients will only send the cookie back when the current domain _and_ top-level domain matches.\n *\n * This is an attribute that has not yet been fully standardized, and may change in the future.\n * This also means clients may ignore this attribute until they understand it. More information\n * about can be found in [the proposal](https://github.com/privacycg/CHIPS).\n */\n partitioned?: boolean;\n /**\n * Specifies the value for the [`Priority` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n *\n * - `'low'` will set the `Priority` attribute to `Low`.\n * - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.\n * - `'high'` will set the `Priority` attribute to `High`.\n *\n * More information about priority levels can be found in [the specification](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n */\n priority?: \"low\" | \"medium\" | \"high\";\n /**\n * Specifies the value for the [`SameSite` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n *\n * - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n * - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.\n * - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.\n * - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n *\n * More information about enforcement levels can be found in [the specification](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n */\n sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n}\n\n/**\n * Backward compatibility serialize options.\n */\nexport type SerializeOptions = StringifyOptions &\n Omit<SetCookie, \"name\" | \"value\">;\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n */\nexport function stringifySetCookie(\n cookie: SetCookie,\n options?: StringifyOptions,\n): string;\nexport function stringifySetCookie(\n name: string,\n val: string,\n options?: SerializeOptions,\n): string;\nexport function stringifySetCookie(\n _name: string | SetCookie,\n _val?: string | StringifyOptions,\n _opts?: SerializeOptions,\n): string {\n const cookie =\n typeof _name === \"object\"\n ? _name\n : { ..._opts, name: _name, value: String(_val) };\n const options = typeof _val === \"object\" ? _val : _opts;\n const enc = options?.encode || encodeURIComponent;\n\n if (!cookieNameRegExp.test(cookie.name)) {\n throw new TypeError(`argument name is invalid: ${cookie.name}`);\n }\n\n const value = cookie.value ? enc(cookie.value) : \"\";\n\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`argument val is invalid: ${cookie.value}`);\n }\n\n let str = cookie.name + \"=\" + value;\n\n if (cookie.maxAge !== undefined) {\n if (!Number.isInteger(cookie.maxAge)) {\n throw new TypeError(`option maxAge is invalid: ${cookie.maxAge}`);\n }\n\n str += \"; Max-Age=\" + cookie.maxAge;\n }\n\n if (cookie.domain) {\n if (!domainValueRegExp.test(cookie.domain)) {\n throw new TypeError(`option domain is invalid: ${cookie.domain}`);\n }\n\n str += \"; Domain=\" + cookie.domain;\n }\n\n if (cookie.path) {\n if (!pathValueRegExp.test(cookie.path)) {\n throw new TypeError(`option path is invalid: ${cookie.path}`);\n }\n\n str += \"; Path=\" + cookie.path;\n }\n\n if (cookie.expires) {\n if (!isDate(cookie.expires) || !Number.isFinite(cookie.expires.valueOf())) {\n throw new TypeError(`option expires is invalid: ${cookie.expires}`);\n }\n\n str += \"; Expires=\" + cookie.expires.toUTCString();\n }\n\n if (cookie.httpOnly) {\n str += \"; HttpOnly\";\n }\n\n if (cookie.secure) {\n str += \"; Secure\";\n }\n\n if (cookie.partitioned) {\n str += \"; Partitioned\";\n }\n\n if (cookie.priority) {\n const priority =\n typeof cookie.priority === \"string\"\n ? cookie.priority.toLowerCase()\n : undefined;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(`option priority is invalid: ${cookie.priority}`);\n }\n }\n\n if (cookie.sameSite) {\n const sameSite =\n typeof cookie.sameSite === \"string\"\n ? cookie.sameSite.toLowerCase()\n : cookie.sameSite;\n switch (sameSite) {\n case true:\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(`option sameSite is invalid: ${cookie.sameSite}`);\n }\n }\n\n return str;\n}\n\n/**\n * Deserialize a `Set-Cookie` header into an object.\n *\n * deserialize('foo=bar; httpOnly')\n * => { name: 'foo', value: 'bar', httpOnly: true }\n */\nexport function parseSetCookie(str: string, options?: ParseOptions): SetCookie {\n const dec = options?.decode || decode;\n const len = str.length;\n const endIdx = endIndex(str, 0, len);\n const eqIdx = eqIndex(str, 0, endIdx);\n const setCookie: SetCookie =\n eqIdx === -1\n ? { name: \"\", value: dec(valueSlice(str, 0, endIdx)) }\n : {\n name: valueSlice(str, 0, eqIdx),\n value: dec(valueSlice(str, eqIdx + 1, endIdx)),\n };\n\n let index = endIdx + 1;\n while (index < len) {\n const endIdx = endIndex(str, index, len);\n const eqIdx = eqIndex(str, index, endIdx);\n const attr =\n eqIdx === -1\n ? valueSlice(str, index, endIdx)\n : valueSlice(str, index, eqIdx);\n const val = eqIdx === -1 ? undefined : valueSlice(str, eqIdx + 1, endIdx);\n\n switch (attr.toLowerCase()) {\n case \"httponly\":\n setCookie.httpOnly = true;\n break;\n case \"secure\":\n setCookie.secure = true;\n break;\n case \"partitioned\":\n setCookie.partitioned = true;\n break;\n case \"domain\":\n setCookie.domain = val;\n break;\n case \"path\":\n setCookie.path = val;\n break;\n case \"max-age\":\n if (val && maxAgeRegExp.test(val)) setCookie.maxAge = Number(val);\n break;\n case \"expires\":\n if (!val) break;\n const date = new Date(val);\n if (Number.isFinite(date.valueOf())) setCookie.expires = date;\n break;\n case \"priority\":\n if (!val) break;\n const priority = val.toLowerCase();\n if (\n priority === \"low\" ||\n priority === \"medium\" ||\n priority === \"high\"\n ) {\n setCookie.priority = priority;\n }\n break;\n case \"samesite\":\n if (!val) break;\n const sameSite = val.toLowerCase();\n if (\n sameSite === \"lax\" ||\n sameSite === \"strict\" ||\n sameSite === \"none\"\n ) {\n setCookie.sameSite = sameSite;\n }\n break;\n }\n\n index = endIdx + 1;\n }\n\n return setCookie;\n}\n\n/**\n * Find the `;` character between `min` and `len` in str.\n */\nfunction endIndex(str: string, min: number, len: number) {\n const index = str.indexOf(\";\", min);\n return index === -1 ? len : index;\n}\n\n/**\n * Find the `=` character between `min` and `max` in str.\n */\nfunction eqIndex(str: string, min: number, max: number) {\n const index = str.indexOf(\"=\", min);\n return index < max ? index : -1;\n}\n\n/**\n * Slice out a value between startPod to max.\n */\nfunction valueSlice(str: string, min: number, max: number) {\n let start = min;\n let end = max;\n\n do {\n const code = str.charCodeAt(start);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) break;\n } while (++start < end);\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) break;\n end--;\n }\n\n return str.slice(start, end);\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str: string): string {\n if (str.indexOf(\"%\") === -1) return str;\n\n try {\n return decodeURIComponent(str);\n } catch (e) {\n return str;\n }\n}\n\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val: any): val is Date {\n return __toString.call(val) === \"[object Date]\";\n}\n\n/**\n * Backward compatibility exports.\n */\nexport { stringifySetCookie as serialize, parseCookie as parse };\n","import {\n type ReadonlyRequestCookies,\n areCookiesMutableInCurrentPhase,\n RequestCookiesAdapter,\n} from '../web/spec-extension/adapters/request-cookies'\nimport { RequestCookies } from '../web/spec-extension/cookies'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n isInEarlyRenderStage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n delayUntilRuntimeStage,\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\n\nexport function cookies(): Promise<ReadonlyRequestCookies> {\n const callingExpression = 'cookies'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n // TODO(after): clarify that this only applies to pages?\n `Route ${workStore.route} used \\`cookies()\\` inside \\`after()\\`. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`cookies()\\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // cookies object without tracking\n const underlyingCookies = createEmptyCookies()\n return makeUntrackedCookies(underlyingCookies)\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`cookies()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n const error = new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, cookies)\n workStore.invalidDynamicUsageError ??= error\n throw error\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n case 'prerender':\n return makeHangingCookies(workStore, workUnitStore)\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`cookies`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n // We need track dynamic access here eagerly to keep continuity with\n // how cookies has worked in PPR without cacheComponents.\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // We track dynamic access here so we don't need to wrap the cookies\n // in individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime':\n return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedCookies(workUnitStore.cookies)\n )\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedCookies(workUnitStore.cookies)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n let underlyingCookies: ReadonlyRequestCookies\n\n if (areCookiesMutableInCurrentPhase(workUnitStore)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n underlyingCookies =\n workUnitStore.userspaceMutableCookies as unknown as ReadonlyRequestCookies\n } else {\n underlyingCookies = workUnitStore.cookies\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedCookiesWithDevWarnings(\n workUnitStore,\n underlyingCookies,\n workStore?.route\n )\n } else if (workUnitStore.asyncApiPromises) {\n const early = isInEarlyRenderStage(workUnitStore)\n if (underlyingCookies === workUnitStore.mutableCookies) {\n return early\n ? workUnitStore.asyncApiPromises.earlyMutableCookies\n : workUnitStore.asyncApiPromises.mutableCookies\n } else {\n return early\n ? workUnitStore.asyncApiPromises.earlyCookies\n : workUnitStore.asyncApiPromises.cookies\n }\n } else {\n return makeUntrackedCookies(underlyingCookies)\n }\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\nfunction createEmptyCookies(): ReadonlyRequestCookies {\n return RequestCookiesAdapter.seal(new RequestCookies(new Headers({})))\n}\n\ninterface CacheLifetime {}\nconst CachedCookies = new WeakMap<\n CacheLifetime,\n Promise<ReadonlyRequestCookies>\n>()\n\nfunction makeHangingCookies(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyRequestCookies> {\n const cachedPromise = CachedCookies.get(prerenderStore)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = makeHangingPromise<ReadonlyRequestCookies>(\n prerenderStore.renderSignal,\n workStore.route,\n '`cookies()`'\n )\n CachedCookies.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookies(\n underlyingCookies: ReadonlyRequestCookies\n): Promise<ReadonlyRequestCookies> {\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = Promise.resolve(underlyingCookies)\n CachedCookies.set(underlyingCookies, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookiesWithDevWarnings(\n requestStore: RequestStore,\n underlyingCookies: ReadonlyRequestCookies,\n route?: string\n): Promise<ReadonlyRequestCookies> {\n if (requestStore.asyncApiPromises) {\n const early = isInEarlyRenderStage(requestStore)\n let promise: Promise<ReadonlyRequestCookies>\n if (underlyingCookies === requestStore.mutableCookies) {\n promise = early\n ? requestStore.asyncApiPromises.earlyMutableCookies\n : requestStore.asyncApiPromises.mutableCookies\n } else if (underlyingCookies === requestStore.cookies) {\n promise = early\n ? requestStore.asyncApiPromises.earlyCookies\n : requestStore.asyncApiPromises.cookies\n } else {\n throw new InvariantError(\n 'Received an underlying cookies object that does not match either `cookies` or `mutableCookies`'\n )\n }\n return instrumentCookiesPromiseWithDevWarnings(promise, route)\n }\n\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingCookies,\n requestStore,\n RenderStage.Runtime\n )\n\n const proxiedPromise = instrumentCookiesPromiseWithDevWarnings(promise, route)\n\n CachedCookies.set(underlyingCookies, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createCookiesAccessError\n)\n\nfunction instrumentCookiesPromiseWithDevWarnings(\n promise: Promise<ReadonlyRequestCookies>,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n size: replaceableWarningDescriptor(promise, 'size', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n getAll: replaceableWarningDescriptor(promise, 'getAll', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n clear: replaceableWarningDescriptor(promise, 'clear', route),\n toString: replaceableWarningDescriptor(promise, 'toString', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`cookies().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...cookies()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createCookiesAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`cookies()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n","import {\n HeadersAdapter,\n type ReadonlyHeaders,\n} from '../web/spec-extension/adapters/headers'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n isInEarlyRenderStage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n delayUntilRuntimeStage,\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\n\n/**\n * This function allows you to read the HTTP incoming request headers in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) and\n * [Middleware](https://nextjs.org/docs/app/building-your-application/routing/middleware).\n *\n * Read more: [Next.js Docs: `headers`](https://nextjs.org/docs/app/api-reference/functions/headers)\n */\nexport function headers(): Promise<ReadonlyHeaders> {\n const callingExpression = 'headers'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`after()\\`. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`headers()\\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n const underlyingHeaders = HeadersAdapter.seal(new Headers({}))\n return makeUntrackedHeaders(underlyingHeaders)\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache': {\n const error = new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, headers)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'private-cache':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n return makeHangingHeaders(workStore, workUnitStore)\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`headers`'\n throw new InvariantError(\n `${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n // PPR Prerender (no cacheComponents)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how headers has worked in PPR without cacheComponents.\n // TODO consider switching the semantic to throw on property access instead\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // Legacy Prerender\n // We are in a legacy static generation mode while prerendering\n // We track dynamic access here so we don't need to wrap the headers in\n // individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime':\n return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedHeaders(workUnitStore.headers)\n )\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedHeaders(workUnitStore.headers)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedHeadersWithDevWarnings(\n workUnitStore.headers,\n workStore?.route,\n workUnitStore\n )\n } else if (workUnitStore.asyncApiPromises) {\n return isInEarlyRenderStage(workUnitStore)\n ? workUnitStore.asyncApiPromises.earlyHeaders\n : workUnitStore.asyncApiPromises.headers\n } else {\n return makeUntrackedHeaders(workUnitStore.headers)\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\ninterface CacheLifetime {}\nconst CachedHeaders = new WeakMap<CacheLifetime, Promise<ReadonlyHeaders>>()\n\nfunction makeHangingHeaders(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(prerenderStore)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeHangingPromise<ReadonlyHeaders>(\n prerenderStore.renderSignal,\n workStore.route,\n '`headers()`'\n )\n CachedHeaders.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeaders(\n underlyingHeaders: ReadonlyHeaders\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = Promise.resolve(underlyingHeaders)\n CachedHeaders.set(underlyingHeaders, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeadersWithDevWarnings(\n underlyingHeaders: ReadonlyHeaders,\n route: string | undefined,\n requestStore: RequestStore\n): Promise<ReadonlyHeaders> {\n if (requestStore.asyncApiPromises) {\n const promise = isInEarlyRenderStage(requestStore)\n ? requestStore.asyncApiPromises.earlyHeaders\n : requestStore.asyncApiPromises.headers\n return instrumentHeadersPromiseWithDevWarnings(promise, route)\n }\n\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingHeaders,\n requestStore,\n RenderStage.Runtime\n )\n\n const proxiedPromise = instrumentHeadersPromiseWithDevWarnings(promise, route)\n\n CachedHeaders.set(underlyingHeaders, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createHeadersAccessError\n)\n\nfunction instrumentHeadersPromiseWithDevWarnings(\n promise: Promise<ReadonlyHeaders>,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n append: replaceableWarningDescriptor(promise, 'append', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n getSetCookie: replaceableWarningDescriptor(promise, 'getSetCookie', route),\n forEach: replaceableWarningDescriptor(promise, 'forEach', route),\n keys: replaceableWarningDescriptor(promise, 'keys', route),\n values: replaceableWarningDescriptor(promise, 'values', route),\n entries: replaceableWarningDescriptor(promise, 'entries', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`headers().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...headers()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createHeadersAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`headers()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n","import {\n getDraftModeProviderForCacheScope,\n throwForMissingRequestStore,\n} from '../app-render/work-unit-async-storage.external'\n\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\n\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n postponeWithTracking,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { delayUntilRuntimeStage } from '../dynamic-rendering-utils'\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\n\nexport function draftMode(): Promise<DraftMode> {\n const callingExpression = 'draftMode'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore || !workUnitStore) {\n throwForMissingRequestStore(callingExpression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-runtime':\n // TODO(runtime-ppr): does it make sense to delay this? normally it's always microtasky\n return delayUntilRuntimeStage(\n workUnitStore,\n createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n )\n case 'request':\n return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n // Inside of `\"use cache\"` or `unstable_cache`, draft mode is available if\n // the outmost work unit store is a request store (or a runtime prerender),\n // and if draft mode is enabled.\n const draftModeProvider = getDraftModeProviderForCacheScope(\n workStore,\n workUnitStore\n )\n\n if (draftModeProvider) {\n return createOrGetCachedDraftMode(draftModeProvider, workStore)\n }\n\n // Otherwise, we fall through to providing an empty draft mode.\n // eslint-disable-next-line no-fallthrough\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n // Return empty draft mode\n return createOrGetCachedDraftMode(null, workStore)\n case 'prerender-client':\n case 'validation-client': {\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n }\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`${callingExpression}()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n\n default:\n return workUnitStore satisfies never\n }\n}\n\nfunction createOrGetCachedDraftMode(\n draftModeProvider: DraftModeProvider | null,\n workStore: WorkStore | undefined\n): Promise<DraftMode> {\n const cacheKey = draftModeProvider ?? NullDraftMode\n const cachedDraftMode = CachedDraftModes.get(cacheKey)\n\n if (cachedDraftMode) {\n return cachedDraftMode\n }\n\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n const route = workStore?.route\n return createDraftModeWithDevWarnings(draftModeProvider, route)\n } else {\n return Promise.resolve(new DraftMode(draftModeProvider))\n }\n}\n\ninterface CacheLifetime {}\nconst NullDraftMode = {}\nconst CachedDraftModes = new WeakMap<CacheLifetime, Promise<DraftMode>>()\n\nfunction createDraftModeWithDevWarnings(\n underlyingProvider: null | DraftModeProvider,\n route: undefined | string\n): Promise<DraftMode> {\n const instance = new DraftMode(underlyingProvider)\n const promise = Promise.resolve(instance)\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'isEnabled':\n warnForSyncAccess(route, `\\`draftMode().${prop}\\``)\n break\n case 'enable':\n case 'disable': {\n warnForSyncAccess(route, `\\`draftMode().${prop}()\\``)\n break\n }\n default: {\n // We only warn for well-defined properties of the draftMode object.\n }\n }\n\n return ReflectAdapter.get(target, prop, receiver)\n },\n })\n\n return proxiedPromise\n}\n\nclass DraftMode {\n /**\n * @internal - this declaration is stripped via `tsc --stripInternal`\n */\n private readonly _provider: null | DraftModeProvider\n\n constructor(provider: null | DraftModeProvider) {\n this._provider = provider\n }\n get isEnabled() {\n if (this._provider !== null) {\n return this._provider.isEnabled\n }\n return false\n }\n public enable() {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n trackDynamicDraftMode('draftMode().enable()', this.enable)\n if (this._provider !== null) {\n this._provider.enable()\n }\n }\n public disable() {\n trackDynamicDraftMode('draftMode().disable()', this.disable)\n if (this._provider !== null) {\n this._provider.disable()\n }\n }\n}\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createDraftModeAccessError\n)\n\nfunction createDraftModeAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`draftMode()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction trackDynamicDraftMode(expression: string, constructorOpt: Function) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n if (workUnitStore?.phase === 'after') {\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside \\`after()\\`. The enabled status of \\`draftMode()\\` can be read inside \\`after()\\` but you cannot enable or disable \\`draftMode()\\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache': {\n const error = new Error(\n `Route ${workStore.route} used \"${expression}\" inside \"use cache\". The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside a function cached with \\`unstable_cache()\\`. The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n\n case 'prerender':\n case 'prerender-runtime': {\n const error = new Error(\n `Route ${workStore.route} used ${expression} without first calling \\`await connection()\\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`\n )\n return abortAndThrowOnSynchronousRequestDataAccess(\n workStore.route,\n expression,\n error,\n workUnitStore\n )\n }\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n const err = new DynamicServerError(\n `Route ${workStore.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n workStore.dynamicUsageDescription = expression\n workStore.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n break\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`${expression}\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n default:\n workUnitStore satisfies never\n }\n }\n }\n}\n","module.exports.cookies = require('./dist/server/request/cookies').cookies\nmodule.exports.headers = require('./dist/server/request/headers').headers\nmodule.exports.draftMode = require('./dist/server/request/draft-mode').draftMode\n"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","src_exports","RequestCookies","ResponseCookies","parseCookie","parseSetCookie","stringifyCookie","module","exports","c","_a","attrs","path","expires","Date","toUTCString","maxAge","domain","secure","httpOnly","sameSite","partitioned","priority","filter","Boolean","stringified","encodeURIComponent","length","join","cookie","map","Map","pair","split","splitAt","indexOf","set","slice","decodeURIComponent","setCookie","attributes","httponly","maxage","samesite","fromEntries","value2","toLowerCase","replace","Number","parseSameSite","parsePriority","compact","t","newT","SAME_SITE","string","includes","PRIORITY","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","test","charAt","notSpecialChar","push","substring","requestHeaders","_parsed","_headers","header","parsed","Symbol","iterator","size","args","getAll","Array","_","n","has","delete","names","result","isArray","clear","keys","for","JSON","stringify","toString","values","v","responseHeaders","_b","_c","getSetCookie","cookieStrings","cookieString","normalizeCookie","options","bag","headers","serialized","append","now","ReflectAdapter","prop","receiver","Reflect","bind","deleteProperty","MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","RequestCookiesAdapter","appendMutableCookies","areCookiesMutableInCurrentPhase","createCookiesWithMutableAccessCheck","getModifiedCookieValues","responseCookiesToRequestCookies","Error","constructor","callable","seal","cookies","Proxy","SYMBOL_MODIFY_COOKIE_VALUES","modified","mutableCookies","modifiedCookieValues","resCookies","returnedCookies","wrap","onUpdateCookies","responseCookies","Headers","modifiedValues","modifiedCookies","Set","updateResponseCookies","workStore","workAsyncStorage","getStore","pathWasRevalidated","ActionDidRevalidateStaticAndDynamic","allCookies","serializedCookies","tempCookies","wrappedCookies","add","requestStore","ensureCookiesAreStillMutable","phase","_callingExpression","requestCookies","createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","React","fn","logErrorOrWarn","process","env","__NEXT_CACHE_COMPONENTS","console","error","warn","flushCurrentErrorIfNew","getMessage","logDedupedError","message","NODE_ENV","callStackFrames","stack","undefined","afterTaskAsyncStorageInstance","createAsyncLocalStorage","afterTaskAsyncStorage","isRequestAPICallableInsideAfter","throwForSearchParamsAccessInUseCache","throwWithStaticGenerationBailoutErrorWithDynamicError","route","expression","StaticGenBailoutError","constructorOpt","captureStackTrace","invalidDynamicUsageError","afterTaskStore","rootTaskSpawnPhase","HeadersAdapter","ReadonlyHeadersError","lowercased","original","find","o","merge","existing","forEach","callbackfn","thisArg","entries","hexclaveAppInternalsSymbol","getInternalsHookOrThrow","adminApp","hookName","internals","hook","useMetricsOrThrow","includeAnonymous","filters","useUserActivityOrThrow","userId","useMetricsUserCountsOrThrow","createTooltipContext","createTooltipScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","props","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","children","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","window","clearTimeout","scope","onOpen","onClose","setTimeout","onPointerInTransitChange","inTransit","displayName","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","open","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","openTimerRef","wasOpenDelayedRef","setOpen","defaultProp","onChange","open2","document","dispatchEvent","CustomEvent","caller","stateAttribute","handleOpen","handleClose","handleDelayedOpen","onTriggerChange","onTriggerEnter","onTriggerLeave","TRIGGER_NAME","TooltipTrigger","forwardedRef","triggerProps","context","ref","composedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","removeEventListener","asChild","button","onPointerMove","event","pointerType","onPointerLeave","onPointerDown","addEventListener","once","onFocus","onBlur","onClick","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","TooltipPortal","container","present","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","content","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","x","clientX","y","clientY","exitSide","getExitSideFromRect","getBoundingClientRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","contains","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","isInside","Slottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","capture","disableOutsidePointerEvents","onFocusOutside","preventDefault","onDismiss","style","id","role","ARROW_NAME","TooltipArrow","arrowProps","visuallyHiddenContentContext","point","rect","top","Math","abs","bottom","right","left","min","padding","polygon","inside","i","j","ii","jj","xi","yi","xj","yj","intersect","points","newPoints","sort","a","b","getHullPresorted","upperHull","p","q","r","pop","lowerHull","concat","Provider","Root3","Trigger","Portal","Content2","Arrow2","SiteLoadingIndicatorDisplay","className","SiteLoadingIndicator","Loading","colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","freeze","shouldShowNonSevereVersionCheck","shouldDisplayVersionResult","enableNonSevereCheck","severe","checkVersion","onResult","delay","silentFailure","errorPrefix","location","origin","cancelled","res","fetch","method","body","clientPackageName","clientVersion","version","status","text","data","json","upToDate","e","callingExpression","workUnitStore","workUnitAsyncStorage","forceStatic","underlyingCookies","createEmptyCookies","makeUntrackedCookies","dynamicShouldError","type","makeHangingCookies","exportName","InvariantError","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","delayUntilRuntimeStage","trackDynamicDataInDynamicRender","userspaceMutableCookies","makeUntrackedCookiesWithDevWarnings","asyncApiPromises","early","isInEarlyRenderStage","earlyMutableCookies","earlyCookies","throwForMissingRequestStore","CachedCookies","WeakMap","prerenderStore","cachedPromise","promise","makeHangingPromise","renderSignal","cachedCookies","Promise","resolve","instrumentCookiesPromiseWithDevWarnings","makeDevtoolsIOAwarePromise","RenderStage","Runtime","proxiedPromise","warnForSyncAccess","createCookiesAccessError","defineProperties","replaceableWarningDescriptorForSymbolIterator","replaceableWarningDescriptor","writable","configurable","prefix","underlyingHeaders","makeUntrackedHeaders","makeHangingHeaders","makeUntrackedHeadersWithDevWarnings","earlyHeaders","CachedHeaders","cachedHeaders","instrumentHeadersPromiseWithDevWarnings","createHeadersAccessError","draftMode","createOrGetCachedDraftMode","draftModeProvider","getDraftModeProviderForCacheScope","cacheKey","NullDraftMode","cachedDraftMode","CachedDraftModes","isPrefetchRequest","createDraftModeWithDevWarnings","DraftMode","underlyingProvider","instance","provider","_provider","isEnabled","enable","trackDynamicDraftMode","disable","createDraftModeAccessError","abortAndThrowOnSynchronousRequestDataAccess","revalidate","err","DynamicServerError","dynamicUsageDescription","dynamicUsageStack"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,10,12,16,17,18,19,20,21,30,31,32,33]}
1
+ {"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/cookies.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/adapters/request-cookies.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/create-deduped-by-callsite-server-error-logger.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/app-render/after-task-async-storage-instance.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/app-render/after-task-async-storage.external.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/utils.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/web/spec-extension/adapters/headers.ts","turbopack:///[project]/apps/dashboard/src/lib/hexclave-app-internals.ts","turbopack:///[project]/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_61903d443f318e235810cb4023b9ffb4/node_modules/@radix-ui/react-tooltip/dist/index.mjs","turbopack:///[project]/packages/ui/src/components/ui/tooltip.tsx","turbopack:///[project]/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_61903d443f318e235810cb4023b9ffb4/node_modules/@radix-ui/react-tooltip/src/tooltip.tsx","turbopack:///[project]/apps/dashboard/package.json.[json].cjs/turbopack:///apps/dashboard/package.json","turbopack:///[project]/apps/dashboard/src/components/site-loading-indicator.tsx","turbopack:///[project]/apps/dashboard/src/app/loading.tsx","turbopack:///[project]/node_modules/.pnpm/color-name@2.1.0/node_modules/color-name/index.js","turbopack:///[project]/node_modules/.pnpm/color-string@2.1.4/node_modules/color-string/index.js","turbopack:///[project]/node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/conversions.js","turbopack:///[project]/node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/route.js","turbopack:///[project]/node_modules/.pnpm/color-convert@3.1.3/node_modules/color-convert/index.js","turbopack:///[project]/node_modules/.pnpm/color@5.0.3/node_modules/color/index.js","turbopack:///[project]/packages/next/src/providers/translation-provider-client.tsx","turbopack:///[project]/packages/next/src/components/elements/ssr-layout-effect.tsx","turbopack:///[project]/apps/dashboard/src/lib/version-check.ts","turbopack:///[project]/packages/next/src/in-page-ui/dom.ts","turbopack:///[project]/packages/shared/src/utils/dev-tool.tsx","turbopack:///[project]/packages/shared/src/utils/analytics-clickmap-overlay.tsx","turbopack:///[project]/packages/shared/src/utils/elements-chain.tsx","turbopack:///[project]/node_modules/.pnpm/cookie@1.1.1/node_modules/cookie/src/index.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/cookies.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/headers.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/src/server/request/draft-mode.ts","turbopack:///[project]/node_modules/.pnpm/next@16.2.7_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/headers.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n RequestCookies,\n ResponseCookies,\n parseCookie,\n parseSetCookie,\n stringifyCookie\n});\n","export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n","export class ReflectAdapter {\n static get<T extends object>(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set<T extends object>(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has<T extends object>(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty<T extends object>(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","import { RequestCookies } from '../cookies'\n\nimport { ResponseCookies } from '../cookies'\nimport { ReflectAdapter } from './reflect'\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external'\nimport type { RequestStore } from '../../../app-render/work-unit-async-storage.external'\nimport { ActionDidRevalidateStaticAndDynamic } from '../../../../shared/lib/action-revalidation-kind'\n\n/**\n * @internal\n */\nexport class ReadonlyRequestCookiesError extends Error {\n constructor() {\n super(\n 'Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'\n )\n }\n\n public static callable() {\n throw new ReadonlyRequestCookiesError()\n }\n}\n\n// We use this to type some APIs but we don't construct instances directly\nexport type { ResponseCookies }\n\n// The `cookies()` API is a mix of request and response cookies. For `.get()` methods,\n// we want to return the request cookie if it exists. For mutative methods like `.set()`,\n// we want to return the response cookie.\nexport type ReadonlyRequestCookies = Omit<\n RequestCookies,\n 'set' | 'clear' | 'delete'\n> &\n Pick<ResponseCookies, 'set' | 'delete'>\n\nexport class RequestCookiesAdapter {\n public static seal(cookies: RequestCookies): ReadonlyRequestCookies {\n return new Proxy(cookies as any, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n}\n\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies')\n\nexport function getModifiedCookieValues(\n cookies: ResponseCookies\n): ResponseCookie[] {\n const modified: ResponseCookie[] | undefined = (cookies as unknown as any)[\n SYMBOL_MODIFY_COOKIE_VALUES\n ]\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return []\n }\n\n return modified\n}\n\ntype SetCookieArgs =\n | [key: string, value: string, cookie?: Partial<ResponseCookie>]\n | [options: ResponseCookie]\n\nexport function appendMutableCookies(\n headers: Headers,\n mutableCookies: ResponseCookies\n): boolean {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies)\n if (modifiedCookieValues.length === 0) {\n return false\n }\n\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers)\n const returnedCookies = resCookies.getAll()\n\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues) {\n resCookies.set(cookie)\n }\n\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies) {\n resCookies.set(cookie)\n }\n\n return true\n}\n\ntype ResponseCookie = NonNullable<\n ReturnType<InstanceType<typeof ResponseCookies>['get']>\n>\n\nexport class MutableRequestCookiesAdapter {\n public static wrap(\n cookies: RequestCookies,\n onUpdateCookies?: (cookies: string[]) => void\n ): ResponseCookies {\n const responseCookies = new ResponseCookies(new Headers())\n for (const cookie of cookies.getAll()) {\n responseCookies.set(cookie)\n }\n\n let modifiedValues: ResponseCookie[] = []\n const modifiedCookies = new Set<string>()\n const updateResponseCookies = () => {\n // TODO-APP: change method of getting workStore\n const workStore = workAsyncStorage.getStore()\n if (workStore) {\n workStore.pathWasRevalidated = ActionDidRevalidateStaticAndDynamic\n }\n\n const allCookies = responseCookies.getAll()\n modifiedValues = allCookies.filter((c) => modifiedCookies.has(c.name))\n if (onUpdateCookies) {\n const serializedCookies: string[] = []\n for (const cookie of modifiedValues) {\n const tempCookies = new ResponseCookies(new Headers())\n tempCookies.set(cookie)\n serializedCookies.push(tempCookies.toString())\n }\n\n onUpdateCookies(serializedCookies)\n }\n }\n\n const wrappedCookies = new Proxy(responseCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues\n\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.delete(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n modifiedCookies.add(\n typeof args[0] === 'string' ? args[0] : args[0].name\n )\n try {\n target.set(...args)\n return wrappedCookies\n } finally {\n updateResponseCookies()\n }\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n\n return wrappedCookies\n }\n}\n\nexport function createCookiesWithMutableAccessCheck(\n requestStore: RequestStore\n): ResponseCookies {\n const wrappedCookies = new Proxy(requestStore.mutableCookies, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'delete':\n return function (...args: [string] | [ResponseCookie]) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().delete')\n target.delete(...args)\n return wrappedCookies\n }\n case 'set':\n return function (...args: SetCookieArgs) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().set')\n target.set(...args)\n return wrappedCookies\n }\n\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n return wrappedCookies\n}\n\nexport function areCookiesMutableInCurrentPhase(requestStore: RequestStore) {\n return requestStore.phase === 'action'\n}\n\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */\nfunction ensureCookiesAreStillMutable(\n requestStore: RequestStore,\n _callingExpression: string\n) {\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError()\n }\n}\n\nexport function responseCookiesToRequestCookies(\n responseCookies: ResponseCookies\n): RequestCookies {\n const requestCookies = new RequestCookies(new Headers())\n for (const cookie of responseCookies.getAll()) {\n requestCookies.set(cookie)\n }\n return requestCookies\n}\n","import * as React from 'react'\n\nconst errorRef: { current: null | Error } = { current: null }\n\n// React.cache is currently only available in canary/experimental React channels.\nconst cache =\n typeof React.cache === 'function'\n ? React.cache\n : (fn: (key: unknown) => void) => fn\n\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_CACHE_COMPONENTS\n ? console.error\n : console.warn\n\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n (key: unknown) => {\n try {\n logErrorOrWarn(errorRef.current)\n } finally {\n errorRef.current = null\n }\n }\n)\n\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */\nexport function createDedupedByCallsiteServerErrorLoggerDev<Args extends any[]>(\n getMessage: (...args: Args) => Error\n) {\n return function logDedupedError(...args: Args) {\n const message = getMessage(...args)\n\n if (process.env.NODE_ENV !== 'production') {\n const callStackFrames = new Error().stack?.split('\\n')\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message)\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4]\n errorRef.current = message\n flushCurrentErrorIfNew(key)\n }\n } else {\n logErrorOrWarn(message)\n }\n }\n}\n","import type { AfterTaskAsyncStorage } from './after-task-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const afterTaskAsyncStorageInstance: AfterTaskAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\n\n// Share the instance module in the next-shared layer\nimport { afterTaskAsyncStorageInstance as afterTaskAsyncStorage } from './after-task-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { WorkUnitStore } from './work-unit-async-storage.external'\n\nexport interface AfterTaskStore {\n /** The phase in which the topmost `after` was called.\n *\n * NOTE: Can be undefined when running `generateStaticParams`,\n * where we only have a `workStore`, no `workUnitStore`.\n */\n readonly rootTaskSpawnPhase: WorkUnitStore['phase'] | undefined\n}\n\nexport type AfterTaskAsyncStorage = AsyncLocalStorage<AfterTaskStore>\n\nexport { afterTaskAsyncStorage }\n","import { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external'\nimport type { WorkStore } from '../app-render/work-async-storage.external'\n\nexport function throwWithStaticGenerationBailoutErrorWithDynamicError(\n route: string,\n expression: string\n): never {\n throw new StaticGenBailoutError(\n `Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n}\n\nexport function throwForSearchParamsAccessInUseCache(\n workStore: WorkStore,\n constructorOpt: Function\n): never {\n const error = new Error(\n `Route ${workStore.route} used \\`searchParams\\` inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \\`searchParams\\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n\n throw error\n}\n\nexport function isRequestAPICallableInsideAfter() {\n const afterTaskStore = afterTaskAsyncStorage.getStore()\n return afterTaskStore?.rootTaskSpawnPhase === 'action'\n}\n","import type { IncomingHttpHeaders } from 'http'\n\nimport { ReflectAdapter } from './reflect'\n\n/**\n * @internal\n */\nexport class ReadonlyHeadersError extends Error {\n constructor() {\n super(\n 'Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'\n )\n }\n\n public static callable() {\n throw new ReadonlyHeadersError()\n }\n}\n\nexport type ReadonlyHeaders = Headers & {\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n append(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n set(...args: any[]): void\n /** @deprecated Method unavailable on `ReadonlyHeaders`. Read more: https://nextjs.org/docs/app/api-reference/functions/headers */\n delete(...args: any[]): void\n}\nexport class HeadersAdapter extends Headers {\n private readonly headers: IncomingHttpHeaders\n\n constructor(headers: IncomingHttpHeaders) {\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super()\n\n this.headers = new Proxy(headers, {\n get(target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return\n\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver)\n }\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false\n\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original)\n },\n deleteProperty(target, prop) {\n if (typeof prop === 'symbol')\n return ReflectAdapter.deleteProperty(target, prop)\n\n const lowercased = prop.toLowerCase()\n\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find(\n (o) => o.toLowerCase() === lowercased\n )\n\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true\n\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original)\n },\n })\n }\n\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */\n public static seal(headers: Headers): ReadonlyHeaders {\n return new Proxy<ReadonlyHeaders>(headers, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable\n default:\n return ReflectAdapter.get(target, prop, receiver)\n }\n },\n })\n }\n\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */\n private merge(value: string | string[]): string {\n if (Array.isArray(value)) return value.join(', ')\n\n return value\n }\n\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */\n public static from(headers: IncomingHttpHeaders | Headers): Headers {\n if (headers instanceof Headers) return headers\n\n return new HeadersAdapter(headers)\n }\n\n public append(name: string, value: string): void {\n const existing = this.headers[name]\n if (typeof existing === 'string') {\n this.headers[name] = [existing, value]\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n this.headers[name] = value\n }\n }\n\n public delete(name: string): void {\n delete this.headers[name]\n }\n\n public get(name: string): string | null {\n const value = this.headers[name]\n if (typeof value !== 'undefined') return this.merge(value)\n\n return null\n }\n\n public has(name: string): boolean {\n return typeof this.headers[name] !== 'undefined'\n }\n\n public set(name: string, value: string): void {\n this.headers[name] = value\n }\n\n public forEach(\n callbackfn: (value: string, name: string, parent: Headers) => void,\n thisArg?: any\n ): void {\n for (const [name, value] of this.entries()) {\n callbackfn.call(thisArg, value, name, this)\n }\n }\n\n public *entries(): HeadersIterator<[string, string]> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name) as string\n\n yield [name, value] as [string, string]\n }\n }\n\n public *keys(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n const name = key.toLowerCase()\n yield name\n }\n }\n\n public *values(): HeadersIterator<string> {\n for (const key of Object.keys(this.headers)) {\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key) as string\n\n yield value\n }\n }\n\n public [Symbol.iterator](): HeadersIterator<[string, string]> {\n return this.entries()\n }\n}\n","import {\n type MetricsResponse,\n type MetricsUserCounts,\n type UserActivityResponse,\n} from \"@hexclave/shared/dist/interface/admin-metrics\";\nimport { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\n\nexport const hexclaveAppInternalsSymbol = Symbol.for(\"StackAuth--DO-NOT-USE-OR-YOU-WILL-BE-FIRED--StackAppInternals\");\n\n// Re-export the metrics response type tree from the shared package so dashboard\n// code can read these types without having to know where the schemas live.\nexport type {\n MetricsActivitySplit,\n MetricsAnalyticsOverview,\n MetricsAuthOverview,\n MetricsDailyEmailStatusBreakdown,\n MetricsDailyRevenuePoint,\n MetricsDataPoint,\n MetricsEmailOverview,\n MetricsLoginMethodEntry,\n MetricsNamedCount,\n MetricsPaymentsOverview,\n MetricsRecentEmail,\n MetricsResponse,\n MetricsTopCountry,\n MetricsTopReferrer,\n MetricsTopRegion,\n MetricsUserCounts,\n UserActivityResponse,\n} from \"@hexclave/shared/dist/interface/admin-metrics\";\n\n/**\n * Pulls the typed `useMetrics` hook out of the admin app via the internals\n * symbol. Throws as a programming error if the symbol is missing or malformed\n * — this should never happen at runtime in a correctly-built admin app.\n *\n * Returns the typed `MetricsResponse` shape derived from the same yup schemas\n * the backend route uses, so dashboard call sites do not need `as ...` casts.\n */\nexport type AnalyticsOverviewFilters = {\n country_code?: string,\n referrer?: string,\n browser?: string,\n os?: string,\n device?: string,\n // ISO 8601 datetimes bounding the analytics top-N breakdowns server-side\n // (top referrers / regions / browsers / OS / devices). The daily and hourly\n // series stay full-window so previous-period deltas can be computed locally.\n since?: string,\n until?: string,\n};\n\n// The typed contract for the hooks the admin app exposes through the internals\n// symbol. The single `as` assertion in `getInternalsHookOrThrow` is the one\n// place the untyped internals object is narrowed to this contract — call sites\n// get inferred return types instead of casting each result.\ntype AdminAppInternalsHooks = {\n useMetrics: (includeAnonymous: boolean, filters?: AnalyticsOverviewFilters) => MetricsResponse,\n useUserActivity: (userId: string) => UserActivityResponse,\n useMetricsUserCounts: () => MetricsUserCounts,\n};\n\nfunction getInternalsHookOrThrow<K extends keyof AdminAppInternalsHooks>(adminApp: object, hookName: K): AdminAppInternalsHooks[K] {\n const internals = Reflect.get(adminApp, hexclaveAppInternalsSymbol);\n if (typeof internals !== \"object\" || internals == null || !(hookName in internals)) {\n throw new HexclaveAssertionError(`Admin app internals are unavailable: missing ${hookName}`);\n }\n\n const hook = (internals as Record<string, unknown>)[hookName];\n if (typeof hook !== \"function\") {\n throw new HexclaveAssertionError(`Admin app internals are unavailable: ${hookName} is not callable`);\n }\n\n return hook as AdminAppInternalsHooks[K];\n}\n\nexport function useMetricsOrThrow(\n adminApp: object,\n includeAnonymous: boolean,\n filters?: AnalyticsOverviewFilters,\n): MetricsResponse {\n return getInternalsHookOrThrow(adminApp, \"useMetrics\")(includeAnonymous, filters);\n}\n\n/**\n * Pulls the typed `useUserActivity` hook out of the admin app via the internals\n * symbol. Returns the daily event counts for a single user (backed by\n * `GET /internal/user-activity`) in the same `{ date, activity }` shape the\n * metrics endpoints use.\n */\nexport function useUserActivityOrThrow(adminApp: object, userId: string): UserActivityResponse {\n return getInternalsHookOrThrow(adminApp, \"useUserActivity\")(userId);\n}\n\nexport function useMetricsUserCountsOrThrow(adminApp: object): MetricsUserCounts {\n return getInternalsHookOrThrow(adminApp, \"useMetricsUserCounts\")();\n}\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst TooltipProvider = forwardRefIfNeeded<\n void,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>\n>((props, ref) => (\n <TooltipPrimitive.Provider\n delayDuration={0}\n {...props}\n />\n));\nTooltipProvider.displayName = TooltipPrimitive.Provider.displayName;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipPortal = TooltipPrimitive.Portal;\n\nconst TooltipContent = forwardRefIfNeeded<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"stack-scope z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipPortal, TooltipProvider };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createSlottable } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype ScopedProps<P = {}> = P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'TooltipProvider';\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\n\ntype TooltipProviderContextValue = {\n isOpenDelayedRef: React.MutableRefObject<boolean>;\n delayDuration: number;\n onOpen(): void;\n onClose(): void;\n onPointerInTransitChange(inTransit: boolean): void;\n isPointerInTransitRef: React.MutableRefObject<boolean>;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipProviderContextProvider, useTooltipProviderContext] =\n createTooltipContext<TooltipProviderContextValue>(PROVIDER_NAME);\n\ninterface TooltipProviderProps {\n children: React.ReactNode;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst TooltipProvider: React.FC<TooltipProviderProps> = (\n props: ScopedProps<TooltipProviderProps>\n) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children,\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n\n return (\n <TooltipProviderContextProvider\n scope={__scopeTooltip}\n isOpenDelayedRef={isOpenDelayedRef}\n delayDuration={delayDuration}\n onOpen={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [])}\n onClose={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => (isOpenDelayedRef.current = true),\n skipDelayDuration\n );\n }, [skipDelayDuration])}\n isPointerInTransitRef={isPointerInTransitRef}\n onPointerInTransitChange={React.useCallback((inTransit: boolean) => {\n isPointerInTransitRef.current = inTransit;\n }, [])}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n </TooltipProviderContextProvider>\n );\n};\n\nTooltipProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n contentId: string;\n open: boolean;\n stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n trigger: TooltipTriggerElement | null;\n onTriggerChange(trigger: TooltipTriggerElement | null): void;\n onTriggerEnter(): void;\n onTriggerLeave(): void;\n onOpen(): void;\n onClose(): void;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipContextProvider, useTooltipContext] =\n createTooltipContext<TooltipContextValue>(TOOLTIP_NAME);\n\ninterface TooltipProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened. This will\n * override the prop with the same name passed to Provider.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst Tooltip: React.FC<TooltipProps> = (props: ScopedProps<TooltipProps>) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp,\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState<HTMLButtonElement | null>(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent =\n disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open) => {\n if (open) {\n providerContext.onOpen();\n\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open);\n },\n caller: TOOLTIP_NAME,\n });\n const stateAttribute = React.useMemo(() => {\n return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n }, [open]);\n\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <TooltipContextProvider\n scope={__scopeTooltip}\n contentId={contentId}\n open={open}\n stateAttribute={stateAttribute}\n trigger={trigger}\n onTriggerChange={setTrigger}\n onTriggerEnter={React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen])}\n onTriggerLeave={React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent])}\n onOpen={handleOpen}\n onClose={handleClose}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n </TooltipContextProvider>\n </PopperPrimitive.Root>\n );\n};\n\nTooltip.displayName = TOOLTIP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TooltipTrigger';\n\ntype TooltipTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface TooltipTriggerProps extends PrimitiveButtonProps {}\n\nconst TooltipTrigger = React.forwardRef<TooltipTriggerElement, TooltipTriggerProps>(\n (props: ScopedProps<TooltipTriggerProps>, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef<TooltipTriggerElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => (isPointerDownRef.current = false), []);\n\n React.useEffect(() => {\n return () => document.removeEventListener('pointerup', handlePointerUp);\n }, [handlePointerUp]);\n\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.button\n // We purposefully avoid adding `type=button` here because tooltip triggers are also\n // commonly anchors and the anchor `type` attribute signifies MIME type.\n aria-describedby={context.open ? context.contentId : undefined}\n data-state={context.stateAttribute}\n {...triggerProps}\n ref={composedRefs}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === 'touch') return;\n if (\n !hasPointerMoveOpenedRef.current &&\n !providerContext.isPointerInTransitRef.current\n ) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n })}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n onClick={composeEventHandlers(props.onClick, context.onClose)}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'TooltipPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createTooltipContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface TooltipPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipPortal: React.FC<TooltipPortalProps> = (props: ScopedProps<TooltipPortalProps>) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return (\n <PortalProvider scope={__scopeTooltip} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nTooltipPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TooltipContent';\n\ntype TooltipContentElement = TooltipContentImplElement;\ninterface TooltipContentProps extends TooltipContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipContent = React.forwardRef<TooltipContentElement, TooltipContentProps>(\n (props: ScopedProps<TooltipContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = 'top', ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n\n return (\n <Presence present={forceMount || context.open}>\n {context.disableHoverableContent ? (\n <TooltipContentImpl side={side} {...contentProps} ref={forwardedRef} />\n ) : (\n <TooltipContentHoverable side={side} {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\n\ntype TooltipContentHoverableElement = TooltipContentImplElement;\ninterface TooltipContentHoverableProps extends TooltipContentImplProps {}\n\nconst TooltipContentHoverable = React.forwardRef<\n TooltipContentHoverableElement,\n TooltipContentHoverableProps\n>((props: ScopedProps<TooltipContentHoverableProps>, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef<TooltipContentHoverableElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState<Polygon | null>(null);\n\n const { trigger, onClose } = context;\n const content = ref.current;\n\n const { onPointerInTransitChange } = providerContext;\n\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n\n const handleCreateGraceArea = React.useCallback(\n (event: PointerEvent, hoverTarget: HTMLElement) => {\n const currentTarget = event.currentTarget as HTMLElement;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, trigger);\n\n trigger.addEventListener('pointerleave', handleTriggerLeave);\n content.addEventListener('pointerleave', handleContentLeave);\n return () => {\n trigger.removeEventListener('pointerleave', handleTriggerLeave);\n content.removeEventListener('pointerleave', handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n const target = event.target as HTMLElement;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener('pointermove', handleTrackPointerGrace);\n return () => document.removeEventListener('pointermove', handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n\n return <TooltipContentImpl {...props} ref={composedRefs} />;\n});\n\nconst [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] =\n createTooltipContext(TOOLTIP_NAME, { isInside: false });\n\ntype TooltipContentImplElement = React.ComponentRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface TooltipContentImplProps extends Omit<PopperContentProps, 'onPlaced'> {\n /**\n * A more descriptive label for accessibility purpose\n */\n 'aria-label'?: string;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `Tooltip`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n}\n\nconst Slottable = createSlottable('TooltipContent');\n\nconst TooltipContentImpl = React.forwardRef<TooltipContentImplElement, TooltipContentImplProps>(\n (props: ScopedProps<TooltipContentImplProps>, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n 'aria-label': ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n\n // Close this tooltip if another one opens\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n\n // Close the tooltip if the trigger is scrolled\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener('scroll', handleScroll, { capture: true });\n return () => window.removeEventListener('scroll', handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={(event) => event.preventDefault()}\n onDismiss={onClose}\n >\n <PopperPrimitive.Content\n data-state={context.stateAttribute}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n >\n <Slottable>{children}</Slottable>\n <VisuallyHiddenContentContextProvider scope={__scopeTooltip} isInside={true}>\n <VisuallyHiddenPrimitive.Root id={context.contentId} role=\"tooltip\">\n {ariaLabel || children}\n </VisuallyHiddenPrimitive.Root>\n </VisuallyHiddenContentContextProvider>\n </PopperPrimitive.Content>\n </DismissableLayer>\n );\n }\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'TooltipArrow';\n\ntype TooltipArrowElement = React.ComponentRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface TooltipArrowProps extends PopperArrowProps {}\n\nconst TooltipArrow = React.forwardRef<TooltipArrowElement, TooltipArrowProps>(\n (props: ScopedProps<TooltipArrowProps>, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to\n // prevent issues in positioning the arrow due to the duplicate\n return visuallyHiddenContentContext.isInside ? null : (\n <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n );\n }\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype Side = NonNullable<TooltipContentProps['side']>;\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left';\n case right:\n return 'right';\n case top:\n return 'top';\n case bottom:\n return 'bottom';\n default:\n throw new Error('unreachable');\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = [];\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ];\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i]!;\n const jj = polygon[j]!;\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice();\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return +1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return +1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1) return points.slice();\n\n const upperHull: Array<P> = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i]!;\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]!;\n const r = upperHull[upperHull.length - 2]!;\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n\n const lowerHull: Array<P> = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]!;\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]!;\n const r = lowerHull[lowerHull.length - 2]!;\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n\n if (\n upperHull.length === 1 &&\n lowerHull.length === 1 &&\n upperHull[0]!.x === lowerHull[0]!.x &&\n upperHull[0]!.y === lowerHull[0]!.y\n ) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\n\nconst Provider = TooltipProvider;\nconst Root = Tooltip;\nconst Trigger = TooltipTrigger;\nconst Portal = TooltipPortal;\nconst Content = TooltipContent;\nconst Arrow = TooltipArrow;\n\nexport {\n createTooltipScope,\n //\n TooltipProvider,\n Tooltip,\n TooltipTrigger,\n TooltipPortal,\n TooltipContent,\n TooltipArrow,\n //\n Provider,\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n TooltipProviderProps,\n TooltipProps,\n TooltipTriggerProps,\n TooltipPortalProps,\n TooltipContentProps,\n TooltipArrowProps,\n};\n","{\"name\":\"@hexclave/dashboard\",\"version\":\"1.0.19\",\"repository\":\"https://github.com/hexclave/hexclave\",\"private\":true,\"scripts\":{\"clean\":\"rimraf .next && rimraf node_modules\",\"typecheck\":\"tsc --noEmit\",\"with-env\":\"dotenv -c development --\",\"with-env:prod\":\"dotenv -c --\",\"dev\":\"concurrently -n \\\"dev,bundle-type-defs\\\" -k \\\"next dev --turbopack --port ${NEXT_PUBLIC_HEXCLAVE_LOCAL_DASHBOARD_PORT:-${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}01}\\\" \\\"pnpm run bundle-type-definitions:watch\\\"\",\"dev:rde-production\":\"node scripts/dev-rde-production.mjs\",\"bundle-type-definitions\":\"tsx scripts/bundle-type-definitions.ts\",\"bundle-type-definitions:watch\":\"tsx watch --clear-screen=false scripts/bundle-type-definitions.ts\",\"build\":\"pnpm run bundle-type-definitions && next build\",\"build:rde-standalone\":\"NEXT_CONFIG_OUTPUT=standalone STACK_NEXT_CONFIG_DISABLE_TYPESCRIPT=true pnpm run build\",\"docker-build\":\"pnpm run bundle-type-definitions && next build --experimental-build-mode compile\",\"analyze-bundle\":\"next experimental-analyze\",\"start\":\"next start --port ${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}01\",\"psql\":\"pnpm run with-env bash -c 'psql $STACK_DATABASE_CONNECTION_STRING'\",\"lint\":\"eslint .\"},\"dependencies\":{\"@ai-sdk/react\":\"^3.0.72\",\"@assistant-ui/react\":\"^0.10.24\",\"@assistant-ui/react-ai-sdk\":\"^0.10.14\",\"@assistant-ui/react-markdown\":\"^0.10.5\",\"@dnd-kit/core\":\"^6.3.1\",\"@dnd-kit/sortable\":\"^10.0.0\",\"@dnd-kit/utilities\":\"^3.2.2\",\"@hookform/resolvers\":\"^3.3.4\",\"@monaco-editor/react\":\"4.7.0\",\"@oslojs/otp\":\"^1.1.0\",\"@phosphor-icons/react\":\"^2.1.10\",\"@radix-ui/react-accordion\":\"^1.2.1\",\"@radix-ui/react-alert-dialog\":\"^1.1.2\",\"@radix-ui/react-aspect-ratio\":\"^1.1.0\",\"@radix-ui/react-avatar\":\"^1.1.1\",\"@radix-ui/react-checkbox\":\"^1.1.2\",\"@radix-ui/react-collapsible\":\"^1.1.1\",\"@radix-ui/react-context\":\"^1.1.1\",\"@radix-ui/react-context-menu\":\"^2.2.2\",\"@radix-ui/react-dialog\":\"^1.1.2\",\"@radix-ui/react-dropdown-menu\":\"^2.1.2\",\"@radix-ui/react-hover-card\":\"^1.1.2\",\"@radix-ui/react-icons\":\"^1.3.1\",\"@radix-ui/react-label\":\"^2.1.0\",\"@radix-ui/react-menubar\":\"^1.1.2\",\"@radix-ui/react-navigation-menu\":\"^1.2.1\",\"@radix-ui/react-popover\":\"^1.1.2\",\"@radix-ui/react-progress\":\"^1.1.0\",\"@radix-ui/react-radio-group\":\"^1.2.1\",\"@radix-ui/react-scroll-area\":\"^1.2.0\",\"@radix-ui/react-select\":\"^2.1.2\",\"@radix-ui/react-separator\":\"^1.1.0\",\"@radix-ui/react-slider\":\"^1.2.1\",\"@radix-ui/react-slot\":\"^1.2.3\",\"@radix-ui/react-switch\":\"^1.1.1\",\"@radix-ui/react-tabs\":\"^1.1.1\",\"@radix-ui/react-toast\":\"^1.2.2\",\"@radix-ui/react-toggle\":\"^1.1.0\",\"@radix-ui/react-toggle-group\":\"^1.1.0\",\"@radix-ui/react-tooltip\":\"^1.1.3\",\"@react-hook/resize-observer\":\"^2.0.2\",\"@sentry/nextjs\":\"^10.11.0\",\"@hexclave/dashboard-ui-components\":\"workspace:*\",\"@hexclave/shared-backend\":\"workspace:*\",\"@hexclave/next\":\"workspace:*\",\"@hexclave/shared\":\"workspace:*\",\"@hexclave/ui\":\"workspace:*\",\"@stripe/connect-js\":\"^3.3.27\",\"@stripe/react-connect-js\":\"^3.3.24\",\"@stripe/react-stripe-js\":\"^3.8.1\",\"@stripe/stripe-js\":\"^7.7.0\",\"@tanstack/react-table\":\"^8.21.3\",\"@tanstack/react-virtual\":\"^3.13.18\",\"@vercel/analytics\":\"^1.2.2\",\"@vercel/speed-insights\":\"^1.0.12\",\"ai\":\"^6.0.0\",\"browser-image-compression\":\"^2.0.2\",\"canvas-confetti\":\"^1.9.2\",\"class-variance-authority\":\"^0.7.0\",\"clsx\":\"^2.1.1\",\"cmdk\":\"^1.0.4\",\"date-fns\":\"^3.6.0\",\"dotenv-cli\":\"^7.3.0\",\"export-to-csv\":\"^1.4.0\",\"geist\":\"^1\",\"input-otp\":\"^1.4.1\",\"jiti\":\"^2.4.2\",\"jose\":\"^6.1.3\",\"libsodium-wrappers\":\"^0.8.2\",\"lodash\":\"^4.17.21\",\"motion\":\"^12.39.0\",\"next\":\"16.2.7\",\"next-themes\":\"^0.2.1\",\"posthog-js\":\"^1.336.1\",\"qrcode\":\"^1.5.4\",\"react\":\"19.2.3\",\"react-day-picker\":\"^9.6.7\",\"react-dom\":\"19.2.3\",\"react-easy-crop\":\"^5.5.6\",\"react-globe.gl\":\"^2.28.2\",\"react-hook-form\":\"^7.53.1\",\"react-icons\":\"^5.0.1\",\"react-markdown\":\"^9.0.1\",\"react-resizable-panels\":\"^2.1.6\",\"react-syntax-highlighter\":\"^15.6.1\",\"recharts\":\"^2.14.1\",\"remark-gfm\":\"^4.0.1\",\"rrweb\":\"^1.1.3\",\"svix\":\"^1.32.0\",\"svix-react\":\"^1.13.0\",\"tailwind-merge\":\"^2.3.0\",\"tailwindcss-animate\":\"^1.0.7\",\"three\":\"^0.169.0\",\"use-debounce\":\"^10.0.5\",\"yup\":\"^1.7.1\",\"zod\":\"^4.0.0\"},\"devDependencies\":{\"@types/canvas-confetti\":\"^1.6.4\",\"@types/lodash\":\"^4.17.5\",\"@types/node\":\"20.17.6\",\"@types/qrcode\":\"^1.5.5\",\"@types/react\":\"19.2.7\",\"@types/react-dom\":\"19.2.3\",\"@types/react-syntax-highlighter\":\"^15.5.13\",\"@types/three\":\"^0.169.0\",\"autoprefixer\":\"^10.4.17\",\"concurrently\":\"^8.2.2\",\"glob\":\"^10.4.1\",\"import-in-the-middle\":\"1.14.2\",\"postcss\":\"^8.4.38\",\"require-in-the-middle\":\"^7.4.0\",\"rimraf\":\"^5.0.5\",\"tailwindcss\":\"^3.4.1\",\"tsx\":\"^4.7.2\"},\"packageManager\":\"pnpm@11.5.0\"}","export function SiteLoadingIndicatorDisplay() {\n // Next.js doesn't like a sticky or fixed position element at the root, so wrap it in a span\n // https://github.com/shadcn-ui/ui/issues/1355\n return <span>\n <span className=\"site-loading-indicator\">\n <span className=\"site-loading-indicator-inner\">\n <span className=\"site-loading-indicator-inner-glow\" />\n </span>\n </span>\n </span>;\n}\n\nexport function SiteLoadingIndicator() {\n return <div className=\"show-site-loading-indicator\" />;\n}\n","import { SiteLoadingIndicator } from \"@/components/site-loading-indicator\";\n\nexport default function Loading() {\n return <SiteLoadingIndicator />;\n}\n","const colors = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50],\n}\n\nfor (const key in colors) Object.freeze(colors[key]);\nexport default Object.freeze(colors);","import colorNames from 'color-name';\n\nconst reverseNames = Object.create(null);\n\n// Create a list of reverse color names\nfor (const name in colorNames) {\n\tif (Object.hasOwn(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nconst cs = {\n\tto: {},\n\tget: {},\n};\n\ncs.get = function (string) {\n\tconst prefix = string.slice(0, 3).toLowerCase();\n\tlet value;\n\tlet model;\n\tswitch (prefix) {\n\t\tcase 'hsl': {\n\t\t\tvalue = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hwb': {\n\t\t\tvalue = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tvalue = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn {model, value};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst abbr = /^#([a-f\\d]{3,4})$/i;\n\tconst hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n\tconst rgba = /^rgba?\\(\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(?=[\\s,])\\s*(?:,\\s*)?([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)\\s*(?:[\\s,|/]\\s*([+-]?(?:\\d*\\.)?\\d+(?:e\\d+)?)(%?)\\s*)?\\)$/i;\n\tconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/i;\n\tconst keyword = /^(\\w+)$/;\n\n\tlet rgb = [0, 0, 0, 1];\n\tlet match;\n\tlet i;\n\tlet hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tconst i2 = i * 2;\n\t\t\trgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseFloat(match[i + 1]);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.toLowerCase().match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!Object.hasOwn(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/prefer-spread\n\t\trgb = colorNames[match[1]].slice();\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hsl);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst s = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst l = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\s*)?\\)$/i;\n\tconst match = string.match(hwb);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst w = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst b = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function (...rgba) {\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function (...rgba) {\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...rgba) {\n\tconst r = Math.round(rgba[0] / 255 * 100);\n\tconst g = Math.round(rgba[1] / 255 * 100);\n\tconst b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...hsla) {\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// Hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...hwba) {\n\tlet a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (...rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// Helpers\nfunction clamp(number_, min, max) {\n\treturn Math.min(Math.max(min, number_), max);\n}\n\nfunction hexDouble(number_) {\n\tconst string_ = Math.round(number_).toString(16).toUpperCase();\n\treturn (string_.length < 2) ? '0' + string_ : string_;\n}\n\nexport default cs;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nimport cssKeywords from 'color-name';\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\toklab: {channels: 3, labels: ['okl', 'oka', 'okb']},\n\tlch: {channels: 3, labels: 'lch'},\n\toklch: {channels: 3, labels: ['okl', 'okc', 'okh']},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']},\n};\n\nexport default convert;\n\n// LAB f(t) constant\nconst LAB_FT = (6 / 29) ** 3;\n\n// SRGB non-linear transform functions\nfunction srgbNonlinearTransform(c) {\n\tconst cc = c > 0.003_130_8\n\t\t? ((1.055 * (c ** (1 / 2.4))) - 0.055)\n\t\t: c * 12.92;\n\treturn Math.min(Math.max(0, cc), 1);\n}\n\nfunction srgbNonlinearTransformInv(c) {\n\treturn c > 0.040_45 ? (((c + 0.055) / 1.055) ** 2.4) : (c / 12.92);\n}\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tswitch (max) {\n\t\tcase min: {\n\t\t\th = 0;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase r: {\n\t\t\th = (g - b) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase g: {\n\t\t\th = 2 + (b - r) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase b: {\n\t\t\th = 4 + (r - g) / delta;\n\n\t\t\tbreak;\n\t\t}\n\t// No default\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tswitch (v) {\n\t\t\tcase r: {\n\t\t\t\th = bdif - gdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase g: {\n\t\t\t\th = (1 / 3) + rdif - bdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase b: {\n\t\t\t\th = (2 / 3) + gdif - rdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t// No default\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100,\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.oklab = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst lp = Math.cbrt(0.412_221_470_8 * r + 0.536_332_536_3 * g + 0.051_445_992_9 * b);\n\tconst mp = Math.cbrt(0.211_903_498_2 * r + 0.680_699_545_1 * g + 0.107_396_956_6 * b);\n\tconst sp = Math.cbrt(0.088_302_461_9 * r + 0.281_718_837_6 * g + 0.629_978_700_5 * b);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst aa = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst bb = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, aa * 100, bb * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Number.POSITIVE_INFINITY;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn [...cssKeywords[keyword]];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst x = (r * 0.412_456_4) + (g * 0.357_576_1) + (b * 0.180_437_5);\n\tconst y = (r * 0.212_672_9) + (g * 0.715_152_2) + (b * 0.072_175);\n\tconst z = (r * 0.019_333_9) + (g * 0.119_192) + (b * 0.950_304_1);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t3;\n\tlet value;\n\n\tif (s === 0) {\n\t\tvalue = l * 255;\n\t\treturn [value, value, value];\n\t}\n\n\tconst t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tvalue = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tvalue = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tvalue = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tvalue = t1;\n\t\t}\n\n\t\trgb[i] = value * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0: {\n\t\t\treturn [v, t, p];\n\t\t}\n\n\t\tcase 1: {\n\t\t\treturn [q, v, p];\n\t\t}\n\n\t\tcase 2: {\n\t\t\treturn [p, v, t];\n\t\t}\n\n\t\tcase 3: {\n\t\t\treturn [p, q, v];\n\t\t}\n\n\t\tcase 4: {\n\t\t\treturn [t, p, v];\n\t\t}\n\n\t\tcase 5: {\n\t\t\treturn [v, p, q];\n\t\t}\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\t// eslint-disable-next-line no-bitwise\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces, default-case-last */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: { r = v; g = n; b = wh; break;\n\t\t}\n\n\t\tcase 1: { r = n; g = v; b = wh; break;\n\t\t}\n\n\t\tcase 2: { r = wh; g = v; b = n; break;\n\t\t}\n\n\t\tcase 3: { r = wh; g = n; b = v; break;\n\t\t}\n\n\t\tcase 4: { r = n; g = wh; b = v; break;\n\t\t}\n\n\t\tcase 5: { r = v; g = wh; b = n; break;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces, default-case-last */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.240_454_2) + (y * -1.537_138_5) + (z * -0.498_531_4);\n\tg = (x * -0.969_266) + (y * 1.876_010_8) + (z * 0.041_556);\n\tb = (x * 0.055_643_4) + (y * -0.204_025_9) + (z * 1.057_225_2);\n\n\t// Assume sRGB\n\tr = srgbNonlinearTransform(r);\n\tg = srgbNonlinearTransform(g);\n\tb = srgbNonlinearTransform(b);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.xyz.oklab = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\n\tconst lp = Math.cbrt(0.818_933_010_1 * x + 0.361_866_742_4 * y - 0.128_859_713_7 * z);\n\tconst mp = Math.cbrt(0.032_984_543_6 * x + 0.929_311_871_5 * y + 0.036_145_638_7 * z);\n\tconst sp = Math.cbrt(0.048_200_301_8 * x + 0.264_366_269_1 * y + 0.633_851_707 * z);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst a = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst b = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, a * 100, b * 100];\n};\n\nconvert.oklab.oklch = function (oklab) {\n\treturn convert.lab.lch(oklab);\n};\n\nconvert.oklab.xyz = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst a = oklab[1] / 100;\n\tconst b = oklab[2] / 100;\n\n\tconst l = (0.999_999_998 * ll + 0.396_337_792 * a + 0.215_803_758 * b) ** 3;\n\tconst m = (1.000_000_008 * ll - 0.105_561_342 * a - 0.063_854_175 * b) ** 3;\n\tconst s = (1.000_000_055 * ll - 0.089_484_182 * a - 1.291_485_538 * b) ** 3;\n\n\tconst x = 1.227_013_851 * l - 0.557_799_98 * m + 0.281_256_149 * s;\n\tconst y = -0.040_580_178 * l + 1.112_256_87 * m - 0.071_676_679 * s;\n\tconst z = -0.076_381_285 * l - 0.421_481_978 * m + 1.586_163_22 * s;\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.oklab.rgb = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst aa = oklab[1] / 100;\n\tconst bb = oklab[2] / 100;\n\n\tconst l = (ll + 0.396_337_777_4 * aa + 0.215_803_757_3 * bb) ** 3;\n\tconst m = (ll - 0.105_561_345_8 * aa - 0.063_854_172_8 * bb) ** 3;\n\tconst s = (ll - 0.089_484_177_5 * aa - 1.291_485_548 * bb) ** 3;\n\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransform(4.076_741_662_1 * l - 3.307_711_591_3 * m + 0.230_969_929_2 * s);\n\tconst g = srgbNonlinearTransform(-1.268_438_004_6 * l + 2.609_757_401_1 * m - 0.341_319_396_5 * s);\n\tconst b = srgbNonlinearTransform(-0.004_196_086_3 * l - 0.703_418_614_7 * m + 1.707_614_701 * s);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.oklch.oklab = function (oklch) {\n\treturn convert.lch.lab(oklch);\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n\n\t// Illuminant D65 XYZ Tristrimulus Values\n\t// https://en.wikipedia.org/wiki/CIE_1931_color_space\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t/* eslint-disable no-bitwise */\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\t\t/* eslint-enable no-bitwise */\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\t// eslint-disable-next-line no-bitwise\n\tif (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\targs = args[0];\n\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (Math.trunc(args > 50) + 1) * 0.5;\n\t/* eslint-disable no-bitwise */\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\targs = args[0];\n\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\t/* eslint-disable no-bitwise */\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = [...colorString].map(char => char + char).join('');\n\t}\n\n\tconst integer = Number.parseInt(colorString, 16);\n\t/* eslint-disable no-bitwise */\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet hue;\n\n\tconst grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else if (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else if (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2 * s * l) : (2 * s * (1 - l));\n\n\tlet f = 0;\n\tif (c < 1) {\n\t\tf = (l - 0.5 * c) / (1 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0: {\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 1: {\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 2: {\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\t}\n\n\t\tcase 3: {\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\t}\n\n\t\tcase 4: {\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\t}\n\n\t\tdefault: {\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255,\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1 - c);\n\tlet f = 0;\n\n\tif (v > 0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else if (l >= 0.5 && l < 1) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65_535) * 255, (apple[1] / 65_535) * 255, (apple[2] / 65_535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65_535, (rgb[1] / 255) * 65_535, (rgb[2] / 255) * 65_535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\t/* eslint-disable no-bitwise */\n\tconst value = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (value << 16) + (value << 8) + value;\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [value / 255 * 100];\n};\n","import conversions from './conversions.js';\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null,\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let {length} = adjacents, i = 0; i < length; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nfunction route(fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n}\n\nexport default route;\n","import conversions from './conversions.js';\nimport route from './route.js';\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let {length} = result, i = 0; i < length; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfor (const fromModel of models) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\tfor (const toModel of routeModels) {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t}\n}\n\nexport default convert;\n","import colorString from 'color-string';\nimport convert from 'color-convert';\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](...arguments_);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(...arguments_);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(...this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(...rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...arguments_) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments_.length > 0) {\n\t\t\treturn new Color(arguments_, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...arguments_) {\n\t\tlet color = arguments_[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(arguments_, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] ||= [])[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nexport default Color;\n","\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport React from \"react\";\nimport { createGlobal } from \"@hexclave/shared/dist/utils/globals\";\n\ntype TranslationContextValue = {\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n};\n\nexport const TranslationContext = createGlobal<React.Context<TranslationContextValue | null>>(\n \"TranslationContext\",\n () => React.createContext<TranslationContextValue | null>(null),\n);\nTranslationContext.displayName ??= \"TranslationContext\";\n\nexport function TranslationProviderClient(props: {\n children: React.ReactNode,\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n}) {\n return (\n <TranslationContext.Provider value={{\n quetzalKeys: props.quetzalKeys,\n quetzalLocale: props.quetzalLocale,\n }}>\n {props.children}\n </TranslationContext.Provider>\n );\n}\n","\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { useLayoutEffect } from \"react\";\n\nexport function SsrScript(props: { script: string, nonce?: string }) {\n useLayoutEffect(() => {\n // TODO fix workaround: React has a bug where it doesn't run the script on the first CSR render if SSR has been skipped due to suspense\n // As a workaround, we run the script in the <script> tag again after the first render\n // Note that we do an indirect eval as described here: https://esbuild.github.io/content-types/#direct-eval\n (0, eval)(props.script);\n }, []);\n\n return (\n <script\n suppressHydrationWarning // the transpiler is setup differently for client/server targets, so if `script` was generated with Function.toString they will differ\n nonce={props.nonce}\n dangerouslySetInnerHTML={{ __html: props.script }}\n />\n );\n}\n","import { getPublicEnvVar } from '@/lib/env';\nimport { runAsynchronously, wait } from \"@hexclave/shared/dist/utils/promises\";\nimport packageJson from \"../../package.json\";\n\nexport type VersionCheckResult = {\n severe: boolean,\n error: string,\n} | null;\n\nexport type VersionCheckOptions = {\n /** Delay before making the request (in milliseconds) */\n delay?: number,\n /** Whether to silently fail or throw errors */\n silentFailure?: boolean,\n /** Custom error message prefix for logging */\n errorPrefix?: string,\n};\n\n/**\n * Hook to check if non-severe version alerts should be shown\n * Based on NEXT_PUBLIC_VERSION_ALERTER_SEVERE_ONLY environment variable\n */\nexport function shouldShowNonSevereVersionCheck(): boolean {\n // IMPORTANT: THIS ENVIRONMENT VARIABLE IS UNDOCUMENTED AND NOT MEANT FOR PRODUCTION USAGE\n // AND YOU SHOULD ALWAYS KEEP STACK AUTH UP TO DATE. WE CAN'T APPLY SECURITY UPDATES IF\n // YOU DON'T UPDATE STACK AUTH REGULARLY.\n return getPublicEnvVar('NEXT_PUBLIC_VERSION_ALERTER_SEVERE_ONLY') !== \"true\";\n}\n\n/**\n * Utility to determine if a version check result should be displayed\n */\nexport function shouldDisplayVersionResult(\n result: VersionCheckResult,\n enableNonSevereCheck: boolean = shouldShowNonSevereVersionCheck()\n): boolean {\n return result !== null && (enableNonSevereCheck || result.severe);\n}\n\n/**\n * Common utility function for checking version against Hexclave API\n * Used by both VersionAlerter and HexclaveCompanion components\n */\nexport function checkVersion(\n onResult: (result: VersionCheckResult) => void,\n options: VersionCheckOptions = {}\n) {\n const {\n delay = 1000,\n silentFailure = false,\n errorPrefix = \"Version check failed\"\n } = options;\n\n // Skip check for managed hosting\n if (typeof window !== \"undefined\" && window.location.origin === \"https://app.hexclave.com\") {\n return () => {}; // Return cleanup function\n }\n\n let cancelled = false;\n\n runAsynchronously(async () => {\n try {\n await wait(delay);\n if (cancelled) return;\n\n const res = await fetch(`https://api.hexclave.com/api/v1/check-version`, {\n method: \"POST\",\n body: JSON.stringify({\n clientPackageName: packageJson.name,\n clientVersion: packageJson.version,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res.status !== 200) {\n if (silentFailure) {\n return; // Silently fail\n } else {\n throw new Error(`Version check API call failed with status ${res.status}: ${await res.text()}`);\n }\n }\n\n const data = await res.json();\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (cancelled) return;\n\n onResult(data.upToDate ? null : data);\n } catch (e) {\n if (silentFailure) {\n console.warn(`${errorPrefix}:`, e);\n return;\n }\n\n // Wait a little bit because the error may have been caused by a page reload\n await wait(5000);\n if (cancelled) return;\n\n console.error(`${errorPrefix}`, e);\n onResult({\n severe: true,\n error: `Error checking version, please make sure you're connected to the internet. See the console for more details. \\n${e}`\n });\n }\n });\n\n // Return cleanup function\n return () => {\n cancelled = true;\n };\n}\n","\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// Tiny DOM helpers shared by Hexclave's in-page UIs (the dev tool and the\n// standalone clickmap overlay). This module deliberately lives outside both\n// feature folders so either feature can be removed without affecting the other.\n\nexport function h<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n attrs?: Record<string, any> | null,\n ...children: (string | Node | null | undefined)[]\n): HTMLElementTagNameMap[K] {\n const el = document.createElement(tag);\n if (attrs) {\n for (const [k, v] of Object.entries(attrs)) {\n if (v == null) continue;\n if (k === 'className') {\n el.className = v;\n } else if (k === 'style' && typeof v === 'object') {\n Object.assign(el.style, v);\n } else if (k.startsWith('on') && typeof v === 'function') {\n el.addEventListener(k.slice(2).toLowerCase(), v);\n } else {\n el.setAttribute(k, String(v));\n }\n }\n }\n for (const child of children) {\n if (child == null) continue;\n el.appendChild(typeof child === 'string' ? document.createTextNode(child) : child);\n }\n return el;\n}\n\nexport function setHtml(el: HTMLElement, html: string) {\n el.innerHTML = html;\n}\n\nexport function hasAppendChild(value: unknown): value is { appendChild(node: Node): void } {\n return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'appendChild') === 'function';\n}\n\nexport function canMountIntoDom(): boolean {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return false;\n }\n if (typeof document.createElement !== 'function') {\n return false;\n }\n return hasAppendChild(Reflect.get(document, 'body'));\n}\n\n// ---------------------------------------------------------------------------\n// Window-global singleton slot, so remounts (e.g. across HMR or multiple app\n// instances) can tear down the previous instance before mounting a new one.\n// ---------------------------------------------------------------------------\n\nexport type UiGlobalInstance = {\n cleanup: () => void;\n};\n\nfunction isUiGlobalInstance(value: unknown): value is UiGlobalInstance {\n return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'cleanup') === 'function';\n}\n\nexport function getGlobalUiInstance(key: string): UiGlobalInstance | null {\n if (typeof window === 'undefined') return null;\n const value: unknown = Reflect.get(window, key);\n return isUiGlobalInstance(value) ? value : null;\n}\n\nexport function setGlobalUiInstance(key: string, instance: UiGlobalInstance | null) {\n if (typeof window === 'undefined') return;\n if (instance === null) {\n Reflect.deleteProperty(window, key);\n } else {\n Reflect.set(window, key, instance);\n }\n}\n","/**\n * Shared identity of the Hexclave in-page dev tool / clickmap overlay.\n *\n * These constants are the single source of truth for \"is this DOM / event /\n * stored click part of the dev tool itself?\". They are consumed across package\n * boundaries:\n * - the dev tool mounts its root element with {@link DEV_TOOL_ROOT_ID} and\n * prefixes every generated class with {@link DEV_TOOL_CLASS_PREFIX};\n * - the event tracker uses them to skip self-clicks at ingest;\n * - the backend clickmap query uses them to filter dev-tool clicks out of\n * aggregate clickmaps server-side.\n *\n * Keep them here so a rename can never silently desync the SQL filter from the\n * actual DOM identity.\n */\nexport const DEV_TOOL_ROOT_ID = \"__hexclave-dev-tool-root\";\n\n/**\n * Root element id of the standalone clickmap overlay. The clickmap is an\n * independent feature with its own mount (it must survive the dev tool being\n * removed), so it gets its own root — but its self-clicks need the exact same\n * ingest/query exclusions as the dev tool's.\n */\nexport const CLICKMAP_ROOT_ID = \"__hexclave-clickmap-root\";\n\n/** Prefix applied to every class/generated id the dev tool renders. */\nexport const DEV_TOOL_CLASS_PREFIX = \"sdt-\";\n\n/** Legacy class marker still present on older dev-tool builds. */\nexport const DEV_TOOL_LEGACY_CLASS = \"stack-devtool\";\n","/**\n * Wire protocol for handing a clickmap overlay token from the dashboard to the\n * in-page dev tool via `sessionStorage` + a window event.\n *\n * The token is a self-describing JWT: its payload already carries the\n * `project_id` and `origin` it was minted for, so the reader derives both from\n * the token itself and the writer only has to hand over a single value. The\n * dashboard (writer) and the dev tool (reader) live in different packages but\n * must agree on these exact names — this module is the single source of truth so\n * they can never silently desync.\n */\n\nexport const CLICKMAP_OVERLAY_TOKEN_STORAGE_KEY = \"hexclave-clickmap-token\";\nexport const CLICKMAP_OVERLAY_RESUME_STORAGE_KEY = \"hexclave-clickmap-resume\";\nexport const CLICKMAP_OVERLAY_TOKEN_UPDATED_EVENT = \"hexclave:clickmap-token-updated\";\n","/**\n * PostHog-style `elements_chain` format — the single owner of both halves of the\n * contract. The event tracker {@link buildElementsChain serializes} a clicked\n * element (and its ancestors) into a string; the clickmap overlay\n * {@link parseElementsChain parses} that string back into structured segments so\n * it can re-locate the element in a live DOM.\n *\n * Encode and decode MUST round-trip exactly, which is why they live together:\n * the escaping applied here on the write side is reversed by the parser below,\n * and a single round-trip test in `elements-chain.test.tsx` guards the pair.\n *\n * Segment shape (leaf-first, joined by `;`):\n * tag.class1.class2:nth-child=\"2\":nth-of-type=\"1\":text=\"Save\":attr__id=\"x\":href=\"...\"\n */\n\nexport type ElementsChainSegment = {\n tag: string,\n classes: string[],\n attrs: Record<string, string>,\n text: string | null,\n nthChild: number | null,\n nthOfType: number | null,\n href: string | null,\n};\n\nexport const ELEMENTS_CHAIN_MAX_DEPTH = 8;\nexport const ELEMENTS_CHAIN_TEXT_MAX = 80;\nexport const ELEMENTS_CHAIN_ATTR_MAX = 200;\n\n// Attributes we serialise into elements_chain. Mirrors the set PostHog persists:\n// stable identifiers (id, data-testid), semantics (role, type, name, aria-label),\n// and a few we expect downstream tooling to want to match against.\nexport const ELEMENTS_CHAIN_ATTRS = [\n \"id\",\n \"data-testid\",\n \"data-test-id\",\n \"data-hexclave-id\",\n \"name\",\n \"type\",\n \"role\",\n \"aria-label\",\n \"placeholder\",\n \"title\",\n] as const;\n\n// ---------------------------------------------------------------------------\n// Serialization (DOM element -> elements_chain string)\n// ---------------------------------------------------------------------------\n\nfunction escapeElementsChainValue(value: string): string {\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n}\n\n// Class tokens are written into the unquoted, dot-joined prefix of a segment, so\n// any \".\" or \":\" inside a class (e.g. Tailwind variants like `md:hover:bg-blue-500`\n// or arbitrary values like `w-[1.5rem]`) must be escaped to round-trip through the\n// parser, which splits the prefix on unescaped \".\" and the segment on unescaped \":\".\nfunction escapeElementsChainClass(value: string): string {\n return value.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/:/g, \"\\\\:\");\n}\n\nfunction getElementClasses(element: Element): string[] {\n const className = (element as HTMLElement).className;\n if (typeof className !== \"string\" || className.trim() === \"\") {\n return [];\n }\n return className.trim().split(/\\s+/).filter(Boolean).slice(0, 4);\n}\n\nfunction getNthChildIndex(element: Element): number | null {\n const parent = element.parentElement;\n if (parent == null) return null;\n const index = Array.prototype.indexOf.call(parent.children, element);\n return index >= 0 ? index + 1 : null;\n}\n\nfunction getNthOfTypeIndex(element: Element): number | null {\n const parent = element.parentElement;\n if (parent == null) return null;\n const tagName = element.tagName;\n const siblings = Array.from(parent.children).filter((child) => child.tagName === tagName);\n if (siblings.length <= 1) return null;\n const index = siblings.indexOf(element);\n return index >= 0 ? index + 1 : null;\n}\n\nfunction serializeElementsChainSegment(element: Element): string {\n const parts: string[] = [];\n parts.push(element.tagName.toLowerCase());\n const classes = getElementClasses(element);\n if (classes.length > 0) {\n parts.push(`.${classes.map(escapeElementsChainClass).join(\".\")}`);\n }\n const text = element.textContent.trim().replace(/\\s+/g, \" \").slice(0, ELEMENTS_CHAIN_TEXT_MAX);\n const nthChild = getNthChildIndex(element);\n const nthOfType = getNthOfTypeIndex(element);\n const attrPairs: string[] = [];\n if (nthChild != null) attrPairs.push(`nth-child=\"${nthChild}\"`);\n if (nthOfType != null) attrPairs.push(`nth-of-type=\"${nthOfType}\"`);\n if (text !== \"\") attrPairs.push(`text=\"${escapeElementsChainValue(text)}\"`);\n for (const attrName of ELEMENTS_CHAIN_ATTRS) {\n const value = element.getAttribute(attrName);\n if (value == null || value === \"\") continue;\n attrPairs.push(`attr__${attrName}=\"${escapeElementsChainValue(value.slice(0, ELEMENTS_CHAIN_ATTR_MAX))}\"`);\n }\n if (element.tagName === \"A\") {\n const href = element.getAttribute(\"href\");\n if (href != null && href !== \"\") {\n attrPairs.push(`href=\"${escapeElementsChainValue(href.slice(0, ELEMENTS_CHAIN_ATTR_MAX))}\"`);\n }\n }\n if (attrPairs.length > 0) {\n parts.push(`:${attrPairs.join(\":\")}`);\n }\n return parts.join(\"\");\n}\n\n/**\n * Serialise a clicked element and up to {@link ELEMENTS_CHAIN_MAX_DEPTH}\n * ancestors (leaf-first) into an `elements_chain` string.\n */\nexport function buildElementsChain(element: Element): string {\n const segments: string[] = [];\n let current: Element | null = element;\n let depth = 0;\n while (current != null && depth < ELEMENTS_CHAIN_MAX_DEPTH && current !== document.documentElement) {\n segments.push(serializeElementsChainSegment(current));\n current = current.parentElement;\n depth += 1;\n }\n return segments.join(\";\");\n}\n\n// ---------------------------------------------------------------------------\n// Parsing (elements_chain string -> structured segments)\n// ---------------------------------------------------------------------------\n\n// Split a string on unescaped occurrences of `.`, unescaping `\\.`, `\\:` and `\\\\`\n// back to their literal characters. Reverses `escapeElementsChainClass`.\nfunction splitEscapedDots(input: string): string[] {\n const out: string[] = [];\n let cur = '';\n for (let i = 0; i < input.length; i++) {\n const ch = input[i];\n if (ch === '\\\\' && i + 1 < input.length) {\n cur += input[i + 1];\n i += 1;\n continue;\n }\n if (ch === '.') {\n out.push(cur);\n cur = '';\n continue;\n }\n cur += ch;\n }\n out.push(cur);\n return out;\n}\n\ntype ElementsChainAttrResult = {\n nthChild?: number,\n nthOfType?: number,\n text?: string,\n href?: string,\n attrKey?: string,\n attrValue?: string,\n};\n\nfunction applyElementsChainAttr(key: string, value: string): ElementsChainAttrResult {\n if (key === 'nth-child') {\n const n = Number.parseInt(value, 10);\n return Number.isFinite(n) ? { nthChild: n } : {};\n }\n if (key === 'nth-of-type') {\n const n = Number.parseInt(value, 10);\n return Number.isFinite(n) ? { nthOfType: n } : {};\n }\n if (key === 'text') {\n return { text: value };\n }\n if (key === 'href') {\n return { href: value, attrKey: key, attrValue: value };\n }\n if (key.startsWith('attr__')) {\n return { attrKey: key.slice('attr__'.length), attrValue: value };\n }\n return { attrKey: key, attrValue: value };\n}\n\nfunction parseElementsChainSegment(segment: string): ElementsChainSegment | null {\n const trimmed = segment.trim();\n if (trimmed === '') return null;\n\n // Find first ':' at top level — separates tag/classes prefix from attribute pairs.\n let prefixEnd = trimmed.length;\n let inQuotes = false;\n for (let i = 0; i < trimmed.length; i++) {\n const ch = trimmed[i];\n if (ch === '\\\\' && i + 1 < trimmed.length) {\n i += 1;\n continue;\n }\n if (ch === '\"') {\n inQuotes = !inQuotes;\n continue;\n }\n if (ch === ':' && !inQuotes) {\n prefixEnd = i;\n break;\n }\n }\n\n const prefix = trimmed.slice(0, prefixEnd);\n const rest = trimmed.slice(prefixEnd);\n const prefixParts = splitEscapedDots(prefix);\n const tag = prefixParts[0].trim().toLowerCase();\n if (tag === '') return null;\n const classes = prefixParts.slice(1).map((c) => c.trim()).filter((c) => c !== '');\n\n const attrs: Record<string, string> = {};\n let nthChild: number | null = null;\n let nthOfType: number | null = null;\n let text: string | null = null;\n let href: string | null = null;\n\n // Parse :key=\"value\" pairs from rest.\n let i = 0;\n while (i < rest.length) {\n if (rest[i] !== ':') {\n i += 1;\n continue;\n }\n i += 1; // skip ':'\n // read key up to '='\n let keyEnd = i;\n while (keyEnd < rest.length && rest[keyEnd] !== '=' && rest[keyEnd] !== ':') keyEnd += 1;\n const key = rest.slice(i, keyEnd).trim();\n if (keyEnd >= rest.length || rest[keyEnd] !== '=') {\n i = keyEnd;\n continue;\n }\n let valStart = keyEnd + 1;\n if (rest[valStart] !== '\"') {\n // unquoted — read until next ':' at top level\n let end = valStart;\n while (end < rest.length && rest[end] !== ':') end += 1;\n const value = rest.slice(valStart, end);\n const result = applyElementsChainAttr(key, value);\n if (result.nthChild != null) nthChild = result.nthChild;\n if (result.nthOfType != null) nthOfType = result.nthOfType;\n if (result.text != null) text = result.text;\n if (result.href != null) href = result.href;\n if (result.attrKey != null) attrs[result.attrKey] = result.attrValue ?? '';\n i = end;\n continue;\n }\n // quoted value — find unescaped closing quote\n valStart += 1;\n let end = valStart;\n let value = '';\n while (end < rest.length) {\n const ch = rest[end];\n if (ch === '\\\\' && end + 1 < rest.length) {\n const next = rest[end + 1];\n if (next === '\"' || next === '\\\\') {\n value += next;\n end += 2;\n continue;\n }\n value += ch;\n end += 1;\n continue;\n }\n if (ch === '\"') break;\n value += ch;\n end += 1;\n }\n const result = applyElementsChainAttr(key, value);\n if (result.nthChild != null) nthChild = result.nthChild;\n if (result.nthOfType != null) nthOfType = result.nthOfType;\n if (result.text != null) text = result.text;\n if (result.href != null) href = result.href;\n if (result.attrKey != null) attrs[result.attrKey] = result.attrValue ?? '';\n i = end + 1; // skip closing quote\n }\n\n return { tag, classes, attrs, text, nthChild, nthOfType, href };\n}\n\n/** Parse an `elements_chain` string into structured, leaf-first segments. */\nexport function parseElementsChain(chain: string): ElementsChainSegment[] {\n // Split top-level by ';' respecting quoted strings.\n const segments: string[] = [];\n let current = '';\n let inQuotes = false;\n for (let i = 0; i < chain.length; i++) {\n const ch = chain[i];\n if (ch === '\\\\' && i + 1 < chain.length) {\n current += ch + chain[i + 1];\n i += 1;\n continue;\n }\n if (ch === '\"') {\n inQuotes = !inQuotes;\n current += ch;\n continue;\n }\n if (ch === ';' && !inQuotes) {\n segments.push(current);\n current = '';\n continue;\n }\n current += ch;\n }\n if (current.length > 0) {\n segments.push(current);\n }\n return segments.map(parseElementsChainSegment).filter((segment): segment is ElementsChainSegment => segment != null);\n}\n\nimport.meta.vitest?.test(\"parseElementsChain parses a simple leaf+ancestor chain\", ({ expect }) => {\n const parsed = parseElementsChain('button.btn.btn-primary:nth-of-type=\"1\":text=\"Save\":attr__id=\"save-btn\";div.container');\n expect(parsed).toEqual([\n { tag: \"button\", classes: [\"btn\", \"btn-primary\"], attrs: { id: \"save-btn\" }, text: \"Save\", nthChild: null, nthOfType: 1, href: null },\n { tag: \"div\", classes: [\"container\"], attrs: {}, text: null, nthChild: null, nthOfType: null, href: null },\n ]);\n});\n\nimport.meta.vitest?.test(\"parseElementsChain reverses class escaping for Tailwind-style tokens\", ({ expect }) => {\n // `md:hover:bg-blue-500` and `w-[1.5rem]` contain the prefix delimiters `:`/`.`,\n // so the serializer escapes them; the parser must recover the literal classes.\n const parsed = parseElementsChain('a.md\\\\:hover\\\\:bg-blue-500.w-\\\\[1\\\\.5rem\\\\]:href=\"/p?a=1\"');\n expect(parsed).toEqual([\n { tag: \"a\", classes: [\"md:hover:bg-blue-500\", \"w-[1.5rem]\"], attrs: { href: \"/p?a=1\" }, text: null, nthChild: null, nthOfType: null, href: \"/p?a=1\" },\n ]);\n});\n\nimport.meta.vitest?.test(\"parseElementsChain unescapes quotes/backslashes and ignores ';' inside quoted values\", ({ expect }) => {\n const parsed = parseElementsChain('span:text=\"a \\\\\"b\\\\\"; c \\\\\\\\ d\"');\n expect(parsed).toEqual([\n { tag: \"span\", classes: [], attrs: {}, text: 'a \"b\"; c \\\\ d', nthChild: null, nthOfType: null, href: null },\n ]);\n});\n\nimport.meta.vitest?.test(\"parseElementsChain drops empty/tagless segments\", ({ expect }) => {\n expect(parseElementsChain(\"\")).toEqual([]);\n expect(parseElementsChain(\";;\")).toEqual([]);\n});\n","/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = <subdomain>\n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * <subdomain> = <label> | <subdomain> \".\" <label>\n * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n * Labels must be 63 characters or less.\n * 'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp> = <let-dig> | \"-\"\n * <let-dig> = <letter> | <digit>\n * <letter> = any one of the 52 alphabetic characters A through Z in\n * upper case and a through z in lower case\n * <digit> = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp =\n /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value = <any CHAR except CTLs or \";\">\n * CHAR = %x01-7F\n * ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n\n/**\n * RegExp to match max-age-value in RFC 6265 sec 5.6.2\n */\nconst maxAgeRegExp = /^-?\\d+$/;\n\nconst __toString = Object.prototype.toString;\n\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () {};\n C.prototype = Object.create(null);\n return C;\n})() as unknown as { new (): any };\n\n/**\n * Parse options.\n */\nexport interface ParseOptions {\n /**\n * Specifies a function that will be used to decode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n * Since the value of a cookie has a limited character set (and must be a simple string), this function can be used to decode\n * a previously-encoded cookie value into a JavaScript string.\n *\n * The default function is the global `decodeURIComponent`, wrapped in a `try..catch`. If an error\n * is thrown it will return the cookie's original value. If you provide your own encode/decode\n * scheme you must ensure errors are appropriately handled.\n *\n * @default decode\n */\n decode?: (str: string) => string | undefined;\n}\n\n/**\n * Cookies object.\n */\nexport type Cookies = Record<string, string | undefined>;\n\n/**\n * Parse a `Cookie` header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nexport function parseCookie(str: string, options?: ParseOptions): Cookies {\n const obj: Cookies = new NullObject();\n const len = str.length;\n // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n if (len < 2) return obj;\n\n const dec = options?.decode || decode;\n let index = 0;\n\n do {\n const eqIdx = eqIndex(str, index, len);\n if (eqIdx === -1) break; // No more cookie pairs.\n\n const endIdx = endIndex(str, index, len);\n\n if (eqIdx > endIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n\n const key = valueSlice(str, index, eqIdx);\n\n // only assign once\n if (obj[key] === undefined) {\n obj[key] = dec(valueSlice(str, eqIdx + 1, endIdx));\n }\n\n index = endIdx + 1;\n } while (index < len);\n\n return obj;\n}\n\nexport interface StringifyOptions {\n /**\n * Specifies a function that will be used to encode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n * Since value of a cookie has a limited character set (and must be a simple string), this function can be used to encode\n * a value into a string suited for a cookie's value, and should mirror `decode` when parsing.\n *\n * @default encodeURIComponent\n */\n encode?: (str: string) => string;\n}\n\n/**\n * Stringifies an object into an HTTP `Cookie` header.\n */\nexport function stringifyCookie(\n cookie: Cookies,\n options?: StringifyOptions,\n): string {\n const enc = options?.encode || encodeURIComponent;\n const cookieStrings: string[] = [];\n\n for (const name of Object.keys(cookie)) {\n const val = cookie[name];\n if (val === undefined) continue;\n\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(`cookie name is invalid: ${name}`);\n }\n\n const value = enc(val);\n\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`cookie val is invalid: ${val}`);\n }\n\n cookieStrings.push(`${name}=${value}`);\n }\n\n return cookieStrings.join(\"; \");\n}\n\n/**\n * Set-Cookie object.\n */\nexport interface SetCookie {\n /**\n * Specifies the name of the cookie.\n */\n name: string;\n /**\n * Specifies the string to be the value for the cookie.\n */\n value: string | undefined;\n /**\n * Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.2).\n *\n * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n * so if both are set, they should point to the same date and time.\n */\n maxAge?: number;\n /**\n * Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.1).\n * When no expiration is set, clients consider this a \"non-persistent cookie\" and delete it when the current session is over.\n *\n * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n * so if both are set, they should point to the same date and time.\n */\n expires?: Date;\n /**\n * Specifies the value for the [`Domain` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.3).\n * When no domain is set, clients consider the cookie to apply to the current domain only.\n */\n domain?: string;\n /**\n * Specifies the value for the [`Path` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.4).\n * When no path is set, the path is considered the [\"default path\"](https://tools.ietf.org/html/rfc6265#section-5.1.4).\n */\n path?: string;\n /**\n * Enables the [`HttpOnly` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.6).\n * When enabled, clients will not allow client-side JavaScript to see the cookie in `document.cookie`.\n */\n httpOnly?: boolean;\n /**\n * Enables the [`Secure` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.5).\n * When enabled, clients will only send the cookie back if the browser has an HTTPS connection.\n */\n secure?: boolean;\n /**\n * Enables the [`Partitioned` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/).\n * When enabled, clients will only send the cookie back when the current domain _and_ top-level domain matches.\n *\n * This is an attribute that has not yet been fully standardized, and may change in the future.\n * This also means clients may ignore this attribute until they understand it. More information\n * about can be found in [the proposal](https://github.com/privacycg/CHIPS).\n */\n partitioned?: boolean;\n /**\n * Specifies the value for the [`Priority` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n *\n * - `'low'` will set the `Priority` attribute to `Low`.\n * - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.\n * - `'high'` will set the `Priority` attribute to `High`.\n *\n * More information about priority levels can be found in [the specification](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n */\n priority?: \"low\" | \"medium\" | \"high\";\n /**\n * Specifies the value for the [`SameSite` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n *\n * - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n * - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.\n * - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.\n * - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n *\n * More information about enforcement levels can be found in [the specification](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n */\n sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n}\n\n/**\n * Backward compatibility serialize options.\n */\nexport type SerializeOptions = StringifyOptions &\n Omit<SetCookie, \"name\" | \"value\">;\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n */\nexport function stringifySetCookie(\n cookie: SetCookie,\n options?: StringifyOptions,\n): string;\nexport function stringifySetCookie(\n name: string,\n val: string,\n options?: SerializeOptions,\n): string;\nexport function stringifySetCookie(\n _name: string | SetCookie,\n _val?: string | StringifyOptions,\n _opts?: SerializeOptions,\n): string {\n const cookie =\n typeof _name === \"object\"\n ? _name\n : { ..._opts, name: _name, value: String(_val) };\n const options = typeof _val === \"object\" ? _val : _opts;\n const enc = options?.encode || encodeURIComponent;\n\n if (!cookieNameRegExp.test(cookie.name)) {\n throw new TypeError(`argument name is invalid: ${cookie.name}`);\n }\n\n const value = cookie.value ? enc(cookie.value) : \"\";\n\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`argument val is invalid: ${cookie.value}`);\n }\n\n let str = cookie.name + \"=\" + value;\n\n if (cookie.maxAge !== undefined) {\n if (!Number.isInteger(cookie.maxAge)) {\n throw new TypeError(`option maxAge is invalid: ${cookie.maxAge}`);\n }\n\n str += \"; Max-Age=\" + cookie.maxAge;\n }\n\n if (cookie.domain) {\n if (!domainValueRegExp.test(cookie.domain)) {\n throw new TypeError(`option domain is invalid: ${cookie.domain}`);\n }\n\n str += \"; Domain=\" + cookie.domain;\n }\n\n if (cookie.path) {\n if (!pathValueRegExp.test(cookie.path)) {\n throw new TypeError(`option path is invalid: ${cookie.path}`);\n }\n\n str += \"; Path=\" + cookie.path;\n }\n\n if (cookie.expires) {\n if (!isDate(cookie.expires) || !Number.isFinite(cookie.expires.valueOf())) {\n throw new TypeError(`option expires is invalid: ${cookie.expires}`);\n }\n\n str += \"; Expires=\" + cookie.expires.toUTCString();\n }\n\n if (cookie.httpOnly) {\n str += \"; HttpOnly\";\n }\n\n if (cookie.secure) {\n str += \"; Secure\";\n }\n\n if (cookie.partitioned) {\n str += \"; Partitioned\";\n }\n\n if (cookie.priority) {\n const priority =\n typeof cookie.priority === \"string\"\n ? cookie.priority.toLowerCase()\n : undefined;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(`option priority is invalid: ${cookie.priority}`);\n }\n }\n\n if (cookie.sameSite) {\n const sameSite =\n typeof cookie.sameSite === \"string\"\n ? cookie.sameSite.toLowerCase()\n : cookie.sameSite;\n switch (sameSite) {\n case true:\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(`option sameSite is invalid: ${cookie.sameSite}`);\n }\n }\n\n return str;\n}\n\n/**\n * Deserialize a `Set-Cookie` header into an object.\n *\n * deserialize('foo=bar; httpOnly')\n * => { name: 'foo', value: 'bar', httpOnly: true }\n */\nexport function parseSetCookie(str: string, options?: ParseOptions): SetCookie {\n const dec = options?.decode || decode;\n const len = str.length;\n const endIdx = endIndex(str, 0, len);\n const eqIdx = eqIndex(str, 0, endIdx);\n const setCookie: SetCookie =\n eqIdx === -1\n ? { name: \"\", value: dec(valueSlice(str, 0, endIdx)) }\n : {\n name: valueSlice(str, 0, eqIdx),\n value: dec(valueSlice(str, eqIdx + 1, endIdx)),\n };\n\n let index = endIdx + 1;\n while (index < len) {\n const endIdx = endIndex(str, index, len);\n const eqIdx = eqIndex(str, index, endIdx);\n const attr =\n eqIdx === -1\n ? valueSlice(str, index, endIdx)\n : valueSlice(str, index, eqIdx);\n const val = eqIdx === -1 ? undefined : valueSlice(str, eqIdx + 1, endIdx);\n\n switch (attr.toLowerCase()) {\n case \"httponly\":\n setCookie.httpOnly = true;\n break;\n case \"secure\":\n setCookie.secure = true;\n break;\n case \"partitioned\":\n setCookie.partitioned = true;\n break;\n case \"domain\":\n setCookie.domain = val;\n break;\n case \"path\":\n setCookie.path = val;\n break;\n case \"max-age\":\n if (val && maxAgeRegExp.test(val)) setCookie.maxAge = Number(val);\n break;\n case \"expires\":\n if (!val) break;\n const date = new Date(val);\n if (Number.isFinite(date.valueOf())) setCookie.expires = date;\n break;\n case \"priority\":\n if (!val) break;\n const priority = val.toLowerCase();\n if (\n priority === \"low\" ||\n priority === \"medium\" ||\n priority === \"high\"\n ) {\n setCookie.priority = priority;\n }\n break;\n case \"samesite\":\n if (!val) break;\n const sameSite = val.toLowerCase();\n if (\n sameSite === \"lax\" ||\n sameSite === \"strict\" ||\n sameSite === \"none\"\n ) {\n setCookie.sameSite = sameSite;\n }\n break;\n }\n\n index = endIdx + 1;\n }\n\n return setCookie;\n}\n\n/**\n * Find the `;` character between `min` and `len` in str.\n */\nfunction endIndex(str: string, min: number, len: number) {\n const index = str.indexOf(\";\", min);\n return index === -1 ? len : index;\n}\n\n/**\n * Find the `=` character between `min` and `max` in str.\n */\nfunction eqIndex(str: string, min: number, max: number) {\n const index = str.indexOf(\"=\", min);\n return index < max ? index : -1;\n}\n\n/**\n * Slice out a value between startPod to max.\n */\nfunction valueSlice(str: string, min: number, max: number) {\n let start = min;\n let end = max;\n\n do {\n const code = str.charCodeAt(start);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) break;\n } while (++start < end);\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) break;\n end--;\n }\n\n return str.slice(start, end);\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str: string): string {\n if (str.indexOf(\"%\") === -1) return str;\n\n try {\n return decodeURIComponent(str);\n } catch (e) {\n return str;\n }\n}\n\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val: any): val is Date {\n return __toString.call(val) === \"[object Date]\";\n}\n\n/**\n * Backward compatibility exports.\n */\nexport { stringifySetCookie as serialize, parseCookie as parse };\n","import {\n type ReadonlyRequestCookies,\n areCookiesMutableInCurrentPhase,\n RequestCookiesAdapter,\n} from '../web/spec-extension/adapters/request-cookies'\nimport { RequestCookies } from '../web/spec-extension/cookies'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n isInEarlyRenderStage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n delayUntilRuntimeStage,\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\n\nexport function cookies(): Promise<ReadonlyRequestCookies> {\n const callingExpression = 'cookies'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n // TODO(after): clarify that this only applies to pages?\n `Route ${workStore.route} used \\`cookies()\\` inside \\`after()\\`. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`cookies()\\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // cookies object without tracking\n const underlyingCookies = createEmptyCookies()\n return makeUntrackedCookies(underlyingCookies)\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`cookies()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n const error = new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, cookies)\n workStore.invalidDynamicUsageError ??= error\n throw error\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`cookies()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`cookies()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n case 'prerender':\n return makeHangingCookies(workStore, workUnitStore)\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`cookies`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n // We need track dynamic access here eagerly to keep continuity with\n // how cookies has worked in PPR without cacheComponents.\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // We track dynamic access here so we don't need to wrap the cookies\n // in individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime':\n return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedCookies(workUnitStore.cookies)\n )\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedCookies(workUnitStore.cookies)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n let underlyingCookies: ReadonlyRequestCookies\n\n if (areCookiesMutableInCurrentPhase(workUnitStore)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n underlyingCookies =\n workUnitStore.userspaceMutableCookies as unknown as ReadonlyRequestCookies\n } else {\n underlyingCookies = workUnitStore.cookies\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedCookiesWithDevWarnings(\n workUnitStore,\n underlyingCookies,\n workStore?.route\n )\n } else if (workUnitStore.asyncApiPromises) {\n const early = isInEarlyRenderStage(workUnitStore)\n if (underlyingCookies === workUnitStore.mutableCookies) {\n return early\n ? workUnitStore.asyncApiPromises.earlyMutableCookies\n : workUnitStore.asyncApiPromises.mutableCookies\n } else {\n return early\n ? workUnitStore.asyncApiPromises.earlyCookies\n : workUnitStore.asyncApiPromises.cookies\n }\n } else {\n return makeUntrackedCookies(underlyingCookies)\n }\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\nfunction createEmptyCookies(): ReadonlyRequestCookies {\n return RequestCookiesAdapter.seal(new RequestCookies(new Headers({})))\n}\n\ninterface CacheLifetime {}\nconst CachedCookies = new WeakMap<\n CacheLifetime,\n Promise<ReadonlyRequestCookies>\n>()\n\nfunction makeHangingCookies(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyRequestCookies> {\n const cachedPromise = CachedCookies.get(prerenderStore)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = makeHangingPromise<ReadonlyRequestCookies>(\n prerenderStore.renderSignal,\n workStore.route,\n '`cookies()`'\n )\n CachedCookies.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookies(\n underlyingCookies: ReadonlyRequestCookies\n): Promise<ReadonlyRequestCookies> {\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = Promise.resolve(underlyingCookies)\n CachedCookies.set(underlyingCookies, promise)\n\n return promise\n}\n\nfunction makeUntrackedCookiesWithDevWarnings(\n requestStore: RequestStore,\n underlyingCookies: ReadonlyRequestCookies,\n route?: string\n): Promise<ReadonlyRequestCookies> {\n if (requestStore.asyncApiPromises) {\n const early = isInEarlyRenderStage(requestStore)\n let promise: Promise<ReadonlyRequestCookies>\n if (underlyingCookies === requestStore.mutableCookies) {\n promise = early\n ? requestStore.asyncApiPromises.earlyMutableCookies\n : requestStore.asyncApiPromises.mutableCookies\n } else if (underlyingCookies === requestStore.cookies) {\n promise = early\n ? requestStore.asyncApiPromises.earlyCookies\n : requestStore.asyncApiPromises.cookies\n } else {\n throw new InvariantError(\n 'Received an underlying cookies object that does not match either `cookies` or `mutableCookies`'\n )\n }\n return instrumentCookiesPromiseWithDevWarnings(promise, route)\n }\n\n const cachedCookies = CachedCookies.get(underlyingCookies)\n if (cachedCookies) {\n return cachedCookies\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingCookies,\n requestStore,\n RenderStage.Runtime\n )\n\n const proxiedPromise = instrumentCookiesPromiseWithDevWarnings(promise, route)\n\n CachedCookies.set(underlyingCookies, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createCookiesAccessError\n)\n\nfunction instrumentCookiesPromiseWithDevWarnings(\n promise: Promise<ReadonlyRequestCookies>,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n size: replaceableWarningDescriptor(promise, 'size', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n getAll: replaceableWarningDescriptor(promise, 'getAll', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n clear: replaceableWarningDescriptor(promise, 'clear', route),\n toString: replaceableWarningDescriptor(promise, 'toString', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`cookies().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...cookies()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createCookiesAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`cookies()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n","import {\n HeadersAdapter,\n type ReadonlyHeaders,\n} from '../web/spec-extension/adapters/headers'\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport {\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n type PrerenderStoreModern,\n type RequestStore,\n isInEarlyRenderStage,\n} from '../app-render/work-unit-async-storage.external'\nimport {\n postponeWithTracking,\n throwToInterruptStaticGeneration,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n delayUntilRuntimeStage,\n makeDevtoolsIOAwarePromise,\n makeHangingPromise,\n} from '../dynamic-rendering-utils'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { isRequestAPICallableInsideAfter } from './utils'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { RenderStage } from '../app-render/staged-rendering'\n\n/**\n * This function allows you to read the HTTP incoming request headers in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers) and\n * [Middleware](https://nextjs.org/docs/app/building-your-application/routing/middleware).\n *\n * Read more: [Next.js Docs: `headers`](https://nextjs.org/docs/app/api-reference/functions/headers)\n */\nexport function headers(): Promise<ReadonlyHeaders> {\n const callingExpression = 'headers'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n if (\n workUnitStore &&\n workUnitStore.phase === 'after' &&\n !isRequestAPICallableInsideAfter()\n ) {\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`after()\\`. This is not supported. If you need this data inside an \\`after()\\` callback, use \\`headers()\\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`\n )\n }\n\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n const underlyingHeaders = HeadersAdapter.seal(new Headers({}))\n return makeUntrackedHeaders(underlyingHeaders)\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache': {\n const error = new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, headers)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside a function cached with \\`unstable_cache()\\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \\`headers()\\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`headers()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'private-cache':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender':\n return makeHangingHeaders(workStore, workUnitStore)\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`headers`'\n throw new InvariantError(\n `${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n // PPR Prerender (no cacheComponents)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how headers has worked in PPR without cacheComponents.\n // TODO consider switching the semantic to throw on property access instead\n return postponeWithTracking(\n workStore.route,\n callingExpression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n // Legacy Prerender\n // We are in a legacy static generation mode while prerendering\n // We track dynamic access here so we don't need to wrap the headers in\n // individual property access tracking.\n return throwToInterruptStaticGeneration(\n callingExpression,\n workStore,\n workUnitStore\n )\n case 'prerender-runtime':\n return delayUntilRuntimeStage(\n workUnitStore,\n makeUntrackedHeaders(workUnitStore.headers)\n )\n case 'private-cache':\n // Private caches are delayed until the runtime stage in use-cache-wrapper,\n // so we don't need an additional delay here.\n return makeUntrackedHeaders(workUnitStore.headers)\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedHeadersWithDevWarnings(\n workUnitStore.headers,\n workStore?.route,\n workUnitStore\n )\n } else if (workUnitStore.asyncApiPromises) {\n return isInEarlyRenderStage(workUnitStore)\n ? workUnitStore.asyncApiPromises.earlyHeaders\n : workUnitStore.asyncApiPromises.headers\n } else {\n return makeUntrackedHeaders(workUnitStore.headers)\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n }\n\n // If we end up here, there was no work store or work unit store present.\n throwForMissingRequestStore(callingExpression)\n}\n\ninterface CacheLifetime {}\nconst CachedHeaders = new WeakMap<CacheLifetime, Promise<ReadonlyHeaders>>()\n\nfunction makeHangingHeaders(\n workStore: WorkStore,\n prerenderStore: PrerenderStoreModern\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(prerenderStore)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeHangingPromise<ReadonlyHeaders>(\n prerenderStore.renderSignal,\n workStore.route,\n '`headers()`'\n )\n CachedHeaders.set(prerenderStore, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeaders(\n underlyingHeaders: ReadonlyHeaders\n): Promise<ReadonlyHeaders> {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = Promise.resolve(underlyingHeaders)\n CachedHeaders.set(underlyingHeaders, promise)\n\n return promise\n}\n\nfunction makeUntrackedHeadersWithDevWarnings(\n underlyingHeaders: ReadonlyHeaders,\n route: string | undefined,\n requestStore: RequestStore\n): Promise<ReadonlyHeaders> {\n if (requestStore.asyncApiPromises) {\n const promise = isInEarlyRenderStage(requestStore)\n ? requestStore.asyncApiPromises.earlyHeaders\n : requestStore.asyncApiPromises.headers\n return instrumentHeadersPromiseWithDevWarnings(promise, route)\n }\n\n const cachedHeaders = CachedHeaders.get(underlyingHeaders)\n if (cachedHeaders) {\n return cachedHeaders\n }\n\n const promise = makeDevtoolsIOAwarePromise(\n underlyingHeaders,\n requestStore,\n RenderStage.Runtime\n )\n\n const proxiedPromise = instrumentHeadersPromiseWithDevWarnings(promise, route)\n\n CachedHeaders.set(underlyingHeaders, proxiedPromise)\n\n return proxiedPromise\n}\n\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createHeadersAccessError\n)\n\nfunction instrumentHeadersPromiseWithDevWarnings(\n promise: Promise<ReadonlyHeaders>,\n route: string | undefined\n) {\n Object.defineProperties(promise, {\n [Symbol.iterator]: replaceableWarningDescriptorForSymbolIterator(\n promise,\n route\n ),\n append: replaceableWarningDescriptor(promise, 'append', route),\n delete: replaceableWarningDescriptor(promise, 'delete', route),\n get: replaceableWarningDescriptor(promise, 'get', route),\n has: replaceableWarningDescriptor(promise, 'has', route),\n set: replaceableWarningDescriptor(promise, 'set', route),\n getSetCookie: replaceableWarningDescriptor(promise, 'getSetCookie', route),\n forEach: replaceableWarningDescriptor(promise, 'forEach', route),\n keys: replaceableWarningDescriptor(promise, 'keys', route),\n values: replaceableWarningDescriptor(promise, 'values', route),\n entries: replaceableWarningDescriptor(promise, 'entries', route),\n })\n return promise\n}\n\nfunction replaceableWarningDescriptor(\n target: unknown,\n prop: string,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, `\\`headers().${prop}\\``)\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction replaceableWarningDescriptorForSymbolIterator(\n target: unknown,\n route: string | undefined\n) {\n return {\n enumerable: false,\n get() {\n warnForSyncAccess(route, '`...headers()` or similar iteration')\n return undefined\n },\n set(value: unknown) {\n Object.defineProperty(target, Symbol.iterator, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n },\n configurable: true,\n }\n}\n\nfunction createHeadersAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`headers()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n","import {\n getDraftModeProviderForCacheScope,\n throwForMissingRequestStore,\n} from '../app-render/work-unit-async-storage.external'\n\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\n\nimport {\n workAsyncStorage,\n type WorkStore,\n} from '../app-render/work-async-storage.external'\nimport { workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external'\nimport {\n abortAndThrowOnSynchronousRequestDataAccess,\n postponeWithTracking,\n trackDynamicDataInDynamicRender,\n} from '../app-render/dynamic-rendering'\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { delayUntilRuntimeStage } from '../dynamic-rendering-utils'\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect'\n\nexport function draftMode(): Promise<DraftMode> {\n const callingExpression = 'draftMode'\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore || !workUnitStore) {\n throwForMissingRequestStore(callingExpression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-runtime':\n // TODO(runtime-ppr): does it make sense to delay this? normally it's always microtasky\n return delayUntilRuntimeStage(\n workUnitStore,\n createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n )\n case 'request':\n return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore)\n\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n // Inside of `\"use cache\"` or `unstable_cache`, draft mode is available if\n // the outmost work unit store is a request store (or a runtime prerender),\n // and if draft mode is enabled.\n const draftModeProvider = getDraftModeProviderForCacheScope(\n workStore,\n workUnitStore\n )\n\n if (draftModeProvider) {\n return createOrGetCachedDraftMode(draftModeProvider, workStore)\n }\n\n // Otherwise, we fall through to providing an empty draft mode.\n // eslint-disable-next-line no-fallthrough\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n // Return empty draft mode\n return createOrGetCachedDraftMode(null, workStore)\n case 'prerender-client':\n case 'validation-client': {\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n }\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`${callingExpression}()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n\n default:\n return workUnitStore satisfies never\n }\n}\n\nfunction createOrGetCachedDraftMode(\n draftModeProvider: DraftModeProvider | null,\n workStore: WorkStore | undefined\n): Promise<DraftMode> {\n const cacheKey = draftModeProvider ?? NullDraftMode\n const cachedDraftMode = CachedDraftModes.get(cacheKey)\n\n if (cachedDraftMode) {\n return cachedDraftMode\n }\n\n if (process.env.NODE_ENV === 'development' && !workStore?.isPrefetchRequest) {\n const route = workStore?.route\n return createDraftModeWithDevWarnings(draftModeProvider, route)\n } else {\n return Promise.resolve(new DraftMode(draftModeProvider))\n }\n}\n\ninterface CacheLifetime {}\nconst NullDraftMode = {}\nconst CachedDraftModes = new WeakMap<CacheLifetime, Promise<DraftMode>>()\n\nfunction createDraftModeWithDevWarnings(\n underlyingProvider: null | DraftModeProvider,\n route: undefined | string\n): Promise<DraftMode> {\n const instance = new DraftMode(underlyingProvider)\n const promise = Promise.resolve(instance)\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n switch (prop) {\n case 'isEnabled':\n warnForSyncAccess(route, `\\`draftMode().${prop}\\``)\n break\n case 'enable':\n case 'disable': {\n warnForSyncAccess(route, `\\`draftMode().${prop}()\\``)\n break\n }\n default: {\n // We only warn for well-defined properties of the draftMode object.\n }\n }\n\n return ReflectAdapter.get(target, prop, receiver)\n },\n })\n\n return proxiedPromise\n}\n\nclass DraftMode {\n /**\n * @internal - this declaration is stripped via `tsc --stripInternal`\n */\n private readonly _provider: null | DraftModeProvider\n\n constructor(provider: null | DraftModeProvider) {\n this._provider = provider\n }\n get isEnabled() {\n if (this._provider !== null) {\n return this._provider.isEnabled\n }\n return false\n }\n public enable() {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n trackDynamicDraftMode('draftMode().enable()', this.enable)\n if (this._provider !== null) {\n this._provider.enable()\n }\n }\n public disable() {\n trackDynamicDraftMode('draftMode().disable()', this.disable)\n if (this._provider !== null) {\n this._provider.disable()\n }\n }\n}\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(\n createDraftModeAccessError\n)\n\nfunction createDraftModeAccessError(\n route: string | undefined,\n expression: string\n) {\n const prefix = route ? `Route \"${route}\" ` : 'This route '\n return new Error(\n `${prefix}used ${expression}. ` +\n `\\`draftMode()\\` returns a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction trackDynamicDraftMode(expression: string, constructorOpt: Function) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (workStore) {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n if (workUnitStore?.phase === 'after') {\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside \\`after()\\`. The enabled status of \\`draftMode()\\` can be read inside \\`after()\\` but you cannot enable or disable \\`draftMode()\\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`\n )\n }\n\n if (workStore.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache': {\n const error = new Error(\n `Route ${workStore.route} used \"${expression}\" inside \"use cache\". The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`\n )\n Error.captureStackTrace(error, constructorOpt)\n workStore.invalidDynamicUsageError ??= error\n throw error\n }\n case 'unstable-cache':\n throw new Error(\n `Route ${workStore.route} used \"${expression}\" inside a function cached with \\`unstable_cache()\\`. The enabled status of \\`draftMode()\\` can be read in caches but you must not enable or disable \\`draftMode()\\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`\n )\n\n case 'prerender':\n case 'prerender-runtime': {\n const error = new Error(\n `Route ${workStore.route} used ${expression} without first calling \\`await connection()\\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`\n )\n return abortAndThrowOnSynchronousRequestDataAccess(\n workStore.route,\n expression,\n error,\n workUnitStore\n )\n }\n case 'prerender-client':\n case 'validation-client':\n const exportName = '`draftMode`'\n throw new InvariantError(\n `${exportName} must not be used within a Client Component. Next.js should be preventing ${exportName} from being included in Client Components statically, but did not in this case.`\n )\n case 'prerender-ppr':\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n const err = new DynamicServerError(\n `Route ${workStore.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n workStore.dynamicUsageDescription = expression\n workStore.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n trackDynamicDataInDynamicRender(workUnitStore)\n break\n case 'generate-static-params':\n throw new Error(\n `Route ${workStore.route} used \\`${expression}\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n default:\n workUnitStore satisfies never\n }\n }\n }\n}\n","module.exports.cookies = require('./dist/server/request/cookies').cookies\nmodule.exports.headers = require('./dist/server/request/headers').headers\nmodule.exports.draftMode = require('./dist/server/request/draft-mode').draftMode\n"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","src_exports","RequestCookies","ResponseCookies","parseCookie","parseSetCookie","stringifyCookie","module","exports","c","_a","attrs","path","expires","Date","toUTCString","maxAge","domain","secure","httpOnly","sameSite","partitioned","priority","filter","Boolean","stringified","encodeURIComponent","length","join","cookie","map","Map","pair","split","splitAt","indexOf","set","slice","decodeURIComponent","setCookie","attributes","httponly","maxage","samesite","fromEntries","value2","toLowerCase","replace","Number","parseSameSite","parsePriority","compact","t","newT","SAME_SITE","string","includes","PRIORITY","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","test","charAt","notSpecialChar","push","substring","requestHeaders","_parsed","_headers","header","parsed","Symbol","iterator","size","args","getAll","Array","_","n","has","delete","names","result","isArray","clear","keys","for","JSON","stringify","toString","values","v","responseHeaders","_b","_c","getSetCookie","cookieStrings","cookieString","normalizeCookie","options","bag","headers","serialized","append","now","ReflectAdapter","prop","receiver","Reflect","bind","deleteProperty","MutableRequestCookiesAdapter","ReadonlyRequestCookiesError","RequestCookiesAdapter","appendMutableCookies","areCookiesMutableInCurrentPhase","createCookiesWithMutableAccessCheck","getModifiedCookieValues","responseCookiesToRequestCookies","Error","constructor","callable","seal","cookies","Proxy","SYMBOL_MODIFY_COOKIE_VALUES","modified","mutableCookies","modifiedCookieValues","resCookies","returnedCookies","wrap","onUpdateCookies","responseCookies","Headers","modifiedValues","modifiedCookies","Set","updateResponseCookies","workStore","workAsyncStorage","getStore","pathWasRevalidated","ActionDidRevalidateStaticAndDynamic","allCookies","serializedCookies","tempCookies","wrappedCookies","add","requestStore","ensureCookiesAreStillMutable","phase","_callingExpression","requestCookies","createDedupedByCallsiteServerErrorLoggerDev","errorRef","current","cache","React","fn","logErrorOrWarn","process","env","__NEXT_CACHE_COMPONENTS","console","error","warn","flushCurrentErrorIfNew","getMessage","logDedupedError","message","NODE_ENV","callStackFrames","stack","undefined","afterTaskAsyncStorageInstance","createAsyncLocalStorage","afterTaskAsyncStorage","isRequestAPICallableInsideAfter","throwForSearchParamsAccessInUseCache","throwWithStaticGenerationBailoutErrorWithDynamicError","route","expression","StaticGenBailoutError","constructorOpt","captureStackTrace","invalidDynamicUsageError","afterTaskStore","rootTaskSpawnPhase","HeadersAdapter","ReadonlyHeadersError","lowercased","original","find","o","merge","existing","forEach","callbackfn","thisArg","entries","hexclaveAppInternalsSymbol","getInternalsHookOrThrow","adminApp","hookName","internals","hook","useMetricsOrThrow","includeAnonymous","filters","useUserActivityOrThrow","userId","useMetricsUserCountsOrThrow","createTooltipContext","createTooltipScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","props","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","children","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","window","clearTimeout","scope","onOpen","onClose","setTimeout","onPointerInTransitChange","inTransit","displayName","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","open","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","openTimerRef","wasOpenDelayedRef","setOpen","defaultProp","onChange","open2","document","dispatchEvent","CustomEvent","caller","stateAttribute","handleOpen","handleClose","handleDelayedOpen","onTriggerChange","onTriggerEnter","onTriggerLeave","TRIGGER_NAME","TooltipTrigger","forwardedRef","triggerProps","context","ref","composedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","removeEventListener","asChild","button","onPointerMove","event","pointerType","onPointerLeave","onPointerDown","addEventListener","once","onFocus","onBlur","onClick","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","TooltipPortal","container","present","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","content","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","x","clientX","y","clientY","exitSide","getExitSideFromRect","getBoundingClientRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","contains","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","isInside","Slottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","capture","disableOutsidePointerEvents","onFocusOutside","preventDefault","onDismiss","style","id","role","ARROW_NAME","TooltipArrow","arrowProps","visuallyHiddenContentContext","point","rect","top","Math","abs","bottom","right","left","min","padding","polygon","inside","i","j","ii","jj","xi","yi","xj","yj","intersect","points","newPoints","sort","a","b","getHullPresorted","upperHull","p","q","r","pop","lowerHull","concat","Provider","Root3","Trigger","Portal","Content2","Arrow2","SiteLoadingIndicatorDisplay","className","SiteLoadingIndicator","Loading","colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","freeze","shouldShowNonSevereVersionCheck","shouldDisplayVersionResult","enableNonSevereCheck","severe","checkVersion","onResult","delay","silentFailure","errorPrefix","location","origin","cancelled","res","fetch","method","body","clientPackageName","clientVersion","version","status","text","data","json","upToDate","e","callingExpression","workUnitStore","workUnitAsyncStorage","forceStatic","underlyingCookies","createEmptyCookies","makeUntrackedCookies","dynamicShouldError","type","makeHangingCookies","exportName","InvariantError","postponeWithTracking","dynamicTracking","throwToInterruptStaticGeneration","delayUntilRuntimeStage","trackDynamicDataInDynamicRender","userspaceMutableCookies","makeUntrackedCookiesWithDevWarnings","asyncApiPromises","early","isInEarlyRenderStage","earlyMutableCookies","earlyCookies","throwForMissingRequestStore","CachedCookies","WeakMap","prerenderStore","cachedPromise","promise","makeHangingPromise","renderSignal","cachedCookies","Promise","resolve","instrumentCookiesPromiseWithDevWarnings","makeDevtoolsIOAwarePromise","RenderStage","Runtime","proxiedPromise","warnForSyncAccess","createCookiesAccessError","defineProperties","replaceableWarningDescriptorForSymbolIterator","replaceableWarningDescriptor","writable","configurable","prefix","underlyingHeaders","makeUntrackedHeaders","makeHangingHeaders","makeUntrackedHeadersWithDevWarnings","earlyHeaders","CachedHeaders","cachedHeaders","instrumentHeadersPromiseWithDevWarnings","createHeadersAccessError","draftMode","createOrGetCachedDraftMode","draftModeProvider","getDraftModeProviderForCacheScope","cacheKey","NullDraftMode","cachedDraftMode","CachedDraftModes","isPrefetchRequest","createDraftModeWithDevWarnings","DraftMode","underlyingProvider","instance","provider","_provider","isEnabled","enable","trackDynamicDraftMode","disable","createDraftModeAccessError","abortAndThrowOnSynchronousRequestDataAccess","revalidate","err","DynamicServerError","dynamicUsageDescription","dynamicUsageStack"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,10,12,16,17,18,19,20,21,30,31,32,33]}