@nxgt/material 3.33.0 → 3.35.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 (170) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +5 -5
  3. package/dist/{async-slice-Cll-4Mvg.js → async-slice-BNI_F0jz.js} +2 -2
  4. package/dist/{button-B47lM8a5.js → button-EMWOFSDB.js} +1 -1
  5. package/dist/charts.js +3 -3
  6. package/dist/{chip-Bf80b1XT.js → chip-B6m3yagf.js} +1 -1
  7. package/dist/{code-editor-BLLpzmCc.js → code-editor-BdiufnpC.js} +4 -4
  8. package/dist/code-editor.js +4 -4
  9. package/dist/{code-language-items-COd99vab.js → code-language-items-v5Rnq425.js} +2 -2
  10. package/dist/{components-1vjs-YVY.js → components-C9Zz2dir.js} +16629 -13869
  11. package/dist/components.js +26 -26
  12. package/dist/{dialog-Cp7bS5LI.js → dialog-Cdv9IXVo.js} +1 -1
  13. package/dist/dnd.js +1 -1
  14. package/dist/{dropdown-menu-DJNMcPZa.js → dropdown-menu-CpSnRXd-.js} +1 -1
  15. package/dist/editor.js +7 -7
  16. package/dist/{empty-state-Dv9AtrMw.js → empty-state-DMr94lsF.js} +1 -1
  17. package/dist/hooks.js +2 -2
  18. package/dist/{i18n-provider-BBhhsa4I.js → i18n-provider-A4mI4vc1.js} +1 -1
  19. package/dist/i18n.js +5 -5
  20. package/dist/{icon-badge-DEk244kn.js → icon-badge-BFScQnp9.js} +1 -1
  21. package/dist/lib/components/ui/collections/server-table/bulk-action-targets.d.ts +11 -0
  22. package/dist/lib/components/ui/collections/server-table/bulk-action.d.ts +32 -0
  23. package/dist/lib/components/ui/collections/server-table/partials/server-table-bulk-buttons.d.ts +21 -0
  24. package/dist/lib/components/ui/collections/server-table/server-table.d.ts +1 -0
  25. package/dist/lib/components/ui/collections/server-table/types.d.ts +2 -1
  26. package/dist/lib/components/ui/dates/picker-trigger/typed-box-compact.d.ts +12 -0
  27. package/dist/lib/components/ui/dates/picker-trigger/typed-box.d.ts +6 -2
  28. package/dist/lib/components/ui/dates/picker-trigger/typed-trigger.d.ts +3 -2
  29. package/dist/lib/components/ui/dates/time-field/index.d.ts +1 -0
  30. package/dist/lib/components/ui/dates/time-field/partials/time-field-body.d.ts +2 -1
  31. package/dist/lib/components/ui/dates/time-field/partials/time-field-entry.d.ts +1 -0
  32. package/dist/lib/components/ui/dates/time-field/partials/time-field-typed.d.ts +2 -2
  33. package/dist/lib/components/ui/dates/time-field/time-field.d.ts +6 -1
  34. package/dist/lib/components/ui/dates/time-field/time-string-field.d.ts +14 -0
  35. package/dist/lib/components/ui/fields/attributes/attribute-dialog.d.ts +3 -1
  36. package/dist/lib/components/ui/fields/attributes/attribute-form/attribute-form.d.ts +3 -1
  37. package/dist/lib/components/ui/fields/attributes/attribute-form/attribute-text-form-fields.d.ts +6 -0
  38. package/dist/lib/components/ui/fields/attributes/attribute-form/consts.d.ts +7 -6
  39. package/dist/lib/components/ui/fields/attributes/attribute-form/use-attribute-form.d.ts +44 -0
  40. package/dist/lib/components/ui/fields/attributes/attributes-editor.d.ts +22 -0
  41. package/dist/lib/components/ui/fields/attributes/attributes-field/attributes-dialog-field.d.ts +14 -0
  42. package/dist/lib/components/ui/fields/attributes/attributes-field/attributes-field.d.ts +14 -12
  43. package/dist/lib/components/ui/fields/attributes/attributes-field/attributes-inline-field.d.ts +8 -0
  44. package/dist/lib/components/ui/fields/attributes/attributes-field/use-dialog-field.d.ts +15 -0
  45. package/dist/lib/components/ui/fields/attributes/attributes-form-field/attributes-form-field.d.ts +7 -1
  46. package/dist/lib/components/ui/fields/attributes/attributes-summary.d.ts +22 -0
  47. package/dist/lib/components/ui/fields/attributes/index.d.ts +3 -0
  48. package/dist/lib/components/ui/fields/attributes/logic/names.d.ts +13 -0
  49. package/dist/lib/components/ui/fields/attributes/logic/order.d.ts +15 -0
  50. package/dist/lib/components/ui/fields/attributes/logic/reorder-keys.d.ts +9 -0
  51. package/dist/lib/components/ui/fields/attributes/logic/value.d.ts +42 -0
  52. package/dist/lib/components/ui/fields/attributes/models/attribute.d.ts +5 -1
  53. package/dist/lib/components/ui/fields/attributes/partials/attribute-row.d.ts +18 -0
  54. package/dist/lib/components/ui/fields/attributes/partials/default-choices.d.ts +5 -0
  55. package/dist/lib/components/ui/fields/attributes/partials/default-field.d.ts +12 -0
  56. package/dist/lib/components/ui/fields/attributes/partials/default-inputs.d.ts +16 -0
  57. package/dist/lib/components/ui/fields/attributes/partials/editor-notes.d.ts +11 -0
  58. package/dist/lib/components/ui/fields/attributes/partials/labeled.d.ts +10 -0
  59. package/dist/lib/components/ui/fields/attributes/partials/name-field.d.ts +15 -0
  60. package/dist/lib/components/ui/fields/attributes/partials/options-field.d.ts +11 -0
  61. package/dist/lib/components/ui/fields/attributes/partials/phone-sheet.d.ts +12 -0
  62. package/dist/lib/components/ui/fields/attributes/partials/reorder-handle.d.ts +19 -0
  63. package/dist/lib/components/ui/fields/attributes/partials/row-fields.d.ts +16 -0
  64. package/dist/lib/components/ui/fields/attributes/partials/row-footer.d.ts +12 -0
  65. package/dist/lib/components/ui/fields/attributes/partials/row-head.d.ts +12 -0
  66. package/dist/lib/components/ui/fields/attributes/partials/row-panel.d.ts +15 -0
  67. package/dist/lib/components/ui/fields/attributes/partials/rows-dnd.d.ts +11 -0
  68. package/dist/lib/components/ui/fields/attributes/partials/simple-fields.d.ts +20 -0
  69. package/dist/lib/components/ui/fields/attributes/partials/summary-item.d.ts +9 -0
  70. package/dist/lib/components/ui/fields/attributes/partials/type-icon.d.ts +13 -0
  71. package/dist/lib/components/ui/fields/attributes/partials/value-text.d.ts +12 -0
  72. package/dist/lib/components/ui/fields/attributes/schema.d.ts +32 -0
  73. package/dist/lib/components/ui/fields/attributes/use-announce.d.ts +14 -0
  74. package/dist/lib/components/ui/fields/attributes/use-attribute-text.d.ts +13 -0
  75. package/dist/lib/components/ui/fields/attributes/use-attributes-editor.d.ts +34 -0
  76. package/dist/lib/components/ui/fields/attributes/use-reorder.d.ts +26 -0
  77. package/dist/lib/components/ui/fields/contacts/contacts-dialog-form-field.d.ts +9 -0
  78. package/dist/lib/components/ui/fields/contacts/contacts-editor.d.ts +29 -0
  79. package/dist/lib/components/ui/fields/contacts/contacts-form-field.d.ts +14 -1
  80. package/dist/lib/components/ui/fields/contacts/contacts-summary.d.ts +23 -0
  81. package/dist/lib/components/ui/fields/contacts/index.d.ts +3 -0
  82. package/dist/lib/components/ui/fields/contacts/logic/check-contact.d.ts +11 -0
  83. package/dist/lib/components/ui/fields/contacts/logic/contact-action.d.ts +11 -0
  84. package/dist/lib/components/ui/fields/contacts/logic/duplicates.d.ts +17 -0
  85. package/dist/lib/components/ui/fields/contacts/logic/issues.d.ts +7 -0
  86. package/dist/lib/components/ui/fields/contacts/logic/primary.d.ts +33 -0
  87. package/dist/lib/components/ui/fields/contacts/models.d.ts +7 -0
  88. package/dist/lib/components/ui/fields/contacts/partials/contact-fields.d.ts +29 -0
  89. package/dist/lib/components/ui/fields/contacts/partials/contact-links.d.ts +15 -0
  90. package/dist/lib/components/ui/fields/contacts/partials/contact-row.d.ts +14 -0
  91. package/dist/lib/components/ui/fields/contacts/partials/phone-sheet.d.ts +14 -0
  92. package/dist/lib/components/ui/fields/contacts/partials/quick-add.d.ts +12 -0
  93. package/dist/lib/components/ui/fields/contacts/partials/row-actions.d.ts +16 -0
  94. package/dist/lib/components/ui/fields/contacts/partials/summary-item.d.ts +11 -0
  95. package/dist/lib/components/ui/fields/contacts/partials/summary-row.d.ts +14 -0
  96. package/dist/lib/components/ui/fields/contacts/partials/type-group.d.ts +15 -0
  97. package/dist/lib/components/ui/fields/contacts/partials/type-icon.d.ts +12 -0
  98. package/dist/lib/components/ui/fields/contacts/partials/value-field.d.ts +25 -0
  99. package/dist/lib/components/ui/fields/contacts/placeholders.d.ts +2 -0
  100. package/dist/lib/components/ui/fields/contacts/schema.d.ts +18 -0
  101. package/dist/lib/components/ui/fields/contacts/use-contact-text.d.ts +9 -0
  102. package/dist/lib/components/ui/fields/contacts/use-contacts-editor.d.ts +33 -0
  103. package/dist/lib/components/ui/fields/inline-editor/action-tone.d.ts +2 -0
  104. package/dist/lib/components/ui/fields/inline-editor/editor-header.d.ts +19 -0
  105. package/dist/lib/components/ui/fields/inline-editor/editor-sheet.d.ts +20 -0
  106. package/dist/lib/components/ui/fields/inline-editor/empty-summary.d.ts +19 -0
  107. package/dist/lib/components/ui/fields/inline-editor/use-focus-request.d.ts +13 -0
  108. package/dist/lib/components/ui/fields/inline-editor/use-row-ids.d.ts +13 -0
  109. package/dist/lib/components/ui/fields/opening-hours/consts.d.ts +17 -3
  110. package/dist/lib/components/ui/fields/opening-hours/index.d.ts +2 -0
  111. package/dist/lib/components/ui/fields/opening-hours/logic/edit-days.d.ts +9 -0
  112. package/dist/lib/components/ui/fields/opening-hours/logic/first-day.d.ts +14 -0
  113. package/dist/lib/components/ui/fields/opening-hours/logic/format.d.ts +6 -0
  114. package/dist/lib/components/ui/fields/opening-hours/logic/group.d.ts +13 -0
  115. package/dist/lib/components/ui/fields/opening-hours/logic/range-errors.d.ts +20 -0
  116. package/dist/lib/components/ui/fields/opening-hours/logic/status.d.ts +19 -0
  117. package/dist/lib/components/ui/fields/opening-hours/logic/week.d.ts +32 -0
  118. package/dist/lib/components/ui/fields/opening-hours/logic/zoned.d.ts +10 -0
  119. package/dist/lib/components/ui/fields/opening-hours/opening-hours-dialog-form-field.d.ts +10 -0
  120. package/dist/lib/components/ui/fields/opening-hours/opening-hours-editor.d.ts +26 -0
  121. package/dist/lib/components/ui/fields/opening-hours/opening-hours-form-field.d.ts +17 -1
  122. package/dist/lib/components/ui/fields/opening-hours/opening-hours-summary.d.ts +32 -0
  123. package/dist/lib/components/ui/fields/opening-hours/partials/copy-chips.d.ts +12 -0
  124. package/dist/lib/components/ui/fields/opening-hours/partials/copy-menu.d.ts +10 -0
  125. package/dist/lib/components/ui/fields/opening-hours/partials/day-controls.d.ts +14 -0
  126. package/dist/lib/components/ui/fields/opening-hours/partials/day-row.d.ts +15 -0
  127. package/dist/lib/components/ui/fields/opening-hours/partials/day-summary-row.d.ts +15 -0
  128. package/dist/lib/components/ui/fields/opening-hours/partials/group-row.d.ts +13 -0
  129. package/dist/lib/components/ui/fields/opening-hours/partials/phone-sheet.d.ts +18 -0
  130. package/dist/lib/components/ui/fields/opening-hours/partials/range-field-props.d.ts +28 -0
  131. package/dist/lib/components/ui/fields/opening-hours/partials/range-row.d.ts +24 -0
  132. package/dist/lib/components/ui/fields/opening-hours/partials/status-pill.d.ts +13 -0
  133. package/dist/lib/components/ui/fields/opening-hours/use-first-day.d.ts +8 -0
  134. package/dist/lib/components/ui/fields/opening-hours/use-hours-editor.d.ts +26 -0
  135. package/dist/lib/components/ui/fields/opening-hours/use-hours-text.d.ts +8 -0
  136. package/dist/lib/components/ui/fields/opening-hours/use-now.d.ts +6 -0
  137. package/dist/lib/i18n/resources/en/en.d.ts +77 -0
  138. package/dist/lib/i18n/resources/en/material.json.d.ts +89 -12
  139. package/dist/lib/i18n/resources/fr/fr.d.ts +77 -0
  140. package/dist/lib/i18n/resources/fr/material.json.d.ts +89 -12
  141. package/dist/lib/i18n/resources/resources.d.ts +154 -0
  142. package/dist/lib/i18n/translator.d.ts +1 -1
  143. package/dist/lib.js +1 -1
  144. package/dist/main.js +43 -43
  145. package/dist/map.js +4 -4
  146. package/dist/material.css +1 -1
  147. package/dist/pdf-reader.js +1 -1
  148. package/dist/print.js +2 -2
  149. package/dist/{public-Cvwb2tds.js → public-CYdnlHqA.js} +6 -6
  150. package/dist/{rich-code-block-MItKFVB-.js → rich-code-block-Bwhfhu7J.js} +4 -4
  151. package/dist/{sortable-provider-CIlK0Vuk.js → sortable-provider-CY_YD3Ee.js} +1 -1
  152. package/dist/{spinner-DRGPXRNW.js → spinner-CKlDba5I.js} +1 -1
  153. package/dist/{stored-language-CkPRWAaM.js → stored-language-CfQGHLq9.js} +182 -24
  154. package/dist/theme-picker.js +2 -2
  155. package/dist/{theme-toggle-CPzxOW_X.js → theme-toggle--Zcf5AM8.js} +1 -1
  156. package/dist/{toolbar-items-GIaifZbx.js → toolbar-items-B1W-uVHS.js} +2 -2
  157. package/dist/{translate-material-BEQGLLY7.js → translate-material-xDh10aWZ.js} +2 -2
  158. package/dist/{translator-Ec9Uj32C.js → translator-BbOZntEF.js} +1 -1
  159. package/dist/{use-chat-composer-BEs82Xar.js → use-chat-composer-CoyqPKbt.js} +12 -12
  160. package/dist/{use-heading-spy-BRAPVvfh.js → use-heading-spy-DXYCeegh.js} +1 -1
  161. package/dist/{use-material-translation-B0RHv3l7.js → use-material-translation-BK2YYCY3.js} +2 -2
  162. package/docs/components/data-table-filter-and-lists.md +29 -1
  163. package/docs/components/date-and-time.md +9 -1
  164. package/docs/components/form-fields.md +298 -67
  165. package/docs/guides/forms.md +18 -12
  166. package/docs/guides/i18n.md +2 -1
  167. package/docs/guides/ssr.md +1 -0
  168. package/docs/previews/form-fields-contacts.webp +0 -0
  169. package/docs/previews/form-fields-openinghours.webp +0 -0
  170. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
