@nxgt/material 3.25.1 → 3.26.1

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 (78) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -0
  3. package/dist/{async-slice-nTRgm_ct.js → async-slice-gAbGnQT8.js} +2 -2
  4. package/dist/{button-rdIhY2BT.js → button-Cr9GIIj4.js} +1 -1
  5. package/dist/charts.js +3 -3
  6. package/dist/{chip-CEau88ZV.js → chip-s11lOfxB.js} +1 -1
  7. package/dist/{code-editor-DHB5ytUz.js → code-editor-DGIjL8Hr.js} +4 -4
  8. package/dist/code-editor.js +4 -4
  9. package/dist/{code-language-items-Dww9amx_.js → code-language-items-DCOQnaCo.js} +2 -2
  10. package/dist/{components-wLKi88Su.js → components-BEN2FVD-.js} +12019 -11384
  11. package/dist/components.js +26 -26
  12. package/dist/{dialog-B2GXKBp3.js → dialog-Crvg-MN5.js} +1 -1
  13. package/dist/dnd.js +1 -1
  14. package/dist/{dropdown-menu-mTDyFwbQ.js → dropdown-menu-B71aggp0.js} +1 -1
  15. package/dist/editor.js +7 -7
  16. package/dist/{empty-state-lj7vjYWG.js → empty-state-8LddxMU4.js} +1 -1
  17. package/dist/hooks.js +2 -2
  18. package/dist/{i18n-provider-BpZOKh7U.js → i18n-provider-BDi9-6DO.js} +1 -1
  19. package/dist/i18n.js +5 -5
  20. package/dist/{icon-badge-CiWXvKCs.js → icon-badge-DG7wLnHh.js} +1 -1
  21. package/dist/lib/components/ui/display/change-history/change-history.d.ts +16 -0
  22. package/dist/lib/components/ui/display/change-history/change-history.test-data.d.ts +8 -0
  23. package/dist/lib/components/ui/display/change-history/change-history.utils.d.ts +16 -0
  24. package/dist/lib/components/ui/display/change-history/index.d.ts +2 -0
  25. package/dist/lib/components/ui/display/change-history/kinds.d.ts +9 -0
  26. package/dist/lib/components/ui/display/change-history/partials/card-changes.d.ts +7 -0
  27. package/dist/lib/components/ui/display/change-history/partials/card-entry.d.ts +3 -0
  28. package/dist/lib/components/ui/display/change-history/partials/changes-collapse.d.ts +22 -0
  29. package/dist/lib/components/ui/display/change-history/partials/day-heading.d.ts +11 -0
  30. package/dist/lib/components/ui/display/change-history/partials/entry-list.d.ts +12 -0
  31. package/dist/lib/components/ui/display/change-history/partials/entry-time.d.ts +8 -0
  32. package/dist/lib/components/ui/display/change-history/partials/footer.d.ts +9 -0
  33. package/dist/lib/components/ui/display/change-history/partials/history-body.d.ts +8 -0
  34. package/dist/lib/components/ui/display/change-history/partials/rail-changes.d.ts +9 -0
  35. package/dist/lib/components/ui/display/change-history/partials/rail-entry.d.ts +5 -0
  36. package/dist/lib/components/ui/display/change-history/partials/skeleton.d.ts +6 -0
  37. package/dist/lib/components/ui/display/change-history/partials/use-load-more-focus.d.ts +12 -0
  38. package/dist/lib/components/ui/display/change-history/partials/values.d.ts +4 -0
  39. package/dist/lib/components/ui/display/change-history/types.d.ts +95 -0
  40. package/dist/lib/components/ui/display/change-history/use-entry-summary.d.ts +8 -0
  41. package/dist/lib/components/ui/display/change-history/zoned.d.ts +12 -0
  42. package/dist/lib/components/ui/display/day-separator/day-separator.d.ts +6 -1
  43. package/dist/lib/components/ui/display/index.d.ts +1 -0
  44. package/dist/lib/components/ui/display/timeline/relative-time.d.ts +12 -1
  45. package/dist/lib/components/ui/primitives/tabs/partials/tabs-list.d.ts +6 -1
  46. package/dist/lib/components/ui/primitives/tabs/partials/tabs-scroll-buttons.d.ts +12 -0
  47. package/dist/lib/components/ui/primitives/tabs/tabs-overflow-classes.d.ts +6 -0
  48. package/dist/lib/components/ui/primitives/tabs/use-tabs-overflow.d.ts +25 -0
  49. package/dist/lib/i18n/resources/en/en.d.ts +40 -0
  50. package/dist/lib/i18n/resources/en/material.json.d.ts +40 -0
  51. package/dist/lib/i18n/resources/fr/fr.d.ts +40 -0
  52. package/dist/lib/i18n/resources/fr/material.json.d.ts +40 -0
  53. package/dist/lib/i18n/resources/resources.d.ts +80 -0
  54. package/dist/lib/i18n/translator.d.ts +1 -1
  55. package/dist/lib.js +1 -1
  56. package/dist/main.js +43 -43
  57. package/dist/map.js +4 -4
  58. package/dist/material.css +1 -1
  59. package/dist/pdf-reader.js +1 -1
  60. package/dist/print.js +2 -2
  61. package/dist/{public-DAF5SCWH.js → public-QUiFLEoj.js} +6 -6
  62. package/dist/{rich-code-block-CLkufAhI.js → rich-code-block-CjD54THr.js} +4 -4
  63. package/dist/{sortable-provider-BofwO9zZ.js → sortable-provider-DYnyzfgR.js} +1 -1
  64. package/dist/{spinner-B7HCQMFr.js → spinner-CJtTRNAX.js} +1 -1
  65. package/dist/{stored-language-CJn_iWwG.js → stored-language-ClkfkueV.js} +80 -0
  66. package/dist/theme-picker.js +2 -2
  67. package/dist/{theme-toggle-mQzIR1hw.js → theme-toggle-ufQL3SO6.js} +1 -1
  68. package/dist/{toolbar-items-Tn3MMu-s.js → toolbar-items-DlioFgpM.js} +2 -2
  69. package/dist/{translate-material-CCyVEi_f.js → translate-material-O-uasx3u.js} +2 -2
  70. package/dist/{translator-1THr41fc.js → translator-C0uxN1Nh.js} +1 -1
  71. package/dist/{use-chat-composer-B0ze1cU9.js → use-chat-composer-DzVO5mwz.js} +1762 -1640
  72. package/dist/{use-heading-spy-DNFfHQJs.js → use-heading-spy-BHCVdJfr.js} +1 -1
  73. package/dist/{use-material-translation-BFQODuQz.js → use-material-translation-B4Frk3vC.js} +2 -2
  74. package/docs/components/data-display.md +102 -2
  75. package/docs/components/primitives.md +6 -1
  76. package/docs/guides/i18n.md +2 -1
  77. package/docs/previews/data-display-changehistory.webp +0 -0
  78. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ import { ReactNode } from 'react';
