@nxgt/material 2.18.1 → 2.20.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 (115) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/README.md +1 -0
  3. package/dist/{_Uint8Array-C7apDrb7.js → _Uint8Array-DGVY6NfN.js} +1 -1
  4. package/dist/{_overRest-CCAbV-eT.js → _overRest-DCKNcrF0.js} +1 -1
  5. package/dist/{async-slice-Cuekts5f.js → async-slice-DAVXvBm1.js} +3 -3
  6. package/dist/{blockDiagram-BEXU5L5S-iNiTd2F6.js → blockDiagram-BEXU5L5S-BrCVxVRd.js} +2 -2
  7. package/dist/{chunk-3FUC2YCW-C3_88DyD.js → chunk-3FUC2YCW-DWaNSANO.js} +2 -2
  8. package/dist/{chunk-7M6MHVWA-DSA5AJyK.js → chunk-7M6MHVWA-x-N4hnls.js} +1 -1
  9. package/dist/{chunk-GNY47TPC-AFxr6Xhs.js → chunk-GNY47TPC-Dzk3o85s.js} +4 -4
  10. package/dist/{chunk-NETBCI7D-DUZYHta0.js → chunk-NETBCI7D-WvAAUJne.js} +1 -1
  11. package/dist/{chunk-Z7XXMR3K-DDFBvLN4.js → chunk-Z7XXMR3K-DY6U0Uq4.js} +1 -1
  12. package/dist/{classDiagram-v2-NBCMYWYE-Cx1q9jwX.js → classDiagram-v2-NBCMYWYE-QeFmLU9L.js} +2 -2
  13. package/dist/components/base-content.css +64 -4
  14. package/dist/components/base.css +3 -1
  15. package/dist/{components-CEXxj5QP.js → components-DH5dpaU8.js} +24401 -23964
  16. package/dist/components.js +6 -6
  17. package/dist/{dagre-6A5THRUB-B3FAoh2m.js → dagre-6A5THRUB-D-NdHe_L.js} +11 -11
  18. package/dist/{diagram-22UHCM2B-B1mxqDwI.js → diagram-22UHCM2B-DZ4jejn3.js} +2 -2
  19. package/dist/{diagram-3UASUU5V-DKbBxWI5.js → diagram-3UASUU5V-DRoFk6qc.js} +1 -1
  20. package/dist/dnd.js +1 -1
  21. package/dist/{elk-276RUBZZ-CeiRDj87.js → elk-276RUBZZ-BG0kHR2f.js} +3 -3
  22. package/dist/{erDiagram-OPXOYQCR-nyCpuYg6.js → erDiagram-OPXOYQCR-B6XRmJuU.js} +2 -2
  23. package/dist/{field-blur-DNHXOY0J.js → field-blur-B1VUvTws.js} +972 -946
  24. package/dist/{flowDiagram-KWPJA3E3-CAt7iv16.js → flowDiagram-KWPJA3E3-BghxpN0G.js} +3 -3
  25. package/dist/{ganttDiagram-FUAMR5RP-g4YEKVC-.js → ganttDiagram-FUAMR5RP-C3aoaoXQ.js} +1 -1
  26. package/dist/{graphlib-DxjKaXeR.js → graphlib-Dc5Siwxn.js} +6 -6
  27. package/dist/hooks.js +2 -2
  28. package/dist/{i18n-provider-Dv9ZSmgO.js → i18n-provider-Cq_VScPv.js} +1 -1
  29. package/dist/i18n.js +6 -6
  30. package/dist/{isArrayLikeObject-H8k6W51O.js → isArrayLikeObject-DeHDPOEB.js} +3 -3
  31. package/dist/{isEmpty-B0Bavg-e.js → isEmpty-Sic-RRp7.js} +3 -3
  32. package/dist/{journeyDiagram-ZHPQQLJL-v7NsJ_vl.js → journeyDiagram-ZHPQQLJL-DcUX0asi.js} +1 -1
  33. package/dist/lib/components/ui/collections/data-table/data-table-density.d.ts +15 -0
  34. package/dist/lib/components/ui/collections/data-table/data-table.d.ts +1 -1
  35. package/dist/lib/components/ui/collections/data-table/types.d.ts +7 -0
  36. package/dist/lib/components/ui/fields/index.d.ts +1 -0
  37. package/dist/lib/components/ui/fields/repeatable-group/index.d.ts +2 -0
  38. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-footer.d.ts +14 -0
  39. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-row.d.ts +19 -0
  40. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-rows.d.ts +21 -0
  41. package/dist/lib/components/ui/fields/repeatable-group/partials/repeatable-group-status.d.ts +11 -0
  42. package/dist/lib/components/ui/fields/repeatable-group/repeatable-group-classes.d.ts +33 -0
  43. package/dist/lib/components/ui/fields/repeatable-group/repeatable-group-form-field.d.ts +28 -0
  44. package/dist/lib/components/ui/fields/repeatable-group/repeatable-group-names.d.ts +16 -0
  45. package/dist/lib/components/ui/fields/repeatable-group/repeatable-group.d.ts +12 -0
  46. package/dist/lib/components/ui/fields/repeatable-group/types.d.ts +45 -0
  47. package/dist/lib/components/ui/fields/repeatable-group/use-repeatable-group.d.ts +32 -0
  48. package/dist/lib/components/ui/fields/search-field/search-field.d.ts +7 -1
  49. package/dist/lib/components/ui/overlays/command/command-item.d.ts +10 -0
  50. package/dist/lib/components/ui/overlays/command/command.d.ts +5 -2
  51. package/dist/lib/components/ui/overlays/dialog/dialog-outside.d.ts +4 -2
  52. package/dist/lib/components/ui/overlays/dialog/dialog-parts.d.ts +7 -0
  53. package/dist/lib/components/ui/overlays/dialog/dialog.d.ts +2 -5
  54. package/dist/lib/components/ui/overlays/dialog/in-dialog.d.ts +13 -0
  55. package/dist/lib/components/ui/overlays/menubar/menubar-items.d.ts +18 -0
  56. package/dist/lib/components/ui/overlays/menubar/menubar-sub.d.ts +8 -0
  57. package/dist/lib/components/ui/overlays/menubar/menubar.d.ts +3 -21
  58. package/dist/lib/components/ui/overlays/sheet/sheet-parts.d.ts +7 -0
  59. package/dist/lib/components/ui/overlays/sheet/sheet.d.ts +2 -5
  60. package/dist/lib/components/ui/primitives/typography/typography.d.ts +2 -1
  61. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-chips.d.ts +2 -0
  62. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-popup.d.ts +2 -1
  63. package/dist/lib/components/ui/selection/checkbox-group/checkbox-group.d.ts +2 -0
  64. package/dist/lib/components/ui/selection/combobox/combobox-content.d.ts +14 -0
  65. package/dist/lib/components/ui/selection/combobox/combobox.d.ts +1 -4
  66. package/dist/lib/components/ui/selection/option-count/option-count.d.ts +18 -0
  67. package/dist/lib/components/ui/selection/radio-group/radio-group.d.ts +2 -0
  68. package/dist/lib/components/ui/selection/select-chip-field/next-selection.d.ts +10 -0
  69. package/dist/lib/components/ui/selection/select-chip-field/select-chip-field.d.ts +8 -1
  70. package/dist/lib/components/ui/selection/select-chip-field/select-chip-header.d.ts +15 -0
  71. package/dist/lib/components/ui/selection/select-chip-field/select-chip-option.d.ts +13 -0
  72. package/dist/lib/i18n/resources/en/en.d.ts +15 -0
  73. package/dist/lib/i18n/resources/en/material.json.d.ts +15 -0
  74. package/dist/lib/i18n/resources/fr/fr.d.ts +15 -0
  75. package/dist/lib/i18n/resources/fr/material.json.d.ts +15 -0
  76. package/dist/lib/i18n/resources/resources.d.ts +30 -0
  77. package/dist/lib/i18n/translator.d.ts +1 -1
  78. package/dist/lib.js +2 -2
  79. package/dist/main.js +16 -16
  80. package/dist/map.js +8 -8
  81. package/dist/material.css +1 -1
  82. package/dist/{merge-Js8537dg.js → merge-VyOzRzYB.js} +4 -4
  83. package/dist/{mermaid.core-BHmjz3IJ.js → mermaid.core-DLu6PrQ9.js} +21 -21
  84. package/dist/{mindmap-definition-NLK3R4M7-xOeGZSSo.js → mindmap-definition-NLK3R4M7-B7Y8Yx12.js} +2 -2
  85. package/dist/{pieDiagram-5QR66LMP-5nOKLXqH.js → pieDiagram-5QR66LMP-Bv9VMy5P.js} +1 -1
  86. package/dist/print.js +2 -2
  87. package/dist/{quadrantDiagram-O4NWA36T-B0RNQlBB.js → quadrantDiagram-O4NWA36T-Dr2CLVD8.js} +1 -1
  88. package/dist/{requirementDiagram-PLB6GJNP-Cw85zSzP.js → requirementDiagram-PLB6GJNP-XuNWo4K8.js} +2 -2
  89. package/dist/{sankeyDiagram-IPEJSGJF-APZoNvA9.js → sankeyDiagram-IPEJSGJF-DzXzUNs5.js} +1 -1
  90. package/dist/{sortable-provider-CUT5Wfdl.js → sortable-provider-XneXCqY1.js} +1 -1
  91. package/dist/{stateDiagram-v2-GCMORJYK-CfSjJkc3.js → stateDiagram-v2-GCMORJYK-BN2OBfZa.js} +2 -2
  92. package/dist/{stored-language-BKoohv2_.js → stored-language-DqlfjXt8.js} +26 -0
  93. package/dist/{swimlanes-2SLR337P-Bv2VKn_d.js → swimlanes-2SLR337P-Ma7iLhhV.js} +3 -3
  94. package/dist/{swimlanesDiagram-TC7HE7FX-Jk8do14f.js → swimlanesDiagram-TC7HE7FX-DWBnIppx.js} +3 -3
  95. package/dist/{timeline-definition-EJHVYXUP-Bc40K9sk.js → timeline-definition-EJHVYXUP-BBwvY1Xf.js} +1 -1
  96. package/dist/{translate-material-CCJg3yfc.js → translate-material-B6HO6ykL.js} +2 -2
  97. package/dist/{translator-DEde7BKz.js → translator-B_lmafJN.js} +1 -1
  98. package/dist/{use-heading-spy-XkSExwoT.js → use-heading-spy-D1Ifooi5.js} +2 -2
  99. package/dist/{use-material-translation-Cndoq_iK.js → use-material-translation-Bp4ECeT4.js} +2 -2
  100. package/dist/{usecaseDiagram-POWQR4AR-CKd5UWWw.js → usecaseDiagram-POWQR4AR-B1HduAbh.js} +2 -2
  101. package/dist/{xychartDiagram-PMCCYNJV-CQJbSV7N.js → xychartDiagram-PMCCYNJV-ByjPOY-5.js} +1 -1
  102. package/docs/components/README.md +1 -1
  103. package/docs/components/data-table-filter-and-lists.md +3 -1
  104. package/docs/components/form-fields.md +146 -0
  105. package/docs/components/overlays-and-menus.md +2 -0
  106. package/docs/components/primitives.md +3 -1
  107. package/docs/components/selection-and-choice.md +20 -4
  108. package/docs/guides/forms.md +84 -0
  109. package/docs/guides/i18n.md +2 -1
  110. package/docs/previews/form-fields-repeatablegroup.webp +0 -0
  111. package/docs/roadmap.md +7 -0
  112. package/docs/troubleshooting.md +69 -0
  113. package/lib/components/base-content.css +64 -4
  114. package/lib/components/base.css +3 -1
  115. package/package.json +2 -2
