@arbidocs/blocks 0.4.71 → 0.4.73

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 (179) hide show
  1. package/dist/agents/index.cjs +404 -266
  2. package/dist/agents/index.js +10 -8
  3. package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
  4. package/dist/agents/tasks/WorkflowThreadStrip.d.ts +58 -0
  5. package/dist/agents/tasks/index.d.ts +1 -0
  6. package/dist/agents/workflows/WorkflowRunner.d.ts +70 -0
  7. package/dist/agents/workflows/index.d.ts +7 -1
  8. package/dist/agents/workflows/planSteps.d.ts +28 -0
  9. package/dist/agents/workflows/run.d.ts +97 -0
  10. package/dist/agents/workflows/skillMarkdown.d.ts +15 -0
  11. package/dist/agents/workflows/types.d.ts +109 -0
  12. package/dist/agents/workflows/useWorkflowPreview.d.ts +14 -0
  13. package/dist/agents/workflows/useWorkflowView.d.ts +54 -0
  14. package/dist/agents/workflows/workflow.d.ts +3 -1
  15. package/dist/calendar/CalendarGrid.d.ts +2 -0
  16. package/dist/calendar/CalendarList.d.ts +2 -0
  17. package/dist/calendar/CalendarSettingsForm.d.ts +2 -0
  18. package/dist/calendar/EventDetails.d.ts +2 -0
  19. package/dist/calendar/EventEditor.d.ts +2 -0
  20. package/dist/calendar/MiniMonth.d.ts +2 -0
  21. package/dist/calendar/RecurrenceEditor.d.ts +13 -0
  22. package/dist/calendar/RoomFinder.d.ts +2 -0
  23. package/dist/calendar/SchedulingAssistant.d.ts +2 -0
  24. package/dist/calendar/ScopeDialog.d.ts +2 -0
  25. package/dist/calendar/TimeZonePicker.d.ts +2 -0
  26. package/dist/calendar/colors.d.ts +4 -0
  27. package/dist/calendar/draft.d.ts +43 -0
  28. package/dist/calendar/format.d.ts +14 -0
  29. package/dist/calendar/grid-model.d.ts +24 -0
  30. package/dist/calendar/index.cjs +4122 -0
  31. package/dist/calendar/index.cjs.map +1 -0
  32. package/dist/calendar/index.d.ts +30 -0
  33. package/dist/calendar/index.js +4043 -0
  34. package/dist/calendar/index.js.map +1 -0
  35. package/dist/calendar/labels.d.ts +4 -0
  36. package/dist/calendar/recurrence-labels.d.ts +22 -0
  37. package/dist/calendar/recurrence.d.ts +66 -0
  38. package/dist/calendar/reminders.d.ts +26 -0
  39. package/dist/calendar/scheduling.d.ts +27 -0
  40. package/dist/calendar/types.d.ts +605 -0
  41. package/dist/calendar/ui.d.ts +16 -0
  42. package/dist/calendar/zone.d.ts +56 -0
  43. package/dist/chat/index.cjs +123 -123
  44. package/dist/chat/index.js +3 -3
  45. package/dist/chunk-2P3T23C7.js +1250 -0
  46. package/dist/chunk-2P3T23C7.js.map +1 -0
  47. package/dist/{chunk-XNRGCQPZ.cjs → chunk-3SFFTSOI.cjs} +5 -5
  48. package/dist/{chunk-XNRGCQPZ.cjs.map → chunk-3SFFTSOI.cjs.map} +1 -1
  49. package/dist/{chunk-7WM62NMM.cjs → chunk-6OL5S7MJ.cjs} +5 -2
  50. package/dist/chunk-6OL5S7MJ.cjs.map +1 -0
  51. package/dist/chunk-7D737FLE.cjs +43 -0
  52. package/dist/chunk-7D737FLE.cjs.map +1 -0
  53. package/dist/{chunk-VUEZARW5.cjs → chunk-B3WCKBJ7.cjs} +278 -5
  54. package/dist/chunk-B3WCKBJ7.cjs.map +1 -0
  55. package/dist/{chunk-L5UPP2HC.js → chunk-D46ZAPEE.js} +5 -2
  56. package/dist/chunk-D46ZAPEE.js.map +1 -0
  57. package/dist/{chunk-LFGJAZ5H.js → chunk-DDF5GPIJ.js} +6 -36
  58. package/dist/chunk-DDF5GPIJ.js.map +1 -0
  59. package/dist/chunk-DETZZBG2.cjs +91 -0
  60. package/dist/chunk-DETZZBG2.cjs.map +1 -0
  61. package/dist/chunk-EVUEIBNU.js +89 -0
  62. package/dist/chunk-EVUEIBNU.js.map +1 -0
  63. package/dist/{chunk-CXWESDIZ.cjs → chunk-F4RUCUXF.cjs} +6 -6
  64. package/dist/{chunk-CXWESDIZ.cjs.map → chunk-F4RUCUXF.cjs.map} +1 -1
  65. package/dist/{chunk-DABEWNL2.js → chunk-G5DP27DU.js} +3 -3
  66. package/dist/{chunk-DABEWNL2.js.map → chunk-G5DP27DU.js.map} +1 -1
  67. package/dist/{chunk-VZGBCBYB.js → chunk-GJV2G4FC.js} +276 -7
  68. package/dist/chunk-GJV2G4FC.js.map +1 -0
  69. package/dist/chunk-GTNUQBXI.cjs +1296 -0
  70. package/dist/chunk-GTNUQBXI.cjs.map +1 -0
  71. package/dist/{chunk-7M22KND4.cjs → chunk-IUR565UW.cjs} +303 -530
  72. package/dist/chunk-IUR565UW.cjs.map +1 -0
  73. package/dist/{chunk-5DM6VU4L.cjs → chunk-KJ3QEKOJ.cjs} +3 -3
  74. package/dist/{chunk-5DM6VU4L.cjs.map → chunk-KJ3QEKOJ.cjs.map} +1 -1
  75. package/dist/{chunk-THO7DZNN.cjs → chunk-MUMH3Z6K.cjs} +20 -15
  76. package/dist/chunk-MUMH3Z6K.cjs.map +1 -0
  77. package/dist/{chunk-3TVTG7FK.js → chunk-ORA2XE7U.js} +4 -4
  78. package/dist/{chunk-3TVTG7FK.js.map → chunk-ORA2XE7U.js.map} +1 -1
  79. package/dist/{chunk-5HOAOKZL.js → chunk-OYMWV45N.js} +21 -16
  80. package/dist/chunk-OYMWV45N.js.map +1 -0
  81. package/dist/{chunk-HLMFU7L2.js → chunk-QDNXEB3T.js} +272 -488
  82. package/dist/chunk-QDNXEB3T.js.map +1 -0
  83. package/dist/{chunk-ILGHS6ZV.js → chunk-SB5ZKOYN.js} +3 -3
  84. package/dist/{chunk-ILGHS6ZV.js.map → chunk-SB5ZKOYN.js.map} +1 -1
  85. package/dist/{chunk-CPMNAJLF.js → chunk-TX2ZICS7.js} +24 -4
  86. package/dist/chunk-TX2ZICS7.js.map +1 -0
  87. package/dist/{chunk-2ZTONLT5.cjs → chunk-ULWRNGGE.cjs} +25 -4
  88. package/dist/chunk-ULWRNGGE.cjs.map +1 -0
  89. package/dist/{chunk-BMWZTNZB.js → chunk-VRPRAU3J.js} +3 -3
  90. package/dist/{chunk-BMWZTNZB.js.map → chunk-VRPRAU3J.js.map} +1 -1
  91. package/dist/{chunk-LTA2IAQB.cjs → chunk-WOYUXVVQ.cjs} +8 -8
  92. package/dist/{chunk-LTA2IAQB.cjs.map → chunk-WOYUXVVQ.cjs.map} +1 -1
  93. package/dist/chunk-XD2M6LIG.js +41 -0
  94. package/dist/chunk-XD2M6LIG.js.map +1 -0
  95. package/dist/{chunk-WBDK4PIA.cjs → chunk-Z5VUZ6YD.cjs} +6 -37
  96. package/dist/chunk-Z5VUZ6YD.cjs.map +1 -0
  97. package/dist/collaboration/index.cjs +44 -45
  98. package/dist/collaboration/index.js +2 -3
  99. package/dist/connect/docx.cjs +2 -2
  100. package/dist/connect/docx.js +1 -1
  101. package/dist/connect/index.cjs +370 -48
  102. package/dist/connect/index.cjs.map +1 -1
  103. package/dist/connect/index.d.ts +2 -1
  104. package/dist/connect/index.js +331 -12
  105. package/dist/connect/index.js.map +1 -1
  106. package/dist/connection/ConnectedSettings.d.ts +13 -0
  107. package/dist/connection/ConnectedWorkflowBuilder.d.ts +44 -0
  108. package/dist/connection/ConnectedWorkflowRunner.d.ts +27 -0
  109. package/dist/connection/useWorkflowThread.d.ts +34 -0
  110. package/dist/document-tools/index.cjs +4 -5
  111. package/dist/document-tools/index.cjs.map +1 -1
  112. package/dist/document-tools/index.js +1 -2
  113. package/dist/document-tools/index.js.map +1 -1
  114. package/dist/facts/index.cjs +1 -1
  115. package/dist/facts/index.js +1 -1
  116. package/dist/files/import/index.d.ts +0 -1
  117. package/dist/files/index.cjs +31 -169
  118. package/dist/files/index.cjs.map +1 -1
  119. package/dist/files/index.js +8 -147
  120. package/dist/files/index.js.map +1 -1
  121. package/dist/home/index.cjs +21 -20
  122. package/dist/home/index.cjs.map +1 -1
  123. package/dist/home/index.js +3 -2
  124. package/dist/home/index.js.map +1 -1
  125. package/dist/index.cjs +680 -542
  126. package/dist/index.cjs.map +1 -1
  127. package/dist/index.js +15 -13
  128. package/dist/index.js.map +1 -1
  129. package/dist/settings/Billing.d.ts +4 -0
  130. package/dist/settings/IdentityVerification.d.ts +83 -0
  131. package/dist/settings/PlanBadge.d.ts +2 -2
  132. package/dist/settings/PlanCard.d.ts +6 -1
  133. package/dist/settings/ProfileCard.d.ts +5 -1
  134. package/dist/settings/SubscriptionParts.d.ts +6 -2
  135. package/dist/settings/index.cjs +128 -95
  136. package/dist/settings/index.cjs.map +1 -1
  137. package/dist/settings/index.d.ts +1 -0
  138. package/dist/settings/index.js +64 -47
  139. package/dist/settings/index.js.map +1 -1
  140. package/dist/shell/ActionCluster.d.ts +3 -1
  141. package/dist/shell/index.cjs +54 -54
  142. package/dist/shell/index.js +2 -2
  143. package/dist/studio/index.cjs +6 -6
  144. package/dist/studio/index.js +4 -4
  145. package/dist/workflow-canvas/StepInspector.d.ts +46 -0
  146. package/dist/workflow-canvas/TriggerInspector.d.ts +46 -0
  147. package/dist/workflow-canvas/WorkflowBuilder.d.ts +55 -0
  148. package/dist/workflow-canvas/WorkflowCanvas.d.ts +65 -0
  149. package/dist/workflow-canvas/edit.d.ts +54 -0
  150. package/dist/workflow-canvas/index.cjs +1609 -0
  151. package/dist/workflow-canvas/index.cjs.map +1 -0
  152. package/dist/workflow-canvas/index.d.ts +13 -0
  153. package/dist/workflow-canvas/index.js +1579 -0
  154. package/dist/workflow-canvas/index.js.map +1 -0
  155. package/dist/workflow-canvas/trigger.d.ts +51 -0
  156. package/dist/workspaces/index.cjs +2 -3
  157. package/dist/workspaces/index.cjs.map +1 -1
  158. package/dist/workspaces/index.js +1 -2
  159. package/dist/workspaces/index.js.map +1 -1
  160. package/package.json +41 -12
  161. package/src/calendar/calendar.css +316 -0
  162. package/src/workflow-canvas/canvas.css +113 -0
  163. package/dist/chunk-2ZTONLT5.cjs.map +0 -1
  164. package/dist/chunk-5HOAOKZL.js.map +0 -1
  165. package/dist/chunk-7M22KND4.cjs.map +0 -1
  166. package/dist/chunk-7WM62NMM.cjs.map +0 -1
  167. package/dist/chunk-CPMNAJLF.js.map +0 -1
  168. package/dist/chunk-DCDVWPMB.cjs +0 -29
  169. package/dist/chunk-DCDVWPMB.cjs.map +0 -1
  170. package/dist/chunk-HLMFU7L2.js.map +0 -1
  171. package/dist/chunk-L5UPP2HC.js.map +0 -1
  172. package/dist/chunk-LFGJAZ5H.js.map +0 -1
  173. package/dist/chunk-THO7DZNN.cjs.map +0 -1
  174. package/dist/chunk-TJMKFY5P.js +0 -27
  175. package/dist/chunk-TJMKFY5P.js.map +0 -1
  176. package/dist/chunk-VUEZARW5.cjs.map +0 -1
  177. package/dist/chunk-VZGBCBYB.js.map +0 -1
  178. package/dist/chunk-WBDK4PIA.cjs.map +0 -1
  179. package/dist/files/import/CalendarImportRow.d.ts +0 -26