2
+ import { Tone } from '../../tones.js';
3
+ import { ResolvedKind } from './kinds.js';
4
+ /** One field that changed in an entry. */
5
+ export type ChangeHistoryChange = {
6
+ /** The name of what changed ("Status", "Billing plan", "Visibility"). */
7
+ field: ReactNode;
8
+ /** The value before. Unset on a field that had none ("Empty" shows). */
9
+ before?: ReactNode;
10
+ /** The value after. */
11
+ after?: ReactNode;
12
+ /** The app hides the values: only "Hidden" shows, never `before` or `after`. */
13
+ redacted?: boolean;
14
+ };
15
+ /** How a kind of entry looks. Always shown with its word, never by colour alone. */
16
+ export type ChangeHistoryKind = {
17
+ /** The word that accompanies the colour ("Archived"). */
18
+ label: string;
19
+ /**
20
+ * What the author did, said after their name ("archived this"). With a verb,
21
+ * the rail drops the kind badge: the sentence already carries the word.
22
+ */
23
+ verb?: string;
24
+ /** The dot's or the chip's icon; `null` removes it. */
25
+ icon: ReactNode;
26
+ tone: Tone;
27
+ /**
28
+ * An entry of this kind lists values only (no "before" to compare with,
29
+ * "N fields set"). Default: true for `created`, false for any other kind.
30
+ */
31
+ creation?: boolean;
32
+ };
33
+ /**
34
+ * What the app passes for `kinds`: a whole new kind, or the parts of a
35
+ * built-in kind it overrides (`updated: { tone: 'info' }`).
36
+ */
37
+ export type ChangeHistoryKindOverride = Partial<ChangeHistoryKind>;
38
+ export type ChangeHistoryEntry = {
39
+ id: string;
40
+ /** A key of the kinds: `created`, `updated`, `archived`, `restored`, `purged`, `deleted`, or one the app declared. */
41
+ kind: string;
42
+ at: Date | string | number;
43
+ author: {
44
+ name: string;
45
+ src?: string;
46
+ };
47
+ changes: ChangeHistoryChange[];
48
+ };
49
+ export type ChangeHistoryVariant = 'rail' | 'cards';
50
+ /** What `RailEntry` and `CardEntry` share. */
51
+ export type EntryProps = {
52
+ entry: ChangeHistoryEntry;
53
+ kind: ResolvedKind;
54
+ summary: string;
55
+ collapseAfter: number;
56
+ now?: ChangeHistoryEntry['at'];
57
+ timeZone?: string;
58
+ };
59
+ export type ChangeHistoryProps = {
60
+ entries: ChangeHistoryEntry[];
61
+ /** Merged over the built-in kinds (created: success, updated: neutral, archived and restored: warning, purged and deleted: error). */
62
+ kinds?: Record<string, ChangeHistoryKindOverride>;
63
+ /** `rail` (default): a thin rail of toned dots. `cards`: a card tinted by kind with a Before/After block. */
64
+ variant?: ChangeHistoryVariant;
65
+ /** `day` (default): one heading per day (sticky on the rail), newest first. `none`: one list, in the order given. */
66
+ groupBy?: 'day' | 'none';
67
+ /** An entry with more changes than this collapses behind "N fields changed". Default 3. */
68
+ collapseAfter?: number;
69
+ /** A slot above the list, for a `Filter` bar. */
70
+ filter?: ReactNode;
71
+ loading?: boolean;
72
+ hasMore?: boolean;
73
+ onLoadMore?: () => void;
74
+ /** The count over all pages; the footer says "Showing X of Y". */
75
+ total?: number;
76
+ /** Replaces the empty state. */
77
+ empty?: ReactNode;
78
+ /**
79
+ * The reference instant for "Today" and "5 minutes ago". Default: the
80
+ * clock of the machine that renders, so a server-rendered page can differ
81
+ * from its hydration: pass `now` (and `timeZone`) from the server.
82
+ */
83
+ now?: Date | string | number;
84
+ /**
85
+ * An IANA zone (`Europe/Paris`) for the day grouping, the day heading, the
86
+ * entry summary and the exact time. Default: the machine's zone, so the
87
+ * server and the browser can disagree: pass the same `now` and `timeZone`
88
+ * from the server to group and label identically on both.
89
+ */
90
+ timeZone?: string;
91
+ /** The level of the day headings, 2 to 6. Default 3. */
92
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
93
+ 'aria-label'?: string;
94
+ className?: string;
95
+ };
@@ -0,0 +1,8 @@
1
+ import { ChangeHistoryEntry } from './types.js';
2
+ /**
3
+ * The accessible summary of an entry, "{kind} by {author}, {date and time}":
4
+ * "Updated by Ada Lovelace, August 2nd, 2026 4:00 PM", localized (`PPP p`)
5
+ * and read in `timeZone` when given. An entry without a valid date drops the
6
+ * date.
7
+ */
8
+ export declare function useEntrySummary(timeZone?: string): (entry: ChangeHistoryEntry, kindLabel: string) => string;
@@ -0,0 +1,12 @@
1
+ import { DayInput } from '@nxgt/material-core/day-math';
2
+ /**
3
+ * The wall clock of an instant in `timeZone`, as a `Date` whose local
4
+ * getters read it: `wallClock('2026-08-02T23:30:00Z', 'Asia/Tokyo')` is
5
+ * August 3rd, 08:30 whatever zone the machine runs in. The day maths
6
+ * (`daysAgo`, `localIsoDay`, `formatDayLabel`) then work on it unchanged, so
7
+ * a server and a browser group and label the same way. Without a
8
+ * `timeZone` (or with one `Intl` does not know), the instant itself.
9
+ */
10
+ export declare function wallClock(value: DayInput, timeZone?: string): Date;
11
+ /** The wall clock as an offset-less ISO string, which date-fns reads as local: `2026-08-03T08:30:00`. */
12
+ export declare function wallIso(value: DayInput, timeZone?: string): string;
@@ -16,6 +16,11 @@ export type DaySeparatorProps = Omit<ComponentProps<'div'>, 'children'> & Varian
16
16
  now?: DayInput;