- import { t as e } from "./public-Cvwb2tds.js";
1
+ import { t as e } from "./public-CYdnlHqA.js";
2
2
  import { configurePdfReader as t } from "@nxgt/material-core/pdf-reader";
3
3
  export { e as PdfReader, t as configurePdfReader };
package/dist/print.js CHANGED
@@ -1,5 +1,5 @@
1
- import { r as e } from "./i18n-provider-BBhhsa4I.js";
2
- import { t } from "./translate-material-BEQGLLY7.js";
1
+ import { r as e } from "./i18n-provider-A4mI4vc1.js";
2
+ import { t } from "./translate-material-xDh10aWZ.js";
3
3
  import { Children as n, createContext as r, isValidElement as i, useCallback as a, useContext as o, useEffect as s, useMemo as c, useState as l } from "react";
4
4
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
5
5
  import { resolvePdfFileName as f } from "@nxgt/material-core/pdf-file-name";
@@ -6,18 +6,18 @@ import { c as i, i as a, l as o, n as s, o as c, s as l } from "./dist-lmHmz_bu.
6
6
  import { a as u, o as d } from "./tooltip-CkttDIab.js";
7
7
  import { i as f } from "./dist-C4wtXCjf.js";
8
8
  import { r as p, t as m } from "./in-dialog-Vwkyp-M5.js";
