@handled-ai/design-system 0.18.11 → 0.18.13

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 (44) hide show
  1. package/dist/components/account-contacts-popover.d.ts +5 -1
  2. package/dist/components/account-contacts-popover.js +25 -4
  3. package/dist/components/account-contacts-popover.js.map +1 -1
  4. package/dist/components/badge.d.ts +1 -1
  5. package/dist/components/button.d.ts +1 -1
  6. package/dist/components/data-table-condition-filter.d.ts +2 -1
  7. package/dist/components/data-table-condition-filter.js +23 -41
  8. package/dist/components/data-table-condition-filter.js.map +1 -1
  9. package/dist/components/data-table-filter.js +8 -9
  10. package/dist/components/data-table-filter.js.map +1 -1
  11. package/dist/components/entity-panel.d.ts +2 -1
  12. package/dist/components/entity-panel.js +52 -45
  13. package/dist/components/entity-panel.js.map +1 -1
  14. package/dist/components/pill.d.ts +1 -1
  15. package/dist/components/score-why-chips.d.ts +1 -1
  16. package/dist/components/signal-priority-popover.d.ts +1 -1
  17. package/dist/components/signal-priority-popover.js +4 -4
  18. package/dist/components/signal-priority-popover.js.map +1 -1
  19. package/dist/components/tabs.d.ts +1 -1
  20. package/dist/index.d.ts +2 -2
  21. package/dist/prototype/index.d.ts +1 -1
  22. package/dist/prototype/prototype-accounts-view.d.ts +1 -1
  23. package/dist/prototype/prototype-admin-view.d.ts +1 -1
  24. package/dist/prototype/prototype-config.d.ts +1 -1
  25. package/dist/prototype/prototype-inbox-view.d.ts +9 -3
  26. package/dist/prototype/prototype-inbox-view.js +19 -6
  27. package/dist/prototype/prototype-inbox-view.js.map +1 -1
  28. package/dist/prototype/prototype-insights-view.d.ts +1 -1
  29. package/dist/prototype/prototype-shell.d.ts +1 -1
  30. package/dist/{signal-priority-popover-BT6CPYNs.d.ts → signal-priority-popover-B5b-XZ7i.d.ts} +10 -0
  31. package/package.json +1 -2
  32. package/src/components/__tests__/account-contacts-popover.test.tsx +79 -0
  33. package/src/components/__tests__/data-table-condition-filter.test.tsx +96 -0
  34. package/src/components/__tests__/data-table-filter.test.tsx +45 -0
  35. package/src/components/__tests__/entity-panel-header.test.tsx +44 -0
  36. package/src/components/__tests__/signal-priority-popover.test.tsx +30 -0
  37. package/src/components/account-contacts-popover.tsx +29 -1
  38. package/src/components/data-table-condition-filter.tsx +32 -47
  39. package/src/components/data-table-filter.tsx +7 -10
  40. package/src/components/entity-panel.tsx +56 -40
  41. package/src/components/signal-priority-popover.tsx +15 -4
  42. package/src/prototype/__tests__/detail-view-title-slots.test.tsx +31 -0
  43. package/src/prototype/prototype-config.ts +6 -0
  44. package/src/prototype/prototype-inbox-view.tsx +35 -6