@@ -6,12 +6,12 @@ import "./chunk-MBY4JIJT-BFIqOe-8.js";
6
6
  import "./chunk-7PRAP22T-0C6_H8Li.js";
7
7
  import "./chunk-7INBJB4K-k-I67NSP.js";
8
8
  import "./chunk-5DYCD2WN-Cd1zazNp.js";
9
- import "./chunk-Z7XXMR3K-DDFBvLN4.js";
9
+ import "./chunk-Z7XXMR3K-DY6U0Uq4.js";
10
10
  import "./chunk-GWA4HPMP-B8jXI0Tl.js";
11
11
  import "./chunk-XXDRQBXY-dKXxu_aj.js";
12
12
  import "./chunk-WEXAMYUT-CbFOhEve.js";
13
13
  import "./chunk-UA2S7LBM-ChuksCDg.js";
14
- import "./chunk-GNY47TPC-AFxr6Xhs.js";
14
+ import "./chunk-GNY47TPC-Dzk3o85s.js";
15
15
  import "./chunk-LNGE3PJU-DJjGTS7O.js";
16
- import { n as e } from "./chunk-7M6MHVWA-DSA5AJyK.js";
16
+ import { n as e } from "./chunk-7M6MHVWA-x-N4hnls.js";
17
17
  export { e as diagram };
