@setsquare/ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/index.d.ts +20 -13
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/labels.d.ts +11 -0
  7. package/dist/lib/labels.d.ts.map +1 -0
  8. package/dist/lib/labels.js +15 -0
  9. package/dist/lib/labels.js.map +1 -0
  10. package/dist/shell/app-header.d.ts +4 -1
  11. package/dist/shell/app-header.d.ts.map +1 -1
  12. package/dist/shell/app-header.js +2 -2
  13. package/dist/shell/app-header.js.map +1 -1
  14. package/dist/shell/dashboard-shell.d.ts +1 -1
  15. package/dist/shell/dashboard-shell.d.ts.map +1 -1
  16. package/dist/shell/dashboard-shell.js +10 -14
  17. package/dist/shell/dashboard-shell.js.map +1 -1
  18. package/dist/shell/right-panel.d.ts +7 -1
  19. package/dist/shell/right-panel.d.ts.map +1 -1
  20. package/dist/shell/right-panel.js +6 -3
  21. package/dist/shell/right-panel.js.map +1 -1
  22. package/dist/shell/sidebar.d.ts +16 -2
  23. package/dist/shell/sidebar.d.ts.map +1 -1
  24. package/dist/shell/sidebar.js +17 -8
  25. package/dist/shell/sidebar.js.map +1 -1
  26. package/dist/styles/theme.css +2 -1
  27. package/dist/ui/alert.d.ts +16 -2
  28. package/dist/ui/alert.d.ts.map +1 -1
  29. package/dist/ui/alert.js +11 -4
  30. package/dist/ui/alert.js.map +1 -1
  31. package/dist/ui/calendar.d.ts +9 -2
  32. package/dist/ui/calendar.d.ts.map +1 -1
  33. package/dist/ui/calendar.js +6 -6
  34. package/dist/ui/calendar.js.map +1 -1
  35. package/dist/ui/checkbox.d.ts +5 -2
  36. package/dist/ui/checkbox.d.ts.map +1 -1
  37. package/dist/ui/checkbox.js +4 -4
  38. package/dist/ui/checkbox.js.map +1 -1
  39. package/dist/ui/code-block.d.ts +10 -1
  40. package/dist/ui/code-block.d.ts.map +1 -1
  41. package/dist/ui/code-block.js +6 -3
  42. package/dist/ui/code-block.js.map +1 -1
  43. package/dist/ui/combo-box.d.ts +3 -2
  44. package/dist/ui/combo-box.d.ts.map +1 -1
  45. package/dist/ui/combo-box.js +2 -2
  46. package/dist/ui/combo-box.js.map +1 -1
  47. package/dist/ui/copy-button.d.ts +12 -1
  48. package/dist/ui/copy-button.d.ts.map +1 -1
  49. package/dist/ui/copy-button.js +18 -5
  50. package/dist/ui/copy-button.js.map +1 -1
  51. package/dist/ui/date-field.d.ts +22 -5
  52. package/dist/ui/date-field.d.ts.map +1 -1
  53. package/dist/ui/date-field.js +23 -17
  54. package/dist/ui/date-field.js.map +1 -1
  55. package/dist/ui/dialog.d.ts +19 -2
  56. package/dist/ui/dialog.d.ts.map +1 -1
  57. package/dist/ui/dialog.js +14 -8
  58. package/dist/ui/dialog.js.map +1 -1
  59. package/dist/ui/error-state.d.ts +17 -1
  60. package/dist/ui/error-state.d.ts.map +1 -1
  61. package/dist/ui/error-state.js +15 -5
  62. package/dist/ui/error-state.js.map +1 -1
  63. package/dist/ui/field.d.ts +8 -1
  64. package/dist/ui/field.d.ts.map +1 -1
  65. package/dist/ui/field.js +2 -2
  66. package/dist/ui/field.js.map +1 -1
  67. package/dist/ui/file-upload.d.ts +33 -1
  68. package/dist/ui/file-upload.d.ts.map +1 -1
  69. package/dist/ui/file-upload.js +43 -15
  70. package/dist/ui/file-upload.js.map +1 -1
  71. package/dist/ui/form.d.ts +3 -2
  72. package/dist/ui/form.d.ts.map +1 -1
  73. package/dist/ui/form.js +17 -9
  74. package/dist/ui/form.js.map +1 -1
  75. package/dist/ui/link-card.d.ts +6 -4
  76. package/dist/ui/link-card.d.ts.map +1 -1
  77. package/dist/ui/link-card.js +4 -5
  78. package/dist/ui/link-card.js.map +1 -1
  79. package/dist/ui/number-field.d.ts +3 -2
  80. package/dist/ui/number-field.d.ts.map +1 -1
  81. package/dist/ui/number-field.js +2 -2
  82. package/dist/ui/number-field.js.map +1 -1
  83. package/dist/ui/pagination.d.ts +30 -0
  84. package/dist/ui/pagination.d.ts.map +1 -0
  85. package/dist/ui/pagination.js +48 -0
  86. package/dist/ui/pagination.js.map +1 -0
  87. package/dist/ui/radio-group.d.ts +3 -1
  88. package/dist/ui/radio-group.d.ts.map +1 -1
  89. package/dist/ui/radio-group.js +2 -2
  90. package/dist/ui/radio-group.js.map +1 -1
  91. package/dist/ui/search.d.ts +23 -5
  92. package/dist/ui/search.d.ts.map +1 -1
  93. package/dist/ui/search.js +24 -10
  94. package/dist/ui/search.js.map +1 -1
  95. package/dist/ui/select.d.ts +3 -2
  96. package/dist/ui/select.d.ts.map +1 -1
  97. package/dist/ui/select.js +2 -2
  98. package/dist/ui/select.js.map +1 -1
  99. package/dist/ui/selection-bar.d.ts +14 -1
  100. package/dist/ui/selection-bar.d.ts.map +1 -1
  101. package/dist/ui/selection-bar.js +15 -6
  102. package/dist/ui/selection-bar.js.map +1 -1
  103. package/dist/ui/sheet.d.ts +6 -1
  104. package/dist/ui/sheet.d.ts.map +1 -1
  105. package/dist/ui/sheet.js +2 -2
  106. package/dist/ui/sheet.js.map +1 -1
  107. package/dist/ui/tabs.d.ts +43 -0
  108. package/dist/ui/tabs.d.ts.map +1 -0
  109. package/dist/ui/tabs.js +37 -0
  110. package/dist/ui/tabs.js.map +1 -0
  111. package/dist/ui/text-field.d.ts +4 -3
  112. package/dist/ui/text-field.d.ts.map +1 -1
  113. package/dist/ui/text-field.js +4 -4
  114. package/dist/ui/text-field.js.map +1 -1
  115. package/dist/ui/theme-switcher.d.ts +14 -1
  116. package/dist/ui/theme-switcher.d.ts.map +1 -1
  117. package/dist/ui/theme-switcher.js +15 -4
  118. package/dist/ui/theme-switcher.js.map +1 -1
  119. package/dist/ui/toast.d.ts +7 -1
  120. package/dist/ui/toast.d.ts.map +1 -1
  121. package/dist/ui/toast.js +2 -11
  122. package/dist/ui/toast.js.map +1 -1
  123. package/package.json +21 -20
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/shell/sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/shell/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -455,7 +455,8 @@
455
455
 
