@nxgt/material 3.70.0 → 3.71.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 (125) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +8 -5
  3. package/dist/{alert-dialog-CBkWG32g.js → alert-dialog-y2pbowVh.js} +1 -1
  4. package/dist/{async-slice-CNZ3N55P.js → async-slice-CGfWBOaV.js} +1 -1
  5. package/dist/{button-D3qzqDY_.js → button-D54Hrjo0.js} +1 -1
  6. package/dist/charts.js +3 -3
  7. package/dist/{chip-CMTe4sQd.js → chip-B5MhXBfm.js} +2 -2
  8. package/dist/{code-editor-Cs7mz1J-.js → code-editor-mULs4SL8.js} +5 -5
  9. package/dist/code-editor.js +5 -5
  10. package/dist/{code-language-items-D_QMgjVy.js → code-language-items-BWDnqUqn.js} +2 -2
  11. package/dist/components/ui/collections/server-table/server-table-phone-row.css +6 -0
  12. package/dist/components/ui/display/code/code-moonlight.css +37 -0
  13. package/dist/{components-BbWcozcj.js → components-B_taYVcd.js} +19417 -18629
  14. package/dist/components.js +28 -28
  15. package/dist/{dialog-B3BSdRci.js → dialog-AjCYZ2Vz.js} +4 -4
  16. package/dist/dnd.js +1 -1
  17. package/dist/{dropdown-menu-BaupOWgS.js → dropdown-menu-LN60hu_3.js} +1 -1
  18. package/dist/editor.js +35 -35
  19. package/dist/{empty-state-B2Um5UpI.js → empty-state-Bo8G8W8G.js} +2 -2
  20. package/dist/{field-blur-1XLyxRPr.js → field-blur-Cnd6FfCH.js} +1 -1
  21. package/dist/{field-blur-context-XNvCDnMT.js → field-blur-context-bUFZj8iN.js} +1 -1
  22. package/dist/{hooks-BU21Jpaa.js → hooks-Dt4PkQiZ.js} +2 -2
  23. package/dist/hooks.js +3 -3
  24. package/dist/{hover-card-Bvm3svX9.js → hover-card-QtGnvsnc.js} +1 -1
  25. package/dist/i18n.js +3 -3
  26. package/dist/{icon-badge-wip9bfa2.js → icon-badge-DLbpCQIm.js} +3 -3
  27. package/dist/{icon-button-QwIeBTdw.js → icon-button-C59DqL7L.js} +1 -1
  28. package/dist/lib/components/ui/actions/fab/fab-dock-inset.d.ts +29 -0
  29. package/dist/lib/components/ui/actions/fab/fab-dock.d.ts +6 -1
  30. package/dist/lib/components/ui/collections/data-table/select-checkbox.d.ts +3 -2
  31. package/dist/lib/components/ui/collections/index.d.ts +1 -0
  32. package/dist/lib/components/ui/collections/record-actions-menu/index.d.ts +2 -0
  33. package/dist/lib/components/ui/collections/record-actions-menu/record-actions-dialogs.d.ts +15 -0
  34. package/dist/lib/components/ui/collections/record-actions-menu/record-actions-menu.d.ts +72 -0
  35. package/dist/lib/components/ui/collections/record-actions-menu/record-actions-rules.d.ts +68 -0
  36. package/dist/lib/components/ui/collections/record-actions-menu/record-actions-words.d.ts +52 -0
  37. package/dist/lib/components/ui/collections/record-actions-menu/use-record-actions.d.ts +51 -0
  38. package/dist/lib/components/ui/collections/record-actions-menu/use-record-flight.d.ts +16 -0
  39. package/dist/lib/components/ui/collections/row-menu/row-menu-column.d.ts +4 -0
  40. package/dist/lib/components/ui/collections/row-menu/row-menu.d.ts +1 -1
  41. package/dist/lib/components/ui/collections/server-table/partials/server-table-band-classes.d.ts +7 -5
  42. package/dist/lib/components/ui/collections/server-table/partials/server-table-column-sorting.d.ts +7 -0
  43. package/dist/lib/components/ui/collections/server-table/types.d.ts +3 -1
  44. package/dist/lib/components/ui/display/markdown/markdown.d.ts +12 -1
  45. package/dist/lib/components/ui/display/markdown/markdown.utils.d.ts +2 -0
  46. package/dist/lib/components/ui/display/markdown/mermaid-csp-scope.d.ts +8 -0
  47. package/dist/lib/components/ui/display/markdown/mermaid-markup.d.ts +20 -0
  48. package/dist/lib/components/ui/display/markdown/partials/markdown-code.d.ts +5 -1
  49. package/dist/lib/components/ui/feedback/confirm-dialog/action-refusal.d.ts +24 -0
  50. package/dist/lib/components/ui/feedback/confirm-dialog/confirm-alert.d.ts +17 -0
  51. package/dist/lib/components/ui/feedback/confirm-dialog/confirm-description.d.ts +10 -0
  52. package/dist/lib/components/ui/feedback/confirm-dialog/confirm-dialog.d.ts +24 -2
  53. package/dist/lib/components/ui/feedback/confirm-dialog/confirm-refusal.d.ts +7 -0
  54. package/dist/lib/components/ui/feedback/confirm-dialog/index.d.ts +1 -0
  55. package/dist/lib/components/ui/feedback/confirm-dialog/use-confirm-action.d.ts +6 -0
  56. package/dist/lib/components/ui/feedback/index.d.ts +1 -0
  57. package/dist/lib/components/ui/feedback/stale-notice/index.d.ts +1 -0
  58. package/dist/lib/components/ui/feedback/stale-notice/stale-notice.d.ts +15 -0
  59. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +1 -1
  60. package/dist/lib/components/ui/forms/index.d.ts +1 -0
  61. package/dist/lib/components/ui/forms/use-server-field-errors.d.ts +21 -0
  62. package/dist/lib/components/ui/layout/index.d.ts +1 -0
  63. package/dist/lib/components/ui/layout/record-page/index.d.ts +2 -0
  64. package/dist/lib/components/ui/layout/record-page/record-details.d.ts +40 -0
  65. package/dist/lib/components/ui/layout/record-page/record-page.d.ts +27 -0
  66. package/dist/lib/components/ui/widgets/chat/chat-conversation-item.d.ts +8 -2
  67. package/dist/lib/components/ui/widgets/chat/chat-markdown.d.ts +4 -0
  68. package/dist/lib/components/ui/widgets/chat/chat-message-list.d.ts +8 -1
  69. package/dist/lib/components/ui/widgets/chat/index.d.ts +2 -0
  70. package/dist/lib/components/ui/widgets/chat/partials/chat-conversation-item-text.d.ts +2 -1
  71. package/dist/lib/components/ui/widgets/chat/partials/chat-empty-thread.d.ts +2 -0
  72. package/dist/lib/components/ui/widgets/chat/proposal/chat-action-proposal-parts.d.ts +24 -0
  73. package/dist/lib/components/ui/widgets/chat/proposal/chat-action-proposal.d.ts +39 -0
  74. package/dist/lib/components/ui/widgets/chat/proposal/chat-action-proposal.rules.d.ts +17 -0
  75. package/dist/lib/components/ui/widgets/chat/proposal/chat-tool-activity.d.ts +16 -0
  76. package/dist/lib/i18n/resources/en/en.d.ts +40 -0
  77. package/dist/lib/i18n/resources/en/material.json.d.ts +40 -0
  78. package/dist/lib/i18n/resources/fr/fr.d.ts +40 -0
  79. package/dist/lib/i18n/resources/fr/material.json.d.ts +40 -0
  80. package/dist/lib/i18n/resources/resources.d.ts +80 -0
  81. package/dist/lib/i18n/translator.d.ts +1 -1
  82. package/dist/lib/print/output/to-pdf-element.d.ts +6 -0
  83. package/dist/lib.js +1 -1
  84. package/dist/main.js +42 -42
  85. package/dist/map.js +8 -8
  86. package/dist/material.css +1 -1
  87. package/dist/pdf-reader.js +1 -1
  88. package/dist/print.js +135 -131
  89. package/dist/{public-BuGgOtAl.js → public-BSaSCwy7.js} +9 -9
  90. package/dist/{rich-code-block-DdHqzzek.js → rich-code-block-BFVj1GWz.js} +5 -5
  91. package/dist/{sortable-provider-DMyaSfZZ.js → sortable-provider-REwyjiOZ.js} +2 -2
  92. package/dist/{spinner-ByYdcukU.js → spinner-BFZxqdWC.js} +1 -1
  93. package/dist/theme-picker.js +2 -2
  94. package/dist/{theme-toggle-DB3aZZnO.js → theme-toggle-BHi6miz-.js} +1 -1
  95. package/dist/{toolbar-items-DbzIKjo7.js → toolbar-items-BTtoKVlx.js} +3 -3
  96. package/dist/{translate-material-Dh7MYkHT.js → translate-material-R-uLthBy.js} +1 -1
  97. package/dist/{translator-Byhohi1S.js → translator-ClbXOGQO.js} +80 -0
  98. package/dist/{typography-rUf0mE5a.js → typography-v-PJ4Zco.js} +1 -1
  99. package/dist/{use-chat-composer-uUUTRB3Z.js → use-chat-composer-Rhan4Xv0.js} +107 -107
  100. package/dist/{use-heading-spy-CVzW2NM3.js → use-heading-spy-CJnBkCY0.js} +179 -87
  101. package/dist/{use-material-translation-BAYyZOcH.js → use-material-translation-CCWUeiEn.js} +1 -1
  102. package/dist/{use-return-focus-CQAuk9kh.js → use-return-focus-Duk40DZI.js} +1 -1
  103. package/docs/components/buttons-and-actions.md +24 -0
  104. package/docs/components/data-display.md +33 -0
  105. package/docs/components/data-table-filter-and-lists.md +117 -5
  106. package/docs/components/feedback-and-status.md +58 -2
  107. package/docs/components/navigation-and-layout.md +58 -0
  108. package/docs/components/rich-widgets.md +35 -2
  109. package/docs/guides/cards-and-tiles.md +4 -2
  110. package/docs/guides/csp.md +44 -6
  111. package/docs/guides/forms.md +51 -4
  112. package/docs/guides/i18n.md +6 -5
  113. package/docs/guides/printing.md +17 -7
  114. package/docs/previews/data-table-filter-lists-recordactionsmenu.webp +0 -0
  115. package/docs/previews/feedback-status-stalenotice.webp +0 -0
  116. package/docs/previews/media-files-networkuploadfield.webp +0 -0
  117. package/docs/previews/media-files-s3uploadfield.webp +0 -0
  118. package/docs/previews/media-files-uploadfield.webp +0 -0
  119. package/docs/previews/navigation-layout-recordpage.webp +0 -0
  120. package/docs/previews/rich-widgets-chat-action-proposal.webp +0 -0
  121. package/docs/roadmap.md +11 -1
  122. package/docs/troubleshooting.md +47 -7
  123. package/lib/components/ui/collections/server-table/server-table-phone-row.css +6 -0
  124. package/lib/components/ui/display/code/code-moonlight.css +37 -0
  125. package/package.json +2 -2
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import { ActivityContentProps } from '../app-shell/activity-content.js';
3
+ export type RecordPageProps = Omit<ActivityContentProps, 'aside' | 'asideLabel' | 'asideLabelledBy' | 'asideStack' | 'asideClassName' | 'asideSide'> & {
4
+ /**
5
+ * The record's facts, usually a {@link RecordDetails}: a side panel from
6
+ * `asideFrom` (`xl` by default), sticky under the app bar, and stacked
7
+ * below it. A `complementary` landmark named by `detailsLabel`.
8
+ */
9
+ details?: ReactNode;
10
+ /** The side panel's accessible name (`aria-label`), such as "Item details". */
11
+ detailsLabel?: string;
12
+ /** The id of the heading inside the details that names the panel. */
13
+ detailsLabelledBy?: string;
14
+ /** Where the details go below `asideFrom`: `'after'` the content (default) or `'before'` it. */
15
+ detailsStack?: 'before' | 'after';
16
+ /** Classes for the side panel itself. */
17
+ detailsClassName?: string;
18
+ };
19
+ /**
20
+ * RecordPage - the page of one record: a header card (`header`, or `title`,
21
+ * `subtitle` and `actions`), the content, and the record's facts (`details`,
22
+ * a {@link RecordDetails}) as a side panel from `xl` that stacks after the
23
+ * content, or before it, below. It composes `ActivityContent`, so `width`,
24
+ * `notice`, `inset`, `titleAs` and the others work as there; only the side
25
+ * panel's props are renamed `details*`. A layout: no data, no state.
26
+ */
27
+ export declare function RecordPage({ details, detailsLabel, detailsLabelledBy, detailsStack, detailsClassName, ...props }: RecordPageProps): import("react").JSX.Element;
@@ -3,7 +3,13 @@ import { StatusTone } from '../../display/status-indicator/status-indicator.js';
3
3
  export type ChatConversationItemProps = {
4
4
  avatarSrc?: string;
5
5
  avatarFallback?: ReactNode;
6
+ /**
7
+ * The conversation's name. A string also becomes the `title` attribute of
8
+ * the clipped line, so the full text stays readable on hover.
9
+ */
6
10
  title: ReactNode;
11
+ /** The full text of a clipped `title` that is not a string (a node). */
12
+ titleText?: string;
7
13
  preview?: ReactNode;
8
14
  timestamp?: ReactNode;
9
15
  unreadCount?: number;
@@ -13,5 +19,5 @@ export type ChatConversationItemProps = {
13
19
  status?: StatusTone;
14
20
  /** Shows a typing line instead of the preview. */
15
21
  isTyping?: boolean;
16
- } & Omit<ComponentProps<'button'>, 'children'>;
17
- export declare function ChatConversationItem({ avatarSrc, avatarFallback, title, preview, timestamp, unreadCount, isActive, isLoading, status, isTyping, className, ...props }: ChatConversationItemProps): import("react").JSX.Element;
22
+ } & Omit<ComponentProps<'button'>, 'children' | 'title'>;
23
+ export declare function ChatConversationItem({ avatarSrc, avatarFallback, title, titleText, preview, timestamp, unreadCount, isActive, isLoading, status, isTyping, className, ...props }: ChatConversationItemProps): import("react").JSX.Element;
@@ -2,5 +2,9 @@ import { ComponentProps } from 'react';
2
2
  export { sanitizeHref } from '../../display/markdown/markdown.utils.js';
