@alfadocs/ui-kit 0.8.1 → 0.9.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 (165) hide show
  1. package/dist/_chunks/{agenda-card-CalZqycc.js → agenda-card-DU13wUTA.js} +4 -4
  2. package/dist/_chunks/{agenda-tray-3ffFDQZC.js → agenda-tray-gQUXklO4.js} +9 -9
  3. package/dist/_chunks/{ai-prompt-input-DLgY8lrW.js → ai-prompt-input-bAJwYu84.js} +45 -45
  4. package/dist/_chunks/{alert-CVMq99Cq.js → alert-pgdXrEO5.js} +2 -2
  5. package/dist/_chunks/{app-frame-CDJOgPXe.js → app-frame-BYx1gcV7.js} +2 -2
  6. package/dist/_chunks/{audio-recorder-cOl_Z_Pk.js → audio-recorder-BHBonrFf.js} +54 -54
  7. package/dist/_chunks/{audio-visualiser-ByDEFLNm.js → audio-visualiser-I-T4Z7EU.js} +2 -2
  8. package/dist/_chunks/{autocomplete-D4oUZbsP.js → autocomplete-C34hbfKh.js} +6 -6
  9. package/dist/_chunks/{avatar-Dcr6XuDQ.js → avatar-I10iCDs8.js} +2 -2
  10. package/dist/_chunks/{badge-DKFbntoa.js → badge-cLYVGlMh.js} +2 -2
  11. package/dist/_chunks/{balance-cell-renderer-BuExGe6u.js → balance-cell-renderer-DWWtX-VM.js} +5 -5
  12. package/dist/_chunks/{breadcrumb-D1snXjPb.js → breadcrumb--YI7lcHA.js} +4 -4
  13. package/dist/_chunks/{button-group-CONver7M.js → button-group-Bh2g_Ng-.js} +2 -2
  14. package/dist/_chunks/{chat-container-ClzsWXp2.js → chat-container-izziXViv.js} +4 -4
  15. package/dist/_chunks/{chat-message-DoAhgUTj.js → chat-message-g3lxpXM_.js} +2 -2
  16. package/dist/_chunks/{checkbox-group-CarPLDIC.js → checkbox-group-Qkm3Rg1S.js} +6 -6
  17. package/dist/_chunks/{color-picker-CTIcHlDF.js → color-picker-BPfcByHH.js} +13 -13
  18. package/dist/_chunks/{combobox-BLWruOxK.js → combobox-DUpWoPPk.js} +6 -6
  19. package/dist/_chunks/{contact-card-DNyATxKv.js → contact-card-VJIUqKB2.js} +13 -13
  20. package/dist/_chunks/{date-picker-B1PO1ZQP.js → date-picker-BD5FYW08.js} +3 -3
  21. package/dist/_chunks/{date-range-picker-mix2nEVC.js → date-range-picker-BZLVgcXE.js} +27 -27
  22. package/dist/_chunks/{date-time-picker-Dnong_BY.js → date-time-picker-CCoRWX7R.js} +5 -5
  23. package/dist/_chunks/{description-list-BYA77Yud.js → description-list-y7Hk51KI.js} +16 -16
  24. package/dist/_chunks/{dialog-W8uDfXD8.js → dialog-DRp6Dejy.js} +2 -2
  25. package/dist/_chunks/{file-upload-C947ACDK.js → file-upload-BVbfiANR.js} +81 -81
  26. package/dist/_chunks/{floating-action-button-C8OYj8mE.js → floating-action-button-pojvb9gG.js} +6 -6
  27. package/dist/_chunks/{form-field-Bmkeh7WY.js → form-field-BOm9hK35.js} +2 -2
  28. package/dist/_chunks/{freemium-paywall-B9kIDtm1.js → freemium-paywall-BTEiVkes.js} +29 -29
  29. package/dist/_chunks/{key-value-pair-CgWvAIGb.js → key-value-pair-AbrRwesr.js} +14 -14
  30. package/dist/_chunks/{leo-sidebar-BWECDYpu.js → leo-sidebar-B054wsZm.js} +8 -8
  31. package/dist/_chunks/{link-BcYW1eNM.js → link-BGpwaFik.js} +2 -2
  32. package/dist/_chunks/{list-qP6p0NTw.js → list-DcjV0m5B.js} +2 -2
  33. package/dist/_chunks/{message-card-DjvsB_3U.js → message-card-c6R0-qXq.js} +6 -6
  34. package/dist/_chunks/{message-tray-BbnAzlLH.js → message-tray-Fsend-du.js} +21 -21
  35. package/dist/_chunks/{multi-select-wqqrgjUQ.js → multi-select-Bh-xR8kP.js} +10 -10
  36. package/dist/_chunks/{navigation-menu-ClbHeawy.js → navigation-menu-Bav1d_wA.js} +2 -2
  37. package/dist/_chunks/{notification-card-uTPEvAQS.js → notification-card-CRIE2Cuk.js} +3 -3
  38. package/dist/_chunks/{notification-tray-PGtMqXbP.js → notification-tray-CfXNYrxv.js} +21 -21
  39. package/dist/_chunks/{number-input-Q7wkHnvQ.js → number-input-mpSLk-ld.js} +3 -3
  40. package/dist/_chunks/{otp-input-C9gUByF0.js → otp-input-CI-Zv5q6.js} +2 -2
  41. package/dist/_chunks/{pagination-3AC4zTsi.js → pagination-OQBlnb1H.js} +7 -7
  42. package/dist/_chunks/{patient-shell-IhMULVrt.js → patient-shell-BS2V6V1b.js} +3 -3
  43. package/dist/_chunks/{payment-form-C3HMAsGG.js → payment-form-CI77oIx1.js} +3 -3
  44. package/dist/_chunks/{pdf-viewer-DO95bm2o.js → pdf-viewer-CNETPubN.js} +3 -3
  45. package/dist/_chunks/{phone-input-CSHJOJ13.js → phone-input-DtBVs5fz.js} +7 -7
  46. package/dist/_chunks/{popover-DekUKNBk.js → popover--derJ_wq.js} +2 -2
  47. package/dist/_chunks/{progress-C11tqhoI.js → progress-B-PSO5OS.js} +4 -4
  48. package/dist/_chunks/{recaptcha-widget-NyfOfLII.js → recaptcha-widget-Kp1XntuE.js} +3 -3
  49. package/dist/_chunks/{resizable-mpXXyIsN.js → resizable-COV-cnth.js} +3 -3
  50. package/dist/_chunks/{search-bar-BTDfgYtg.js → search-bar-DmZZ9UvV.js} +2 -2
  51. package/dist/_chunks/{search-input-CdJIEjFo.js → search-input-BBtSRH-Q.js} +4 -4
  52. package/dist/_chunks/{select-BOU_Osnf.js → select-i9MwQeQy.js} +20 -20
  53. package/dist/_chunks/{sheet-BAg7GY9j.js → sheet-BT0izeoI.js} +9 -9
  54. package/dist/_chunks/{sidebar-Bx3wCDyy.js → sidebar-CoLHtVrP.js} +83 -83
  55. package/dist/_chunks/{sign-in-with-alfadocs-button-B9UrqOqH.js → sign-in-with-alfadocs-button-4zZC-I6y.js} +3 -3
  56. package/dist/_chunks/{skip-link-DmZ3c6cb.js → skip-link-BaSMtPwB.js} +2 -2
  57. package/dist/_chunks/{slider-BT2bZWsy.js → slider-CkR6CLun.js} +3 -3
  58. package/dist/_chunks/{sparkline-_gy8aJDG.js → sparkline-D4Np8ikf.js} +15 -15
  59. package/dist/_chunks/{spinner-DLaYfLPl.js → spinner-DirtWZNG.js} +2 -2
  60. package/dist/_chunks/{stat-B9PHSPbN.js → stat-CDQ_a0vk.js} +4 -4
  61. package/dist/_chunks/{switch-C0psfIQF.js → switch-D916VW86.js} +2 -2
  62. package/dist/_chunks/{tabs-BZQy_Rmb.js → tabs-Cg794H0Q.js} +3 -3
  63. package/dist/_chunks/{tag-DuLMjRbF.js → tag-CQmHRM4Y.js} +3 -3
  64. package/dist/_chunks/{task-card-Dw_ZJDL8.js → task-card-BUVMh6HN.js} +2 -2
  65. package/dist/_chunks/{task-tray-XlIW9ueh.js → task-tray-B3A2fRGR.js} +13 -13
  66. package/dist/_chunks/{text-area-CO9Dz0qX.js → text-area-DHtcpcLv.js} +13 -13
  67. package/dist/_chunks/{text-input-DZwt9L8H.js → text-input-1oqFRbVI.js} +2 -2
  68. package/dist/_chunks/{theme-toggle-B3UR6ouK.js → theme-toggle-B3meAb3y.js} +14 -14
  69. package/dist/_chunks/{time-picker-DvPUmHH-.js → time-picker-DeVZkIY2.js} +2 -2
  70. package/dist/_chunks/{timeline-BvmnQadS.js → timeline-BaSULpSJ.js} +2 -2
  71. package/dist/_chunks/{toast.agent-DihA6MON.js → toast.agent-32WNQ-_x.js} +2 -2
  72. package/dist/_chunks/{transaction-chip-DE6DITun.js → transaction-chip-eVbolm0B.js} +2 -2
  73. package/dist/_chunks/{transcript-panel-Bx5ANMsv.js → transcript-panel-BpJqPr7I.js} +8 -8
  74. package/dist/_chunks/{typing-indicator-BZ5jXZPn.js → typing-indicator-DHeVN4ob.js} +9 -9
  75. package/dist/_chunks/{use-password-requirements-DgEYdN4H.js → use-password-requirements-B1M8lE2t.js} +29 -32
  76. package/dist/_chunks/{warning-stack-CdLIe534.js → warning-stack-CeRihME9.js} +15 -15
  77. package/dist/_chunks/{workflow-map-CESZNNZe.js → workflow-map-D3MvrsZV.js} +4 -4
  78. package/dist/agent-catalog.json +1 -1
  79. package/dist/components/agenda-card/index.js +1 -1
  80. package/dist/components/agenda-tray/index.js +1 -1
  81. package/dist/components/ai-prompt-input/index.js +1 -1
  82. package/dist/components/alert/index.js +1 -1
  83. package/dist/components/app-frame/index.js +1 -1
  84. package/dist/components/audio-recorder/index.js +1 -1
  85. package/dist/components/audio-visualiser/index.js +1 -1
  86. package/dist/components/autocomplete/index.js +1 -1
  87. package/dist/components/avatar/index.js +1 -1
  88. package/dist/components/badge/index.js +1 -1
  89. package/dist/components/breadcrumb/index.js +1 -1
  90. package/dist/components/button-group/index.js +1 -1
  91. package/dist/components/chat-container/index.js +1 -1
  92. package/dist/components/chat-message/index.js +1 -1
  93. package/dist/components/checkbox-group/index.js +1 -1
  94. package/dist/components/color-picker/index.js +1 -1
  95. package/dist/components/combobox/index.js +1 -1
  96. package/dist/components/contact-card/index.js +1 -1
  97. package/dist/components/data-table/index.js +1 -1
  98. package/dist/components/date-picker/index.js +1 -1
  99. package/dist/components/date-range-picker/index.js +1 -1
  100. package/dist/components/date-time-picker/index.js +1 -1
  101. package/dist/components/description-list/index.js +1 -1
  102. package/dist/components/dialog/index.js +1 -1
  103. package/dist/components/file-upload/index.js +1 -1
  104. package/dist/components/floating-action-button/index.js +1 -1
  105. package/dist/components/form-field/index.js +1 -1
  106. package/dist/components/freemium-paywall/freemium-paywall.d.ts +2 -2
  107. package/dist/components/freemium-paywall/index.js +1 -1
  108. package/dist/components/key-value-pair/index.js +1 -1
  109. package/dist/components/link/index.js +1 -1
  110. package/dist/components/list/index.js +1 -1
  111. package/dist/components/message-card/index.js +1 -1
  112. package/dist/components/message-tray/index.js +1 -1
  113. package/dist/components/multi-select/index.js +1 -1
  114. package/dist/components/navigation-menu/index.js +2 -2
  115. package/dist/components/notification-card/index.js +1 -1
  116. package/dist/components/notification-tray/index.js +1 -1
  117. package/dist/components/number-input/index.js +1 -1
  118. package/dist/components/otp-input/index.js +1 -1
  119. package/dist/components/pagination/index.js +1 -1
  120. package/dist/components/password-input/index.js +1 -1
  121. package/dist/components/payment-form/index.js +1 -1
  122. package/dist/components/pdf-viewer/index.js +1 -1
  123. package/dist/components/phone-input/index.js +1 -1
  124. package/dist/components/popover/index.js +1 -1
  125. package/dist/components/progress/index.js +1 -1
  126. package/dist/components/recaptcha-widget/index.js +1 -1
  127. package/dist/components/resizable/index.js +1 -1
  128. package/dist/components/search-bar/index.js +1 -1
  129. package/dist/components/search-input/index.js +1 -1
  130. package/dist/components/select/index.js +1 -1
  131. package/dist/components/sheet/index.js +1 -1
  132. package/dist/components/sidebar/index.js +1 -1
  133. package/dist/components/sidebar/sidebar.d.ts +1 -1
  134. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  135. package/dist/components/skip-link/index.js +1 -1
  136. package/dist/components/skip-link/skip-link.d.ts +1 -1
  137. package/dist/components/slider/index.js +1 -1
  138. package/dist/components/sparkline/index.js +1 -1
  139. package/dist/components/spinner/index.js +1 -1
  140. package/dist/components/stat/index.js +1 -1
  141. package/dist/components/switch/index.js +1 -1
  142. package/dist/components/tabs/index.js +1 -1
  143. package/dist/components/tag/index.js +1 -1
  144. package/dist/components/task-card/index.js +1 -1
  145. package/dist/components/task-tray/index.js +1 -1
  146. package/dist/components/text-area/index.js +1 -1
  147. package/dist/components/text-input/index.js +1 -1
  148. package/dist/components/theme-toggle/index.js +1 -1
  149. package/dist/components/time-picker/index.js +1 -1
  150. package/dist/components/timeline/index.js +1 -1
  151. package/dist/components/toast/index.js +1 -1
  152. package/dist/components/transaction-chip/index.js +1 -1
  153. package/dist/components/transcript-panel/index.js +1 -1
  154. package/dist/components/typing-indicator/index.js +1 -1
  155. package/dist/components/typing-indicator/typing-indicator.d.ts +1 -1
  156. package/dist/components/warning-stack/index.js +1 -1
  157. package/dist/components/workflow/index.js +1 -1
  158. package/dist/i18n/config.d.ts +2 -1
  159. package/dist/i18n/config.js +49 -31
  160. package/dist/i18n/registerUiBundle.d.ts +15 -0
  161. package/dist/index.js +77 -77
  162. package/dist/patterns/leo-assistant/index.js +1 -1
  163. package/dist/patterns/patient-shell/index.js +1 -1
  164. package/dist/tokens.css +1 -1
  165. package/package.json +2 -1