456
456
  @media (prefers-reduced-motion: reduce) {
457
457
  [data-overlay], [data-sheet] { animation-duration: 0s !important; }
458
- ::view-transition-old(*), ::view-transition-new(*), ::view-transition-group(*) {
458
+ /* The image pair too: the page-exit cover (setsquare-cover) is animated there. */
459
+ ::view-transition-old(*), ::view-transition-new(*), ::view-transition-group(*), ::view-transition-image-pair(*) {
459
460
  animation-duration: 0s !important;
460
461
  animation-delay: 0s !important;
461
462
  }
@@ -1,6 +1,11 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type IconProp } from './icon.js';
3
3
  export type AlertTone = 'info' | 'success' | 'warning' | 'danger';
4
+ /** An Alert's words, for the `labels` prop. */
5
+ export interface AlertLabels {
6
+ /** The dismiss button, when there is `onDismiss`. */
7
+ dismiss: string;
8
+ }
4
9
  export interface AlertProps {
5
10
  tone?: AlertTone;
6
11
  title?: ReactNode;
@@ -18,18 +23,27 @@ export interface AlertProps {
18
23
  layout?: 'inline' | 'banner';
19
24
  icon?: IconProp;
20
25
  titleAs?: 'p' | 'h2' | 'h3';
26
+ labels?: Partial<AlertLabels>;
21
27
  className?: string;
22
28
  }
23
29
  /** A message about the page or task: tone ground, icon and words — never colour alone. Gains a tone border at AAA. */
24
- export declare function Alert({ tone, title, children, actions, onDismiss, live, layout, icon, titleAs: Title, className, }: AlertProps): import("react").JSX.Element;
30
+ export declare function Alert({ tone, title, children, actions, onDismiss, live, layout, icon, titleAs: Title, labels, className, }: AlertProps): import("react").JSX.Element;
25
31
  /** true while the browser reports a connection. */
26
32
  export declare function useOnline(): boolean;
33
+ /** OfflineAlert's words, for the `labels` prop. */
34
+ export interface OfflineAlertLabels {
35
+ offline: string;
36
+ /** What happens to changes made while offline. */
37
+ offlineDetail: string;
38
+ backOnline: string;
39
+ }
27
40
  /**
28
41
  * A banner that appears when the connection drops and says so again when it returns.
29
42
  * The live region is always in the page, so both changes are announced.
30
43
  */
31
- export declare function OfflineAlert({ forceOffline, className, }: {
44
+ export declare function OfflineAlert({ forceOffline, labels: given, className, }: {
32
45
  forceOffline?: boolean;
46
+ labels?: Partial<OfflineAlertLabels>;
33
47
  className?: string;
34
48
  }): import("react").JSX.Element;
35
49
  //# sourceMappingURL=alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1F,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAiBlE,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,uFAAuF;IACvF,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sHAAsH;AACtH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,MAAiB,EACjB,IAAI,EACJ,OAAO,EAAE,KAAW,EACpB,SAAS,GACV,EAAE,UAAU,+BAsCZ;AAUD,mDAAmD;AACnD,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,SAAS,GACV,EAAE;IACD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAwBA"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM1F,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAiBlE,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,uFAAuF;IACvF,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sHAAsH;AACtH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,MAAiB,EACjB,IAAI,EACJ,OAAO,EAAE,KAAW,EACpB,MAAM,EACN,SAAS,GACV,EAAE,UAAU,+BAsCZ;AAUD,mDAAmD;AACnD,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AASD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,MAAM,EAAE,KAAK,EACb,SAAS,GACV,EAAE;IACD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAwBA"}
package/dist/ui/alert.js CHANGED
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useRef, useState, useSyncExternalStore } from 'react';
4
4
  import { CircleAlert, CircleCheck, Info, TriangleAlert, WifiOff, X } from 'lucide-react';
5
5
  import { cn } from '../lib/cn.js';
6
+ import { withLabels } from '../lib/labels.js';
6
7
  import { focusAfter } from '../lib/tokens.js';
7
8
  import { IconButton } from './icon-button.js';
8
9
  import { renderIcon } from './icon.js';
@@ -21,11 +22,11 @@ const tones = {
21
22
  },
22
23
  };
23
24
  /** A message about the page or task: tone ground, icon and words — never colour alone. Gains a tone border at AAA. */
24
- export function Alert({ tone = 'info', title, children, actions, onDismiss, live, layout = 'inline', icon, titleAs: Title = 'p', className, }) {
25
+ export function Alert({ tone = 'info', title, children, actions, onDismiss, live, layout = 'inline', icon, titleAs: Title = 'p', labels, className, }) {
25
26
  const ref = useRef(null);
26
27
  const t = tones[tone];
27
28
  const shown = icon ?? t.Icon;
28
- return (_jsxs("div", { ref: ref, role: live === 'assertive' ? 'alert' : live === 'polite' ? 'status' : undefined, className: cn('flex items-start gap-3 border border-transparent text-sm leading-5 text-foreground', layout === 'banner' ? 'border-x-0 border-t-0 px-4 py-3' : 'rounded-lg p-4', t.box, className), children: [renderIcon(shown, cn('mt-px size-5 shrink-0', t.icon)), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [title && _jsx(Title, { className: "font-semibold", children: title }), children && _jsx("div", { className: "max-w-(--measure)", children: children }), actions && (_jsx("div", { className: "mt-2 flex flex-wrap items-center gap-(--control-gap)", children: actions }))] }), onDismiss && (_jsx(IconButton, { label: "Dismiss", icon: X, visualSize: "icon-sm", tooltip: false, className: "-mt-1 -mr-1 items-start justify-end", onPress: () => {
29
+ return (_jsxs("div", { ref: ref, role: live === 'assertive' ? 'alert' : live === 'polite' ? 'status' : undefined, className: cn('flex items-start gap-3 border border-transparent text-sm leading-5 text-foreground', layout === 'banner' ? 'border-x-0 border-t-0 px-4 py-3' : 'rounded-lg p-4', t.box, className), children: [renderIcon(shown, cn('mt-px size-5 shrink-0', t.icon)), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [title && _jsx(Title, { className: "font-semibold", children: title }), children && _jsx("div", { className: "max-w-(--measure)", children: children }), actions && (_jsx("div", { className: "mt-2 flex flex-wrap items-center gap-(--control-gap)", children: actions }))] }), onDismiss && (_jsx(IconButton, { label: labels?.dismiss ?? 'Dismiss', icon: X, visualSize: "icon-sm", tooltip: false, className: "-mt-1 -mr-1 items-start justify-end", onPress: () => {
29
30
  focusAfter(ref.current);
30
31
  onDismiss();
31
32
  } }))] }));
@@ -42,11 +43,17 @@ function subscribeOnline(cb) {
42
43
  export function useOnline() {
43
44
  return useSyncExternalStore(subscribeOnline, () => navigator.onLine, () => true);
44
45
  }
46
+ const offlineAlertLabels = {
47
+ offline: "You're offline",
48
+ offlineDetail: "Changes you make now won't be saved. Keep this page open and we'll try again when you're back online.",
49
+ backOnline: "You're back online",
50
+ };
45
51
  /**
46
52
  * A banner that appears when the connection drops and says so again when it returns.
47
53
  * The live region is always in the page, so both changes are announced.
48
54
  */
49
- export function OfflineAlert({ forceOffline, className, }) {
55
+ export function OfflineAlert({ forceOffline, labels: given, className, }) {
56
+ const labels = withLabels(offlineAlertLabels, given);
50
57
  const online = useOnline() && !forceOffline;
51
58
  const [back, setBack] = useState(false);
52
59
  const wasOffline = useRef(!online);
@@ -60,6 +67,6 @@ export function OfflineAlert({ forceOffline, className, }) {
60
67
  return () => clearTimeout(t);
61
68
  }
62
69
  }, [online]);
63
- return (_jsxs("div", { role: "status", className: className, children: [!online && (_jsx(Alert, { tone: "warning", layout: "banner", icon: WifiOff, title: "You're offline", children: "Changes you make now won't be saved. Keep this page open and we'll try again when you're back online." })), online && back && _jsx(Alert, { tone: "success", layout: "banner", title: "You're back online" })] }));
70
+ return (_jsxs("div", { role: "status", className: className, children: [!online && (_jsx(Alert, { tone: "warning", layout: "banner", icon: WifiOff, title: labels.offline, children: labels.offlineDetail })), online && back && _jsx(Alert, { tone: "success", layout: "banner", title: labels.backOnline })] }));
64
71
  }
65
72
  //# sourceMappingURL=alert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/ui/alert.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +1,26 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import { type CalendarProps as RACCalendarProps, type DateValue, type RangeCalendarProps as RACRangeCalendarProps } from 'react-aria-components';
3
+ /** A calendar's words, for the `labels` prop (also on `DatePicker` and `DateRangePicker`). */
4
+ export interface CalendarLabels {
5
+ previousMonth: string;
6
+ nextMonth: string;
7
+ }
3
8
  export interface CalendarProps<T extends DateValue> extends Omit<RACCalendarProps<T>, 'className' | 'children'> {
4
9
  /** Shown under the grid when the calendar is invalid. */
5
10
  errorMessage?: ReactNode;
11
+ labels?: Partial<CalendarLabels>;
6
12
  className?: string;
7
13
  }
8
14
  /**
9
15
  * A month grid for choosing one date. Arrow keys move by day, Page Up/Down by month, Home/End to the week's
10
16
  * ends; Enter selects. Inside a DatePicker this is supplied for you — use it alone only for an inline picker.
11
17
  */
12
- export declare function Calendar<T extends DateValue>({ errorMessage, className, ...props }: CalendarProps<T>): import("react").JSX.Element;
18
+ export declare function Calendar<T extends DateValue>({ errorMessage, labels, className, ...props }: CalendarProps<T>): import("react").JSX.Element;
13
19
  export interface RangeCalendarProps<T extends DateValue> extends Omit<RACRangeCalendarProps<T>, 'className' | 'children'> {
14
20
  errorMessage?: ReactNode;
21
+ labels?: Partial<CalendarLabels>;
15
22
  className?: string;
16
23
  }
17
24
  /** A month grid for choosing a start and an end date: select one, then the other. */
18
- export declare function RangeCalendar<T extends DateValue>({ errorMessage, className, ...props }: RangeCalendarProps<T>): import("react").JSX.Element;
25
+ export declare function RangeCalendar<T extends DateValue>({ errorMessage, labels, className, ...props }: RangeCalendarProps<T>): import("react").JSX.Element;
19
26
  //# sourceMappingURL=calendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAUL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,IAAI,qBAAqB,EACjD,MAAM,uBAAuB,CAAC;AA8G/B,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CAC9D,gBAAgB,CAAC,CAAC,CAAC,EACnB,WAAW,GAAG,UAAU,CACzB;IACC,yDAAyD;IACzD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,EAC5C,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,CAAC,CAAC,+BAYlB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CACnE,qBAAqB,CAAC,CAAC,CAAC,EACxB,WAAW,GAAG,UAAU,CACzB;IACC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,EACjD,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,CAAC,+BAYvB"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAUL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,IAAI,qBAAqB,EACjD,MAAM,uBAAuB,CAAC;AAW/B,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqGD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CAC9D,gBAAgB,CAAC,CAAC,CAAC,EACnB,WAAW,GAAG,UAAU,CACzB;IACC,yDAAyD;IACzD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,EAC5C,YAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,CAAC,CAAC,+BAYlB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CACnE,qBAAqB,CAAC,CAAC,CAAC,EACxB,WAAW,GAAG,UAAU,CACzB;IACC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,EACjD,YAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,CAAC,CAAC,+BAYvB"}
@@ -9,8 +9,8 @@ import { IconButton } from './icon-button.js';
9
9
  * and they must be positioned against the calendar, not against whatever scrolls around it.
10
10
  */
11
11
  const calendarRoot = 'relative flex w-fit max-w-full flex-col gap-3 text-sm text-foreground';
12
- function CalendarHeader() {
13
- return (_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx(IconButton, { slot: "previous", label: "Previous month", icon: ChevronLeft, visualSize: "icon-sm", tooltip: false }), _jsx(Heading, { className: "text-sm leading-5 font-semibold" }), _jsx(IconButton, { slot: "next", label: "Next month", icon: ChevronRight, visualSize: "icon-sm", tooltip: false })] }));
12
+ function CalendarHeader({ labels }) {
13
+ return (_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx(IconButton, { slot: "previous", label: labels?.previousMonth ?? 'Previous month', icon: ChevronLeft, visualSize: "icon-sm", tooltip: false }), _jsx(Heading, { className: "text-sm leading-5 font-semibold" }), _jsx(IconButton, { slot: "next", label: labels?.nextMonth ?? 'Next month', icon: ChevronRight, visualSize: "icon-sm", tooltip: false })] }));
14
14
  }
15
15
  /**
16
16
  * Days in three layers. The cell is the target (Layer 1): --target-min square, or the painted day if that is
@@ -42,11 +42,11 @@ function Grid({ range }) {
42
42
  * A month grid for choosing one date. Arrow keys move by day, Page Up/Down by month, Home/End to the week's
43
43
  * ends; Enter selects. Inside a DatePicker this is supplied for you — use it alone only for an inline picker.
44
44
  */
45
- export function Calendar({ errorMessage, className, ...props }) {
46
- return (_jsxs(RACCalendar, { ...props, className: cn(calendarRoot, className), children: [_jsx(CalendarHeader, {}), _jsx(Grid, {}), errorMessage && (_jsx(Text, { slot: "errorMessage", className: "text-[13px] leading-5 font-semibold text-destructive", children: errorMessage }))] }));
45
+ export function Calendar({ errorMessage, labels, className, ...props }) {
46
+ return (_jsxs(RACCalendar, { ...props, className: cn(calendarRoot, className), children: [_jsx(CalendarHeader, { labels: labels }), _jsx(Grid, {}), errorMessage && (_jsx(Text, { slot: "errorMessage", className: "text-[13px] leading-5 font-semibold text-destructive", children: errorMessage }))] }));
47
47
  }
48
48
  /** A month grid for choosing a start and an end date: select one, then the other. */
49
- export function RangeCalendar({ errorMessage, className, ...props }) {
50
- return (_jsxs(RACRangeCalendar, { ...props, className: cn(calendarRoot, className), children: [_jsx(CalendarHeader, {}), _jsx(Grid, { range: true }), errorMessage && (_jsx(Text, { slot: "errorMessage", className: "text-[13px] leading-5 font-semibold text-destructive", children: errorMessage }))] }));
49
+ export function RangeCalendar({ errorMessage, labels, className, ...props }) {
50
+ return (_jsxs(RACRangeCalendar, { ...props, className: cn(calendarRoot, className), children: [_jsx(CalendarHeader, { labels: labels }), _jsx(Grid, { range: true }), errorMessage && (_jsx(Text, { slot: "errorMessage", className: "text-[13px] leading-5 font-semibold text-destructive", children: errorMessage }))] }));
51
51
  }
52
52
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/ui/calendar.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +1,20 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type CheckboxGroupProps as RACCheckboxGroupProps, type CheckboxProps as RACCheckboxProps } from 'react-aria-components';
3
+ import { type FieldLabels } from './field.js';
3
4
  export interface CheckboxProps extends Omit<RACCheckboxProps, 'className' | 'children' | 'validate'> {
4
5
  children: ReactNode;
5
6
  /** Second line under the label. */
6
7
  description?: ReactNode;
7
8
  /** For a single required checkbox ("I accept the terms"): what to do. */
8
9
  requiredMessage?: string;
10
+ labels?: Partial<FieldLabels>;
9
11
  className?: string;
10
12
  }
11
13
  /**
12
14
  * A yes/no choice submitted with the form (settings that apply at once are a Switch).
13
15
  * The whole row — box and label — is the target, at least --target-min tall.
14
16
  */
15
- export declare function Checkbox({ children, description, requiredMessage, className, ...props }: CheckboxProps): import("react").JSX.Element;
17
+ export declare function Checkbox({ children, description, requiredMessage, labels, className, ...props }: CheckboxProps): import("react").JSX.Element;
16
18
  export interface CheckboxGroupProps extends Omit<RACCheckboxGroupProps, 'className' | 'children' | 'validate'> {
17
19
  label: string;
18
20
  description?: ReactNode;
@@ -20,10 +22,11 @@ export interface CheckboxGroupProps extends Omit<RACCheckboxGroupProps, 'classNa
20
22
  /** For "choose at least one". */
21
23
  requiredMessage?: string;
22
24
  children: ReactNode;
25
+ labels?: Partial<FieldLabels>;
23
26
  className?: string;
24
27
  }
25
28
  /** A labelled list of checkboxes, read as a group. */
26
- export declare function CheckboxGroup({ label, description, errorMessage, requiredMessage, children, className, ...props }: CheckboxGroupProps): import("react").JSX.Element;
29
+ export declare function CheckboxGroup({ label, description, errorMessage, requiredMessage, children, labels, className, ...props }: CheckboxGroupProps): import("react").JSX.Element;
27
30
  export interface SelectionCheckboxProps extends Omit<RACCheckboxProps, 'className' | 'children' | 'slot'> {
28
31
  className?: string;
29
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAGL,KAAK,kBAAkB,IAAI,qBAAqB,EAChD,KAAK,aAAa,IAAI,gBAAgB,EACvC,MAAM,uBAAuB,CAAC;AAqB/B,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,gBAAgB,EAChB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,+BAiEf;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,qBAAqB,EACrB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAyBpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,gBAAgB,EAChB,WAAW,GAAG,UAAU,GAAG,MAAM,CAClC;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,+BAiBhF"}
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAGL,KAAK,kBAAkB,IAAI,qBAAqB,EAChD,KAAK,aAAa,IAAI,gBAAgB,EACvC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,gBAAgB,EAChB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,+BAmEf;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,qBAAqB,EACrB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,+BA4BpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,gBAAgB,EAChB,WAAW,GAAG,UAAU,GAAG,MAAM,CAClC;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,+BAiBhF"}
@@ -11,7 +11,7 @@ const boxStyles = cn('grid size-choice shrink-0 place-items-center rounded-sm bo
11
11
  * A yes/no choice submitted with the form (settings that apply at once are a Switch).
12
12
  * The whole row — box and label — is the target, at least --target-min tall.
13
13
  */
14
- export function Checkbox({ children, description, requiredMessage, className, ...props }) {
14
+ export function Checkbox({ children, description, requiredMessage, labels, className, ...props }) {
15
15
  const necessity = useContext(NecessityContext);
16
16
  const autoId = useId();
17
17
  const id = props.id ?? autoId;
@@ -19,13 +19,13 @@ export function Checkbox({ children, description, requiredMessage, className, ..
19
19
  return (_jsx(RACCheckbox, { ...props, id: id, "aria-describedby": [props['aria-describedby'], props.isRequired ? errorId : null].filter(Boolean).join(' ') ||
20
20
  undefined, validate: props.isRequired
21
21
  ? withRequired(true, requiredMessage ?? 'Select this to continue', (v) => !v)
22
- : undefined, className: cn('group/choice relative flex min-h-target cursor-pointer items-start gap-3 py-[calc((var(--target-min)-var(--choice-size))/2)] text-sm leading-5 text-foreground outline-none data-disabled:cursor-not-allowed data-disabled:opacity-60 data-readonly:cursor-default', className), children: ({ isSelected, isIndeterminate, isInvalid }) => (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: cn('mt-[calc((20px-var(--choice-size))/2)]', boxStyles), children: isIndeterminate ? _jsx(Minus, {}) : isSelected ? _jsx(Check, {}) : null }), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsxs("span", { children: [children, props.isRequired && necessity === 'required' && (_jsxs("span", { "aria-hidden": "true", className: "text-muted-foreground", children: [' ', "(required)"] }))] }), description && (_jsx("span", { className: "text-[13px] text-muted-foreground", children: description })), props.isRequired && isInvalid && (_jsxs("span", { id: errorId, "aria-hidden": "true", className: "mt-1 flex items-start gap-1.5 text-[13px] leading-5 font-semibold text-destructive", children: [_jsx(CircleAlert, { className: "mt-0.5 size-4 shrink-0" }), _jsxs("span", { "data-field-error-text": true, children: [_jsx("span", { className: "sr-only", children: "Error: " }), requiredMessage ?? 'Select this to continue'] })] }))] })] })) }));
22
+ : undefined, className: cn('group/choice relative flex min-h-target cursor-pointer items-start gap-3 py-[calc((var(--target-min)-var(--choice-size))/2)] text-sm leading-5 text-foreground outline-none data-disabled:cursor-not-allowed data-disabled:opacity-60 data-readonly:cursor-default', className), children: ({ isSelected, isIndeterminate, isInvalid }) => (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: cn('mt-[calc((20px-var(--choice-size))/2)]', boxStyles), children: isIndeterminate ? _jsx(Minus, {}) : isSelected ? _jsx(Check, {}) : null }), _jsxs("span", { className: "flex min-w-0 flex-col", children: [_jsxs("span", { children: [children, props.isRequired && necessity === 'required' && (_jsxs("span", { "aria-hidden": "true", className: "text-muted-foreground", children: [' ', "(required)"] }))] }), description && (_jsx("span", { className: "text-[13px] text-muted-foreground", children: description })), props.isRequired && isInvalid && (_jsxs("span", { id: errorId, "aria-hidden": "true", className: "mt-1 flex items-start gap-1.5 text-[13px] leading-5 font-semibold text-destructive", children: [_jsx(CircleAlert, { className: "mt-0.5 size-4 shrink-0" }), _jsxs("span", { "data-field-error-text": true, children: [_jsx("span", { className: "sr-only", "data-field-error-prefix": true, children: labels?.errorPrefix ?? 'Error: ' }), requiredMessage ?? 'Select this to continue'] })] }))] })] })) }));
23
23
  }