@@ -37,3 +37,4 @@ export { EmailWorkspaceDialogView, DEFAULT_EMAIL_WORKSPACE_DIALOG_LABELS, type E
37
37
  export { PlanNotice, PlanStack, PlanTransition, PlanPickerHeader, PlanPickerCard, PlanActionRow, PlanActionButton, SubscriptionStatusView, PlanDialogFrame, CheckoutDialogFrame, QuotaExceededDialogView, WelcomeProjectPicker, SubscriptionSectionView, ProjectGroup, ProjectPlanPicker, ProjectNameLabel, ProjectRowActions, RowIconAction, RowButton, UsageActionButton, UsageQuotaHint, UsageSection, DEFAULT_SUBSCRIPTION_STATUS_LABELS, DEFAULT_CHECKOUT_DIALOG_LABELS, DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS, DEFAULT_SUBSCRIPTION_SECTION_LABELS, type SubscriptionMeterView, type SubscriptionStatusViewProps, type SubscriptionStatusLabels, type PlanDialogFrameProps, type CheckoutDialogFrameProps, type CheckoutDialogLabels, type QuotaExceededDialogViewProps, type QuotaExceededDialogLabels, type WelcomeProjectPickerProps, type SubscriptionSectionViewProps, type SubscriptionSectionLabels, type RowIconActionProps, } from './SubscriptionParts';
38
38
  export { ErrorDialogView, DEFAULT_ERROR_DIALOG_LABELS, type ErrorDialogViewProps, type ErrorDialogDetails, type ErrorDialogLabels, } from './ErrorDialog';
39
39
  export { formatSessionTtl, toActiveSessionViews, toLogoutSessionViews, toDeleteBlockerViews, toNotificationCategories, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, type SessionLike, type ToActiveSessionViewsOptions, type DeleteBlockerLike, type EmailNotificationCategoryDef, } from './account-views';
40
+ export { IdentityVerificationCard, IdentityVerificationDialog, RequireVerified, DEFAULT_IDENTITY_VERIFICATION_LABELS, type IdentityVerificationCardProps, type IdentityVerificationDialogProps, type RequireVerifiedProps, type IdentityVerificationLabels, } from './IdentityVerification';
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-VZGBCBYB.js';
2
+ export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, RequireVerified, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories } from '../chunk-GJV2G4FC.js';
3
3
  export { ModalBreadcrumbHeader, ModalCrumbs } from '../chunk-RC6VTY2H.js';