@@ -4,7 +4,7 @@ import * as E from "@radix-ui/react-popover";
4
4
  import { c as ae } from "./index-D2ZczOXr.js";
5
5
  import { useTranslation as Pe } from "react-i18next";
6
6
  import { u as Ae } from "./form-field-context-B3APVHKx.js";
7
- import { S as re } from "./slider-BT2bZWsy.js";
7
+ import { S as re } from "./slider-CkR6CLun.js";
8
8
  import { u as Me } from "./registry-C9nwlNyL.js";
9
9
  import { C as ne } from "./check-DPdL_Sm7.js";
10
10
  import { X as Se } from "./x-CCcI3eJp.js";
@@ -373,7 +373,7 @@ const Re = [
373
373
  {
374
374
  ref: Y,
375
375
  role: "grid",
376
- "aria-label": g("ui.inputs.colorPicker.paletteLabel", "Colour swatches"),
376
+ "aria-label": g("inputs.colorPicker.paletteLabel", "Colour swatches"),
377
377
  onKeyDown: ge,
378
378
  className: "ds:grid ds:grid-cols-6 ds:gap-[var(--spacing-xs)]",
379
379
  children: A.map((s, l) => {
@@ -387,7 +387,7 @@ const Re = [
387
387
  {
388
388
  role: "gridcell",
389
389
  "aria-selected": H,
390
- "aria-label": g("ui.inputs.colorPicker.swatchLabel", {
390
+ "aria-label": g("inputs.colorPicker.swatchLabel", {
391
391
  name: y.name,
392
392
  hex: y.hex
393
393
  }),
@@ -419,7 +419,7 @@ const Re = [
419
419
  {
420
420
  htmlFor: `${w}-hex`,
421
421
  className: "ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]",
422
- children: g("ui.inputs.colorPicker.hex", "Hex")
422
+ children: g("inputs.colorPicker.hex", "Hex")
423
423
  }
424
424
  ),
425
425
  /* @__PURE__ */ d("bdi", { dir: "ltr", children: /* @__PURE__ */ d(
@@ -439,7 +439,7 @@ const Re = [
439
439
  /* @__PURE__ */ d(
440
440
  O,
441
441
  {
442
- label: g("ui.inputs.colorPicker.hue", "Hue"),
442
+ label: g("inputs.colorPicker.hue", "Hue"),
443
443
  gradient: "linear-gradient(to right, hsl(0,100%,50%), hsl(60,100%,50%), hsl(120,100%,50%), hsl(180,100%,50%), hsl(240,100%,50%), hsl(300,100%,50%), hsl(360,100%,50%))",
444
444
  min: 0,
445
445
  max: 360,
@@ -452,7 +452,7 @@ const Re = [
452
452
  /* @__PURE__ */ d(
453
453
  O,
454
454
  {
455
- label: g("ui.inputs.colorPicker.saturation", "Saturation"),
455
+ label: g("inputs.colorPicker.saturation", "Saturation"),
456
456
  gradient: `linear-gradient(to right, hsl(${o.h},0%,${o.l}%), hsl(${o.h},100%,${o.l}%))`,
457
457
  min: 0,
458
458
  max: 100,
@@ -465,7 +465,7 @@ const Re = [
465
465
  /* @__PURE__ */ d(
466
466
  O,
467
467
  {
468
- label: g("ui.inputs.colorPicker.lightness", "Lightness"),
468
+ label: g("inputs.colorPicker.lightness", "Lightness"),
469
469
  gradient: `linear-gradient(to right, hsl(${o.h},${o.s}%,0%), hsl(${o.h},${o.s}%,50%), hsl(${o.h},${o.s}%,100%))`,
470
470
  min: 0,
471
471
  max: 100,
@@ -476,7 +476,7 @@ const Re = [
476
476
  }
477
477
  ),
478
478
  c ? /* @__PURE__ */ h("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
479
- /* @__PURE__ */ d("label", { className: "ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]", children: g("ui.inputs.colorPicker.opacity", "Opacity") }),
479
+ /* @__PURE__ */ d("label", { className: "ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]", children: g("inputs.colorPicker.opacity", "Opacity") }),
480
480
  /* @__PURE__ */ h("div", { className: "ds:relative", children: [
481
481
  /* @__PURE__ */ d(
482
482
  "div",
@@ -503,7 +503,7 @@ const Re = [
503
503
  step: 1,
504
504
  value: [Math.round(o.a * 100)],
505
505
  onValueChange: ([s]) => v({ ...o, a: s / 100 }),
506
- "aria-label": g("ui.inputs.colorPicker.opacity", "Opacity"),
506
+ "aria-label": g("inputs.colorPicker.opacity", "Opacity"),
507
507
  formatValue: (s) => `${s}%`,
508
508
  disabled: x,
509
509
  className: ie
@@ -519,7 +519,7 @@ const Re = [
519
519
  role: "status",
520
520
  "aria-live": "polite",
521
521
  children: [
522
- /* @__PURE__ */ d("span", { className: "ds:tabular-nums", children: g("ui.inputs.colorPicker.contrastRatio", {
522
+ /* @__PURE__ */ d("span", { className: "ds:tabular-nums", children: g("inputs.colorPicker.contrastRatio", {
523
523
  ratio: L.ratio.toFixed(1)
524
524
  }) }),
525
525
  /* @__PURE__ */ d(se, { level: "AA", passes: L.aa, t: g }),
@@ -565,7 +565,7 @@ const Re = [
565
565
  id: w,
566
566
  "aria-describedby": N.describedBy || void 0,
567
567
  "aria-invalid": N.invalid || void 0,
568
- "aria-label": P ? g("ui.inputs.colorPicker.triggerLabel", "Choose a colour") : void 0,
568
+ "aria-label": P ? g("inputs.colorPicker.triggerLabel", "Choose a colour") : void 0,
569
569
  className: Fe({ size: k, className: j }),
570
570
  "data-component": "color-picker",
571
571
  "data-component-id": w,
@@ -623,7 +623,7 @@ function se({
623
623
  className: "ds:size-4 ds:text-[var(--destructive)]"
624
624
  }
625
625
  ),
626
- /* @__PURE__ */ d("span", { className: "ds:sr-only", children: t ? r("ui.inputs.colorPicker.contrastPass", "Pass") : r("ui.inputs.colorPicker.contrastFail", "Fail") })
626
+ /* @__PURE__ */ d("span", { className: "ds:sr-only", children: t ? r("inputs.colorPicker.contrastPass", "Pass") : r("inputs.colorPicker.contrastFail", "Fail") })
627
627
  ] });
628
628
  }
629
629
  function O({
@@ -669,4 +669,4 @@ export {
669
669
  Ze as B,
670
670
  De as C
671
671
  };
672
- //# sourceMappingURL=color-picker-CTIcHlDF.js.map
672
+ //# sourceMappingURL=color-picker-BPfcByHH.js.map
@@ -226,7 +226,7 @@ const ie = $e(
226
226
  }), E(() => {
227
227
  d || i(S);
228
228
  }, [S, d]);
229
- const ye = T ?? (N ? h.id : void 0), q = (N ? h.disabled : !1) || !!de, g = !!le, xe = (N ? h.required : !1) || !!ce, ee = N ? h.invalid : !1, Ce = ee ? "error" : me, Ne = N && h.describedBy ? h.describedBy : void 0, te = X ?? C("ui.inputs.combobox.placeholder", "Search…"), ze = M(
229
+ const ye = T ?? (N ? h.id : void 0), q = (N ? h.disabled : !1) || !!de, g = !!le, xe = (N ? h.required : !1) || !!ce, ee = N ? h.invalid : !1, Ce = ee ? "error" : me, Ne = N && h.describedBy ? h.describedBy : void 0, te = X ?? C("inputs.combobox.placeholder", "Search…"), ze = M(
230
230
  () => (e, t, n) => {
231
231
  if (w.current) return 1;
232
232
  const b = L(e), a = L(t), H = n == null ? void 0 : n.map(L);
@@ -351,7 +351,7 @@ const ie = $e(
351
351
  "button",
352
352
  {
353
353
  type: "button",
354
- "aria-label": C("ui.inputs.combobox.clear", "Clear selection"),
354
+ "aria-label": C("inputs.combobox.clear", "Clear selection"),
355
355
  onClick: De,
356
356
  onPointerDown: (e) => e.stopPropagation(),
357
357
  className: [
@@ -373,7 +373,7 @@ const ie = $e(
373
373
  {
374
374
  forceMount: !0,
375
375
  hidden: !d,
376
- "aria-label": J ?? C("ui.inputs.combobox.popupLabel", "Options"),
376
+ "aria-label": J ?? C("inputs.combobox.popupLabel", "Options"),
377
377
  onOpenAutoFocus: (e) => e.preventDefault(),
378
378
  onCloseAutoFocus: (e) => e.preventDefault(),
379
379
  onInteractOutside: (e) => {
@@ -385,7 +385,7 @@ const ie = $e(
385
385
  align: "start",
386
386
  className: tt(),
387
387
  children: /* @__PURE__ */ I(u.List, { className: ot, children: [
388
- /* @__PURE__ */ o(u.Empty, { className: nt, children: pe ?? C("ui.inputs.combobox.empty", "No results found") }),
388
+ /* @__PURE__ */ o(u.Empty, { className: nt, children: pe ?? C("inputs.combobox.empty", "No results found") }),
389
389
  Te.map(({ group: e, items: t }, n) => {
390
390
  const b = t.map((a) => {
391
391
  const H = a.value === f;
@@ -427,7 +427,7 @@ const ie = $e(
427
427
  {
428
428
  search: p,
429
429
  label: C(
430
- "ui.inputs.combobox.create",
430
+ "inputs.combobox.create",
431
431
  'Create "{{value}}"',
432
432
  {
433
433
  value: p
@@ -456,4 +456,4 @@ export {
456
456
  ae as d,
457
457
  et as e
458
458
  };
459
- //# sourceMappingURL=combobox-BLWruOxK.js.map
459
+ //# sourceMappingURL=combobox-DUpWoPPk.js.map
@@ -1,8 +1,8 @@
1
1
  import { jsxs as t, jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as i, Fragment as b } from "react";
2
+ import { forwardRef as r, Fragment as b } from "react";
3
3
  import { useTranslation as k } from "react-i18next";
4
4
  import { C as o } from "./card-CWzuTLYE.js";
5
- import { L as p } from "./link-BcYW1eNM.js";
5
+ import { L as p } from "./link-BGpwaFik.js";
6
6
  import { c as L } from "./createLucideIcon-CrFbzy84.js";
7
7
  /**
8
8
  * @license lucide-react v1.8.0 - ISC
@@ -23,11 +23,11 @@ const v = [
23
23
  function O(s) {
24
24
  return `tel:${s.replace(/\(0\)/g, "").replace(/[^\d+]/g, "")}`;
25
25
  }
26
- const f = i(
27
- ({ title: s, variant: e = "default", className: d, children: n, ...c }, r) => /* @__PURE__ */ t(
26
+ const f = r(
27
+ ({ title: s, variant: e = "default", className: d, children: n, ...c }, i) => /* @__PURE__ */ t(
28
28
  o,
29
29
  {
30
- ref: r,
30
+ ref: i,
31
31
  variant: e,
32
32
  "data-component": "contact-card",
33
33
  className: d,
@@ -52,8 +52,8 @@ const f = i(
52
52
  )
53
53
  );
54
54
  f.displayName = "ContactCard";
55
- const u = i(
56
- ({ name: s, lines: e, vatNumber: d, phone: n, nameAs: c = "p", className: r, ...C }, h) => {
55
+ const u = r(
56
+ ({ name: s, lines: e, vatNumber: d, phone: n, nameAs: c = "p", className: i, ...C }, h) => {
57
57
  const { t: l } = k(), N = c;
58
58
  return /* @__PURE__ */ t(
59
59
  "address",
@@ -65,7 +65,7 @@ const u = i(
65
65
  // the kit's type ramp already encodes intent — italic would
66
66
  // double up with a heading-bold name and read as emphasis.
67
67
  "ds:not-italic ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]",
68
- r
68
+ i
69
69
  ].filter(Boolean).join(" "),
70
70
  ...C,
71
71
  children: [
@@ -84,11 +84,11 @@ const u = i(
84
84
  m < e.length - 1 ? /* @__PURE__ */ a("br", {}) : null
85
85
  ] }, m)) }),
86
86
  d ? /* @__PURE__ */ t("div", { className: "type-body-sm ds:text-muted-foreground", children: [
87
- /* @__PURE__ */ a("span", { className: "ds:me-[var(--spacing-2xs)]", children: l("ui.contactCard.vatNumberLabel") }),
87
+ /* @__PURE__ */ a("span", { className: "ds:me-[var(--spacing-2xs)]", children: l("contactCard.vatNumberLabel") }),
88
88
  /* @__PURE__ */ a("span", { className: "ds:[unicode-bidi:isolate]", children: d })
89
89
  ] }) : null,
90
90
  n ? /* @__PURE__ */ t("div", { className: "type-body-sm ds:text-muted-foreground ds:inline-flex ds:items-baseline ds:gap-[var(--spacing-2xs)] ds:flex-wrap", children: [
91
- /* @__PURE__ */ a("span", { children: l("ui.contactCard.phoneLabel") }),
91
+ /* @__PURE__ */ a("span", { children: l("contactCard.phoneLabel") }),
92
92
  /* @__PURE__ */ a(p, { href: O(n), intent: "default", children: /* @__PURE__ */ a("span", { className: "ds:[unicode-bidi:isolate]", children: n }) })
93
93
  ] }) : null
94
94
  ]
@@ -97,7 +97,7 @@ const u = i(
97
97
  }
98
98
  );
99
99
  u.displayName = "ContactCard.Office";
100
- const x = i(
100
+ const x = r(
101
101
  ({ className: s, children: e, ...d }, n) => /* @__PURE__ */ a(
102
102
  "ul",
103
103
  {
@@ -114,7 +114,7 @@ const x = i(
114
114
  )
115
115
  );
116
116
  x.displayName = "ContactCard.Links";
117
- const g = i(
117
+ const g = r(
118
118
  ({ href: s, icon: e, external: d, children: n }, c) => /* @__PURE__ */ a("li", { ref: c, className: "ds:m-0", children: /* @__PURE__ */ a(
119
119
  p,
120
120
  {
@@ -134,4 +134,4 @@ const M = Object.assign(f, {
134
134
  export {
135
135
  M as C
136
136
  };
137
- //# sourceMappingURL=contact-card-DNyATxKv.js.map
137
+ //# sourceMappingURL=contact-card-VJIUqKB2.js.map
@@ -1685,7 +1685,7 @@ const tr = {
1685
1685
  className: C,
1686
1686
  id: I
1687
1687
  }, R) => {
1688
- const { t: g, i18n: F } = He(), O = qe(), Q = I ?? O.id, B = O.disabled || M, V = O.invalid ? "error" : "default", Y = Le(F.language), E = Ne(F.language), X = q ?? g("ui.inputs.datePicker.placeholder", "Select date"), W = n !== void 0, [c, d] = G(
1688
+ const { t: g, i18n: F } = He(), O = qe(), Q = I ?? O.id, B = O.disabled || M, V = O.invalid ? "error" : "default", Y = Le(F.language), E = Ne(F.language), X = q ?? g("inputs.datePicker.placeholder", "Select date"), W = n !== void 0, [c, d] = G(
1689
1689
  n ?? s
1690
1690
  ), p = W ? n : c, [T, m] = G(!1), [K, A] = G(
1691
1691
  p ? ce(p, E, { locale: Y }) : ""
@@ -1724,7 +1724,7 @@ const tr = {
1724
1724
  var N;
1725
1725
  const k = l.date();
1726
1726
  L(k), $(k), m(!1), (N = U.current) == null || N.focus();
1727
- }, Pe = g("ui.inputs.datePicker.gridLabel", "Calendar"), ve = Ye(
1727
+ }, Pe = g("inputs.datePicker.gridLabel", "Calendar"), ve = Ye(
1728
1728
  () => ({
1729
1729
  getValue: () => p,
1730
1730
  setValue: (l) => L(l),
@@ -1819,4 +1819,4 @@ export {
1819
1819
  rr as D,
1820
1820
  tr as d
1821
1821
  };
1822
- //# sourceMappingURL=date-picker-B1PO1ZQP.js.map
1822
+ //# sourceMappingURL=date-picker-BD5FYW08.js.map
@@ -1,13 +1,13 @@
1
- import { jsx as r, jsxs as g } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as u } from "react/jsx-runtime";
2
2
  import { forwardRef as Q, useState as v, useRef as U, useCallback as X, useMemo as Z, useImperativeHandle as z } from "react";
3
3
  import { useTranslation as ee } from "react-i18next";
4
4
  import * as m from "@radix-ui/react-popover";
5
5
  import { u as te } from "./form-field-context-B3APVHKx.js";
6
- import { a as ae, g as ne, b as re, e as I, c as se, C as oe, d as ie, t as de, p as ce, D as le, f as pe, h as ue } from "./react-day-picker-C04L_28V.js";
7
- import { c as fe, b as N, s as ge, f as R, d as me } from "./isSameMonth-5wNF2f4I.js";
6
+ import { a as ae, g as ne, b as re, e as I, c as se, C as oe, d as ie, t as de, p as ce, D as le, f as pe, h as fe } from "./react-day-picker-C04L_28V.js";
7
+ import { c as ge, b as N, s as ue, f as R, d as me } from "./isSameMonth-5wNF2f4I.js";
8
8
  import { u as ye } from "./registry-C9nwlNyL.js";
9
9
  function D(t, s, n) {
10
- return fe(t, -s, n);
10
+ return ge(t, -s, n);
11
11
  }
12
12
  function he(t, s, n) {
13
13
  return ae(t, -1, n);
@@ -98,44 +98,44 @@ const ke = {
98
98
  className: L,
99
99
  id: F
100
100
  }, j) => {
101
- const { t: o, i18n: A } = ee(), c = te(), h = F ?? c.id, w = c.disabled || V, B = c.invalid ? "error" : "default", i = ne(A.language), H = K ?? o("ui.inputs.dateRangePicker.placeholder", "Select date range"), k = t !== void 0, [_, $] = v(
101
+ const { t: o, i18n: A } = ee(), c = te(), h = F ?? c.id, w = c.disabled || V, B = c.invalid ? "error" : "default", i = ne(A.language), H = K ?? o("inputs.dateRangePicker.placeholder", "Select date range"), k = t !== void 0, [_, $] = v(
102
102
  t ?? s ?? {}
103
- ), a = k ? t : _, [p, u] = v(!1), [Y, M] = v(a.from ?? /* @__PURE__ */ new Date()), q = U(null), d = X(
103
+ ), a = k ? t : _, [p, f] = v(!1), [Y, M] = v(a.from ?? /* @__PURE__ */ new Date()), q = U(null), d = X(
104
104
  (e) => {
105
105
  k || $(e), n == null || n(e);
106
106
  },
107
107
  [k, n]
108
108
  ), E = re(l, T), O = [
109
109
  {
110
- label: o("ui.inputs.dateRangePicker.presets.today", "Today"),
110
+ label: o("inputs.dateRangePicker.presets.today", "Today"),
111
111
  range: () => {
112
112
  const e = /* @__PURE__ */ new Date();
113
113
  return { from: e, to: e };
114
114
  }
115
115
  },
116
116
  {
117
- label: o("ui.inputs.dateRangePicker.presets.yesterday", "Yesterday"),
117
+ label: o("inputs.dateRangePicker.presets.yesterday", "Yesterday"),
118
118
  range: () => {
119
119
  const e = D(/* @__PURE__ */ new Date(), 1);
120
120
  return { from: e, to: e };
121
121
  }
122
122
  },
123
123
  {
124
- label: o("ui.inputs.dateRangePicker.presets.last7", "Last 7 days"),
124
+ label: o("inputs.dateRangePicker.presets.last7", "Last 7 days"),
125
125
  range: () => ({
126
126
  from: D(/* @__PURE__ */ new Date(), 6),
127
127
  to: /* @__PURE__ */ new Date()
128
128
  })
129
129
  },
130
130
  {
131
- label: o("ui.inputs.dateRangePicker.presets.thisWeek", "This week"),
131
+ label: o("inputs.dateRangePicker.presets.thisWeek", "This week"),
132
132
  range: () => ({
133
133
  from: N(/* @__PURE__ */ new Date(), { locale: i }),
134
134
  to: I(/* @__PURE__ */ new Date(), { locale: i })
135
135
  })
136
136
  },
137
137
  {
138
- label: o("ui.inputs.dateRangePicker.presets.lastWeek", "Last week"),
138
+ label: o("inputs.dateRangePicker.presets.lastWeek", "Last week"),
139
139
  range: () => {
140
140
  const e = he(/* @__PURE__ */ new Date());
141
141
  return {
@@ -145,14 +145,14 @@ const ke = {
145
145
  }
146
146
  },
147
147
  {
148
- label: o("ui.inputs.dateRangePicker.presets.thisMonth", "This month"),
148
+ label: o("inputs.dateRangePicker.presets.thisMonth", "This month"),
149
149
  range: () => ({
150
- from: ge(/* @__PURE__ */ new Date()),
150
+ from: ue(/* @__PURE__ */ new Date()),
151
151
  to: se(/* @__PURE__ */ new Date())
152
152
  })
153
153
  },
154
154
  {
155
- label: o("ui.inputs.dateRangePicker.presets.last30", "Last 30 days"),
155
+ label: o("inputs.dateRangePicker.presets.last30", "Last 30 days"),
156
156
  range: () => ({
157
157
  from: D(/* @__PURE__ */ new Date(), 29),
158
158
  to: /* @__PURE__ */ new Date()
@@ -161,18 +161,18 @@ const ke = {
161
161
  ], x = y ? W ? [...O, ...y] : y : O, G = (e) => {
162
162
  d(e ? { from: e.from, to: e.to } : {});
163
163
  }, J = (e) => {
164
- const f = e.range();
165
- d(f), M(f.from), u(!1);
164
+ const g = e.range();
165
+ d(g), M(g.from), f(!1);
166
166
  }, S = (() => {
167
167
  if (a.from && a.to) {
168
- const e = R(a.from, "MMM d, yyyy", { locale: i }), f = R(a.to, "MMM d, yyyy", { locale: i });
169
- return `${e} – ${f}`;
168
+ const e = R(a.from, "MMM d, yyyy", { locale: i }), g = R(a.to, "MMM d, yyyy", { locale: i });
169
+ return `${e} – ${g}`;
170
170
  }
171
171
  return a.from ? R(a.from, "MMM d, yyyy", { locale: i }) : "";
172
172
  })(), C = (() => {
173
173
  if (a.from && a.to) {
174
174
  const e = me(a.to, a.from) + 1;
175
- return o("ui.inputs.dateRangePicker.days", "{{count}} days", {
175
+ return o("inputs.dateRangePicker.days", "{{count}} days", {
176
176
  count: e
177
177
  });
178
178
  }
@@ -183,19 +183,19 @@ const ke = {
183
183
  setRange: (e) => d(e),
184
184
  clear: () => d({}),
185
185
  isOpen: () => p,
186
- open: () => u(!0),
187
- close: () => u(!1)
186
+ open: () => f(!0),
187
+ close: () => f(!1)
188
188
  }),
189
189
  [a, d, p]
190
190
  );
191
- return z(j, () => b, [b]), ye(ke, b, h), /* @__PURE__ */ r(m.Root, { open: p, onOpenChange: u, children: /* @__PURE__ */ g(
191
+ return z(j, () => b, [b]), ye(ke, b, h), /* @__PURE__ */ r(m.Root, { open: p, onOpenChange: f, children: /* @__PURE__ */ u(
192
192
  "div",
193
193
  {
194
194
  className: L,
195
195
  "data-component": "date-range-picker",
196
196
  "data-component-id": h,
197
197
  children: [
198
- /* @__PURE__ */ r(m.Trigger, { asChild: !0, disabled: w, children: /* @__PURE__ */ g(
198
+ /* @__PURE__ */ r(m.Trigger, { asChild: !0, disabled: w, children: /* @__PURE__ */ u(
199
199
  "button",
200
200
  {
201
201
  ref: q,
@@ -231,8 +231,8 @@ const ke = {
231
231
  {
232
232
  sideOffset: 4,
233
233
  align: "start",
234
- className: ue(),
235
- children: /* @__PURE__ */ g("div", { className: "ds:flex ds:gap-[var(--spacing-md)]", children: [
234
+ className: fe(),
235
+ children: /* @__PURE__ */ u("div", { className: "ds:flex ds:gap-[var(--spacing-md)]", children: [
236
236
  x.length > 0 ? /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:min-w-[8rem] ds:border-e ds:border-border ds:pe-[var(--spacing-md)]", children: x.map((e) => /* @__PURE__ */ r(
237
237
  "button",
238
238
  {
@@ -243,7 +243,7 @@ const ke = {
243
243
  },
244
244
  e.label
245
245
  )) }) : null,
246
- /* @__PURE__ */ g("div", { children: [
246
+ /* @__PURE__ */ u("div", { children: [
247
247
  /* @__PURE__ */ r(
248
248
  le,
249
249
  {
@@ -284,4 +284,4 @@ export {
284
284
  be as D,
285
285
  ke as d
286
286
  };
287
- //# sourceMappingURL=date-range-picker-mix2nEVC.js.map
287
+ //# sourceMappingURL=date-range-picker-BZLVgcXE.js.map
@@ -4,7 +4,7 @@ import { c as ue } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as me } from "react-i18next";
5
5
  import * as k from "@radix-ui/react-popover";
6
6
  import { u as pe } from "./form-field-context-B3APVHKx.js";
7
- import { T as fe } from "./time-picker-DvPUmHH-.js";
7
+ import { T as fe } from "./time-picker-DeVZkIY2.js";
8
8
  import { g as ge, b as he, i as ve, j as be, C as ye, d as Te, t as ke, D as we, f as De, h as Pe } from "./react-day-picker-C04L_28V.js";
9
9
  import { f as xe } from "./isSameMonth-5wNF2f4I.js";
10
10
  import { u as Ce } from "./registry-C9nwlNyL.js";
@@ -142,8 +142,8 @@ const Ve = ue(
142
142
  className: E,
143
143
  id: U
144
144
  }, W) => {
145
- const { t: c, i18n: N } = me(), l = pe(), D = U ?? l.id, V = l.disabled || _, q = l.invalid ? "error" : "default", I = ge(N.language), G = z ?? c("ui.inputs.dateTimePicker.placeholder", "Select date and time"), J = c("ui.inputs.dateTimePicker.apply", "Apply"), Q = c(
146
- "ui.inputs.dateTimePicker.outOfRange",
145
+ const { t: c, i18n: N } = me(), l = pe(), D = U ?? l.id, V = l.disabled || _, q = l.invalid ? "error" : "default", I = ge(N.language), G = z ?? c("inputs.dateTimePicker.placeholder", "Select date and time"), J = c("inputs.dateTimePicker.apply", "Apply"), Q = c(
146
+ "inputs.dateTimePicker.outOfRange",
147
147
  "Date/time is out of allowed range"
148
148
  ), S = (w !== void 0 ? w : Ne(i)) ? Me(N.language, i) : "", P = e !== void 0, [X, Y] = p(
149
149
  e ?? s
@@ -176,7 +176,7 @@ const Ve = ue(
176
176
  }
177
177
  y(o), b(!1), (t = R.current) == null || t.focus();
178
178
  }
179
- }, H = n ? xe(n, "MMM d, yyyy HH:mm", { locale: I }) : "", ie = c("ui.inputs.datePicker.gridLabel", "Calendar"), ne = c("ui.inputs.timePicker.groupLabel", "Time"), O = ce(
179
+ }, H = n ? xe(n, "MMM d, yyyy HH:mm", { locale: I }) : "", ie = c("inputs.datePicker.gridLabel", "Calendar"), ne = c("inputs.timePicker.groupLabel", "Time"), O = ce(
180
180
  () => ({
181
181
  getValue: () => n,
182
182
  setValue: (t) => y(t),
@@ -305,4 +305,4 @@ export {
305
305
  Ie as D,
306
306
  Oe as d
307
307
  };
308
- //# sourceMappingURL=date-time-picker-Dnong_BY.js.map
308
+ //# sourceMappingURL=date-time-picker-CCoRWX7R.js.map
@@ -1,4 +1,4 @@
1
- import { jsx as i, jsxs as C } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as C } from "react/jsx-runtime";
2
2
  import { forwardRef as n, useContext as V, useState as u, useCallback as k, createContext as R } from "react";
3
3
  import { c as d } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as _ } from "react-i18next";
@@ -80,10 +80,10 @@ const f = R({
80
80
  layout: e = "inline",
81
81
  density: s = "default",
82
82
  divider: a = "none",
83
- className: t,
83
+ className: i,
84
84
  children: l,
85
85
  ...c
86
- }, m) => /* @__PURE__ */ i(f.Provider, { value: { layout: e, density: s, divider: a }, children: /* @__PURE__ */ i(
86
+ }, m) => /* @__PURE__ */ t(f.Provider, { value: { layout: e, density: s, divider: a }, children: /* @__PURE__ */ t(
87
87
  "dl",
88
88
  {
89
89
  ref: m,
@@ -91,7 +91,7 @@ const f = R({
91
91
  layout: e,
92
92
  density: s,
93
93
  divider: a,
94
- className: t
94
+ className: i
95
95
  }),
96
96
  "data-component": "description-list",
97
97
  ...c,
@@ -101,17 +101,17 @@ const f = R({
101
101
  );
102
102
  v.displayName = "DescriptionList";
103
103
  const y = n(
104
- ({ copyable: e = !1, copyText: s, copyLabel: a, className: t, children: l, ...c }, m) => {
104
+ ({ copyable: e = !1, copyText: s, copyLabel: a, className: i, children: l, ...c }, m) => {
105
105
  const { layout: g, divider: w } = V(f), { t: r } = _(), [D, p] = u(!1), [L, o] = u(""), N = k(async () => {
106
106
  if (s)
107
107
  try {
108
- await navigator.clipboard.writeText(s), p(!0), o(r("ui.keyValuePair.copied")), setTimeout(() => {
108
+ await navigator.clipboard.writeText(s), p(!0), o(r("keyValuePair.copied")), setTimeout(() => {
109
109
  p(!1), o("");
110
110
  }, 2e3);
111
111
  } catch {
112
- o(r("ui.keyValuePair.notAvailable")), setTimeout(() => o(""), 3e3);
112
+ o(r("keyValuePair.notAvailable")), setTimeout(() => o(""), 3e3);
113
113
  }
114
- }, [s, r]), h = r("ui.keyValuePair.copy", {
114
+ }, [s, r]), h = r("keyValuePair.copy", {
115
115
  label: a ?? s ?? ""
116
116
  });
117
117
  return /* @__PURE__ */ C(
@@ -122,15 +122,15 @@ const y = n(
122
122
  layout: g,
123
123
  divider: w,
124
124
  copyable: e,
125
- className: t
125
+ className: i
126
126
  }),
127
127
  ...c,
128
128
  children: [
129
129
  l,
130
- e && /* @__PURE__ */ i(
130
+ e && /* @__PURE__ */ t(
131
131
  T,
132
132
  {
133
- icon: D ? /* @__PURE__ */ i(P, {}) : /* @__PURE__ */ i(j, {}),
133
+ icon: D ? /* @__PURE__ */ t(P, {}) : /* @__PURE__ */ t(j, {}),
134
134
  size: "sm",
135
135
  "aria-label": h,
136
136
  onClick: N,
@@ -138,7 +138,7 @@ const y = n(
138
138
  className: "ds:self-start"
139
139
  }
140
140
  ),
141
- e && /* @__PURE__ */ i("span", { role: "status", className: "ds:sr-only", children: L })
141
+ e && /* @__PURE__ */ t("span", { role: "status", className: "ds:sr-only", children: L })
142
142
  ]
143
143
  }
144
144
  );
@@ -161,7 +161,7 @@ const z = d(
161
161
  }
162
162
  }
163
163
  ), x = n(
164
- ({ className: e, ...s }, a) => /* @__PURE__ */ i(
164
+ ({ className: e, ...s }, a) => /* @__PURE__ */ t(
165
165
  "dt",
166
166
  {
167
167
  ref: a,
@@ -171,10 +171,10 @@ const z = d(
171
171
  )
172
172
  );
173
173
  x.displayName = "DescriptionList.Term";
174
- const b = n(({ numeric: e = !1, className: s, ...a }, t) => /* @__PURE__ */ i(
174
+ const b = n(({ numeric: e = !1, className: s, ...a }, i) => /* @__PURE__ */ t(
175
175
  "dd",
176
176
  {
177
- ref: t,
177
+ ref: i,
178
178
  className: B({ numeric: e, className: s }),
179
179
  ...a
180
180
  }
@@ -188,4 +188,4 @@ const J = Object.assign(v, {
188
188
  export {
189
189
  J as D
190
190
  };
191
- //# sourceMappingURL=description-list-BYA77Yud.js.map
191
+ //# sourceMappingURL=description-list-y7Hk51KI.js.map
@@ -142,7 +142,7 @@ const N = d(
142
142
  icon: /* @__PURE__ */ s(V, {}),
143
143
  intent: "ghost",
144
144
  size: "sm",
145
- "aria-label": m("ui.common.close", "Close")
145
+ "aria-label": m("common.close", "Close")
146
146
  }
147
147
  ) }) })
148
148
  ]
@@ -214,4 +214,4 @@ export {
214
214
  U as D,
215
215
  $ as d
216
216
  };
217
- //# sourceMappingURL=dialog-W8uDfXD8.js.map
217
+ //# sourceMappingURL=dialog-DRp6Dejy.js.map