@@ -1,5 +1,5 @@
1
1
  import { a as e, t } from "./rolldown-runtime-BFFgcFxR.js";
2
- import { $ as n, G as r, H as i, J as a, K as o, Q as s, U as c, W as l, X as u, Y as d, Z as f, et as p, lt as m, nt as h, q as g, rt as _, tt as v, ut as y } from "./components-CEXxj5QP.js";
2
+ import { $ as n, G as r, H as i, J as a, K as o, Q as s, U as c, W as l, X as u, Y as d, Z as f, et as p, lt as m, nt as h, q as g, rt as _, tt as v, ut as y } from "./components-DH5dpaU8.js";
3
3
  import { a as b, c as x, g as S, h as C, l as w, m as T, o as E } from "./string-BqyOfyFV.js";
4
4
  import { i as D, n as O, t as k } from "./src-CsLQInsN.js";
5
5
  import { g as A } from "./chunk-ZIGJFQKS-9VXArDKF.js";
@@ -1,9 +1,9 @@
1
- import { _ as e, a as t, f as n, g as r, i, o as a, v as o, y as s } from "./translator-DEde7BKz.js";
2
- import { a as c, o as l } from "./_overRest-CCAbV-eT.js";
3
- import { A as u, C as d, M as f, S as p, T as m, b as h, x as g } from "./async-slice-Cuekts5f.js";
4
- import { d as ee, n as te } from "./_Uint8Array-C7apDrb7.js";
5
- import { n as ne, r as re, t as _ } from "./isArrayLikeObject-H8k6W51O.js";
6
- import { i as ie, n as ae, t as v } from "./isEmpty-B0Bavg-e.js";
1
+ import { _ as e, a as t, f as n, g as r, i, o as a, v as o, y as s } from "./translator-B_lmafJN.js";
2
+ import { a as c, o as l } from "./_overRest-DCKNcrF0.js";
3
+ import { A as u, C as d, M as f, S as p, T as m, b as h, x as g } from "./async-slice-DAVXvBm1.js";
4
+ import { d as ee, n as te } from "./_Uint8Array-DGVY6NfN.js";
5
+ import { n as ne, r as re, t as _ } from "./isArrayLikeObject-DeHDPOEB.js";
6
+ import { i as ie, n as ae, t as v } from "./isEmpty-Sic-RRp7.js";
7
7
  //#region ../../node_modules/lodash-es/noop.js
8
8
  function oe() {}
9
9
  //#endregion
package/dist/hooks.js CHANGED
@@ -1,5 +1,5 @@
1
- import { r as e } from "./i18n-provider-Dv9ZSmgO.js";
2
- import { c as t, d as n, i as r, n as i, r as a, s as o, t as s, u as c } from "./use-heading-spy-XkSExwoT.js";
1
+ import { r as e } from "./i18n-provider-Cq_VScPv.js";
2
+ import { c as t, d as n, i as r, n as i, r as a, s as o, t as s, u as c } from "./use-heading-spy-D1Ifooi5.js";
3
3
  import { L as l, t as u } from "./number.utils-BiBN2hWJ.js";
4
4
  import { useCallback as d, useEffect as f, useMemo as p, useState as m } from "react";
5
5
  import { useNavigate as h, useSearchParams as g } from "react-router";
@@ -1,4 +1,4 @@
1
- import { a as e, i as t, t as n } from "./stored-language-BKoohv2_.js";
1
+ import { a as e, i as t, t as n } from "./stored-language-DqlfjXt8.js";
2
2
  import { jsx as r } from "react/jsx-runtime";
3
3
  import { createContext as i, useCallback as a, useContext as o, useMemo as s, useState as c } from "react";
4
4
  //#region lib/i18n/i18n-provider.tsx
package/dist/i18n.js CHANGED
@@ -1,9 +1,9 @@
1
- import { a as e, i as t, o as n, r } from "./stored-language-BKoohv2_.js";
2
- import { n as i, r as a, t as o } from "./i18n-provider-Dv9ZSmgO.js";
3
- import { n as s, r as c, t as l } from "./translator-DEde7BKz.js";
4
- import { o as u, t as d } from "./merge-Js8537dg.js";
5
- import { t as f } from "./translate-material-CCJg3yfc.js";
6
- import { t as p } from "./use-material-translation-Cndoq_iK.js";
1
+ import { a as e, i as t, o as n, r } from "./stored-language-DqlfjXt8.js";
2
+ import { n as i, r as a, t as o } from "./i18n-provider-Cq_VScPv.js";
3
+ import { n as s, r as c, t as l } from "./translator-B_lmafJN.js";
4
+ import { o as u, t as d } from "./merge-VyOzRzYB.js";
5
+ import { t as f } from "./translate-material-B6HO6ykL.js";
6
+ import { t as p } from "./use-material-translation-Bp4ECeT4.js";
7
7
  import { useCallback as m } from "react";
8
8
  //#region lib/i18n/merge-resources.ts