9
- import { C as h, D as g, E as _, O as v, S as y, T as b, _ as x, f as S, g as ee, k as te, r as ne, t as C, u as re, w } from "./dialog-Cp7bS5LI.js";
10
- import { c as T, d as ie, f as E, i as ae, l as oe, n as se, o as D, t as ce, u as O } from "./dropdown-menu-DJNMcPZa.js";
11
- import { S as le, a as k, d as A, g as ue, h as de, i as fe, m as pe, n as j, r as me, t as M, u as he, w as ge } from "./toolbar-items-GIaifZbx.js";
12
- import { t as N } from "./use-material-translation-B0RHv3l7.js";
13
- import { t as _e } from "./button-B47lM8a5.js";
9
+ import { C as h, D as g, E as _, O as v, S as y, T as b, _ as x, f as S, g as ee, k as te, r as ne, t as C, u as re, w } from "./dialog-Cdv9IXVo.js";
10
+ import { c as T, d as ie, f as E, i as ae, l as oe, n as se, o as D, t as ce, u as O } from "./dropdown-menu-CpSnRXd-.js";
11
+ import { S as le, a as k, d as A, g as ue, h as de, i as fe, m as pe, n as j, r as me, t as M, u as he, w as ge } from "./toolbar-items-B1W-uVHS.js";
12
+ import { t as N } from "./use-material-translation-BK2YYCY3.js";
13
+ import { t as _e } from "./button-EMWOFSDB.js";
14
14
  import { n as ve, t as ye } from "./icon-button-ifTpXt0A.js";
15
15
  import { t as be } from "./useEvent-2fKq-6w8.js";
16
16
  import { n as xe, t as Se } from "./toggle-group-BMJNcFAC.js";
17
17
  import { o as Ce } from "./escape-owner-C4W_sOAU.js";
18
18
  import { n as we } from "./use-slice-reducer-BGkeGtML.js";
19
19
  import { r as Te } from "./use-csp-nonce-ZKs9k-ov.js";
20
- import { n as Ee, t as De } from "./empty-state-Dv9AtrMw.js";
20
+ import { n as Ee, t as De } from "./empty-state-DMr94lsF.js";
21
21
  import { t as Oe } from "./client-only.utils-3nHNzCki.js";
22
22
  import { t as ke } from "./use-scroll-away-PQRFZkT2.js";
23
23
  import { ArrowLeft as Ae, BookOpenText as je, ChevronDown as Me, ChevronLeft as Ne, ChevronRight as Pe, ChevronUp as Fe, Download as Ie, Eraser as Le, FileText as Re, FileWarning as ze, FileX2 as Be, Highlighter as Ve, KeyRound as He, LayoutGrid as Ue, List as We, Loader2 as Ge, Maximize as Ke, MessageSquareText as qe, Minimize as Je, MoreVertical as Ye, MousePointer2 as Xe, MoveHorizontal as Ze, PanelLeft as Qe, Pen as $e, PencilLine as et, Printer as tt, RotateCw as nt, Search as rt, StickyNote as it, Type as at, Underline as ot, Undo2 as st, Volume2 as ct, X as lt, XIcon as ut, ZoomIn as dt, ZoomOut as ft } from "lucide-react";
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./tooltip-CkttDIab.js";
2
- import { c as t, n, t as r } from "./dropdown-menu-DJNMcPZa.js";
3
- import { t as i } from "./use-material-translation-B0RHv3l7.js";
4
- import { a, i as o, n as s, o as c, t as l } from "./code-language-items-COd99vab.js";
2
+ import { c as t, n, t as r } from "./dropdown-menu-CpSnRXd-.js";
3
+ import { t as i } from "./use-material-translation-BK2YYCY3.js";
4
+ import { a, i as o, n as s, o as c, t as l } from "./code-language-items-v5Rnq425.js";
5
5
  import { i as u, n as d, r as f, s as p } from "./dist-C3GR7kJd.js";