4
4
  import { UsageMeter } from '../chunk-D5T53XCL.js';
5
5
  export { DEFAULT_DOCUMENT_PICKER_LABELS, DEFAULT_TRI_STATE_FILTER_MENU_LABELS, DocumentPicker, MultiSelect, TriStateFilterMenu } from '../chunk-CKB64Z4R.js';
@@ -8,9 +8,8 @@ import { TONE_BORDER, TONE_SURFACE, ToneBadge } from '../chunk-DPLRHEJZ.js';
8
8
  import '../chunk-VILAPTCB.js';
9
9
  import '../chunk-NPLYHR2E.js';
10
10
  import { formatCount } from '../chunk-OXF2IFXG.js';
11
- import { ModalScaffold, ModalSection, ModalSectionTitle, ModalHeader } from '../chunk-CPMNAJLF.js';
12
- export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-CPMNAJLF.js';
13
- import '../chunk-TJMKFY5P.js';
11
+ import { ModalScaffold, ModalSection, ModalSectionTitle, ModalHeader } from '../chunk-TX2ZICS7.js';
12
+ export { MODAL_SECTION_TITLE_CLASS, ModalHeader, ModalScaffold, ModalSection, ModalSectionTitle } from '../chunk-TX2ZICS7.js';
14
13
  import { testIdOr, prefixedTestId } from '../chunk-7F6CBP3Z.js';