17
17
  /** A BCP 47 tag for the date. Default: the provider's language, else `en`. */
18
18
  locale?: string;
19
+ /**
20
+ * The element it renders. `h2` to `h6` make it a real heading of that
21
+ * level (the hairlines stay decorative). Default: a `div`.
22
+ */
23
+ as?: 'div' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
19
24
  };
20
25
  /**
21
26
  * A heading between the days of a message list or a feed: hairlines on
@@ -23,5 +28,5 @@ export type DaySeparatorProps = Omit<ComponentProps<'div'>, 'children'> & Varian
23
28
  * the date. `sticky` keeps it at the top of its scroll box while its day
24
29
  * scrolls by; `isNewDay(previous, current)` tells where one goes.
25
30
  */
26
- export declare function DaySeparator({ date, label, badge, now, locale, variant, sticky, className, ...props }: DaySeparatorProps): import("react").JSX.Element;
31
+ export declare function DaySeparator({ date, label, badge, now, locale, variant, sticky, as: Tag, className, ...props }: DaySeparatorProps): import("react").JSX.Element;
27
32
  export { daySeparatorVariants };
@@ -6,6 +6,7 @@ export * from './avatar-group/index.js';
6
6
  export * from './badge/index.js';
7
7
  export * from './barecode/index.js';