3
3
  export type ChatMarkdownProps = {
4
4
  content: string;
5
+ /** KaTeX maths, default `true`; see `Markdown`. */
6
+ math?: boolean;
7
+ /** Mermaid diagrams, default `true`; see `Markdown`. */
8
+ mermaid?: boolean;
5
9
  } & Omit<ComponentProps<'div'>, 'children'>;
6
10
  export declare function ChatMarkdown({ content, className, ...props }: ChatMarkdownProps): import("react").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { ComponentProps, ReactNode } from 'react';
2
+ import { ScrollArea } from '../../primitives/scroll-area/scroll-area.js';
2
3
  import { ChatDensity, ChatLayout } from './chat-layout-context.js';
3
4
  export type ChatMessageListProps = {
4
5
  isTyping?: boolean;
@@ -14,5 +15,11 @@ export type ChatMessageListProps = {
14
15
  /** `comfortable` (default) or `compact`, for every `ChatMessage` inside. */
15
16
  density?: ChatDensity;
16
17
  children?: ReactNode;
18
+ /**
19
+ * Attributes for the scrolling element itself. It is a tab stop by default
20
+ * (`tabIndex={0}`), so a keyboard reader can scroll a transcript that holds
21
+ * nothing focusable; pass `tabIndex={-1}` to opt out.
22
+ */
23
+ viewportProps?: ComponentProps<typeof ScrollArea>['viewportProps'];
17
24
  } & Omit<ComponentProps<'div'>, 'children' | 'dir'>;
18
- export declare function ChatMessageList({ isTyping, typingLabel, typingAvatar, emptyState, scrollToBottomLabel, showScrollToBottom, bottomThreshold, layout, density, children, className, ...props }: ChatMessageListProps): import("react").JSX.Element;
25
+ export declare function ChatMessageList({ isTyping, typingLabel, typingAvatar, emptyState, scrollToBottomLabel, showScrollToBottom, bottomThreshold, layout, density, children, className, viewportProps, ...props }: ChatMessageListProps): import("react").JSX.Element;
@@ -15,4 +15,6 @@ export * from './chat-typing-indicator.js';
15
15
  export * from './chat-widget.js';
16
16
  export * from './partials/chat-composer-attachment-chip.js';
17
17
  export * from './partials/chat-composer-attachments.js';
18
+ export * from './proposal/chat-action-proposal.js';
19
+ export * from './proposal/chat-tool-activity.js';
18
20
  export * from './use-chat-composer-attachments.js';
@@ -1,7 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
2
  /** The title, timestamp, preview (or typing line) and unread badge of a conversation row. */
3
- export declare function ChatConversationItemText({ title, preview, timestamp, unreadCount, isActive, isTyping, }: {
3
+ export declare function ChatConversationItemText({ title, titleText, preview, timestamp, unreadCount, isActive, isTyping, }: {
4
4
  title: ReactNode;
5
+ titleText?: string;
5
6
  preview?: ReactNode;
6
7
  timestamp?: ReactNode;
7
8
  unreadCount?: number;
@@ -0,0 +1,2 @@
1
+ /** The default empty state of a message list. */
2
+ export declare function ChatEmptyThread(): import("react").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ import { ChatActionProposalStatus } from './chat-action-proposal.rules.js';
3
+ export declare function ProposalFailure({ code, message, }: {
4
+ code?: string;
5
+ message?: ReactNode;
6
+ }): import("react").JSX.Element | null;
7
+ export declare function ProposalButtons({ actions, onConfirm, onReject, confirmLabel, rejectLabel, busy, locked, }: {
8
+ actions?: ReactNode;
9
+ onConfirm?: () => void;
10
+ onReject?: () => void;
11
+ confirmLabel?: string;
12
+ rejectLabel?: string;
13
+ busy: boolean;
14
+ locked: boolean;
15
+ }): import("react").JSX.Element;
16
+ export declare function Deadline({ at, status, }: {
17
+ at: Date | string | number;
18
+ status: ChatActionProposalStatus;
19
+ }): import("react").JSX.Element | null;
20
+ export declare function ProposalHeader({ toolLabel, status, statusRef, }: {
21
+ toolLabel?: ReactNode;
22
+ status: ChatActionProposalStatus;
23
+ statusRef: RefObject<HTMLSpanElement | null>;
24
+ }): import("react").JSX.Element;
@@ -0,0 +1,39 @@
1
+ import { ComponentProps, ReactNode } from 'react';
2
+ import { ChatActionProposalStatus } from './chat-action-proposal.rules.js';
3
+ export type { ChatActionProposalStatus };
4
+ export type ChatActionProposalProps = {
5
+ /** What the assistant wants to do, in a few words. */
6
+ title: ReactNode;
7
+ /** The effect in plain words: what will change, and for whom. */
8
+ summary?: ReactNode;
9
+ /** The tool behind the action (a name, a badge, an icon with a name). */
10
+ toolLabel?: ReactNode;
11
+ /** Extra detail under the summary (a list of the records touched). */
12
+ children?: ReactNode;
13
+ /** The last moment to answer; written in the active language. */
14
+ deadline?: Date | string | number;
15
+ /** Default `pending`. Only `pending` shows the buttons. */
16
+ status?: ChatActionProposalStatus;
17
+ /** A `failed` proposal: the code the tool returned, shown beside the message. */
18
+ failureCode?: string;
19
+ /** A `failed` proposal: why, in words. */
20
+ failureMessage?: ReactNode;
21
+ /** The confirm button. With neither this nor `actions`, no buttons. */
22
+ onConfirm?: () => void;
23
+ /** The reject button. */
24
+ onReject?: () => void;
25
+ confirmLabel?: string;
26
+ rejectLabel?: string;
27
+ /** An answer is being sent: both buttons are disabled and Confirm shows its spinner. */
28
+ busy?: boolean;
29
+ /** Disables both buttons without the spinner (a read-only viewer). */
30
+ disabled?: boolean;
31
+ /** Replaces the two buttons (a split button, a reason dialog's trigger). Shown while `pending` only. */
32
+ actions?: ReactNode;
33
+ } & Omit<ComponentProps<'section'>, 'title' | 'children'>;
34
+ /**
35
+ * A card in a chat thread for an action an assistant proposes and the user
36
+ * confirms or rejects. Once answered, the focus moves to the status line so
37
+ * a screen reader reads the outcome.
38
+ */
39
+ export declare function ChatActionProposal({ title, summary, toolLabel, children, deadline, status, failureCode, failureMessage, onConfirm, onReject, confirmLabel, rejectLabel, busy, disabled, actions, className, ...props }: ChatActionProposalProps): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { IconName } from '@fortawesome/fontawesome-common-types';
2
+ import { BadgeTone } from '../../../display/badge/badge.js';
3
+ /** Where a proposed action stands. Only `pending` can still be answered. */
4
+ export type ChatActionProposalStatus = 'pending' | 'running' | 'confirmed' | 'failed' | 'rejected' | 'expired';
5
+ type StatusLook = {
6
+ tone: BadgeTone;
7
+ icon: IconName;
8
+ label: string;
9
+ };
10
+ /** Each status: a tone, an icon and its English fallback (`material.chat.proposal.status.<status>`). Colour is never the only signal. */
11
+ export declare const PROPOSAL_STATUS: Record<ChatActionProposalStatus, StatusLook>;
12
+ /** The buttons show only while the proposal waits for an answer. */
13
+ export declare function proposalAnswerable(status: ChatActionProposalStatus): boolean;
14
+ /** The state of a tool step in a message list. */
15
+ export type ChatToolActivityState = 'running' | 'ok' | 'failed';
16
+ export declare const TOOL_STATE: Record<ChatToolActivityState, StatusLook>;
17
+ export {};
@@ -0,0 +1,16 @@
1
+ import { ComponentProps, ReactNode } from 'react';
2
+ import { ChatToolActivityState } from './chat-action-proposal.rules.js';
3
+ export type { ChatToolActivityState };
4
+ export type ChatToolActivityProps = {
5
+ /** The tool's name (`search_students`) or a friendly label. */
6
+ name: ReactNode;
7
+ /** Default `running`. */
8
+ state?: ChatToolActivityState;
9
+ /** A short result or error under the name. */
10
+ detail?: ReactNode;
11
+ } & Omit<ComponentProps<'div'>, 'children'>;
12
+ /**
13
+ * One compact row for a tool step the assistant took, inside a
14
+ * `ChatMessageList`: the name, then Running, Done or Failed with its icon.
15
+ */
16
+ export declare function ChatToolActivity({ name, state, detail, className, ...props }: ChatToolActivityProps): import("react").JSX.Element;
@@ -129,6 +129,7 @@ export declare const en: {
129
129
  retry: string;
130
130
  remove: string;
131
131
  "replace-named": string;
132
+ "remove-named": string;
132
133
  failed: string;
133
134
  "error-status": string;
134
135
  "error-status-code": string;
@@ -253,6 +254,25 @@ export declare const en: {
253
254
  open: string;
254
255
  close: string;
255
256
  };
257
+ proposal: {
258
+ status: {
259
+ pending: string;
260
+ running: string;
261
+ confirmed: string;
262
+ failed: string;
263
+ rejected: string;
264
+ expired: string;
265
+ };
266
+ confirm: string;
267
+ reject: string;
268
+ "respond-by": string;
269
+ "expired-at": string;
270
+ };
271
+ tool: {
272
+ running: string;
273
+ ok: string;
274
+ failed: string;
275
+ };
256
276
  };
257
277
  gallery: {
258
278
  label: string;
@@ -1370,6 +1390,11 @@ export declare const en: {
1370
1390
  stay: string;
1371
1391
  leave: string;
1372
1392
  };
1393
+ "stale-notice": {
1394
+ title: string;
1395
+ description: string;
1396
+ reload: string;
1397
+ };
1373
1398
  "load-more": {
1374
1399
  shown: string;
1375
1400
  "shown-count": string;
@@ -3006,5 +3031,20 @@ export declare const en: {
3006
3031
  label: string;
3007
3032
  column: string;
3008
3033
  };
3034
+ "record-actions": {
3035
+ archive: string;
3036
+ restore: string;
3037
+ delete: string;
3038
+ archived: string;
3039
+ restored: string;
3040
+ undo: string;
3041
+ failed: string;
3042
+ "archive-title": string;
3043
+ "archive-description": string;
3044
+ "archive-confirm": string;
3045
+ "delete-title": string;
3046
+ "delete-description": string;
3047
+ "delete-confirm": string;
3048
+ };
3009
3049
  };
3010
3050
  };
@@ -119,6 +119,7 @@ declare const _default: {
119
119
  "retry": "Retry",
120
120
  "remove": "Remove",
121
121
  "replace-named": "Replace {name}",
122
+ "remove-named": "Remove {name}",
122
123
  "failed": "Upload failed",
123
124
  "error-status": "Upload failed with status {status}",
124
125
  "error-status-code": "Upload failed with status {status} ({code})",
@@ -242,6 +243,25 @@ declare const _default: {
242
243
  "widget": {
243
244
  "open": "Open chat",
244
245
  "close": "Close chat"
246
+ },
247
+ "proposal": {
248
+ "status": {
249
+ "pending": "Awaiting your answer",
250
+ "running": "Running",
251
+ "confirmed": "Confirmed",
252
+ "failed": "Failed",
253
+ "rejected": "Rejected",
254
+ "expired": "Expired"
255
+ },
256
+ "confirm": "Confirm",
257
+ "reject": "Reject",
258
+ "respond-by": "Respond by",
259
+ "expired-at": "Expired on"
260
+ },
261
+ "tool": {
262
+ "running": "Running",
263
+ "ok": "Done",
264
+ "failed": "Failed"
245
265
  }
246
266
  },
247
267
  "gallery": {
@@ -1360,6 +1380,11 @@ declare const _default: {
1360
1380
  "stay": "Stay",
1361
1381
  "leave": "Leave"
1362
1382
  },
1383
+ "stale-notice": {
1384
+ "title": "This record changed",
1385
+ "description": "Someone else saved this record before you. What you typed is kept. Reload the record to see their version.",
1386
+ "reload": "Reload the record"
1387
+ },
1363
1388
  "load-more": {
1364
1389
  "shown": "Showing {shown} of {total}",
1365
1390
  "shown-count": "{shown, plural, one {# shown} other {# shown}}",
@@ -2995,6 +3020,21 @@ declare const _default: {
2995
3020
  "row-menu": {
2996
3021
  "label": "Actions for {name}",
2997
3022
  "column": "Actions"
3023
+ },
3024
+ "record-actions": {
3025
+ "archive": "Archive",
3026
+ "restore": "Restore",
3027
+ "delete": "Delete permanently",
3028
+ "archived": "{name} archived",
3029
+ "restored": "{name} restored",
3030
+ "undo": "Undo",
3031
+ "failed": "The action failed.",
3032
+ "archive-title": "Archive {name}?",
3033
+ "archive-description": "{name} will be hidden. You can restore it later.",
3034
+ "archive-confirm": "Archive",
3035
+ "delete-title": "Delete {name} permanently?",
3036
+ "delete-description": "This cannot be undone.",
3037
+ "delete-confirm": "Delete permanently"
2998
3038
  }
2999
3039
  }
3000
3040
  ;
@@ -129,6 +129,7 @@ export declare const fr: {
129
129
  retry: string;
130
130
  remove: string;
131
131
  "replace-named": string;
132
+ "remove-named": string;
132
133
  failed: string;
133
134
  "error-status": string;
134
135
  "error-status-code": string;
@@ -253,6 +254,25 @@ export declare const fr: {
253
254
  open: string;
254
255
  close: string;
255
256
  };
257
+ proposal: {
258
+ status: {
259
+ pending: string;
260
+ running: string;
261
+ confirmed: string;
262
+ failed: string;
263
+ rejected: string;
264
+ expired: string;
265
+ };
266
+ confirm: string;
267
+ reject: string;
268
+ "respond-by": string;
269
+ "expired-at": string;
270
+ };
271
+ tool: {
272
+ running: string;
273
+ ok: string;
274
+ failed: string;
275
+ };
256
276
  };
257
277
  gallery: {
258
278
  label: string;
@@ -1370,6 +1390,11 @@ export declare const fr: {
1370
1390
  stay: string;
1371
1391
  leave: string;
1372
1392
  };
1393
+ "stale-notice": {
1394
+ title: string;
1395
+ description: string;
1396
+ reload: string;
1397
+ };
1373
1398
  "load-more": {
1374
1399
  shown: string;
1375
1400
  "shown-count": string;
@@ -3006,5 +3031,20 @@ export declare const fr: {
3006
3031
  label: string;
3007
3032
  column: string;
3008
3033
  };
3034
+ "record-actions": {
3035
+ archive: string;
3036
+ restore: string;
3037
+ delete: string;
3038
+ archived: string;
3039
+ restored: string;
3040
+ undo: string;
3041
+ failed: string;
3042
+ "archive-title": string;
3043
+ "archive-description": string;
3044
+ "archive-confirm": string;
3045
+ "delete-title": string;
3046
+ "delete-description": string;
3047
+ "delete-confirm": string;
3048
+ };
3009
3049
  };
3010
3050
  };
@@ -119,6 +119,7 @@ declare const _default: {
119
119
  "retry": "Réessayer",
120
120
  "remove": "Supprimer",
121
121
  "replace-named": "Remplacer {name}",
122
+ "remove-named": "Supprimer {name}",
122
123
  "failed": "Échec de l'envoi",
123
124
  "error-status": "Échec de l'envoi (statut {status})",
124
125
  "error-status-code": "Échec de l'envoi (statut {status}, {code})",
@@ -242,6 +243,25 @@ declare const _default: {
242
243
  "widget": {
243
244
  "open": "Ouvrir la discussion",
244
245
  "close": "Fermer la discussion"
246
+ },
247
+ "proposal": {
248
+ "status": {
249
+ "pending": "En attente de votre réponse",
250
+ "running": "En cours",
251
+ "confirmed": "Confirmée",
252
+ "failed": "Échec",
253
+ "rejected": "Refusée",
254
+ "expired": "Expirée"
255
+ },
256
+ "confirm": "Confirmer",
257
+ "reject": "Refuser",
258
+ "respond-by": "Répondre avant le",
259
+ "expired-at": "Expirée le"
260
+ },
261
+ "tool": {
262
+ "running": "En cours",
263
+ "ok": "Terminé",
264
+ "failed": "Échec"
245
265
  }
246
266
  },
247
267
  "gallery": {
@@ -1360,6 +1380,11 @@ declare const _default: {
1360
1380
  "stay": "Rester",
1361
1381
  "leave": "Quitter"
1362
1382
  },
1383
+ "stale-notice": {
1384
+ "title": "Cet enregistrement a changé",
1385
+ "description": "Quelqu’un d’autre a enregistré cet enregistrement avant vous. Ce que vous avez saisi est conservé. Rechargez l’enregistrement pour voir sa version.",
1386
+ "reload": "Recharger l’enregistrement"
1387
+ },
1363
1388
  "load-more": {
1364
1389
  "shown": "Affichage de {shown} sur {total}",
1365
1390
  "shown-count": "{shown, plural, one {# affiché} other {# affichés}}",
@@ -2995,6 +3020,21 @@ declare const _default: {
2995
3020
  "row-menu": {
2996
3021
  "label": "Actions pour {name}",
2997
3022
  "column": "Actions"
3023
+ },
3024
+ "record-actions": {
3025
+ "archive": "Archiver",
3026
+ "restore": "Restaurer",
3027
+ "delete": "Supprimer définitivement",
3028
+ "archived": "{name} archivé",
3029
+ "restored": "{name} restauré",
3030
+ "undo": "Annuler",
3031
+ "failed": "L’action a échoué.",
3032
+ "archive-title": "Archiver {name} ?",
3033
+ "archive-description": "{name} sera masqué. Vous pourrez le restaurer plus tard.",
3034
+ "archive-confirm": "Archiver",
3035
+ "delete-title": "Supprimer {name} définitivement ?",
3036
+ "delete-description": "Cette action est irréversible.",
3037
+ "delete-confirm": "Supprimer définitivement"
2998
3038
  }
2999
3039
  }
3000
3040
  ;
@@ -127,6 +127,7 @@ export declare const resources: {
127
127
  retry: string;
128
128
  remove: string;
129
129
  "replace-named": string;
130
+ "remove-named": string;
130
131
  failed: string;
131
132
  "error-status": string;
132
133
  "error-status-code": string;
@@ -251,6 +252,25 @@ export declare const resources: {
251
252
  open: string;
252
253
  close: string;
253
254
  };
255
+ proposal: {
256
+ status: {
257
+ pending: string;
258
+ running: string;
259
+ confirmed: string;
260
+ failed: string;
261
+ rejected: string;
262
+ expired: string;
263
+ };
264
+ confirm: string;
265
+ reject: string;
266
+ "respond-by": string;
267
+ "expired-at": string;
268
+ };
269
+ tool: {
270
+ running: string;
271
+ ok: string;
272
+ failed: string;
273
+ };
254
274
  };
255
275
  gallery: {
256
276
  label: string;
@@ -1368,6 +1388,11 @@ export declare const resources: {
1368
1388
  stay: string;
1369
1389
  leave: string;
1370
1390
  };
1391
+ "stale-notice": {
1392
+ title: string;
1393
+ description: string;
1394
+ reload: string;
1395
+ };
1371
1396
  "load-more": {
1372
1397
  shown: string;
1373
1398
  "shown-count": string;
@@ -3004,6 +3029,21 @@ export declare const resources: {
3004
3029
  label: string;
3005
3030
  column: string;
3006
3031
  };
3032
+ "record-actions": {
3033
+ archive: string;
3034
+ restore: string;
3035
+ delete: string;
3036
+ archived: string;
3037
+ restored: string;
3038
+ undo: string;
3039
+ failed: string;
3040
+ "archive-title": string;
3041
+ "archive-description": string;
3042
+ "archive-confirm": string;
3043
+ "delete-title": string;
3044
+ "delete-description": string;
3045
+ "delete-confirm": string;
3046
+ };
3007
3047
  };
3008
3048
  };
3009
3049
  fr: {
@@ -3128,6 +3168,7 @@ export declare const resources: {
3128
3168
  retry: string;
3129
3169
  remove: string;
3130
3170
  "replace-named": string;
3171
+ "remove-named": string;
3131
3172
  failed: string;
3132
3173
  "error-status": string;
3133
3174
  "error-status-code": string;
@@ -3252,6 +3293,25 @@ export declare const resources: {
3252
3293
  open: string;
3253
3294
  close: string;
3254
3295
  };
3296
+ proposal: {
3297
+ status: {
3298
+ pending: string;
3299
+ running: string;
3300
+ confirmed: string;
3301
+ failed: string;
3302
+ rejected: string;
3303
+ expired: string;
3304
+ };
3305
+ confirm: string;
3306
+ reject: string;
3307
+ "respond-by": string;
3308
+ "expired-at": string;
3309
+ };
3310
+ tool: {
3311
+ running: string;
3312
+ ok: string;
3313
+ failed: string;
3314
+ };
3255
3315
  };
3256
3316
  gallery: {
3257
3317
  label: string;
@@ -4369,6 +4429,11 @@ export declare const resources: {
4369
4429
  stay: string;
4370
4430
  leave: string;
4371
4431
  };
4432
+ "stale-notice": {
4433
+ title: string;
4434
+ description: string;
4435
+ reload: string;
4436
+ };
4372
4437
  "load-more": {
4373
4438
  shown: string;
4374
4439
  "shown-count": string;
@@ -6005,6 +6070,21 @@ export declare const resources: {
6005
6070
  label: string;
6006
6071
  column: string;
6007
6072
  };
6073
+ "record-actions": {
6074
+ archive: string;
6075
+ restore: string;
6076
+ delete: string;
6077
+ archived: string;
6078
+ restored: string;
6079
+ undo: string;
6080
+ failed: string;
6081
+ "archive-title": string;
6082
+ "archive-description": string;
6083
+ "archive-confirm": string;
6084
+ "delete-title": string;
6085
+ "delete-description": string;
6086
+ "delete-confirm": string;
6087
+ };
6008
6088
  };
6009
6089
  };
6010
6090
  };