9
9
  function h(e, t, n = "") {
@@ -1,6 +1,6 @@
1
- import { x as e } from "./translator-DEde7BKz.js";
2
- import { i as t, o as n, t as r } from "./_overRest-CCAbV-eT.js";
3
- import { d as i } from "./_Uint8Array-C7apDrb7.js";
1
+ import { x as e } from "./translator-B_lmafJN.js";
2
+ import { i as t, o as n, t as r } from "./_overRest-DCKNcrF0.js";
3
+ import { d as i } from "./_Uint8Array-DGVY6NfN.js";
4
4
  //#region ../../node_modules/lodash-es/_baseRest.js
5
5
  function a(e, i) {
6
6
  return t(r(e, i, n), e + "");
@@ -1,6 +1,6 @@
1
- import { C as e, o as t, s as n, v as r } from "./translator-DEde7BKz.js";
2
- import { N as i, j as a, w as o } from "./async-slice-Cuekts5f.js";
3
- import { a as s, c, d as l, f as u, l as d, p as f, u as p } from "./_Uint8Array-C7apDrb7.js";
1
+ import { C as e, o as t, s as n, v as r } from "./translator-B_lmafJN.js";
2
+ import { N as i, j as a, w as o } from "./async-slice-DAVXvBm1.js";
3
+ import { a as s, c, d as l, f as u, l as d, p as f, u as p } from "./_Uint8Array-DGVY6NfN.js";
4
4
  //#region ../../node_modules/lodash-es/_isFlattenable.js
5
5
  var m = e ? e.isConcatSpreadable : void 0;
6
6
  function h(e) {
@@ -1,4 +1,4 @@
1
- import { ct as e } from "./components-CEXxj5QP.js";
1
+ import { ct as e } from "./components-DH5dpaU8.js";
2
2
  import { t } from "./src-CsLQInsN.js";
3
3
  import { n } from "./chunk-Y2CYZVJY-BAad7w_K.js";
4
4
  import { H as r, U as i, a, c as o, q as s, v as c, w as l, x as u, y as d } from "./chunk-O7XYJQB3-BChweQ_V.js";
@@ -0,0 +1,15 @@
1
+ /** The `<table>`'s classes: the gap between rows (4px, 8px from `md`) that
2
+ * `compact` shrinks to 2px. */
3
+ export declare const TABLE_DENSITY_CLASS = "border-separate border-spacing-y-1 md:border-spacing-y-2 data-[density=compact]:border-spacing-y-0.5 md:data-[density=compact]:border-spacing-y-0.5";
4
+ /** A body cell: 8px of padding, 4px above and below when compact (the sides
5
+ * stay 8px, aligned with the header, and a checkbox cell keeps its `pr-0`). */
6
+ export declare const CELL_DENSITY_CLASS = "[table[data-density=compact]>tbody>tr>&]:py-1";
7
+ /** A header cell: the sort button (32px) is what sets its height; compact
8
+ * takes it to 32px for the cell and 24px for the button. */
9
+ export declare const HEAD_DENSITY_CLASS = "[table[data-density=compact]>thead>tr>&]:h-8";
10
+ /** The sort button in a header: 24px, the target-size minimum. */
11
+ export declare const SORT_DENSITY_CLASS = "[table[data-density=compact]>thead_&]:h-6";
12
+ /** A skeleton bar: one line of text. */
13
+ export declare const SKELETON_DENSITY_CLASS = "[table[data-density=compact]>tbody>tr>td>&]:h-4";
14
+ /** The expand column's icon button: 28px instead of 36px. */
15
+ export declare const EXPAND_DENSITY_CLASS = "[table[data-density=compact]>tbody>tr>td>&]:size-7";
@@ -1,5 +1,5 @@
1
1
  import { RowData } from '@tanstack/react-table';
2
2
  import { DataTableProps } from './types';
3
3
  export type { DataTableEmpty, DataTableEmptyState, } from './partials/data-table-empty-row';
4
- export type { DataTableLinkComponent, DataTableLinkProps, DataTableOptions, DataTablePageTarget, DataTableProps, DataTableServerPagination, } from './types';
4
+ export type { DataTableDensity, DataTableLinkComponent, DataTableLinkProps, DataTableOptions, DataTablePageTarget, DataTableProps, DataTableServerPagination, } from './types';
5
5
  export declare function DataTable<TData extends RowData>(props: DataTableProps<TData>): import("react").JSX.Element;
@@ -35,10 +35,17 @@ export type DataTableServerPagination = {
35
35
  next?: DataTablePageTarget | null;
36
36
  };
37
37
  export type DataTableTable<TData extends RowData> = ReactTable<DataTableFeatures, TData>;
38
+ /** How tight a `DataTable`'s rows are. */
39
+ export type DataTableDensity = 'comfortable' | 'compact';
38
40
  export interface DataTableProps<TData extends RowData> {
39
41
  columns: ColumnDef<DataTableFeatures, TData, any>[];
40
42
  data: TData[];
41
43
  className?: string;
44
+ /** How tight the rows are: `comfortable` (default) or `compact`, which
45
+ * shrinks the cell padding, the row height, the header height and the gap
46
+ * between rows, the selection column included. It is set on the table as
47
+ * `data-density`. The toolbar and the empty state are not changed. */
48
+ density?: DataTableDensity;
42
49
  actions?: (table: DataTableTable<TData>) => ReactNode;
43
50
  options?: DataTableOptions;
44
51
  renderExpandedRow?: (row: Row<DataTableFeatures, TData>) => ReactNode;
@@ -16,6 +16,7 @@ export * from './percent-field';
16
16
  export * from './phone-field';
17
17
  export * from './postal-address';
18
18
  export * from './rating-field';
19
+ export * from './repeatable-group';
19
20
  export * from './search-field';
20
21
  export * from './slider';
21
22
  export * from './switch';
@@ -0,0 +1,2 @@
1
+ export * from './repeatable-group';
2
+ export * from './repeatable-group-form-field';
@@ -0,0 +1,14 @@
1
+ export type RepeatableGroupFooterProps = {
2
+ addLabel: string;
3
+ /** At the maximum: the button is `aria-disabled` and described by it. */
4
+ full: boolean;
5
+ maxReached: string;
6
+ disabled?: boolean;
7
+ onAdd: () => void;
8
+ };
9
+ /**
10
+ * The Add button. At the maximum it stays focusable (`aria-disabled`, a
11
+ * click does nothing) and is described by the reason beside it, so the
12
+ * focus is not lost and a screen reader says why.
13
+ */
14
+ export declare function RepeatableGroupFooter({ addLabel, full, maxReached, disabled, onAdd, }: RepeatableGroupFooterProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ export type RepeatableGroupRowProps = {
3
+ /** 0-based. */
4
+ index: number;
5
+ count: number;
6
+ children: ReactNode;
7
+ names: {
8
+ remove: (position: number) => string;
9
+ moveUp: (position: number) => string;
10
+ moveDown: (position: number) => string;
11
+ };
12
+ reorderable?: boolean;
13
+ removable: boolean;
14
+ disabled?: boolean;
15
+ onRemove: () => void;
16
+ onMove: (direction: 'up' | 'down') => void;
17
+ };
18
+ /** One row: its fields, then its move buttons (when reorderable) and Remove. */
19
+ export declare function RepeatableGroupRow({ index, count, children, names, reorderable, removable, disabled, onRemove, onMove, }: RepeatableGroupRowProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { Key, ReactNode } from 'react';
2
+ import { RepeatableGroupProps } from '../types';
3
+ import { RepeatableGroupRowProps } from './repeatable-group-row';
4
+ export type RepeatableGroupRowsProps<TItem> = {
5
+ items: readonly TItem[];
6
+ getKey: (item: TItem, index: number) => Key;
7
+ renderRow: RepeatableGroupProps<TItem>['renderRow'];
8
+ names: RepeatableGroupRowProps['names'];
9
+ reorderable: boolean;
10
+ min?: number;
11
+ disabled?: boolean;
12
+ onRemove: (index: number) => void;
13
+ onMove: (index: number, direction: 'up' | 'down') => void;
14
+ emptyTitle?: ReactNode;
15
+ emptyDescription?: ReactNode;
16
+ };
17
+ /**
18
+ * The rows as a list (`ul` / `li`; the group around it carries the name),
19
+ * or, with no row, the empty state when it has a title.
20
+ */
21
+ export declare function RepeatableGroupRows<TItem>({ items, getKey, renderRow, names, reorderable, min, disabled, onRemove, onMove, emptyTitle, emptyDescription, }: RepeatableGroupRowsProps<TItem>): import("react").JSX.Element | null;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The group's polite live region: always in the page (a region that mounts
3
+ * with its text is not read), visually hidden. A new `id` replaces the
4
+ * sentence's node, so the same sentence twice is read twice.
5
+ */
6
+ export declare function RepeatableGroupStatus({ message, }: {
7
+ message: {
8
+ text: string;
9
+ id: number;
10
+ };
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The group: a whole row of the form's grid (`.form-grid-layout`
3
+ * `[data-slot="form-fields"]`), and a container of its own, so its rows lay
4
+ * their fields out by the group's width, inside a form or standalone.
5
+ */
6
+ export declare const repeatableGroupRootClass = "@container col-span-full flex w-full min-w-0 flex-col gap-3";
7
+ /** The group's label, above its rows. */
8
+ export declare const repeatableGroupLabelClass = "min-w-0 break-words font-medium text-sm";
9
+ /** The rows, one under the other. */
10
+ export declare const repeatableGroupListClass = "flex min-w-0 flex-col gap-3";
11
+ /**
12
+ * A row: its fields, then its buttons. One column on a phone (the buttons
13
+ * under the fields); from `@xl` the buttons sit at the end of the row.
14
+ */
15
+ export declare const repeatableGroupRowClass = "grid min-w-0 grid-cols-1 gap-2 rounded-md border p-3 @xl:grid-cols-[minmax(0,1fr)_auto] @xl:items-start";
16
+ /**
17
+ * A row's fields: one column on a phone, then as many columns of at least
18
+ * 11rem as the row has room for.
19
+ */
20
+ export declare const repeatableGroupFieldsClass = "grid min-w-0 grid-cols-1 items-start gap-2 @xl:grid-cols-[repeat(auto-fit,minmax(11rem,1fr))]";
21
+ /** A row's move and remove buttons, level with its fields' inputs from `@xl`. */
22
+ export declare const repeatableGroupActionsClass = "flex flex-wrap items-center justify-end gap-1 @xl:pt-6";
23
+ /** Under the rows: the Add button and why it is disabled at the maximum. */
24
+ export declare const repeatableGroupFooterClass = "flex flex-wrap items-center gap-2";
25
+ /**
26
+ * The Add button at the maximum: `aria-disabled`, not `disabled`, so it
27
+ * keeps the focus and its reason (`aria-describedby`) can still be read.
28
+ */
29
+ export declare const repeatableGroupAddClass = "aria-disabled:cursor-not-allowed aria-disabled:opacity-50";
30
+ /** Why the Add button is disabled, beside it. */
31
+ export declare const repeatableGroupHintClass = "text-muted-foreground text-sm";
32
+ /** The empty state, compact enough for a form. */
33
+ export declare const repeatableGroupEmptyClass = "min-h-0 gap-3 rounded-md border border-dashed p-6";
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { ArrayPath, Control, FieldArray, FieldArrayWithId, FieldValues } from 'react-hook-form';
3
+ import { RepeatableGroupProps } from './types';
4
+ /** What `renderRow` is given for each row of a form's array. */
5
+ export type RepeatableGroupFormFieldRow<T extends FieldValues, N extends ArrayPath<T>> = {
6
+ field: FieldArrayWithId<T, N>;
7
+ /** 0-based: the row's fields are `${name}.${index}.<key>`. */
8
+ index: number;
9
+ /** 1-based, as a user reads it. */
10
+ position: number;
11
+ /** The row's own path, `${name}.${index}`. */
12
+ path: `${N}.${number}`;
13
+ };
14
+ export type RepeatableGroupFormFieldProps<T extends FieldValues, N extends ArrayPath<T>> = Omit<RepeatableGroupProps<FieldArrayWithId<T, N>>, 'items' | 'renderRow' | 'getKey' | 'onAdd' | 'onRemove' | 'onMove' | 'error'> & {
15
+ control: Control<T>;
16
+ name: N;
17
+ /** The value of a row the Add button appends. */
18
+ newRow: () => FieldArray<T, N>;
19
+ renderRow: (row: RepeatableGroupFormFieldRow<T, N>) => ReactNode;
20
+ };
21
+ /**
22
+ * A RepeatableGroup over react-hook-form's `useFieldArray`: Add appends
23
+ * `newRow()`, Remove and the move buttons edit the array, and an error about
24
+ * the array itself (`z.array().min()`, a `useFieldArray` rule) shows under
25
+ * the rows. Each row's fields are the form's own wrappers, named
26
+ * `${name}.${index}.<key>`, and show their own errors.
27
+ */
28
+ export declare function RepeatableGroupFormField<T extends FieldValues, N extends ArrayPath<T>>({ control, name, newRow, renderRow, disabled, ...props }: RepeatableGroupFormFieldProps<T, N>): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { RowAnnouncement } from '@nxgt/material-core/repeatable-group';
2
+ import { useMaterialTranslation } from '../../../../i18n/use-material-translation';
3
+ type Translate = ReturnType<typeof useMaterialTranslation>['t'];
4
+ /** Why Add is disabled at `max`. */
5
+ export declare const maxReached: (t: Translate, max?: number) => string;
6
+ /** The group's button names, after the row's `label` and 1-based position. */
7
+ export declare function rowNames(t: Translate, label: string, max?: number): {
8
+ add: string;
9
+ remove: (position: number) => string;
10
+ moveUp: (position: number) => string;
11
+ moveDown: (position: number) => string;
12
+ maxReached: string;
13
+ };
14
+ /** What the live region says about a change. */
15
+ export declare function announcement(t: Translate, label: string, said: RowAnnouncement): string;
16
+ export {};
@@ -0,0 +1,12 @@
1
+ import { RepeatableGroupProps } from './types';
2
+ export type { RepeatableGroupProps, RepeatableGroupRowContext, } from './types';
3
+ /**
4
+ * Rows of fields a user adds, removes and, with `reorderable`, moves: a list
5
+ * (`ul`/`li`) of rows, each from `renderRow`, a Remove button per row named
6
+ * after it ("Remove period 2"), and an Add button. An added row's first field
7
+ * takes the focus, a removed row hands it to its neighbour (or to Add), a
8
+ * moved row keeps it on its move button, and each change is announced
9
+ * politely. For react-hook-form, `RepeatableGroupFormField` wires it to
10
+ * `useFieldArray`.
11
+ */
12
+ export declare function RepeatableGroup<TItem>({ items, renderRow, getKey, label, rowLabel, addLabel, onAdd, onRemove, onMove, reorderable, min, max, disabled, error, emptyTitle, emptyDescription, className, ref, ...props }: RepeatableGroupProps<TItem>): import("react").JSX.Element;
@@ -0,0 +1,45 @@
1
+ import { ComponentProps, Key, ReactNode } from 'react';
2
+ /** What `renderRow` is given for each row. */
3
+ export type RepeatableGroupRowContext<TItem> = {
4
+ item: TItem;
5
+ /** 0-based, for the row's field names (`periods.${index}.name`). */
6
+ index: number;
7
+ /** 1-based, as a user reads it ("Period 2"). */
8
+ position: number;
9
+ };
10
+ export type RepeatableGroupProps<TItem> = Omit<ComponentProps<'div'>, 'children' | 'onChange'> & {
11
+ /** The rows' values, one row each. */
12
+ items: readonly TItem[];
13
+ /** Renders one row's fields. */
14
+ renderRow: (row: RepeatableGroupRowContext<TItem>) => ReactNode;
15
+ /**
16
+ * A stable key per row; by default the item's `id` (what react-hook-form's
17
+ * `useFieldArray` gives each field), else its index.
18
+ */
19
+ getKey?: (item: TItem, index: number) => Key;
20
+ /** The group's label, above the rows; it names the group and the list. */
21
+ label?: ReactNode;
22
+ /**
23
+ * What one row is, lower case: it names the row's buttons ("Remove
24
+ * period 2") and the announcements. Default "row", translated.
25
+ */
26
+ rowLabel?: string;
27
+ /** The Add button's text. Default "Add {rowLabel}", translated. */
28
+ addLabel?: string;
29
+ onAdd: () => void;
30
+ onRemove: (index: number) => void;
31
+ /** Called by the move buttons, which `reorderable` shows. */
32
+ onMove?: (from: number, to: number) => void;
33
+ /** Move up and move down buttons on each row. */
34
+ reorderable?: boolean;
35
+ /** No Remove at this many rows. */
36
+ min?: number;
37
+ /** The Add button is disabled at this many rows, and says why. */
38
+ max?: number;
39
+ disabled?: boolean;
40
+ /** An error about the whole group (`arrayErrorMessage`), under the rows. */
41
+ error?: ReactNode;
42
+ /** With no row: an EmptyState with this title (and description). */
43
+ emptyTitle?: ReactNode;
44
+ emptyDescription?: ReactNode;
45
+ };
@@ -0,0 +1,32 @@
1
+ import { RowMoveDirection } from '@nxgt/material-core/repeatable-group';
2
+ type Options = {
3
+ items: readonly unknown[];
4
+ rowLabel?: string;
5
+ max?: number;
6
+ onAdd: () => void;
7
+ onRemove: (index: number) => void;
8
+ onMove?: (from: number, to: number) => void;
9
+ };
10
+ /**
11
+ * A RepeatableGroup's behaviour: the buttons' names, the focus after a row
12
+ * is added, removed or moved (the rules are `@nxgt/material-core`'s, shared
13
+ * with the Vue group), and what the polite live region says.
14
+ */
15
+ export declare function useRepeatableGroup(options: Options): {
16
+ setRoot: (node: Element | null) => void;
17
+ message: {
18
+ text: string;
19
+ id: number;
20
+ };
21
+ names: {
22
+ add: string;
23
+ remove: (position: number) => string;
24
+ moveUp: (position: number) => string;
25
+ moveDown: (position: number) => string;
26
+ maxReached: string;
27
+ };
28
+ add: () => void;
29
+ remove: (index: number) => void;
30
+ move: (index: number, direction: RowMoveDirection) => void;
31
+ };
32
+ export {};
@@ -7,5 +7,11 @@ export type SearchFieldProps = Omit<InputProps, 'type'> & {
7
7
  loading?: boolean;
8
8
  debounceMs?: number;
9
9
  onValueChange?: (value: string) => void;
10
+ /**
11
+ * A hint for the key that focuses the field, for example `"/"`: shown as a
12
+ * `Kbd` while the field is empty and set as `aria-keyshortcuts`. It binds no
13
+ * key; the page owns the listener.
14
+ */
15
+ shortcut?: string;
10
16
  };
11
- export declare function SearchField({ id, value: valueProp, defaultValue, onChange, onValueChange, debounceMs, loading, placeholder, label, helperText, error, disabled, required, name, className, onKeyDown, ...props }: SearchFieldProps): import("react").JSX.Element;
17
+ export declare function SearchField({ id, value: valueProp, defaultValue, onChange, onValueChange, debounceMs, loading, placeholder, label, helperText, error, disabled, required, name, className, onKeyDown, shortcut, ...props }: SearchFieldProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { Command as CommandPrimitive } from 'cmdk';
2
+ import { ComponentProps } from 'react';
3
+ declare function CommandItem({ className, checked, children, ...props }: ComponentProps<typeof CommandPrimitive.Item> & {
4
+ /**
5
+ * Sets `aria-checked` and shows a checkbox indicator. cmdk's
6
+ * `aria-selected` stays the highlighted item, not the checked one.
7
+ */
8
+ checked?: boolean;
9
+ }): import("react").JSX.Element;
10
+ export { CommandItem };
@@ -1,16 +1,19 @@
1
1
  import { Command as CommandPrimitive } from 'cmdk';
2
2
  import { ComponentProps } from 'react';
3
3
  import { Dialog } from '../dialog/dialog';
4
+ import { CommandItem } from './command-item';
4
5
  declare function Command({ className, ...props }: ComponentProps<typeof CommandPrimitive>): import("react").JSX.Element;
5
6
  declare function CommandDialog({ title, description, children, ...props }: ComponentProps<typeof Dialog> & {
6
7
  title?: string;
7
8
  description?: string;
8
9
  }): import("react").JSX.Element;
9
10
  declare function CommandInput({ className, ...props }: ComponentProps<typeof CommandPrimitive.Input>): import("react").JSX.Element;
10
- declare function CommandList({ className, ...props }: ComponentProps<typeof CommandPrimitive.List>): import("react").JSX.Element;
11
+ declare function CommandList({ className, multiselectable, ...props }: ComponentProps<typeof CommandPrimitive.List> & {
12
+ /** Sets `aria-multiselectable`: the items carry a `checked` state. */
13
+ multiselectable?: boolean;
14
+ }): import("react").JSX.Element;
11
15
  declare function CommandEmpty({ ...props }: ComponentProps<typeof CommandPrimitive.Empty>): import("react").JSX.Element;
12
16
  declare function CommandGroup({ className, ...props }: ComponentProps<typeof CommandPrimitive.Group>): import("react").JSX.Element;
13
17
  declare function CommandSeparator({ className, ...props }: ComponentProps<typeof CommandPrimitive.Separator>): import("react").JSX.Element;
14
- declare function CommandItem({ className, ...props }: ComponentProps<typeof CommandPrimitive.Item>): import("react").JSX.Element;
15
18
  declare function CommandShortcut({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
16
19
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, };
@@ -1,8 +1,10 @@
1
1
  import { Dialog as DialogPrimitive } from 'radix-ui';
2
2
  import { ComponentProps } from 'react';
3
3
  /**
4
- * A combobox inside a dialog portals its list outside the dialog's content;
5
- * a pointer or focus landing there is not "outside" and must not close it.
4
+ * A `Combobox` or `ComboboxField` inside a dialog portals its list to the
5
+ * body, outside the dialog's content; a pointer or focus landing there is
6
+ * not "outside" and must not close it. The Autocomplete's list is inside the
7
+ * content in a dialog (in its flow since #577), so it never gets here.
6
8
  */
7
9
  export declare function keepComboboxOverlay(event: Pick<Event, 'target' | 'preventDefault'>): void;
8
10
  type Outside = Pick<ComponentProps<typeof DialogPrimitive.Content>, 'onPointerDownOutside' | 'onFocusOutside' | 'onInteractOutside'>;
@@ -0,0 +1,7 @@
1
+ import { Dialog as DialogPrimitive } from 'radix-ui';
2
+ import { ComponentProps } from 'react';
3
+ declare function DialogHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
4
+ declare function DialogFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
5
+ declare function DialogTitle({ className, ...props }: ComponentProps<typeof DialogPrimitive.Title>): import("react").JSX.Element;
6
+ declare function DialogDescription({ className, ...props }: ComponentProps<typeof DialogPrimitive.Description>): import("react").JSX.Element;
7
+ export { DialogDescription, DialogFooter, DialogHeader, DialogTitle };
@@ -7,8 +7,5 @@ declare function DialogPortal({ ...props }: ComponentProps<typeof DialogPrimitiv
7
7
  declare function DialogClose({ className, color, children, type, variant, ...props }: ComponentProps<typeof DialogPrimitive.Close> & Partial<Pick<IconButtonProps, 'variant' | 'color'>>): import("react").JSX.Element;
8
8
  declare function DialogOverlay({ className, ...props }: ComponentProps<typeof DialogPrimitive.Overlay>): import("react").JSX.Element;
9
9
  declare function DialogContent({ className, children, onInteractOutside, onPointerDownOutside, onFocusOutside, onOpenAutoFocus, onCloseAutoFocus, onEscapeKeyDown, ref, ...props }: ComponentProps<typeof DialogPrimitive.Content>): import("react").JSX.Element;
10
- declare function DialogHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
11
- declare function DialogFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
12
- declare function DialogTitle({ className, ...props }: ComponentProps<typeof DialogPrimitive.Title>): import("react").JSX.Element;
13
- declare function DialogDescription({ className, ...props }: ComponentProps<typeof DialogPrimitive.Description>): import("react").JSX.Element;
14
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
10
+ export { DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from './dialog-parts';
11
+ export { Dialog, DialogClose, DialogContent, DialogOverlay, DialogPortal, DialogTrigger, };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Set by `DialogContent`, `DialogScrollContent`, `AlertDialogContent` and
3
+ * `SheetContent` around their primitive: a field inside opens its list in
4
+ * the layer's flow, pushing what follows (the footer) down instead of
5
+ * floating over the title or the Save button. `PopoverContent`,
6
+ * `HoverCardContent` and the menus' contents set it back to `false`: a
7
+ * floating layer opened from a dialog keeps a floating list. Always around
8
+ * the primitive, never between it and its children, which would break
9
+ * `asChild`. Not exported: the layers set it, the fields read it.
10
+ */
11
+ export declare const InDialogContext: import('react').Context<boolean>;
12
+ /** Whether this component renders inside a dialog's content. */
13
+ export declare function useInDialog(): boolean;
@@ -0,0 +1,18 @@
1
+ import { Menubar as MenubarPrimitive } from 'radix-ui';
2
+ import { ComponentProps } from 'react';
3
+ declare function MenubarItem({ className, inset, variant, ...props }: ComponentProps<typeof MenubarPrimitive.Item> & {
4
+ inset?: boolean;
5
+ /**
6
+ * `'error'` matches DropdownMenuItem and ContextMenuItem.
7
+ * `'destructive'` is @deprecated — kept as an alias of `'error'`.
8
+ */
9
+ variant?: 'default' | 'error' | 'destructive';
10
+ }): import("react").JSX.Element;
11
+ declare function MenubarCheckboxItem({ className, children, checked, ...props }: ComponentProps<typeof MenubarPrimitive.CheckboxItem>): import("react").JSX.Element;
12
+ declare function MenubarRadioItem({ className, children, ...props }: ComponentProps<typeof MenubarPrimitive.RadioItem>): import("react").JSX.Element;
13
+ declare function MenubarLabel({ className, inset, ...props }: ComponentProps<typeof MenubarPrimitive.Label> & {
14
+ inset?: boolean;
15
+ }): import("react").JSX.Element;
16
+ declare function MenubarSeparator({ className, ...props }: ComponentProps<typeof MenubarPrimitive.Separator>): import("react").JSX.Element;
17
+ declare function MenubarShortcut({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
18
+ export { MenubarCheckboxItem, MenubarItem, MenubarLabel, MenubarRadioItem, MenubarSeparator, MenubarShortcut, };
@@ -0,0 +1,8 @@
1
+ import { Menubar as MenubarPrimitive } from 'radix-ui';
2
+ import { ComponentProps } from 'react';
3
+ declare function MenubarSub({ ...props }: ComponentProps<typeof MenubarPrimitive.Sub>): import("react").JSX.Element;
4
+ declare function MenubarSubTrigger({ className, inset, children, ...props }: ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
5
+ inset?: boolean;
6
+ }): import("react").JSX.Element;
7
+ declare function MenubarSubContent({ className, ...props }: ComponentProps<typeof MenubarPrimitive.SubContent>): import("react").JSX.Element;
8
+ export { MenubarSub, MenubarSubContent, MenubarSubTrigger };
@@ -7,24 +7,6 @@ declare function MenubarPortal({ ...props }: ComponentProps<typeof MenubarPrimit
7
7
  declare function MenubarRadioGroup({ ...props }: ComponentProps<typeof MenubarPrimitive.RadioGroup>): import("react").JSX.Element;
8
8
  declare function MenubarTrigger({ className, ...props }: ComponentProps<typeof MenubarPrimitive.Trigger>): import("react").JSX.Element;
9
9
  declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: ComponentProps<typeof MenubarPrimitive.Content>): import("react").JSX.Element;
10
- declare function MenubarItem({ className, inset, variant, ...props }: ComponentProps<typeof MenubarPrimitive.Item> & {
11
- inset?: boolean;
12
- /**
13
- * `'error'` matches DropdownMenuItem and ContextMenuItem.
14
- * `'destructive'` is @deprecated — kept as an alias of `'error'`.
15
- */
16
- variant?: 'default' | 'error' | 'destructive';
17
- }): import("react").JSX.Element;
18
- declare function MenubarCheckboxItem({ className, children, checked, ...props }: ComponentProps<typeof MenubarPrimitive.CheckboxItem>): import("react").JSX.Element;
19
- declare function MenubarRadioItem({ className, children, ...props }: ComponentProps<typeof MenubarPrimitive.RadioItem>): import("react").JSX.Element;
20
- declare function MenubarLabel({ className, inset, ...props }: ComponentProps<typeof MenubarPrimitive.Label> & {
21
- inset?: boolean;
22
- }): import("react").JSX.Element;
23
- declare function MenubarSeparator({ className, ...props }: ComponentProps<typeof MenubarPrimitive.Separator>): import("react").JSX.Element;
24
- declare function MenubarShortcut({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
25
- declare function MenubarSub({ ...props }: ComponentProps<typeof MenubarPrimitive.Sub>): import("react").JSX.Element;
26
- declare function MenubarSubTrigger({ className, inset, children, ...props }: ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
27
- inset?: boolean;
28
- }): import("react").JSX.Element;
29
- declare function MenubarSubContent({ className, ...props }: ComponentProps<typeof MenubarPrimitive.SubContent>): import("react").JSX.Element;
30
- export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, };
10
+ export { MenubarCheckboxItem, MenubarItem, MenubarLabel, MenubarRadioItem, MenubarSeparator, MenubarShortcut, } from './menubar-items';
11
+ export { MenubarSub, MenubarSubContent, MenubarSubTrigger, } from './menubar-sub';
12
+ export { Menubar, MenubarContent, MenubarGroup, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarTrigger, };
@@ -0,0 +1,7 @@
1
+ import { Dialog as SheetPrimitive } from 'radix-ui';
2
+ import { ComponentProps } from 'react';
3
+ declare function SheetHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
4
+ declare function SheetFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
5
+ declare function SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>): import("react").JSX.Element;
6
+ declare function SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>): import("react").JSX.Element;
7
+ export { SheetDescription, SheetFooter, SheetHeader, SheetTitle };
@@ -8,8 +8,5 @@ declare function SheetContent({ className, children, side, withCloseButton, onOp
8
8
  side?: 'top' | 'right' | 'bottom' | 'left';
9
9
  withCloseButton?: boolean;
10
10
  }): import("react").JSX.Element;
11
- declare function SheetHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
12
- declare function SheetFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
13
- declare function SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>): import("react").JSX.Element;
14
- declare function SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>): import("react").JSX.Element;
15
- export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, };
11
+ export { SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from './sheet-parts';
12
+ export { Sheet, SheetClose, SheetContent, SheetTrigger };
@@ -2,6 +2,7 @@ import { VariantProps } from 'class-variance-authority';
2
2
  import { ComponentProps } from 'react';
3
3
  export declare const typographyVariants: (props?: ({
4
4
  variant?: "caption" | "normal" | "huge-larger" | "huge-large" | "huge-medium" | "huge-small" | "headline-larger" | "headline-large" | "headline-medium" | "headline-small" | "title-large" | "title-medium" | "title-small" | "body-medium" | "body-small" | null | undefined;
5
+ tone?: "error" | "default" | "primary" | "muted" | null | undefined;
5
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
7
  export type TypographyProps = ComponentProps<'p'> & VariantProps<typeof typographyVariants> & {
7
8
  /** The element to render, `div` by default. Intrinsic tags only. */
@@ -9,4 +10,4 @@ export type TypographyProps = ComponentProps<'p'> & VariantProps<typeof typograp
9
10
  /** Merge the typography classes onto the single child instead of rendering an element. */
10
11
  asChild?: boolean;
11
12
  };
12
- export declare function Typography({ className, variant, as, asChild, ...props }: TypographyProps): import("react").JSX.Element;
13
+ export declare function Typography({ className, variant, tone, as, asChild, ...props }: TypographyProps): import("react").JSX.Element;