24
24
  /** A labelled list of checkboxes, read as a group. */
25
- export function CheckboxGroup({ label, description, errorMessage, requiredMessage, children, className, ...props }) {
25
+ export function CheckboxGroup({ label, description, errorMessage, requiredMessage, children, labels, className, ...props }) {
26
26
  return (_jsxs(RACCheckboxGroup, { ...props, validate: props.isRequired
27
27
  ? withRequired(true, requiredMessage ?? 'Select at least one option', (v) => !v?.length)
28
- : undefined, className: cn(fieldStack, className), children: [_jsx(FieldLabel, { elementType: "span", isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { requiredMessage: requiredMessage ?? 'Select at least one option', children: errorMessage }), _jsx("div", { className: "flex flex-col", children: children })] }));
28
+ : undefined, className: cn(fieldStack, className), children: [_jsx(FieldLabel, { elementType: "span", isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { errorPrefix: labels?.errorPrefix, requiredMessage: requiredMessage ?? 'Select at least one option', children: errorMessage }), _jsx("div", { className: "flex flex-col", children: children })] }));
29
29
  }
30
30
  /**
31
31
  * The box alone, for the selection column of a Table or a GridList item. React Aria wires it to the row
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type CopyButtonLabels } from './copy-button.js';
1
2
  export interface CodeBlockProps {
2
3
  code: string;
3
4
  /** What it is: a file path (`app/layout.tsx`), a language, or "Terminal". Shown above the code. */