8
8
  export * from './cards/index.js';
9
+ export * from './change-history/index.js';
9
10
  export * from './chip/index.js';
10
11
  export * from './code/index.js';
11
12
  export * from './count-badge/index.js';
@@ -1,7 +1,18 @@
1
+ import { ReactNode, Ref } from 'react';
1
2
  import { TimelineTimestamp } from './types.js';
2
3
  export type RelativeTimeProps = {
3
4
  date: TimelineTimestamp;
4
5
  addSuffix?: boolean;
5
6
  className?: string;
7
+ /** The reference instant for "5 minutes ago". Default: now. */
8
+ now?: TimelineTimestamp;
9
+ /** Reaches the keyboard (`tabIndex` 0) with a focus ring, so the exact time can show on focus. */
10
+ focusable?: boolean;
11
+ /**
12
+ * Shows the exact time (`PPPP p`, localized) in a tooltip on hover and on
13
+ * focus; a node replaces that text. Unset: the native `title` stays.
14
+ */
15
+ tooltip?: boolean | ReactNode;
16
+ ref?: Ref<HTMLTimeElement>;
6
17
  };
7
- export declare function RelativeTime({ date, addSuffix, className, }: RelativeTimeProps): import("react").JSX.Element | null;
18
+ export declare function RelativeTime({ date, addSuffix, className, now, focusable, tooltip, ref, }: RelativeTimeProps): import("react").JSX.Element | null;
@@ -1,3 +1,8 @@
1
1
  import { Tabs as TabsPrimitive } from 'radix-ui';