@@ -141,10 +141,16 @@ export interface DetailViewProps {
141
141
  lastActivityTime?: string
142
142
  /** Render extra content inline with the detail title. */
143
143
  renderTitleExtra?: (item: QueueItem) => React.ReactNode
144
+ /** Render a full-width action row below the detail title row. */
145
+ renderTitleActionRow?: (item: QueueItem) => React.ReactNode
144
146
  /** Render supporting content below the detail title. */
145
147
  renderTitleSubtext?: (item: QueueItem) => React.ReactNode
146
148
  /** Render extra metadata chips (e.g. assignee) inside the chips row below the title. */
147
149
  renderMetadataExtra?: (item: QueueItem) => React.ReactNode
150
+ /** Override the built-in account details metadata button label. */
151
+ accountDetailsButtonLabel?: (item: QueueItem) => React.ReactNode
152
+ /** Accessible label for the built-in account details metadata button. */
153
+ getAccountDetailsButtonAriaLabel?: (item: QueueItem) => string
148
154
  onOpenSignalBucket?: (args: { item: QueueItem; bucketKey: string; signalId: string }) => void
149
155
  approveButtonIconUrl?: string
150
156
  opportunityPreview?: OpportunityPreview
@@ -321,8 +327,11 @@ export function DetailView({
321
327
  renderAfterScore,
322
328
  lastActivityTime,
323
329
  renderTitleExtra,
330
+ renderTitleActionRow,
324
331
  renderTitleSubtext,
325
332
  renderMetadataExtra,
333
+ accountDetailsButtonLabel,
334
+ getAccountDetailsButtonAriaLabel,
326
335
  onOpenSignalBucket,
327
336
  approveButtonIconUrl,
328
337
  opportunityPreview,
@@ -468,12 +477,19 @@ export function DetailView({
468
477
  <span className="text-xs text-muted-foreground">{item.company}</span>
469
478
  </div>
470
479
 
471
- <div className="mb-3 flex flex-wrap items-start gap-x-3 gap-y-2">
472
- <div className="min-w-0 flex-1">
473
- <h1 className="text-2xl font-bold tracking-tight text-foreground">{item.title}</h1>
474
- {renderTitleSubtext?.(item)}
480
+ <div className="mb-3 space-y-3">
481
+ <div className="flex flex-wrap items-start gap-x-3 gap-y-2">
482
+ <div className="min-w-0 flex-1">
483
+ <h1 className="text-2xl font-bold tracking-tight text-foreground">{item.title}</h1>
484
+ {renderTitleSubtext?.(item)}
485
+ </div>
486
+ {renderTitleExtra?.(item)}
475
487
  </div>
476
- {renderTitleExtra?.(item)}
488
+ {renderTitleActionRow ? (
489
+ <div className="flex w-full flex-wrap items-center gap-2">
490
+ {renderTitleActionRow(item)}
491
+ </div>
492
+ ) : null}
477
493
  </div>
478
494
 
479
495
  <div className="mb-6 flex flex-wrap items-center gap-2">
@@ -498,11 +514,18 @@ export function DetailView({
498
514
  type="button"
499
515
  onClick={onOpenEntityPanel}
500
516
  className="ml-1 inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2 py-1 transition-colors hover:bg-muted/50"
517
+ aria-label={getAccountDetailsButtonAriaLabel?.(item)}
501
518
  >
502
519
  <div className="flex h-4 w-4 items-center justify-center rounded bg-muted-foreground/10 text-[9px] font-semibold text-muted-foreground">
503
520
  {item.company.substring(0, 1)}
504
521
  </div>
505
- <span className="text-xs font-medium text-foreground">{item.company}</span>
522
+ {accountDetailsButtonLabel ? (
523
+ <span className="inline-flex min-w-0 items-center gap-1.5 text-xs font-medium text-foreground">
524
+ {accountDetailsButtonLabel(item)}
525
+ </span>
526
+ ) : (
527
+ <span className="text-xs font-medium text-foreground">{item.company}</span>
528
+ )}
506
529
  <ChevronRight className="h-3 w-3 text-muted-foreground/50" />
507
530
  </button>
508
531
  {renderMetadataExtra?.(item)}
@@ -649,7 +672,10 @@ export function PrototypeInboxView({
649
672
  timelineSystemEventsConfig,
650
673
  attentionCount,
651
674
  renderTitleExtra,
675
+ renderTitleActionRow,
652
676
  renderTitleSubtext,
677
+ accountDetailsButtonLabel,
678
+ getAccountDetailsButtonAriaLabel,
653
679
  sortOptions,
654
680
  activeSortId,
655
681
  onSortChange,
@@ -891,7 +917,10 @@ export function PrototypeInboxView({
891
917
  timelineSystemEventsConfig,
892
918
  attentionCount,
893
919
  renderTitleExtra,
920
+ renderTitleActionRow,
894
921
  renderTitleSubtext,
922
+ accountDetailsButtonLabel,
923
+ getAccountDetailsButtonAriaLabel,
895
924
  onOpenSignalBucket,
896
925
  }
897
926