@@ -9,12 +10,20 @@ export interface CodeBlockProps {
9
10
  tone?: 'code' | 'terminal';
10
11
  /** Show the Copy button. Default true. */
11
12
  copy?: boolean;
13
+ labels?: Partial<CodeBlockLabels>;
12
14
  className?: string;
13
15
  }
16
+ /** A code block's words, for the `labels` prop: its copy button's, and what it calls itself unlabelled. */
17
+ export interface CodeBlockLabels extends CopyButtonLabels {
18
+ /** Shown above a `terminal` block with no `label`. */
19
+ terminal: string;
20
+ /** What the copy button says it copies when there is no `label`. */
21
+ code: string;
22
+ }
14
23
  /**
15
24
  * Code with a label and a copy button. Long lines scroll sideways inside a ScrollRegion, never the page; the
16
25
  * region is named by the label and the first line, so two on a page can be told apart. Server-safe: it renders
17
26
  * ScrollRegion and CopyButton, which are client components, and holds no state itself.
18
27
  */
19
- export declare function CodeBlock({ code, label, tone, copy, className }: CodeBlockProps): import("react").JSX.Element;
28
+ export declare function CodeBlock({ code, label, tone, copy, labels, className, }: CodeBlockProps): import("react").JSX.Element;
20
29
  //# sourceMappingURL=code-block.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/ui/code-block.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAa,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,cAAc,+BAgD/F"}