2
2
  import { ComponentProps } from 'react';
3
- export declare function TabsList({ className, children, ...props }: ComponentProps<typeof TabsPrimitive.List>): import("react").JSX.Element;
3
+ /**
4
+ * The row of tabs. When it is wider than its container it scrolls sideways;
5
+ * while tabs are hidden on a side, that side fades and gets a scroll button,
6
+ * and the selected (or focused) tab is scrolled into view.
7
+ */
8
+ export declare function TabsList({ className, children, ref, ...props }: ComponentProps<typeof TabsPrimitive.List>): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { RefObject } from 'react';
2
+ import { TabsOverflow } from '../use-tabs-overflow.js';
3
+ /**
4
+ * A small button on each side of an overflowing list that has hidden tabs,
5
+ * laid over the list's edges. It renders nothing while the list fits, so the
6
+ * server markup has none. The buttons are out of the tab order, since the
7
+ * arrow keys already move between tabs, and take no focus from a press.
8
+ */
9
+ export declare function TabsScrollButtons({ list, overflow, }: {
10
+ list: RefObject<HTMLElement | null>;
11
+ overflow: TabsOverflow;
12
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ export declare const TABS_OVERFLOW_FADE = "data-[overflow-left]:[--tabs-fade-left:2rem] data-[overflow-right]:[--tabs-fade-right:2rem] data-[overflow-left]:[mask-image:linear-gradient(to_right,transparent,#000_var(--tabs-fade-left,0px),#000_calc(100%_-_var(--tabs-fade-right,0px)),transparent)] data-[overflow-right]:[mask-image:linear-gradient(to_right,transparent,#000_var(--tabs-fade-left,0px),#000_calc(100%_-_var(--tabs-fade-right,0px)),transparent)]";
2
+ /** The box laid over the list: it ignores the pointer except on its buttons. */
3
+ export declare const TABS_SCROLL_OVERLAY = "pointer-events-none absolute z-20";
4
+ export declare const TABS_SCROLL_BUTTON = "pointer-events-auto absolute top-1/2 inline-flex size-7 -translate-y-1/2 cursor-pointer items-center justify-center rounded-full border border-border bg-background text-foreground shadow-sm transition-colors hover:bg-muted pointer-coarse:size-11 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-track-fill [&_svg]:size-4";
5
+ export declare const TABS_SCROLL_LEFT = "pointer-events-auto absolute top-1/2 inline-flex size-7 -translate-y-1/2 cursor-pointer items-center justify-center rounded-full border border-border bg-background text-foreground shadow-sm transition-colors hover:bg-muted pointer-coarse:size-11 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-track-fill [&_svg]:size-4 left-1";
6
+ export declare const TABS_SCROLL_RIGHT = "pointer-events-auto absolute top-1/2 inline-flex size-7 -translate-y-1/2 cursor-pointer items-center justify-center rounded-full border border-border bg-background text-foreground shadow-sm transition-colors hover:bg-muted pointer-coarse:size-11 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-track-fill [&_svg]:size-4 right-1";
@@ -0,0 +1,25 @@
1
+ import { RefObject } from 'react';
2
+ /** Which physical sides have hidden tabs, and where the list sits in its parent. */
3
+ export type TabsOverflow = {
4
+ left: boolean;
5
+ right: boolean;
6
+ top: number;
7
+ x: number;
8
+ width: number;
9
+ height: number;
10
+ };
11
+ /** Instant under `prefers-reduced-motion`, smooth otherwise. */
12
+ export declare function scrollBehavior(): ScrollBehavior;
13
+ /**
14
+ * Scroll the list, never the page, just far enough for `tab` to sit fully
15
+ * inside it, clear of the fades.
16
+ */
17
+ export declare function revealTab(list: HTMLElement, tab: HTMLElement, behavior?: ScrollBehavior): void;
18
+ /**
19
+ * Whether a horizontal tab list overflows, and on which side. It starts as
20
+ * "fits" so the server markup and the first client render agree; a
21
+ * ResizeObserver (tabs and list) and the scroll event update it, one frame at
22
+ * a time, and the state only changes when a value does. The same effect
23
+ * keeps the active tab (and the focused one) in view.
24
+ */
25
+ export declare function useTabsOverflow(ref: RefObject<HTMLElement | null>): TabsOverflow;
@@ -1071,6 +1071,10 @@ export declare const en: {
1071
1071
  copied: string;
1072
1072
  failed: string;
1073
1073
  };
1074
+ tabs: {
1075
+ "scroll-left": string;
1076
+ "scroll-right": string;
1077
+ };
1074
1078
  carousel: {
1075
1079
  previous: string;
1076
1080
  next: string;
@@ -1843,6 +1847,42 @@ export declare const en: {
1843
1847
  today: string;
1844
1848
  yesterday: string;
1845
1849
  };
1850
+ history: {
1851
+ label: string;
1852
+ loading: string;
1853
+ "empty-title": string;
1854
+ "empty-description": string;
1855
+ hidden: string;
1856
+ "no-value": string;
1857
+ "changed-to": string;
1858
+ before: string;
1859
+ after: string;
1860
+ value: string;
1861
+ "hide-changes": string;
1862
+ "fields-changed": string;
1863
+ "fields-set": string;
1864
+ "more-names": string;
1865
+ showing: string;
1866
+ "load-more": string;
1867
+ summary: string;
1868
+ "summary-undated": string;
1869
+ kind: {
1870
+ created: string;
1871
+ updated: string;
1872
+ archived: string;
1873
+ restored: string;
1874
+ purged: string;
1875
+ deleted: string;
1876
+ };
1877
+ verb: {
1878
+ created: string;
1879
+ updated: string;
1880
+ archived: string;
1881
+ restored: string;
1882
+ purged: string;
1883
+ deleted: string;
1884
+ };
1885
+ };
1846
1886
  map: {
1847
1887
  "you-are-here": string;
1848
1888
  "zoom-in": string;
@@ -1061,6 +1061,10 @@ declare const _default: {
1061
1061
  "copied": "Copied",
1062
1062
  "failed": "Copy failed"
1063
1063
  },
1064
+ "tabs": {
1065
+ "scroll-left": "Scroll tabs left",
1066
+ "scroll-right": "Scroll tabs right"
1067
+ },
1064
1068
  "carousel": {
1065
1069
  "previous": "Previous slide",
1066
1070
  "next": "Next slide",
@@ -1833,6 +1837,42 @@ declare const _default: {
1833
1837
  "today": "Today",
1834
1838
  "yesterday": "Yesterday"
1835
1839
  },
1840
+ "history": {
1841
+ "label": "Change history",
1842
+ "loading": "Loading history",
1843
+ "empty-title": "No history yet",
1844
+ "empty-description": "Changes will appear here.",
1845
+ "hidden": "Hidden",
1846
+ "no-value": "Empty",
1847
+ "changed-to": "changed to",
1848
+ "before": "Before",
1849
+ "after": "After",
1850
+ "value": "Value",
1851
+ "hide-changes": "Hide changes",
1852
+ "fields-changed": "{count, plural, one {# field changed} other {# fields changed}}",
1853
+ "fields-set": "{count, plural, one {# field set} other {# fields set}}",
1854
+ "more-names": "+{count}",
1855
+ "showing": "Showing {shown} of {total}",
1856
+ "load-more": "Load more",
1857
+ "summary": "{kind} by {author}, {date}",
1858
+ "summary-undated": "{kind} by {author}",
1859
+ "kind": {
1860
+ "created": "Created",
1861
+ "updated": "Updated",
1862
+ "archived": "Archived",
1863
+ "restored": "Restored",
1864
+ "purged": "Purged",
1865
+ "deleted": "Deleted"
1866
+ },
1867
+ "verb": {
1868
+ "created": "created this",
1869
+ "updated": "updated {count, plural, one {# field} other {# fields}}",
1870
+ "archived": "archived this",
1871
+ "restored": "restored this",
1872
+ "purged": "purged this",
1873
+ "deleted": "deleted this"
1874
+ }
1875
+ },
1836
1876
  "map": {
1837
1877
  "you-are-here": "You are here",
1838
1878
  "zoom-in": "Zoom in",
@@ -1071,6 +1071,10 @@ export declare const fr: {
1071
1071
  copied: string;
1072
1072
  failed: string;
1073
1073
  };
1074
+ tabs: {
1075
+ "scroll-left": string;
1076
+ "scroll-right": string;
1077
+ };
1074
1078
  carousel: {
1075
1079
  previous: string;
1076
1080
  next: string;
@@ -1843,6 +1847,42 @@ export declare const fr: {
1843
1847
  today: string;
1844
1848
  yesterday: string;
1845
1849
  };
1850
+ history: {
1851
+ label: string;
1852
+ loading: string;
1853
+ "empty-title": string;
1854
+ "empty-description": string;
1855
+ hidden: string;
1856
+ "no-value": string;
1857
+ "changed-to": string;
1858
+ before: string;
1859
+ after: string;
1860
+ value: string;
1861
+ "hide-changes": string;
1862
+ "fields-changed": string;
1863
+ "fields-set": string;
1864
+ "more-names": string;
1865
+ showing: string;
1866
+ "load-more": string;
1867
+ summary: string;
1868
+ "summary-undated": string;
1869
+ kind: {
1870
+ created: string;
1871
+ updated: string;
1872
+ archived: string;
1873
+ restored: string;
1874
+ purged: string;
1875
+ deleted: string;
1876
+ };
1877
+ verb: {
1878
+ created: string;
1879
+ updated: string;
1880
+ archived: string;
1881
+ restored: string;
1882
+ purged: string;
1883
+ deleted: string;
1884
+ };
1885
+ };
1846
1886
  map: {
1847
1887
  "you-are-here": string;
1848
1888
  "zoom-in": string;
@@ -1061,6 +1061,10 @@ declare const _default: {
1061
1061
  "copied": "Copié",
1062
1062
  "failed": "Échec de la copie"
1063
1063
  },
1064
+ "tabs": {
1065
+ "scroll-left": "Faire défiler les onglets vers la gauche",
1066
+ "scroll-right": "Faire défiler les onglets vers la droite"
1067
+ },
1064
1068
  "carousel": {
1065
1069
  "previous": "Diapositive précédente",
1066
1070
  "next": "Diapositive suivante",
@@ -1833,6 +1837,42 @@ declare const _default: {
1833
1837
  "today": "Aujourd'hui",
1834
1838
  "yesterday": "Hier"
1835
1839
  },
1840
+ "history": {
1841
+ "label": "Historique des modifications",
1842
+ "loading": "Chargement de l'historique",
1843
+ "empty-title": "Aucun historique",
1844
+ "empty-description": "Les modifications apparaîtront ici.",
1845
+ "hidden": "Masqué",
1846
+ "no-value": "Vide",
1847
+ "changed-to": "devient",
1848
+ "before": "Avant",
1849
+ "after": "Après",
1850
+ "value": "Valeur",
1851
+ "hide-changes": "Masquer les modifications",
1852
+ "fields-changed": "{count, plural, one {# champ modifié} other {# champs modifiés}}",
1853
+ "fields-set": "{count, plural, one {# champ renseigné} other {# champs renseignés}}",
1854
+ "more-names": "+{count}",
1855
+ "showing": "{shown} sur {total} affichées",
1856
+ "load-more": "Charger plus",
1857
+ "summary": "{kind} par {author}, {date}",
1858
+ "summary-undated": "{kind} par {author}",
1859
+ "kind": {
1860
+ "created": "Création",
1861
+ "updated": "Modification",
1862
+ "archived": "Archivage",
1863
+ "restored": "Restauration",
1864
+ "purged": "Purge",
1865
+ "deleted": "Suppression"
1866
+ },
1867
+ "verb": {
1868
+ "created": "a créé cet élément",
1869
+ "updated": "a modifié {count, plural, one {# champ} other {# champs}}",
1870
+ "archived": "a archivé cet élément",
1871
+ "restored": "a restauré cet élément",
1872
+ "purged": "a purgé cet élément",
1873
+ "deleted": "a supprimé cet élément"
1874
+ }
1875
+ },
1836
1876
  "map": {
1837
1877
  "you-are-here": "Vous êtes ici",
1838
1878
  "zoom-in": "Zoom avant",
@@ -1069,6 +1069,10 @@ export declare const resources: {
1069
1069
  copied: string;
1070
1070
  failed: string;
1071
1071
  };
1072
+ tabs: {
1073
+ "scroll-left": string;
1074
+ "scroll-right": string;
1075
+ };
1072
1076
  carousel: {
1073
1077
  previous: string;
1074
1078
  next: string;
@@ -1841,6 +1845,42 @@ export declare const resources: {
1841
1845
  today: string;
1842
1846
  yesterday: string;
1843
1847
  };
1848
+ history: {
1849
+ label: string;
1850
+ loading: string;
1851
+ "empty-title": string;
1852
+ "empty-description": string;
1853
+ hidden: string;
1854
+ "no-value": string;
1855
+ "changed-to": string;
1856
+ before: string;
1857
+ after: string;
1858
+ value: string;
1859
+ "hide-changes": string;
1860
+ "fields-changed": string;
1861
+ "fields-set": string;
1862
+ "more-names": string;
1863
+ showing: string;
1864
+ "load-more": string;
1865
+ summary: string;
1866
+ "summary-undated": string;
1867
+ kind: {
1868
+ created: string;
1869
+ updated: string;
1870
+ archived: string;
1871
+ restored: string;
1872
+ purged: string;
1873
+ deleted: string;
1874
+ };
1875
+ verb: {
1876
+ created: string;
1877
+ updated: string;
1878
+ archived: string;
1879
+ restored: string;
1880
+ purged: string;
1881
+ deleted: string;
1882
+ };
1883
+ };
1844
1884
  map: {
1845
1885
  "you-are-here": string;
1846
1886
  "zoom-in": string;
@@ -3751,6 +3791,10 @@ export declare const resources: {
3751
3791
  copied: string;
3752
3792
  failed: string;
3753
3793
  };
3794
+ tabs: {
3795
+ "scroll-left": string;
3796
+ "scroll-right": string;
3797
+ };
3754
3798
  carousel: {
3755
3799
  previous: string;
3756
3800
  next: string;
@@ -4523,6 +4567,42 @@ export declare const resources: {
4523
4567
  today: string;
4524
4568
  yesterday: string;
4525
4569
  };
4570
+ history: {
4571
+ label: string;
4572
+ loading: string;
4573
+ "empty-title": string;
4574
+ "empty-description": string;
4575
+ hidden: string;
4576
+ "no-value": string;
4577
+ "changed-to": string;
4578
+ before: string;
4579
+ after: string;
4580
+ value: string;
4581
+ "hide-changes": string;
4582
+ "fields-changed": string;
4583
+ "fields-set": string;
4584
+ "more-names": string;
4585
+ showing: string;
4586
+ "load-more": string;
4587
+ summary: string;
4588
+ "summary-undated": string;
4589
+ kind: {
4590
+ created: string;
4591
+ updated: string;
4592
+ archived: string;
4593
+ restored: string;
4594
+ purged: string;
4595
+ deleted: string;
4596
+ };
4597
+ verb: {
4598
+ created: string;
4599
+ updated: string;
4600
+ archived: string;
4601
+ restored: string;
4602
+ purged: string;
4603
+ deleted: string;
4604
+ };
4605
+ };
4526
4606
  map: {
4527
4607
  "you-are-here": string;
4528
4608
  "zoom-in": string;