15
14
  import '../chunk-VUNV25KB.js';
16
15
  import { useMemo, useRef, useState, useId, Fragment as Fragment$1 } from 'react';
@@ -1455,7 +1454,7 @@ function QuotaMeter({
1455
1454
  var DEFAULT_PLAN_CARD_LABELS = {
1456
1455
  currentPlan: "Current plan",
1457
1456
  popular: "Popular",
1458
- noMonthlyCost: "No monthly cost",
1457
+ noMonthlyCost: "\xA30",
1459
1458
  perMonth: "/mo",
1460
1459
  current: "Current",
1461
1460
  monthly: "Monthly",
@@ -1465,10 +1464,16 @@ var DEFAULT_PLAN_CARD_LABELS = {
1465
1464
  havePromoCode: "Have a promo code?",
1466
1465
  promoCode: "Promo Code",
1467
1466
  enterCode: "Enter code",
1468
- pricingExplainer: "Pricing Explainer",
1469
- explainerTiers: "Pro tiers (Pro, Pro x2, Pro x10) are subscriptions linked to a pool of AI credits and document storage. This pool is shared with any project collaborators, subject to a per-user daily usage limit determined by the project owner. Project owners can move up to a higher tier any time, and can move down or cancel at the end of their existing billing period. It is recommended to have separate project subscriptions for different clients/matters to facilitate matter-based usage analysis and invoicing.",
1470
- explainerCredits: "AI credits are used in AI chat and AI-powered document processing. AI usage is metered based on the number of words (tokens) consumed and generated by the AI \u2014 including review of inputs and intermediate reasoning steps \u2014 and the published per-token price for the selected AI model. As a rule of thumb, one moderately complex request, or an upload involving around 25 source documents, will consume 1 credit when using our Standard AI models (hosted by ARBI CITY). Even though our pricing for Premium models matches the direct cost charged by third-party providers, using Premium models can easily cost 10\xD7 or even 100\xD7 more than Standard models.",
1471
- seeModelList: "See the AI model list \u2192"
1467
+ pricingExplainer: "How pricing works",
1468
+ explainerTiers: [
1469
+ "Credits and storage are shared by everyone in the project. Credits reset monthly.",
1470
+ "Need more? Add 1,000 credits or 10 GB at a time. Add-ons renew until you remove them.",
1471
+ "Automatic add-ons stay within your monthly add-on budget (\xA3250 by default, \xA30 turns them off).",
1472
+ "Upgrades start now: you pay the difference for the rest of this period. Downgrades start at the end of the period. No refunds.",
1473
+ "Prices are shown + VAT; the total for your country is shown before you pay."
1474
+ ],
1475
+ explainerCredits: "About 1 credit buys one moderately complex request, or reading ~25 documents, on a Standard model. Premium models can cost 10\u2013100\xD7 more.",
1476
+ seeModelList: "AI model prices \u2192"
1472
1477
  };
1473
1478
  function PlanCard({ plan, onSelect, labels }) {
1474
1479
  const l = useMemo(() => ({ ...DEFAULT_PLAN_CARD_LABELS, ...labels }), [labels]);
@@ -1483,7 +1488,7 @@ function PlanCard({ plan, onSelect, labels }) {
1483
1488
  "data-slot": "plan-card",
1484
1489
  "data-testid": `tier-card-${id}`,
1485
1490
  className: cn(
1486
- "relative rounded-lg p-4 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1491
+ "relative flex flex-col justify-start rounded-lg p-4 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1487
1492
  isCurrent ? "cursor-default bg-blue-bg" : isSelected ? "bg-accent ring-1 ring-primary/50" : "bg-muted hover:bg-muted/70"
1488
1493
  ),
1489
1494
  children: [
@@ -1493,13 +1498,16 @@ function PlanCard({ plan, onSelect, labels }) {
1493
1498
  "span",
1494
1499
  {
1495
1500
  className: cn(
1496
- "text-2xl font-semibold leading-none tracking-tight",
1501
+ "text-lg font-semibold leading-none tracking-tight",
1497
1502
  isCurrent ? "text-blue-text" : "text-foreground"
1498
1503
  ),
1499
1504
  children: name
1500
1505
  }
1501
1506
  ) }),
1502
- isFree ? /* @__PURE__ */ jsx("div", { className: "text-sm font-medium leading-none text-muted-foreground", children: l.noMonthlyCost }) : price && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
1507
+ isFree ? /* @__PURE__ */ jsxs("div", { className: "text-2xl font-semibold leading-none tabular-nums text-foreground", children: [
1508
+ l.noMonthlyCost,
1509
+ /* @__PURE__ */ jsx("span", { className: "ml-0.5 text-sm font-medium text-muted-foreground", children: l.perMonth })
1510
+ ] }) : price && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
1503
1511
  price.annual && price.yearlyTotal && /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-x-2 whitespace-nowrap text-base tabular-nums", children: [
1504
1512
  price.yearlyStrike && /* @__PURE__ */ jsx("span", { className: "font-medium text-muted-foreground line-through decoration-muted-foreground/70 decoration-1", children: price.yearlyStrike }),
1505
1513
  /* @__PURE__ */ jsxs("span", { className: "text-lg font-semibold text-foreground", children: [
@@ -1512,9 +1520,13 @@ function PlanCard({ plan, onSelect, labels }) {
1512
1520
  price.monthlyStrike && /* @__PURE__ */ jsx("span", { className: "text-base font-medium tabular-nums text-muted-foreground line-through decoration-muted-foreground/70 decoration-1", children: price.monthlyStrike }),
1513
1521
  /* @__PURE__ */ jsxs("span", { className: "text-2xl font-semibold leading-none tabular-nums text-foreground", children: [
1514
1522
  price.monthly,
1515
- /* @__PURE__ */ jsx("span", { className: "ml-0.5 text-sm font-medium text-muted-foreground", children: l.perMonth })
1523
+ /* @__PURE__ */ jsxs("span", { className: "ml-0.5 text-sm font-medium text-muted-foreground", children: [
1524
+ l.perMonth,
1525
+ price.taxLabel && ` ${price.taxLabel}`
1526
+ ] })
1516
1527
  ] })
1517
- ] })
1528
+ ] }),
1529
+ price.note && /* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground", "data-slot": "plan-card-price-note", children: price.note })
1518
1530
  ] }),
1519
1531
  /* @__PURE__ */ jsx("ul", { className: "mt-4 space-y-1 border-t border-border pt-4 text-sm text-foreground", children: features.map((feature) => /* @__PURE__ */ jsx("li", { children: feature }, feature)) })
1520
1532
  ]
@@ -1526,12 +1538,12 @@ function PlanCardGrid({
1526
1538
  onSelect,
1527
1539
  labels
1528
1540
  }) {
1529
- return /* @__PURE__ */ jsx("div", { className: "space-y-2", "data-slot": "plan-card-grid", children: /* @__PURE__ */ jsx(
1541
+ return /* @__PURE__ */ jsx("div", { className: "@container space-y-2", "data-slot": "plan-card-grid", children: /* @__PURE__ */ jsx(
1530
1542
  "div",
1531
1543
  {
1532
1544
  className: cn(
1533
1545
  "grid gap-2",
1534
- plans.length === 4 ? "grid-cols-1 @xl:grid-cols-2 @4xl:grid-cols-4" : "grid-cols-1 @xl:grid-cols-3"
1546
+ plans.length === 4 ? "grid-cols-1 @xl:grid-cols-2 @4xl:grid-cols-4" : "grid-cols-1 @2xl:grid-cols-3"
1535
1547
  ),
1536
1548
  children: plans.map((plan) => /* @__PURE__ */ jsx(PlanCard, { plan, onSelect, labels }, plan.id))
1537
1549
  }
@@ -1649,19 +1661,28 @@ function PlanInfoPopover({
1649
1661
  }) {
1650
1662
  const l = useMemo(() => ({ ...DEFAULT_PLAN_CARD_LABELS, ...labels }), [labels]);
1651
1663
  return /* @__PURE__ */ jsxs(Popover, { children: [
1652
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", size: "sm", className: "gap-1.5 text-sm", children: [
1653
- /* @__PURE__ */ jsx(Info, { className: "h-4 w-4" }),
1654
- l.pricingExplainer
1655
- ] }) }),
1664
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1665
+ Button,
1666
+ {
1667
+ type: "button",
1668
+ variant: "ghost",
1669
+ size: "sm",
1670
+ className: "gap-1.5 text-sm text-muted-foreground",
1671
+ children: [
1672
+ /* @__PURE__ */ jsx(Info, { className: "h-4 w-4" }),
1673
+ l.pricingExplainer
1674
+ ]
1675
+ }
1676
+ ) }),
1656
1677
  /* @__PURE__ */ jsxs(
1657
1678
  PopoverContent,
1658
1679
  {
1659
1680
  side: "top",
1660
1681
  align: "start",
1661
- className: "max-w-screen-safe w-[420px] space-y-3 text-sm leading-relaxed",
1682
+ className: "max-w-screen-safe w-[380px] space-y-3 text-sm leading-relaxed",
1662
1683
  children: [
1663
1684
  /* @__PURE__ */ jsx("div", { className: "text-base font-semibold", children: l.pricingExplainer }),
1664
- /* @__PURE__ */ jsx("p", { children: l.explainerTiers }),
1685
+ /* @__PURE__ */ jsx("ul", { className: "list-disc space-y-1 pl-4", children: l.explainerTiers.map((line) => /* @__PURE__ */ jsx("li", { children: line }, line)) }),
1665
1686
  /* @__PURE__ */ jsxs("p", { children: [
1666
1687
  l.explainerCredits,
1667
1688
  " ",
@@ -2564,10 +2585,10 @@ function UsagePanel({
2564
2585
  ] });
2565
2586
  }
2566
2587
  var DEFAULT_INVOICES_DIALOG_LABELS = {
2567
- title: (projectName) => `Receipts \u2014 ${projectName}`,
2568
- description: (projectName) => `List of receipts for project ${projectName}`,
2588
+ title: (projectName) => `Receipts \xB7 ${projectName}`,
2589
+ description: (projectName) => `Receipts for ${projectName}`,
2569
2590
  noReceipts: "No receipts yet.",
2570
- paid: "paid"
2591
+ paid: "Paid"
2571
2592
  };
2572
2593
  var DEFAULT_DAILY_CAP_FIELD_LABELS = {
2573
2594
  noLimit: "No limit",
@@ -2608,9 +2629,11 @@ function InvoicesDialog({
2608
2629
  {
2609
2630
  className: "flex items-center justify-between border-b py-2 text-sm last:border-0",
2610
2631
  children: [
2611
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
2632
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-0.5", children: [
2612
2633
  /* @__PURE__ */ jsx("span", { className: "tabular-nums text-muted-foreground", children: invoice.date }),
2634
+ invoice.kind && /* @__PURE__ */ jsx("span", { className: "text-foreground", children: invoice.kind }),
2613
2635
  /* @__PURE__ */ jsx("span", { className: "font-medium tabular-nums", children: invoice.amount }),
2636
+ invoice.amountNote && /* @__PURE__ */ jsx("span", { className: "text-xs tabular-nums text-muted-foreground", children: invoice.amountNote }),
2614
2637
  /* @__PURE__ */ jsx(
2615
2638
  Badge,
2616
2639
  {
@@ -3110,10 +3133,10 @@ function PlanDialogFrame({
3110
3133
  var DEFAULT_CHECKOUT_DIALOG_LABELS = {
3111
3134
  unavailableTitle: "Stripe Not Configured",
3112
3135
  unavailableDescription: "Stripe checkout is not available. Please contact support.",
3113
- title: "Complete Your Purchase",
3114
- description: "Enter your payment details to complete your Pro subscription",
3115
- loading: "Loading checkout...",
3116
- error: "Failed to load checkout. Please try again."
3136
+ title: "Payment",
3137
+ description: "Enter your card to start the plan",
3138
+ loading: "Loading\u2026",
3139
+ error: "Checkout didn't load. Try again."
3117
3140
  };
3118
3141
  function CheckoutDialogFrame({
3119
3142
  open,
@@ -3153,11 +3176,11 @@ function CheckoutDialogFrame({
3153
3176
  ) });
3154
3177
  }
3155
3178
  var DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS = {
3156
- title: "AI quota exceeded",
3179
+ title: "Out of AI credits",
3157
3180
  projectUsage: "Project usage",
3158
- progress: "Project AI spend usage",
3181
+ progress: "AI credits used this month",
3159
3182
  project: "Project:",
3160
- close: "Close",
3183
+ close: "Not now",
3161
3184
  upgrade: "Upgrade"
3162
3185
  };
3163
3186
  function QuotaExceededDialogView({
@@ -3166,6 +3189,8 @@ function QuotaExceededDialogView({
3166
3189
  onUpgrade,
3167
3190
  message,
3168
3191
  usage,
3192
+ actions,
3193
+ extra,
3169
3194
  labels
3170
3195
  }) {
3171
3196
  const l = { ...DEFAULT_QUOTA_EXCEEDED_DIALOG_LABELS, ...labels };
@@ -3175,31 +3200,23 @@ function QuotaExceededDialogView({
3175
3200
  /* @__PURE__ */ jsx(DialogDescription, { children: message })
3176
3201
  ] }),
3177
3202
  usage && /* @__PURE__ */ jsxs(ModalSection, { className: "space-y-2", children: [
3178
- /* @__PURE__ */ jsx(ModalSectionTitle, { children: l.projectUsage }),
3179
3203
  /* @__PURE__ */ jsx(Progress, { value: usage.percent, "aria-label": l.progress }),
3180
3204
  /* @__PURE__ */ jsxs(
3181
3205
  "div",
3182
3206
  {
3183
- className: "flex items-center justify-between text-sm text-muted-foreground",
3207
+ className: "flex flex-wrap items-center justify-between gap-x-3 text-sm text-muted-foreground",
3184
3208
  "data-testid": "quota-usage-readout",
3185
3209
  children: [
3186
- /* @__PURE__ */ jsx("span", { children: usage.readout }),
3187
- /* @__PURE__ */ jsxs("span", { children: [
3188
- usage.percent,
3189
- "%"
3190
- ] })
3210
+ /* @__PURE__ */ jsx("span", { className: "tabular-nums", children: usage.readout }),
3211
+ usage.projectId && /* @__PURE__ */ jsx("span", { className: "truncate", children: usage.projectId })
3191
3212
  ]
3192
3213
  }
3193
- ),
3194
- usage.projectId && /* @__PURE__ */ jsxs("div", { className: "text-sm text-muted-foreground", children: [
3195
- l.project,
3196
- " ",
3197
- usage.projectId
3198
- ] })
3214
+ )
3199
3215
  ] }),
3216
+ extra,
3200
3217
  /* @__PURE__ */ jsxs(DialogFooter, { children: [
3201
3218
  /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: onClose, "data-testid": "quota-close-button", children: l.close }),
3202
- /* @__PURE__ */ jsx(Button, { onClick: onUpgrade, "data-testid": "quota-upgrade-button", children: l.upgrade })
3219
+ actions ?? /* @__PURE__ */ jsx(Button, { onClick: onUpgrade, "data-testid": "quota-upgrade-button", children: l.upgrade })
3203
3220
  ] })
3204
3221
  ] }) });
3205
3222
  }