6
6
  import { t as m } from "./code-block-spec-CGLKRhwD.js";
7
7
  import { Check as h, ChevronDown as g, Copy as _, Maximize2 as v, WrapText as y } from "lucide-react";
@@ -143,7 +143,7 @@ function M({ node: e, editor: t, updateAttributes: n, editable: r, wrap: a, onWr
143
143
  }
144
144
  //#endregion
145
145
  //#region lib/components/ui/widgets/editor/extensions/code/code-block-open.tsx
146
- var N = x(() => import("./code-editor-BLLpzmCc.js").then((e) => e.n).then((e) => ({ default: e.CodeEditor })));
146
+ var N = x(() => import("./code-editor-BdiufnpC.js").then((e) => e.n).then((e) => ({ default: e.CodeEditor })));
147
147
  function P() {
148
148
  let { t: e } = i();
149
149
  return /* @__PURE__ */ T("div", {
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { t } from "./dist-DVRQkaTK.js";
3
- import { t as n } from "./use-material-translation-B0RHv3l7.js";
3
+ import { t as n } from "./use-material-translation-BK2YYCY3.js";
4
4
  import { t as r } from "./icon-button-ifTpXt0A.js";
5
5
  import { t as i } from "./compose-refs-DZ0iIVF-.js";
6
6
  import { GripVertical as a } from "lucide-react";
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { o as t } from "./tooltip-CkttDIab.js";
3
- import { t as n } from "./use-material-translation-B0RHv3l7.js";
3
+ import { t as n } from "./use-material-translation-BK2YYCY3.js";
4
4
  import { jsx as r } from "react/jsx-runtime";
5
5
  //#region lib/components/ui/feedback/spinner/spinner.tsx
6
6
  var i = t("transition-all duration-500", {
@@ -403,11 +403,21 @@ var t = {
403
403
  save: "Save",
404
404
  cancel: "Cancel",
405
405
  remove: "Delete",
406
- "add-option": "Add option"
406
+ "add-option": "Add option",
407
+ done: "Done",
408
+ "remove-row": "Remove {name}",
409
+ "edit-row": "Edit {name}",
410
+ reorder: "Reorder {name}"
407
411
  },
408
412
  labels: {
413
+ none: "No attributes",
409
414
  "new-attribute": "New attribute",
410
- attributes: "Attributes"
415
+ attributes: "Attributes",
416
+ default: "Default",
417
+ yes: "Yes",
418
+ no: "No",
419
+ hint: "Drag the handle, or press Space, then ↑ ↓, Space to drop, Esc to cancel",
420
+ untitled: "Untitled attribute"
411
421
  },
412
422
  messages: {
413
423
  "create-succeeded": "Attribute successfully created",
@@ -415,7 +425,8 @@ var t = {
415
425
  "delete-succeeded": "{count, plural, one {Attribute successfully deleted} other {# attributes successfully deleted}}",
416
426
  empty: "No attributes yet",
417
427
  "add-first": "Add an attribute to get started.",
418
- dialog: "Name, type, and optional defaults."
428
+ dialog: "Name, type, and optional defaults.",
429
+ sheet: "Edit this attribute."
419
430
  },
420
431
  types: {
421
432
  color: "Color",
@@ -473,6 +484,17 @@ var t = {
473
484
  label: "Unit",
474
485
  placeholder: "Enter unit (e.g., kg, cm)"
475
486
  }
487
+ },
488
+ errors: {
489
+ duplicate: "Another attribute already has this name.",
490
+ empty: "Enter a name.",
491
+ issues: "{count, plural, one {# issue to fix} other {# issues to fix}}"
492
+ },
493
+ announce: {
494
+ lift: "Picked up {name}, position {position} of {count}. Use the arrow keys to move it, Space to drop it, Escape to cancel.",
495
+ move: "{name} moved to position {position} of {count}.",
496
+ drop: "{name} dropped at position {position} of {count}.",
497
+ cancel: "Reorder cancelled. {name} is back at position {position} of {count}."
476
498
  }
477
499
  },
478
500
  table: {
@@ -532,7 +554,10 @@ var t = {
532
554
  fields: {
533
555
  type: "Type",
534
556
  value: "Value",
535
- label: "Label"
557
+ label: "Label",
558
+ "row-type": "{type} {n}: type",
559
+ "row-value": "{type} {n}: value",
560
+ "row-label": "{type} {n}: label"
536
561
  },
537
562
  types: {
538
563
  phone: "Phone",
@@ -556,21 +581,47 @@ var t = {
556
581
  remove: "Remove Contact",
557
582
  edit: "Edit contact",
558
583
  save: "Save",
559
- cancel: "Cancel"
584
+ cancel: "Cancel",
585
+ "make-primary": "Make primary",
586
+ "is-primary": "Primary for this type",
587
+ call: "Call",
588
+ "send-email": "Send an email",
589
+ "open-site": "Open site",
590
+ "copy-value": "Copy {value}",
591
+ done: "Done",
592
+ "remove-row": "Remove {type} {n}",
593
+ "add-type": "Add {type}"
560
594
  },
561
595
  messages: {
562
596
  "no-contacts": "No contacts added yet",
563
597
  "add-first": "Click the button below to add a contact",
564
- dialog: "Type, value, and an optional label."
598
+ dialog: "Type, value, and an optional label.",
599
+ sheet: "Edit this contact."
565
600
  },
566
- labels: { contacts: "Contacts" }
601
+ labels: {
602
+ none: "No contacts",
603
+ contacts: "Contacts",
604
+ primary: "Primary",
605
+ group: "{type}, {count, plural, one {# contact} other {# contacts}}"
606
+ },
607
+ errors: {
608
+ email: "Enter a valid email address.",
609
+ phone: "Enter 7 to 15 digits.",
610
+ website: "Start with https:// or http://.",
611
+ duplicate: "Already listed ({name}).",
612
+ empty: "Enter a value.",
613
+ issues: "{count, plural, one {# issue to fix} other {# issues to fix}}"
614
+ }
567
615
  },
568
616
  "opening-hours": {
569
617
  fields: {
570
618
  dayOfWeek: "Day of Week",
571
619
  openTime: "Opening Time",
572
620
  closeTime: "Closing Time",
573
- isClosed: "Closed"
621
+ isClosed: "Closed",
622
+ "range-open": "{day}, range {n}: opening time",
623
+ "range-close": "{day}, range {n}: closing time",
624
+ "day-open": "{day}: open"
574
625
  },
575
626
  days: {
576
627
  0: "Sunday",
@@ -601,16 +652,42 @@ var t = {
601
652
  "add-all": "Add All Days",
602
653
  edit: "Edit hours",
603
654
  save: "Save",
604
- cancel: "Cancel"
655
+ cancel: "Cancel",
656
+ "add-range": "Add hours",
657
+ "remove-range": "Remove range {n} of {day}",
658
+ "copy-to": "Copy to…",
659
+ copy: "Copy",
660
+ done: "Done"
605
661
  },
606
662
  labels: {
607
663
  "closed-all-day": "Closed all day",
608
- "open-hours": "Opening Hours"
664
+ "open-hours": "Opening Hours",
665
+ today: "Today",
666
+ open: "Open",
667
+ closed: "Closed",
668
+ "copy-weekdays": "Monday to Friday",
669
+ "copy-weekend": "Weekend",
670
+ "copy-all": "All days",
671
+ copied: "Copied to {days}",
672
+ "copy-days": "Copy {day} to"
609
673
  },
610
674
  messages: {
611
675
  "no-hours": "No opening hours configured",
612
- "add-first": "Click the button below to add opening hours",
676
+ "add-first": "Use the button above to add opening hours",
613
677
  dialog: "Day, opening time, and closing time."
678
+ },
679
+ status: {
680
+ "closes-at": "closes at {time}",
681
+ "opens-at": "opens at {time}",
682
+ "opens-tomorrow": "opens tomorrow at {time}",
683
+ "opens-day": "opens {day} at {time}",
684
+ unset: "Hours not set"
685
+ },
686
+ errors: {
687
+ close: "Closing time must be after opening time.",
688
+ overlap: "This range overlaps another one.",
689
+ missing: "Enter both times.",
690
+ issues: "{count, plural, one {# issue to fix} other {# issues to fix}}"
614
691
  }
615
692
  },
616
693
  "postal-address": {
@@ -1932,7 +2009,9 @@ var t = {
1932
2009
  "first-page": "Back to the first page",
1933
2010
  "past-end-status": "{count, plural, =0 {No results} one {# result} other {# results}} in all, none on this page",
1934
2011
  error: "Could not load the list",
1935
- "error-hint": "Check your connection, then try again."
2012
+ "error-hint": "Check your connection, then try again.",
2013
+ "bulk-action": "{label} ({count})",
2014
+ "bulk-action-name": "{label} {count, plural, one {# row} other {# rows}}"
1936
2015
  },
1937
2016
  "list-empty": { clear: "Clear search and filters" },
1938
2017
  "data-grid": {
@@ -3070,11 +3149,21 @@ var t = {
3070
3149
  save: "Enregistrer",
3071
3150
  cancel: "Annuler",
3072
3151
  remove: "Supprimer",
3073
- "add-option": "Ajouter une option"
3152
+ "add-option": "Ajouter une option",
3153
+ done: "Terminé",
3154
+ "remove-row": "Supprimer {name}",
3155
+ "edit-row": "Modifier {name}",
3156
+ reorder: "Réordonner {name}"
3074
3157
  },
3075
3158
  labels: {
3159
+ none: "Aucun attribut",
3076
3160
  "new-attribute": "Nouvel attribut",
3077
- attributes: "Attributs"
3161
+ attributes: "Attributs",
3162
+ default: "Défaut",
3163
+ yes: "Oui",
3164
+ no: "Non",
3165
+ hint: "Faites glisser la poignée, ou appuyez sur Espace, puis ↑ ↓, Espace pour déposer, Échap pour annuler",
3166
+ untitled: "Attribut sans titre"
3078
3167
  },
3079
3168
  messages: {
3080
3169
  "create-succeeded": "Attribut créé avec succès",
@@ -3082,7 +3171,8 @@ var t = {
3082
3171
  "delete-succeeded": "{count, plural, =0 {Aucun attribut supprimé.} one {Attribut supprimé avec succès} other {# attributs supprimés avec succès.}}",
3083
3172
  empty: "Aucun attribut",
3084
3173
  "add-first": "Ajoutez un attribut pour commencer.",
3085
- dialog: "Nom, type et valeurs par défaut optionnelles."
3174
+ dialog: "Nom, type et valeurs par défaut optionnelles.",
3175
+ sheet: "Modifier cet attribut."
3086
3176
  },
3087
3177
  types: {
3088
3178
  color: "Couleur",
@@ -3140,6 +3230,17 @@ var t = {
3140
3230
  label: "Unité",
3141
3231
  placeholder: "Saisir l’unité (ex : kg, cm)"
3142
3232
  }
3233
+ },
3234
+ errors: {
3235
+ duplicate: "Un autre attribut porte déjà ce nom.",
3236
+ empty: "Saisissez un nom.",
3237
+ issues: "{count, plural, one {# problème à corriger} other {# problèmes à corriger}}"
3238
+ },
3239
+ announce: {
3240
+ lift: "{name} saisi, position {position} sur {count}. Déplacez-le avec les flèches, Espace pour le déposer, Échap pour annuler.",
3241
+ move: "{name} déplacé à la position {position} sur {count}.",
3242
+ drop: "{name} déposé à la position {position} sur {count}.",
3243
+ cancel: "Réorganisation annulée. {name} est revenu à la position {position} sur {count}."
3143
3244
  }
3144
3245
  },
3145
3246
  table: {
@@ -3199,7 +3300,10 @@ var t = {
3199
3300
  fields: {
3200
3301
  type: "Type",
3201
3302
  value: "Valeur",
3202
- label: "Libellé"
3303
+ label: "Libellé",
3304
+ "row-type": "{type} {n} : type",
3305
+ "row-value": "{type} {n} : valeur",
3306
+ "row-label": "{type} {n} : libellé"
3203
3307
  },
3204
3308
  types: {
3205
3309
  phone: "Téléphone",
@@ -3223,21 +3327,47 @@ var t = {
3223
3327
  remove: "Supprimer le contact",
3224
3328
  edit: "Modifier le contact",
3225
3329
  save: "Enregistrer",
3226
- cancel: "Annuler"
3330
+ cancel: "Annuler",
3331
+ "make-primary": "Définir comme principal",
3332
+ "is-primary": "Principal pour ce type",
3333
+ call: "Appeler",
3334
+ "send-email": "Écrire un courriel",
3335
+ "open-site": "Ouvrir le site",
3336
+ "copy-value": "Copier {value}",
3337
+ done: "Terminé",
3338
+ "remove-row": "Retirer {type} {n}",
3339
+ "add-type": "Ajouter {type}"
3227
3340
  },
3228
3341
  messages: {
3229
3342
  "no-contacts": "Aucun contact ajouté",
3230
3343
  "add-first": "Cliquez sur le bouton ci-dessous pour ajouter un contact",
3231
- dialog: "Type, valeur et un libellé optionnel."
3344
+ dialog: "Type, valeur et un libellé optionnel.",
3345
+ sheet: "Modifiez ce contact."
3232
3346
  },
3233
- labels: { contacts: "Contacts" }
3347
+ labels: {
3348
+ none: "Aucun contact",
3349
+ contacts: "Contacts",
3350
+ primary: "Principal",
3351
+ group: "{type}, {count, plural, one {# contact} other {# contacts}}"
3352
+ },
3353
+ errors: {
3354
+ email: "Saisissez une adresse courriel valide.",
3355
+ phone: "Saisissez de 7 à 15 chiffres.",
3356
+ website: "Commencez par https:// ou http://.",
3357
+ duplicate: "Déjà présent ({name}).",
3358
+ empty: "Saisissez une valeur.",
3359
+ issues: "{count, plural, one {# point à corriger} other {# points à corriger}}"
3360
+ }
3234
3361
  },
3235
3362
  "opening-hours": {
3236
3363
  fields: {
3237
3364
  dayOfWeek: "Jour de la semaine",
3238
3365
  openTime: "Heure d''ouverture",
3239
3366
  closeTime: "Heure de fermeture",
3240
- isClosed: "Fermé"
3367
+ isClosed: "Fermé",
3368
+ "range-open": "{day}, plage {n} : heure d''ouverture",
3369
+ "range-close": "{day}, plage {n} : heure de fermeture",
3370
+ "day-open": "{day} : ouvert"
3241
3371
  },
3242
3372
  days: {
3243
3373
  0: "Dimanche",
@@ -3268,16 +3398,42 @@ var t = {
3268
3398
  "add-all": "Ajouter tous les jours",
3269
3399
  edit: "Modifier les horaires",
3270
3400
  save: "Enregistrer",
3271
- cancel: "Annuler"
3401
+ cancel: "Annuler",
3402
+ "add-range": "Ajouter une plage",
3403
+ "remove-range": "Retirer la plage {n} de {day}",
3404
+ "copy-to": "Copier vers…",
3405
+ copy: "Copier",
3406
+ done: "Terminé"
3272
3407
  },
3273
3408
  labels: {
3274
3409
  "closed-all-day": "Fermé toute la journée",
3275
- "open-hours": "Horaires d''ouverture"
3410
+ "open-hours": "Horaires d''ouverture",
3411
+ today: "Aujourd''hui",
3412
+ open: "Ouvert",
3413
+ closed: "Fermé",
3414
+ "copy-weekdays": "Du lundi au vendredi",
3415
+ "copy-weekend": "Week-end",
3416
+ "copy-all": "Tous les jours",
3417
+ copied: "Copié vers {days}",
3418
+ "copy-days": "Copier {day} vers"
3276
3419
  },
3277
3420
  messages: {
3278
3421
  "no-hours": "Aucun horaire configuré",
3279
- "add-first": "Cliquez sur le bouton ci-dessous pour ajouter des horaires",
3422
+ "add-first": "Utilisez le bouton ci-dessus pour ajouter des horaires",
3280
3423
  dialog: "Jour, heure d'ouverture et de fermeture."
3424
+ },
3425
+ status: {
3426
+ "closes-at": "ferme à {time}",
3427
+ "opens-at": "ouvre à {time}",
3428
+ "opens-tomorrow": "ouvre demain à {time}",
3429
+ "opens-day": "ouvre {day} à {time}",
3430
+ unset: "Horaires non renseignés"
3431
+ },
3432
+ errors: {
3433
+ close: "L''heure de fermeture doit suivre l''ouverture.",
3434
+ overlap: "Cette plage chevauche une autre plage.",
3435
+ missing: "Renseignez les deux heures.",
3436
+ issues: "{count, plural, one {# erreur à corriger} other {# erreurs à corriger}}"
3281
3437
  }
3282
3438
  },
3283
3439
  "postal-address": {
@@ -4599,7 +4755,9 @@ var t = {
4599
4755
  "first-page": "Retour à la première page",
4600
4756
  "past-end-status": "{count, plural, =0 {Aucun résultat} one {# résultat} other {# résultats}} au total, aucun sur cette page",
4601
4757
  error: "Impossible de charger la liste",
4602
- "error-hint": "Vérifiez votre connexion, puis réessayez."
4758
+ "error-hint": "Vérifiez votre connexion, puis réessayez.",
4759
+ "bulk-action": "{label} ({count})",
4760
+ "bulk-action-name": "{label} : {count, plural, one {# ligne} other {# lignes}}"
4603
4761
  },
4604
4762
  "list-empty": { clear: "Effacer la recherche et les filtres" },
4605
4763
  "data-grid": {
@@ -1,10 +1,10 @@
1
1
  import { t as e } from "./utils-BLfntITJ.js";
2
2
  import { a as t, i as n, n as r, o as i, r as a, t as o } from "./bubble-input-B7BVd9fX.js";
3
- import { t as s } from "./use-material-translation-B0RHv3l7.js";
3
+ import { t as s } from "./use-material-translation-BK2YYCY3.js";
4
4
  import { a as c, r as l } from "./icon-sprites-CaYXzOL4.js";
5
5
  import { t as u } from "./use-theme-DMcyJ52N.js";
6
6
  import { a as d, r as f } from "./theme-context-Cofk6vgs.js";
7
- import { t as p } from "./theme-toggle-CPzxOW_X.js";
7
+ import { t as p } from "./theme-toggle--Zcf5AM8.js";
8
8
  import { n as m, t as h } from "./nxgt-theme-ZS945iMP.js";
9
9
  import { Check as g } from "lucide-react";
10
10
  import { useContext as _ } from "react";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./use-material-translation-B0RHv3l7.js";
1
+ import { t as e } from "./use-material-translation-BK2YYCY3.js";
2
2
  import { i as t } from "./theme-store-CSl51uNH.js";
3
3
  import { n, t as r } from "./use-theme-DMcyJ52N.js";
4
4
  import { r as i } from "./theme-context-Cofk6vgs.js";
@@ -4,9 +4,9 @@ import { a as i, c as a, i as o, l as s, r as c, s as l } from "./dist-lmHmz_bu.
4
4
  import { b as u, c as d, d as f, f as p, l as m, t as h, u as g, x as _ } from "./tooltip-CkttDIab.js";
5
5
  import { i as v, n as y, r as b, t as x } from "./dist-C4wtXCjf.js";
6
6
  import { a as S, c as C, l as w, o as T, r as ee, s as te, t as E } from "./in-dialog-Vwkyp-M5.js";
7
- import { A as ne, M as re, N as ie, b as ae, d as oe, f as se, i as ce, j as le, l as ue, n as de, o as fe, r as pe, t as me, u as he, y as ge } from "./dropdown-menu-DJNMcPZa.js";
7
+ import { A as ne, M as re, N as ie, b as ae, d as oe, f as se, i as ce, j as le, l as ue, n as de, o as fe, r as pe, t as me, u as he, y as ge } from "./dropdown-menu-CpSnRXd-.js";
8
8
  import { a as _e, n as ve, r as ye, t as be } from "./dist-B7RjY7SL.js";
9
- import { t as xe } from "./use-material-translation-B0RHv3l7.js";
9
+ import { t as xe } from "./use-material-translation-BK2YYCY3.js";
10
10
  import { t as Se } from "./warn-once-C_e47JM8.js";
11
11
  import { o as Ce } from "./escape-owner-C4W_sOAU.js";
12
12
  import { ChevronLeft as we, ChevronRightIcon as Te, MoreVertical as Ee } from "lucide-react";
@@ -1,5 +1,5 @@
1
- import "./stored-language-CkPRWAaM.js";
2
- import { a as e, r as t } from "./translator-Ec9Uj32C.js";
1
+ import "./stored-language-CfQGHLq9.js";
2
+ import { a as e, r as t } from "./translator-BbOZntEF.js";
3
3
  //#region lib/i18n/translate-material.ts
4
4
  function n(n, r, i, a) {
5
5
  if (n) for (let e of /* @__PURE__ */ new Set([n, n.split("-")[0]])) {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./is-production-GLw59WU8.js";
2
- import { a as t, i as n, r, t as i } from "./stored-language-CkPRWAaM.js";
2
+ import { a as t, i as n, r, t as i } from "./stored-language-CfQGHLq9.js";
3
3
  import { t as a } from "./get-CTzJAwfc.js";
4
4
  //#region ../../node_modules/@formatjs/fast-memoize/index.js
5
5
  function o(e, t) {
@@ -7,21 +7,21 @@ import { a as o, c as s, i as c, l, n as u, o as d, r as f, s as p, t as m } fro
7
7
  import { _ as h, a as g, g as _, h as v, m as y, o as b, p as x, t as S, v as C, y as w } from "./tooltip-CkttDIab.js";
8
8
  import { a as T, i as E, n as D, r as O, t as k } from "./dist-C4wtXCjf.js";
9
9
  import { i as A, n as ee, t as j } from "./in-dialog-Vwkyp-M5.js";
10
- import { A as M, C as N, D as te, E as ne, O as P, S as re, T as ie, _ as F, b as ae, f as oe, g as se, k as I, l as ce, m as le, n as ue, o as de, r as fe, s as pe, t as me, u as he, v as ge, w as _e, x as ve, y as ye } from "./dialog-Cp7bS5LI.js";
10
+ import { A as M, C as N, D as te, E as ne, O as P, S as re, T as ie, _ as F, b as ae, f as oe, g as se, k as I, l as ce, m as le, n as ue, o as de, r as fe, s as pe, t as me, u as he, v as ge, w as _e, x as ve, y as ye } from "./dialog-Cdv9IXVo.js";
11
11
  import { A as be, C as xe, D as Se, E as Ce, O as we, S as Te, T as Ee, _ as De, a as Oe, b as ke, d as Ae, f as je, g as Me, h as Ne, i as Pe, k as Fe, l as Ie, m as Le, n as Re, o as ze, p as Be, r as Ve, s as He, t as Ue, u as We, v as Ge, w as Ke, x as qe, y as Je } from "./floating-ui.dom-KkZSW8_E.js";
12
- import { D as Ye, E as Xe, N as Ze, O as Qe, c as $e, d as et, f as tt, i as nt, k as rt, m as it, n as at, o as ot, p as st, t as ct, u as lt } from "./dropdown-menu-DJNMcPZa.js";
12
+ import { D as Ye, E as Xe, N as Ze, O as Qe, c as $e, d as et, f as tt, i as nt, k as rt, m as it, n as at, o as ot, p as st, t as ct, u as lt } from "./dropdown-menu-CpSnRXd-.js";
13
13
  import { a as ut, i as dt, n as ft } from "./field-blur-context-Cft9s7Hg.js";
14
- import { C as pt, S as mt, a as ht, c as gt, d as _t, l as vt, n as yt, o as bt, s as xt, u as St } from "./toolbar-items-GIaifZbx.js";
14
+ import { C as pt, S as mt, a as ht, c as gt, d as _t, l as vt, n as yt, o as bt, s as xt, u as St } from "./toolbar-items-B1W-uVHS.js";
15
15
  import { a as Ct, i as wt, n as Tt, o as Et, t as Dt } from "./bubble-input-B7BVd9fX.js";
16
16
  import { i as Ot } from "./dist-B7RjY7SL.js";
17
- import "./stored-language-CkPRWAaM.js";
18
- import { a as kt } from "./translator-Ec9Uj32C.js";
17
+ import "./stored-language-CfQGHLq9.js";
18
+ import { a as kt } from "./translator-BbOZntEF.js";
19
19
  import { h as At } from "./get-CTzJAwfc.js";
20
20
  import { t as jt } from "./isEmpty-F_g3jLf8.js";
21
- import { t as L } from "./use-material-translation-B0RHv3l7.js";
22
- import { t as Mt } from "./spinner-DRGPXRNW.js";
21
+ import { t as L } from "./use-material-translation-BK2YYCY3.js";
22
+ import { t as Mt } from "./spinner-CKlDba5I.js";
23
23
  import { a as Nt } from "./button-tones-BwuVvAmd.js";
24
- import { a as Pt, i as Ft, n as It, r as Lt, t as Rt } from "./button-B47lM8a5.js";
24
+ import { a as Pt, i as Ft, n as It, r as Lt, t as Rt } from "./button-EMWOFSDB.js";
25
25
  import { t as R } from "./icon-button-ifTpXt0A.js";
26
26
  import { a as zt, r as Bt } from "./icon-sprites-CaYXzOL4.js";
27
27
  import { t as Vt } from "./use-ssr-media-query-C6M5m8sf.js";
@@ -35,10 +35,10 @@ import { a as tn, i as nn, o as rn } from "./escape-owner-C4W_sOAU.js";
35
35
  import { n as an } from "./use-slice-reducer-BGkeGtML.js";
36
36
  import { t as on } from "./browser-only-DQ94lWF8.js";
37
37
  import { t as sn } from "./compose-refs-DZ0iIVF-.js";
38
- import { n as cn, r as ln, t as un } from "./chip-Bf80b1XT.js";
39
- import { n as dn, t as fn } from "./icon-badge-DEk244kn.js";
38
+ import { n as cn, r as ln, t as un } from "./chip-B6m3yagf.js";
39
+ import { n as dn, t as fn } from "./icon-badge-BFScQnp9.js";
40
40
  import { r as pn } from "./use-csp-nonce-ZKs9k-ov.js";
41
- import { t as mn } from "./empty-state-Dv9AtrMw.js";
41
+ import { t as mn } from "./empty-state-DMr94lsF.js";
42
42
  import { t as hn } from "./skeleton-DSdtr2qc.js";
43
43
  import { H as gn, V as _n, X as vn, bt as yn, it as bn, lt as xn, n as Sn, t as Cn, xt as wn, yt as Tn } from "./dist-moutbfbd.js";
44
44
  import { t as En } from "./markdown-Dw_uH7j7.js";
@@ -10782,7 +10782,7 @@ var CS = (e = {}) => Dn({
10782
10782
  let [{ default: t }, { lowlight: n }, { richCodeBlock: r }] = await Promise.all([
10783
10783
  import("./dist-CRMFGjng.js"),
10784
10784
  import("./lowlight-OtcjU2Sa.js"),
10785
- import("./rich-code-block-MItKFVB-.js")
10785
+ import("./rich-code-block-Bwhfhu7J.js")
10786
10786
  ]);
10787
10787
  return [r(t, {
10788
10788
  lowlight: n,
@@ -1,4 +1,4 @@
1
- import { r as e } from "./i18n-provider-BBhhsa4I.js";
1
+ import { r as e } from "./i18n-provider-A4mI4vc1.js";
2
2
  import { _ as t, g as n, h as r, n as i, v as a, y as o } from "./number.utils-BG_eEt5g.js";
3
3
  import { useCallback as s, useEffect as c, useMemo as l, useRef as u } from "react";
4
4
  //#region ../../node_modules/date-fns/locale/fr/_lib/formatDistance.js
@@ -1,5 +1,5 @@
1
- import { r as e } from "./i18n-provider-BBhhsa4I.js";
2
- import { t } from "./translate-material-BEQGLLY7.js";
1
+ import { r as e } from "./i18n-provider-A4mI4vc1.js";
2
+ import { t } from "./translate-material-xDh10aWZ.js";
3
3
  import { useCallback as n } from "react";
4
4
  //#region lib/i18n/use-material-translation.ts
5
5
  function r() {
@@ -857,6 +857,34 @@ export default function Students() {
857
857
  rowSelectionDisabledReason={() => 'Already applied'}
858
858
  />
859
859
  ```
860
+ - **Bulk actions that count and run only their rows.** `bulkActions` also
861
+ takes a list of `ServerTableBulkAction<T>` (`{ id, label, icon?, appliesTo?,
862
+ onClick, variant?, color?, loading? }`). Each button reads "Label (n)", n
863
+ being the selected rows the action applies to, and is named "Label n rows"
864
+ (`material.server-table.bulk-action` and `bulk-action-name`, English and
865
+ French); `variant` (default `'tonal'`) and `color` (`'destructive'` for a
866
+ destructive one) style the button, `loading` makes it busy; the type is
867
+ exported as `ServerTableBulkAction`. It is not rendered when n is 0, so 5 rows selected with none
868
+ archived show no "Restore". `onClick(ids, selection, rows)` receives only
869
+ those ids and rows. An action without `appliesTo` applies to the whole
870
+ selection: it shows the selection's size and gets every id. **Across
871
+ pages:** `appliesTo` sees the loaded page's rows only, so a row selected on
872
+ another page is neither counted nor passed by an action that has one; an
873
+ action without it still gets every selected id.
874
+ ```tsx
875
+ <ServerTable<Item>
876
+ {...props}
877
+ bulkActions={[
878
+ {
879
+ id: 'restore',
880
+ label: 'Restore',
881
+ appliesTo: (item) => item.archived,
882
+ onClick: (ids, selection) => restore(ids).then(selection.clear),
883
+ },
884
+ { id: 'export', label: 'Export', onClick: (ids) => exportRows(ids) },
885
+ ]}
886
+ />
887
+ ```
860
888
  - **Your own controls instead.** Without `filter`, pass
861
889
  `filters={tableFilters(model)}`: whether the page is "nothing matches",
862
890
  and its "Clear search and filters" button
@@ -895,7 +923,7 @@ Its props are `ServerTableProps<T>`; `filter` is a `ServerTableFilter`,
895
923
  | `error` | `ServerTableError \| null` | — | the fetch failed: the failure and a Retry replace the rows |
896
924
  | `onRetry` | `() => unknown` | — | the error's Retry; a returned promise keeps it loading |
897
925
  | `onClearFilters` | `() => void` | focus the table | without `filter`, after "clear" |
898
- | `bulkActions` | `(ids, selection: ServerTableSelection) => ReactNode` | — | the selection's toolbar |
926
+ | `bulkActions` | `(ids, selection: ServerTableSelection) => ReactNode \| ServerTableBulkAction<T>[]` | — | the selection's toolbar: your own buttons, or a list of actions with `appliesTo` that each count and run only the rows they apply to |
899
927
  | `enableRowSelection`, `rowSelectionDisabledReason` | `boolean \| (row) => boolean`, `(row) => string \| undefined` | all rows, no reason | with `bulkActions`: which rows can be selected, and why one cannot ([DataTable](#datatable)) |
900
928
  | `pageHref` | `(params) => string` | `` `?${params}` `` | Previous / Next hrefs |
901
929
  | `pagingNames` | `{ after?, trail? }` | `after`, `trail` | the cursor's params |
@@ -586,6 +586,7 @@ export function OpensAt() {
586
586
  | --- | --- | --- | --- |
587
587
  | `value` | `Date` | — | only the hours and minutes are shown |
588
588
  | `onValueChange` | `(value?: Date) => void` | — | on every hour, minute or AM / PM change |
589
+ | `size` | `'default' \| 'sm'` | `'default'` | `'sm'` is the compact 36px box (the field radius is unchanged) |
589
590
  | `variant`, `hourCycle`, `minuteStep` | | `'tiles'`, the language's, `5` | passed to the `TimePicker` ([below](#timepicker)); `hourCycle` sets the segments' clock too |
590
591
  | `entry` | `'typed'` | — | deprecated, no effect: the time is always typed in segments, with a button that opens the picker (`'button'`, the 2.x trigger, was removed in 3.0) |
591
592
  | `clearable` | `boolean` | `!required` | a ✕ (named "Clear") that empties the typed field; shown only while it holds a time and is not `disabled` |
@@ -634,7 +635,14 @@ phone) is named by the label, and closing it hands focus back to "Open time
634
635
  picker". "Open time picker" and "Clear" are described by the label, as on
635
636
  `DateField`.
636
637
 
637
- **Emits:** `Date | undefined`. `TimeFormField` stores that `Date`, or an
638
+ `size="sm"` is the compact box (36px, the same field radius, no clear
639
+ button needed): for a row of times such as opening hours. `TimeStringField`
640
+ is the same field with an `'HH:mm'` string for its `value` and
641
+ `onValueChange` (`undefined` once emptied), for a stored time of day; it takes
642
+ every `TimeField` prop. A separate component keeps `TimeField`'s `Date` types
643
+ unchanged.
644
+
645
+ **Emits:** `Date | undefined` (`TimeStringField`: `'HH:mm' | undefined`). `TimeFormField` stores that `Date`, or an
638
646
  `'HH:mm'` string with `asString`; `undefined`, `null` and `''` show the empty
639
647
  state.
640
648
  **Form wrapper:** `TimeFormField` — `control` and `name` (plus `asString`), see