1
+ {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/ui/code-block.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIrE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2GAA2G;AAC3G,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,KAAK,EACL,IAAa,EACb,IAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,cAAc,+BAiDhB"}
@@ -1,21 +1,24 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from '../lib/cn.js';
3
3
  import { CopyButton } from './copy-button.js';
4
+ import { withLabels } from '../lib/labels.js';
4
5
  import { ScrollRegion } from './scroll-region.js';
6
+ const codeBlockNames = { terminal: 'Terminal', code: 'code' };
5
7
  const PROMPT = /^\$ /;
6
8
  /**
7
9
  * Code with a label and a copy button. Long lines scroll sideways inside a ScrollRegion, never the page; the
8
10
  * region is named by the label and the first line, so two on a page can be told apart. Server-safe: it renders
9
11
  * ScrollRegion and CopyButton, which are client components, and holds no state itself.
10
12
  */
11
- export function CodeBlock({ code, label, tone = 'code', copy = true, className }) {
13
+ export function CodeBlock({ code, label, tone = 'code', copy = true, labels, className, }) {
14
+ const names = withLabels(codeBlockNames, labels);
12
15
  const lines = code.split('\n');
13
16
  const terminal = tone === 'terminal';
14
17
  const commands = terminal ? lines.filter((l) => PROMPT.test(l)) : [];
15
18
  const copied = commands.length ? commands.map((l) => l.replace(PROMPT, '')).join('\n') : code;
16
- const name = label ?? (terminal ? 'Terminal' : 'code');
19
+ const name = label ?? (terminal ? names.terminal : names.code);
17
20
  const first = (commands[0]?.replace(PROMPT, '') ?? lines[0]).trim().slice(0, 60);
18
- return (_jsxs("figure", { className: cn('relative m-0 min-w-0 overflow-clip rounded-lg border border-border bg-background', className), children: [(label || terminal || copy) && (_jsxs("figcaption", { className: "relative flex items-center justify-between gap-2.5 border-b border-border py-1 pr-1.5 pl-4", children: [_jsx("span", { className: "min-w-0 truncate font-mono text-[13px] leading-5 text-muted-foreground", children: label ?? (terminal ? 'Terminal' : '') }), copy && _jsx(CopyButton, { text: copied, label: name })] })), _jsx(ScrollRegion, { label: first ? `${name}: ${first}` : name, children: _jsx("pre", { className: "m-0 w-max min-w-full p-[18px] text-code", children: _jsx("code", { children: terminal
21
+ return (_jsxs("figure", { className: cn('relative m-0 min-w-0 overflow-clip rounded-lg border border-border bg-background', className), children: [(label || terminal || copy) && (_jsxs("figcaption", { className: "relative flex items-center justify-between gap-2.5 border-b border-border py-1 pr-1.5 pl-4", children: [_jsx("span", { className: "min-w-0 truncate font-mono text-[13px] leading-5 text-muted-foreground", children: label ?? (terminal ? names.terminal : '') }), copy && _jsx(CopyButton, { text: copied, label: name, labels: labels })] })), _jsx(ScrollRegion, { label: first ? `${name}: ${first}` : name, children: _jsx("pre", { className: "m-0 w-max min-w-full p-[18px] text-code", children: _jsx("code", { children: terminal
19
22
  ? lines.map((line, i) => (_jsx("span", { className: "block", children: PROMPT.test(line) ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground select-none", children: '$ ' }), line.replace(PROMPT, '')] })) : (_jsx("span", { className: "text-muted-foreground", children: line || ' ' })) }, i)))
20
23
  : code }) }) })] }));
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../src/ui/code-block.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAgBlD,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAkB;IAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,CACL,kBACE,SAAS,EAAE,EAAE,CACX,kFAAkF,EAClF,SAAS,CACV,aAEA,CAAC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CAC9B,sBAAY,SAAS,EAAC,4FAA4F,aAChH,eAAM,SAAS,EAAC,wEAAwE,YACrF,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GACjC,EACN,IAAI,IAAI,KAAC,UAAU,IAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAI,IACvC,CACd,EACD,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,YAErD,cAAK,SAAS,EAAC,yCAAyC,YACtD,yBACG,QAAQ;4BACP,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAErB,eAAc,SAAS,EAAC,OAAO,YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACnB,8BACE,8BAAkB,MAAM,EAAC,SAAS,EAAC,mCAAmC,YACnE,IAAI,GACA,EACN,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IACxB,CACJ,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,YAAE,IAAI,IAAI,GAAG,GAAQ,CAC7D,IAVQ,CAAC,CAWL,CACR,CAAC;4BACJ,CAAC,CAAC,IAAI,GACH,GACH,GACO,IACR,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../src/ui/code-block.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import { type ComboBoxProps as RACComboBoxProps, type Key } from 'react-aria-components';
3
- import { type FieldWidth } from './field.js';
3
+ import { type FieldWidth, type FieldLabels } from './field.js';
4
4
  export interface ComboBoxProps<T extends object> extends Omit<RACComboBoxProps<T>, 'className' | 'children' | 'validate'> {
5
5
  label: string;
6
6
  description?: ReactNode;
@@ -10,8 +10,9 @@ export interface ComboBoxProps<T extends object> extends Omit<RACComboBoxProps<T
10
10
  placeholder?: string;
11
11
  children: ReactNode | ((item: T) => ReactNode);
12
12
  width?: FieldWidth;
13
+ labels?: Partial<FieldLabels>;
13
14
  className?: string;
14
15
  }
15
16
  /** Type to filter a long list, then choose (people, countries, projects). The list opens as you type or from the button. */
16
- export declare function ComboBox<T extends object>({ label, description, errorMessage, requiredMessage, validate, placeholder, children, width, className, ...props }: ComboBoxProps<T>): import("react").JSX.Element;
17
+ export declare function ComboBox<T extends object>({ label, description, errorMessage, requiredMessage, validate, placeholder, children, width, labels, className, ...props }: ComboBoxProps<T>): import("react").JSX.Element;
17
18
  //# sourceMappingURL=combo-box.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box.d.ts","sourceRoot":"","sources":["../../src/ui/combo-box.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,GAAG,EACT,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAUL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAC3D,gBAAgB,CAAC,CAAC,CAAC,EACnB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4HAA4H;AAC5H,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EACzC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,CAAC,CAAC,+BA4ClB"}
1
+ {"version":3,"file":"combo-box.d.ts","sourceRoot":"","sources":["../../src/ui/combo-box.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGL,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,GAAG,EACT,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAUL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAC3D,gBAAgB,CAAC,CAAC,CAAC,EACnB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4HAA4H;AAC5H,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EACzC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,CAAC,CAAC,+BA+ClB"}
@@ -8,7 +8,7 @@ import { FieldDescription, FieldError, FieldLabel, fieldBox, fieldInput, fieldSt
8
8
  import { ListBox } from './list-box.js';
9
9
  import { Popover } from './menu.js';
10
10
  /** Type to filter a long list, then choose (people, countries, projects). The list opens as you type or from the button. */
11
- export function ComboBox({ label, description, errorMessage, requiredMessage, validate, placeholder, children, width = 'md', className, ...props }) {
12
- return (_jsxs(RACComboBox, { ...props, validate: withRequired(props.isRequired, requiredMessage ?? `Choose ${lcFirst(label)}`, (v) => v == null, validate), className: cn(fieldStack, fieldWidths[width], className), children: [_jsx(FieldLabel, { isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { requiredMessage: requiredMessage ?? `Choose ${lcFirst(label)}`, children: errorMessage }), _jsxs("div", { className: fieldBox, children: [_jsx(Input, { placeholder: placeholder, className: fieldInput }), _jsx(Button, { variant: "ghost", visualSize: "icon-sm", className: "me-1 justify-end", visualClassName: "text-muted-foreground group-data-hovered/button:text-foreground [&_svg]:size-4", children: _jsx(ChevronsUpDown, { "aria-hidden": "true" }) })] }), _jsx(Popover, { placement: "bottom start", className: "max-h-80", children: _jsx(ListBox, { renderEmptyState: () => (_jsx("p", { className: "px-3 py-2 text-sm text-muted-foreground", children: "No matches. Check the spelling or try fewer letters." })), children: children }) })] }));
11
+ export function ComboBox({ label, description, errorMessage, requiredMessage, validate, placeholder, children, width = 'md', labels, className, ...props }) {
12
+ return (_jsxs(RACComboBox, { ...props, validate: withRequired(props.isRequired, requiredMessage ?? `Choose ${lcFirst(label)}`, (v) => v == null, validate), className: cn(fieldStack, fieldWidths[width], className), children: [_jsx(FieldLabel, { isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { errorPrefix: labels?.errorPrefix, requiredMessage: requiredMessage ?? `Choose ${lcFirst(label)}`, children: errorMessage }), _jsxs("div", { className: fieldBox, children: [_jsx(Input, { placeholder: placeholder, className: fieldInput }), _jsx(Button, { variant: "ghost", visualSize: "icon-sm", className: "me-1 justify-end", visualClassName: "text-muted-foreground group-data-hovered/button:text-foreground [&_svg]:size-4", children: _jsx(ChevronsUpDown, { "aria-hidden": "true" }) })] }), _jsx(Popover, { placement: "bottom start", className: "max-h-80", children: _jsx(ListBox, { renderEmptyState: () => (_jsx("p", { className: "px-3 py-2 text-sm text-muted-foreground", children: "No matches. Check the spelling or try fewer letters." })), children: children }) })] }));
13
13
  }
14
14
  //# sourceMappingURL=combo-box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box.js","sourceRoot":"","sources":["../../src/ui/combo-box.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,KAAK,GAGN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAY,GAEb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,4HAA4H;AAC5H,MAAM,UAAU,QAAQ,CAAmB,EACzC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,SAAS,EACT,GAAG,KAAK,EACS;IACjB,OAAO,CACL,MAAC,WAAW,OACL,KAA6B,EAClC,QAAQ,EACN,YAAY,CACV,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,UAAU,OAAO,CAAC,KAAK,CAAC,EAAE,EAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAChB,QAAQ,CACA,EAEZ,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,aAExD,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IAAC,eAAe,EAAE,eAAe,IAAI,UAAU,OAAO,CAAC,KAAK,CAAC,EAAE,YACvE,YAAY,GACF,EACb,eAAK,SAAS,EAAE,QAAQ,aACtB,KAAC,KAAK,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAAI,EAE1D,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,UAAU,EAAC,SAAS,EACpB,SAAS,EAAC,kBAAkB,EAC5B,eAAe,EAAC,gFAAgF,YAEhG,KAAC,cAAc,mBAAa,MAAM,GAAG,GAC9B,IACL,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,EAAC,SAAS,EAAC,UAAU,YACpD,KAAC,OAAO,IACN,gBAAgB,EAAE,GAAG,EAAE,CAAC,CACtB,YAAG,SAAS,EAAC,yCAAyC,qEAElD,CACL,YAEA,QAAiB,GACV,GACF,IACE,CACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"combo-box.js","sourceRoot":"","sources":["../../src/ui/combo-box.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,KAAK,GAGN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAY,GAGb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,4HAA4H;AAC5H,MAAM,UAAU,QAAQ,CAAmB,EACzC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACS;IACjB,OAAO,CACL,MAAC,WAAW,OACL,KAA6B,EAClC,QAAQ,EACN,YAAY,CACV,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,UAAU,OAAO,CAAC,KAAK,CAAC,EAAE,EAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAChB,QAAQ,CACA,EAEZ,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,aAExD,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IACT,WAAW,EAAE,MAAM,EAAE,WAAW,EAChC,eAAe,EAAE,eAAe,IAAI,UAAU,OAAO,CAAC,KAAK,CAAC,EAAE,YAE7D,YAAY,GACF,EACb,eAAK,SAAS,EAAE,QAAQ,aACtB,KAAC,KAAK,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAAI,EAE1D,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,UAAU,EAAC,SAAS,EACpB,SAAS,EAAC,kBAAkB,EAC5B,eAAe,EAAC,gFAAgF,YAEhG,KAAC,cAAc,mBAAa,MAAM,GAAG,GAC9B,IACL,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,EAAC,SAAS,EAAC,UAAU,YACpD,KAAC,OAAO,IACN,gBAAgB,EAAE,GAAG,EAAE,CAAC,CACtB,YAAG,SAAS,EAAC,yCAAyC,qEAElD,CACL,YAEA,QAAiB,GACV,GACF,IACE,CACf,CAAC;AACJ,CAAC"}
@@ -4,11 +4,22 @@ export interface CopyButtonProps extends Omit<ButtonProps, 'onPress' | 'children
4
4
  text: string;
5
5
  /** What it copies, said after "Copy" to a screen reader: "install command", "app/layout.tsx". */
6
6
  label: string;
7
+ labels?: Partial<CopyButtonLabels>;
8
+ }
9
+ /** A copy button's words, for the `labels` prop (also on `CodeBlock`); `{label}` is what it copies. */
10
+ export interface CopyButtonLabels {
11
+ copy: string;
12
+ copied: string;
13
+ notCopied: string;
14
+ /** Said after a copy. */
15
+ announceCopied: string;
16
+ /** Said when the browser refuses. */
17
+ announceFailed: string;
7
18
  }
8
19
  /**
9
20
  * Copies text to the clipboard and says so: the button reads Copied (or Not copied) for two seconds, and a
10
21
  * status message says what happened, again on a second copy. The visible word starts the button's name, so a
11
22
  * voice command for what's on screen reaches it.
12
23
  */
13
- export declare function CopyButton({ text, label, variant, visualSize, ...props }: CopyButtonProps): import("react").JSX.Element;
24
+ export declare function CopyButton({ text, label, variant, visualSize, labels: given, ...props }: CopyButtonProps): import("react").JSX.Element;
14
25
  //# sourceMappingURL=copy-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.d.ts","sourceRoot":"","sources":["../../src/ui/copy-button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/F,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iGAAiG;IACjG,KAAK,EAAE,MAAM,CAAC;CACf;AAKD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAiB,EACjB,UAAiB,EACjB,GAAG,KAAK,EACT,EAAE,eAAe,+BAuCjB"}
1
+ {"version":3,"file":"copy-button.d.ts","sourceRoot":"","sources":["../../src/ui/copy-button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/F,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iGAAiG;IACjG,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpC;AAED,uGAAuG;AACvG,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAYD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAiB,EACjB,UAAiB,EACjB,MAAM,EAAE,KAAK,EACb,GAAG,KAAK,EACT,EAAE,eAAe,+BA6CjB"}
@@ -2,13 +2,26 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useRef, useState } from 'react';
4
4
  import { Button } from './button.js';
5
- const SHOWN = { idle: 'Copy', copied: 'Copied', failed: 'Not copied' };
5
+ import { fill, withLabels } from '../lib/labels.js';
6
+ const copyButtonLabels = {
7
+ copy: 'Copy',
8
+ copied: 'Copied',
9
+ notCopied: 'Not copied',
10
+ announceCopied: 'Copied {label}',
11
+ announceFailed: "Couldn't copy {label}. Select it and copy it yourself.",
12
+ };
6
13
  /**
7
14
  * Copies text to the clipboard and says so: the button reads Copied (or Not copied) for two seconds, and a
8
15
  * status message says what happened, again on a second copy. The visible word starts the button's name, so a
9
16
  * voice command for what's on screen reaches it.
10
17
  */
11
- export function CopyButton({ text, label, variant = 'ghost', visualSize = 'sm', ...props }) {
18
+ export function CopyButton({ text, label, variant = 'ghost', visualSize = 'sm', labels: given, ...props }) {
19
+ const labels = withLabels(copyButtonLabels, given);
20
+ const shown = {
21
+ idle: labels.copy,
22
+ copied: labels.copied,
23
+ failed: labels.notCopied,
24
+ };
12
25
  const [state, setState] = useState('idle');
13
26
  const [message, setMessage] = useState('');
14
27
  const timers = useRef([]);
@@ -26,11 +39,11 @@ export function CopyButton({ text, label, variant = 'ghost', visualSize = 'sm',
26
39
  return (_jsxs("span", { className: "relative inline-flex", children: [_jsxs(Button, { ...props, variant: variant, visualSize: visualSize, onPress: async () => {
27
40
  try {
28
41
  await navigator.clipboard.writeText(text);
29
- announce('copied', `Copied ${label}`);
42
+ announce('copied', fill(labels.announceCopied, { label }));
30
43
  }
31
44
  catch {
32
- announce('failed', `Couldn't copy ${label}. Select it and copy it yourself.`);
45
+ announce('failed', fill(labels.announceFailed, { label }));
33
46
  }
34
- }, children: [SHOWN[state], _jsxs("span", { className: "sr-only", children: [" ", label] })] }), _jsx("span", { role: "status", className: "sr-only", children: message })] }));
47
+ }, children: [shown[state], _jsxs("span", { className: "sr-only", children: [" ", label] })] }), _jsx("span", { role: "status", className: "sr-only", children: message })] }));
35
48
  }
36
49
  //# sourceMappingURL=copy-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.js","sourceRoot":"","sources":["../../src/ui/copy-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAUvD,MAAM,KAAK,GAA0B,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAE9F;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAO,GAAG,OAAO,EACjB,UAAU,GAAG,IAAI,EACjB,GAAG,KAAK,EACQ;IAChB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAQ,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAkC,EAAE,CAAC,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,CAAC,EAAc,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,CAAC,IAAW,EAAE,KAAa,EAAE,EAAE;QAC9C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,sFAAsF;QACtF,UAAU,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,OAAO,CAEL,gBAAM,SAAS,EAAC,sBAAsB,aACpC,MAAC,MAAM,OACD,KAAK,EACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,IAAI,CAAC;wBACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAC1C,QAAQ,CAAC,QAAQ,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;oBACxC,CAAC;oBAAC,MAAM,CAAC;wBACP,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,KAAK,mCAAmC,CAAC,CAAC;oBAChF,CAAC;gBACH,CAAC,aAEA,KAAK,CAAC,KAAK,CAAC,EACb,gBAAM,SAAS,EAAC,SAAS,kBAAG,KAAK,IAAQ,IAClC,EACT,eAAM,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,YACpC,OAAO,GACH,IACF,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"copy-button.js","sourceRoot":"","sources":["../../src/ui/copy-button.tsx"],"names":[],"mappings":"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"}