@alfadocs/ui-kit 1.12.6 → 1.14.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 (182) hide show
  1. package/dist/_chunks/actions-cell-renderer-yy03OgRL.js +137 -0
  2. package/dist/_chunks/{address-fields-CZP4Wncx.js → address-fields-CZ0pEdEI.js} +4 -4
  3. package/dist/_chunks/{ai-prompt-input-DnbfEJnr.js → ai-prompt-input-CrHr-5H8.js} +2 -2
  4. package/dist/_chunks/{anamnesis-summary-rows-BfhxWPO3.js → anamnesis-summary-rows-CRWO8x8g.js} +4 -4
  5. package/dist/_chunks/{audio-recorder-EWBCNIsd.js → audio-recorder-DXG6LTtO.js} +2 -2
  6. package/dist/_chunks/{autocomplete-BrONKN8l.js → autocomplete-MpBhz-fG.js} +86 -74
  7. package/dist/_chunks/{balance-badge-cell-7L6nzB29.js → balance-badge-cell-CgkxYO96.js} +9 -8
  8. package/dist/_chunks/{bishop-score-Cnu0xs-z.js → bishop-score-CJUVBfAu.js} +2 -2
  9. package/dist/_chunks/{booking-CBHKdsZl.js → booking-DQbo6mQF.js} +609 -591
  10. package/dist/_chunks/{calendar-B4Gnyu1C.js → calendar-CHT9Rm3M.js} +2 -2
  11. package/dist/_chunks/{calendar-event-card-Bjdbik8G.js → calendar-event-card-BjdHZaqz.js} +18 -14
  12. package/dist/_chunks/calendar-plus-BFrIRE4r.js +19 -0
  13. package/dist/_chunks/calendar-workspace-DI49_t6t.js +7429 -0
  14. package/dist/_chunks/{care-plan-card-aDN4oem9.js → care-plan-card-D-FMfDKH.js} +2 -2
  15. package/dist/_chunks/{care-plan-entry-card-BEhANdBE.js → care-plan-entry-card-Bvw_9T-d.js} +2 -2
  16. package/dist/_chunks/{care-plan-header-CkpPyQqG.js → care-plan-header-B5CBE0zu.js} +2 -2
  17. package/dist/_chunks/{city-input-towzBenY.js → city-input-DaQc-Hbj.js} +2 -2
  18. package/dist/_chunks/clipboard-list-rSzfIYZB.js +25 -0
  19. package/dist/_chunks/{color-picker-oZ6zYks8.js → color-picker-CU303VjY.js} +4 -2
  20. package/dist/_chunks/{combobox-DiMLItyu.js → combobox-D7_NLE2Z.js} +89 -81
  21. package/dist/_chunks/{contact-profile-card-BMIBr5s9.js → contact-profile-card-BZqi8Hck.js} +38 -36
  22. package/dist/_chunks/{country-select-UEF9BEeQ.js → country-select-DzbPFktV.js} +2 -2
  23. package/dist/_chunks/data-table-DC5rO3Ty.js +1817 -0
  24. package/dist/_chunks/{document-preview-oyx9RhCo.js → document-preview-CDb-n_W7.js} +2 -2
  25. package/dist/_chunks/{face-scheme-CZaKm6fG.js → face-scheme-DA2vjqaM.js} +2 -2
  26. package/dist/_chunks/{field-value-DG8zaZvo.js → field-value-D-vkX9uL.js} +120 -140
  27. package/dist/_chunks/{file-manager-C0y7HBAN.js → file-manager-DJMeB3V8.js} +138 -153
  28. package/dist/_chunks/folder-plus-CutOs4DP.js +22 -0
  29. package/dist/_chunks/{gestational-age-calculator-CxZelpu2.js → gestational-age-calculator-CiOQjzgx.js} +2 -2
  30. package/dist/_chunks/hourglass-BEAzW1wE.js +26 -0
  31. package/dist/_chunks/key-value-pair-BIBdZBLg.js +188 -0
  32. package/dist/_chunks/{link-cell-renderer-CenJx-_7.js → link-cell-renderer-CIASXsVM.js} +4 -4
  33. package/dist/_chunks/{multi-select-DqL4o0qV.js → multi-select-DYOvx2SJ.js} +56 -48
  34. package/dist/_chunks/{muscle-scheme-yfzP_xoJ.js → muscle-scheme-BSJsI4-I.js} +2 -2
  35. package/dist/_chunks/{notes-panel-CymneXtl.js → notes-panel-DYAtlq_i.js} +2 -2
  36. package/dist/_chunks/{optical-prescription-Dj3Eh5Ok.js → optical-prescription-BvwuqTpl.js} +2 -2
  37. package/dist/_chunks/{patient-details-xrqe13az.js → patient-details-BfzvFnxQ.js} +75 -94
  38. package/dist/_chunks/{patient-search-D5ufYoRc.js → patient-search-HeEUB-_X.js} +2 -2
  39. package/dist/_chunks/{patient-summary-card-CBfuDvJ5.js → patient-summary-card-D5Vfa321.js} +3 -3
  40. package/dist/_chunks/{payment-request-card-YVCcCZ25.js → payment-request-card-lmKLwsDs.js} +2 -2
  41. package/dist/_chunks/{periodontal-chart-BatZEFar.js → periodontal-chart-B9fphroR.js} +2 -2
  42. package/dist/_chunks/{periodontal-chart-card-BBpY_rBc.js → periodontal-chart-card-qEZPXj83.js} +2 -2
  43. package/dist/_chunks/{practice-results-D7ygCj_W.js → practice-results-DL_ExLYE.js} +159 -172
  44. package/dist/_chunks/{pregnancy-dating-DtToyMyc.js → pregnancy-dating-D2wchD11.js} +2 -2
  45. package/dist/_chunks/{province-select-BDywtmL-.js → province-select-BBc7s7vR.js} +2 -2
  46. package/dist/_chunks/{rich-text-editor-BDfFtK4H.js → rich-text-editor-DtbcA6s1.js} +2 -2
  47. package/dist/_chunks/{select-BW5ecXlX.js → select-Bi8zril7.js} +165 -136
  48. package/dist/_chunks/signature-CpFNpsVK.js +21 -0
  49. package/dist/_chunks/{signature-field-0rFODJlW.js → signature-field-CEiPe-vX.js} +19 -34
  50. package/dist/_chunks/{signature-request-DVDTKLjM.js → signature-request-CUe903hj.js} +2 -2
  51. package/dist/_chunks/smartphone-C0rFF2if.js +15 -0
  52. package/dist/_chunks/{tabs-CBb2AidH.js → tabs-DqKtTIjZ.js} +2 -2
  53. package/dist/_chunks/{tasks-panel-Do5SFp-j.js → tasks-panel-DPCNaRko.js} +2 -2
  54. package/dist/_chunks/{toast.agent-D1tdg6DS.js → toast-YZz2sBzB.js} +160 -212
  55. package/dist/_chunks/toast.agent-DNQ0JYGv.js +56 -0
  56. package/dist/_chunks/{tooth-scheme-WdyVymQ1.js → tooth-scheme-2IsmbE6w.js} +2 -2
  57. package/dist/_chunks/{unit-converter-BPumXMA6.js → unit-converter-C6jMjqL9.js} +2 -2
  58. package/dist/_chunks/{workflow-map-DE_ribRM.js → workflow-map-dNzJjBWG.js} +104 -113
  59. package/dist/agent-catalog.json +867 -1
  60. package/dist/agent-i18n/en.json +27 -0
  61. package/dist/components/_shared/option.d.ts +1 -0
  62. package/dist/components/address-fields/index.js +1 -1
  63. package/dist/components/ai-prompt-input/index.js +1 -1
  64. package/dist/components/audio-recorder/index.js +1 -1
  65. package/dist/components/autocomplete/index.js +1 -1
  66. package/dist/components/bishop-score/index.js +1 -1
  67. package/dist/components/booking/index.js +1 -1
  68. package/dist/components/calendar/index.js +1 -1
  69. package/dist/components/calendar-event-card/index.js +1 -1
  70. package/dist/components/care-plan-card/index.js +1 -1
  71. package/dist/components/care-plan-entry-card/index.js +1 -1
  72. package/dist/components/care-plan-header/index.js +1 -1
  73. package/dist/components/city-input/index.js +1 -1
  74. package/dist/components/color-picker/index.js +1 -1
  75. package/dist/components/combobox/index.js +1 -1
  76. package/dist/components/contact-profile-card/index.js +1 -1
  77. package/dist/components/country-select/index.js +1 -1
  78. package/dist/components/data-table/index.js +39 -38
  79. package/dist/components/document-preview/index.js +1 -1
  80. package/dist/components/face-scheme/index.js +1 -1
  81. package/dist/components/file-manager/index.js +1 -1
  82. package/dist/components/gestational-age-calculator/index.js +1 -1
  83. package/dist/components/index.d.ts +1 -0
  84. package/dist/components/key-value-pair/index.js +1 -1
  85. package/dist/components/key-value-pair/key-value-pair.d.ts +16 -0
  86. package/dist/components/multi-select/index.js +1 -1
  87. package/dist/components/muscle-scheme/index.js +1 -1
  88. package/dist/components/notes-panel/index.js +1 -1
  89. package/dist/components/optical-prescription/index.js +1 -1
  90. package/dist/components/patient-details/index.js +1 -1
  91. package/dist/components/patient-search/index.js +1 -1
  92. package/dist/components/patient-summary-card/index.js +1 -1
  93. package/dist/components/patient-table/index.js +1 -1
  94. package/dist/components/payment-card/index.js +1 -1
  95. package/dist/components/periodontal-chart/index.js +1 -1
  96. package/dist/components/periodontal-chart-card/index.js +1 -1
  97. package/dist/components/practice-results/index.js +1 -1
  98. package/dist/components/pregnancy-dating/index.js +1 -1
  99. package/dist/components/province-select/index.js +1 -1
  100. package/dist/components/rich-text-editor/index.js +1 -1
  101. package/dist/components/select/index.js +1 -1
  102. package/dist/components/select/select.d.ts +24 -0
  103. package/dist/components/signature-field/index.js +1 -1
  104. package/dist/components/skeleton-scheme/index.js +1 -1
  105. package/dist/components/tabs/index.js +1 -1
  106. package/dist/components/tasks-panel/index.js +1 -1
  107. package/dist/components/toast/index.js +7 -6
  108. package/dist/components/tooth-scheme/index.js +1 -1
  109. package/dist/components/unit-converter/index.js +1 -1
  110. package/dist/components/workflow/index.js +1 -1
  111. package/dist/i18n/locales/ar.d.ts +680 -0
  112. package/dist/i18n/locales/ar.js +680 -0
  113. package/dist/i18n/locales/de.d.ts +680 -0
  114. package/dist/i18n/locales/de.js +680 -0
  115. package/dist/i18n/locales/el.d.ts +680 -0
  116. package/dist/i18n/locales/el.js +680 -0
  117. package/dist/i18n/locales/en.d.ts +680 -0
  118. package/dist/i18n/locales/en.js +680 -0
  119. package/dist/i18n/locales/es.d.ts +680 -0
  120. package/dist/i18n/locales/es.js +680 -0
  121. package/dist/i18n/locales/fr.d.ts +680 -0
  122. package/dist/i18n/locales/fr.js +680 -0
  123. package/dist/i18n/locales/hi.d.ts +680 -0
  124. package/dist/i18n/locales/hi.js +680 -0
  125. package/dist/i18n/locales/it.d.ts +680 -0
  126. package/dist/i18n/locales/it.js +680 -0
  127. package/dist/i18n/locales/ja.d.ts +680 -0
  128. package/dist/i18n/locales/ja.js +680 -0
  129. package/dist/i18n/locales/nl.d.ts +680 -0
  130. package/dist/i18n/locales/nl.js +680 -0
  131. package/dist/i18n/locales/pl.d.ts +680 -0
  132. package/dist/i18n/locales/pl.js +680 -0
  133. package/dist/i18n/locales/pt.d.ts +680 -0
  134. package/dist/i18n/locales/pt.js +680 -0
  135. package/dist/i18n/locales/ro.d.ts +680 -0
  136. package/dist/i18n/locales/ro.js +680 -0
  137. package/dist/i18n/locales/ru.d.ts +680 -0
  138. package/dist/i18n/locales/ru.js +680 -0
  139. package/dist/i18n/locales/sq.d.ts +680 -0
  140. package/dist/i18n/locales/sq.js +680 -0
  141. package/dist/i18n/locales/sv.d.ts +680 -0
  142. package/dist/i18n/locales/sv.js +680 -0
  143. package/dist/i18n/locales/tr.d.ts +680 -0
  144. package/dist/i18n/locales/tr.js +680 -0
  145. package/dist/i18n/locales/zh.d.ts +680 -0
  146. package/dist/i18n/locales/zh.js +680 -0
  147. package/dist/index.js +830 -812
  148. package/dist/locales/ar.json +680 -0
  149. package/dist/locales/de.json +680 -0
  150. package/dist/locales/el.json +680 -0
  151. package/dist/locales/en.json +680 -0
  152. package/dist/locales/es.json +680 -0
  153. package/dist/locales/fr.json +680 -0
  154. package/dist/locales/hi.json +680 -0
  155. package/dist/locales/it.json +680 -0
  156. package/dist/locales/ja.json +680 -0
  157. package/dist/locales/nl.json +680 -0
  158. package/dist/locales/pl.json +680 -0
  159. package/dist/locales/pt.json +680 -0
  160. package/dist/locales/ro.json +680 -0
  161. package/dist/locales/ru.json +680 -0
  162. package/dist/locales/sq.json +680 -0
  163. package/dist/locales/sv.json +680 -0
  164. package/dist/locales/tr.json +680 -0
  165. package/dist/locales/zh.json +680 -0
  166. package/dist/patterns/anamnesis/index.js +1 -1
  167. package/dist/patterns/calendar/calendar-workspace.d.ts +62 -0
  168. package/dist/patterns/calendar/calendar-workspace.model.d.ts +358 -0
  169. package/dist/patterns/calendar/calendar.data.d.ts +122 -0
  170. package/dist/patterns/calendar/calendar.host.d.ts +10 -0
  171. package/dist/patterns/calendar/calendar.journey.d.ts +119 -0
  172. package/dist/patterns/calendar/calendar.model.d.ts +684 -0
  173. package/dist/patterns/calendar/calendar.preferences.d.ts +74 -0
  174. package/dist/patterns/calendar/calendar.sheets.d.ts +398 -0
  175. package/dist/patterns/calendar/calendar.surface.d.ts +77 -0
  176. package/dist/patterns/calendar/calendar.types.d.ts +413 -0
  177. package/dist/patterns/calendar/index.d.ts +13 -0
  178. package/dist/patterns/calendar/index.js +19 -0
  179. package/dist/patterns/signature-request/index.js +1 -1
  180. package/package.json +5 -1
  181. package/dist/_chunks/actions-cell-renderer-DnSLrgQD.js +0 -1945
  182. package/dist/_chunks/key-value-pair-BubG4fUa.js +0 -144
@@ -0,0 +1,22 @@
1
+ import { c as e } from "./createLucideIcon-DhHxpK9K.js";
2
+ /**
3
+ * @license lucide-react v1.22.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const a = [
9
+ ["path", { d: "M12 10v6", key: "1bos4e" }],
10
+ ["path", { d: "M9 13h6", key: "1uhe8q" }],
11
+ [
12
+ "path",
13
+ {
14
+ d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
15
+ key: "1kt360"
16
+ }
17
+ ]
18
+ ], t = e("folder-plus", a);
19
+ export {
20
+ t as F
21
+ };
22
+ //# sourceMappingURL=folder-plus-CutOs4DP.js.map
@@ -7,7 +7,7 @@ import { R as d } from "./radio-TWf9Q-mp.js";
7
7
  import { R as S } from "./radio-group-rXDJADzW.js";
8
8
  import { F as k } from "./form-field-CahJzTxp.js";
9
9
  import { D as _ } from "./date-picker-CepI_oI2.js";
10
- import { S as me } from "./select-BW5ecXlX.js";
10
+ import { S as me } from "./select-Bi8zril7.js";
11
11
  import { S as ge } from "./switch-OILsBLWo.js";
12
12
  import { C as E } from "./card-DPmk26CL.js";
13
13
  import { B as G } from "./badge-sTusUqZD.js";
@@ -485,4 +485,4 @@ Re.displayName = "GestationalAgeCalculator";
485
485
  export {
486
486
  Re as G
487
487
  };
488
- //# sourceMappingURL=gestational-age-calculator-CxZelpu2.js.map
488
+ //# sourceMappingURL=gestational-age-calculator-CiOQjzgx.js.map
@@ -0,0 +1,26 @@
1
+ import { c as a } from "./createLucideIcon-DhHxpK9K.js";
2
+ /**
3
+ * @license lucide-react v1.22.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const e = [
9
+ ["path", { d: "M5 22h14", key: "ehvnwv" }],
10
+ ["path", { d: "M5 2h14", key: "pdyrp9" }],
11
+ [
12
+ "path",
13
+ {
14
+ d: "M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",
15
+ key: "1d314k"
16
+ }
17
+ ],
18
+ [
19
+ "path",
20
+ { d: "M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2", key: "1vvvr6" }
21
+ ]
22
+ ], t = a("hourglass", e);
23
+ export {
24
+ t as H
25
+ };
26
+ //# sourceMappingURL=hourglass-BEAzW1wE.js.map
@@ -0,0 +1,188 @@
1
+ import { jsx as a, jsxs as i, Fragment as y } from "react/jsx-runtime";
2
+ import { forwardRef as g, useState as f, useCallback as I } from "react";
3
+ import { c as h } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as K } from "react-i18next";
5
+ import { I as T } from "./icon-button-DA2CAGHZ.js";
6
+ import { C as j } from "./check-DrFSN__t.js";
7
+ import { C as _ } from "./copy-vRpqqHtY.js";
8
+ const A = h(
9
+ "type-body ds:text-foreground ds:min-w-0 ds:[unicode-bidi:isolate]",
10
+ {
11
+ variants: {
12
+ layout: {
13
+ horizontal: "",
14
+ vertical: "ds:shrink"
15
+ },
16
+ alignValue: {
17
+ start: "",
18
+ end: ""
19
+ },
20
+ mono: {
21
+ true: "ds:font-[family-name:var(--font-mono)]",
22
+ false: ""
23
+ }
24
+ },
25
+ compoundVariants: [
26
+ // `flex-1` lets the value absorb the remaining inline space when
27
+ // the KVP root flexes icon / label / value as direct siblings.
28
+ // Without it the value shrinks to its content width and the row
29
+ // leaves inline-end whitespace.
30
+ {
31
+ layout: "horizontal",
32
+ alignValue: "start",
33
+ class: "ds:flex-1 ds:shrink"
34
+ },
35
+ // Pinned: drop `flex-1` so the cell is content-width, then let an
36
+ // auto inline-start margin eat the slack. `ms-*` is the logical
37
+ // spelling, so this flips correctly in a right-to-left locale.
38
+ {
39
+ layout: "horizontal",
40
+ alignValue: "end",
41
+ class: "ds:ms-auto ds:shrink-0"
42
+ }
43
+ ],
44
+ defaultVariants: {
45
+ layout: "horizontal",
46
+ alignValue: "start",
47
+ mono: !1
48
+ }
49
+ }
50
+ ), B = h("ds:flex", {
51
+ variants: {
52
+ layout: {
53
+ horizontal: "ds:flex-row ds:items-center ds:gap-[var(--spacing-sm)]",
54
+ vertical: "ds:flex-col ds:gap-[var(--spacing-xs)]"
55
+ },
56
+ /** Internal — flips the root to a horizontal flex when an icon
57
+ is present so the icon can sit at the leading edge of both
58
+ horizontal and vertical inner stacks. `items-start` keeps the
59
+ icon anchored to the label row even when the value wraps. */
60
+ hasIcon: {
61
+ true: "ds:flex-row ds:items-start ds:gap-[var(--spacing-sm)]",
62
+ false: ""
63
+ }
64
+ },
65
+ defaultVariants: {
66
+ layout: "horizontal",
67
+ hasIcon: !1
68
+ }
69
+ }), L = g(
70
+ ({
71
+ label: t,
72
+ value: e,
73
+ layout: s = "horizontal",
74
+ alignValue: n = "start",
75
+ mono: l = !1,
76
+ copyable: v = !1,
77
+ copyText: k,
78
+ icon: d,
79
+ className: x,
80
+ ...V
81
+ }, C) => {
82
+ const { t: o } = K(), [z, p] = f(!1), [N, r] = f(""), c = k ?? (typeof e == "string" ? e : void 0), b = I(async () => {
83
+ if (c)
84
+ try {
85
+ await navigator.clipboard.writeText(c), p(!0), r(o("keyValuePair.copied")), setTimeout(() => {
86
+ p(!1), r("");
87
+ }, 2e3);
88
+ } catch {
89
+ r(o("keyValuePair.notAvailable")), setTimeout(() => r(""), 3e3);
90
+ }
91
+ }, [c, o]), w = A({
92
+ layout: s,
93
+ alignValue: n,
94
+ mono: l
95
+ }), u = d != null, P = "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:min-w-0 ds:flex-1", m = /* @__PURE__ */ i(y, { children: [
96
+ /* @__PURE__ */ i("span", { className: "type-label ds:text-muted-foreground ds:shrink-0", children: [
97
+ t,
98
+ /* @__PURE__ */ a("span", { className: "ds:sr-only", children: ": " })
99
+ ] }),
100
+ /* @__PURE__ */ a("span", { className: w, children: e }),
101
+ v && /* @__PURE__ */ a(
102
+ T,
103
+ {
104
+ icon: z ? /* @__PURE__ */ a(j, {}) : /* @__PURE__ */ a(_, {}),
105
+ size: "sm",
106
+ "aria-label": o("keyValuePair.copy", { label: t }),
107
+ onClick: b,
108
+ intent: "ghost",
109
+ className: s === "horizontal" ? (
110
+ // Only one element on the row may claim the slack. When
111
+ // the value is pinned it has already taken it with its
112
+ // own `ms-auto`; a second auto margin here would split
113
+ // the free space between them and strand the value in
114
+ // the middle of the row instead of at its end.
115
+ n === "end" ? "ds:shrink-0" : "ds:ms-auto ds:shrink-0"
116
+ ) : "ds:self-start"
117
+ }
118
+ )
119
+ ] });
120
+ return /* @__PURE__ */ i(
121
+ "div",
122
+ {
123
+ ref: C,
124
+ className: B({ layout: s, hasIcon: u, className: x }),
125
+ "data-component": "key-value-pair",
126
+ ...V,
127
+ children: [
128
+ u ? /* @__PURE__ */ i(y, { children: [
129
+ /* @__PURE__ */ a(
130
+ "span",
131
+ {
132
+ "aria-hidden": "true",
133
+ className: "ds:inline-flex ds:shrink-0 ds:translate-y-0.5 ds:text-[color:var(--key-value-pair-icon-color)] ds:[&_svg]:size-4",
134
+ children: d
135
+ }
136
+ ),
137
+ s === "horizontal" ? m : /* @__PURE__ */ a("div", { className: P, children: m })
138
+ ] }) : m,
139
+ /* @__PURE__ */ a("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: N })
140
+ ]
141
+ }
142
+ );
143
+ }
144
+ );
145
+ L.displayName = "KeyValuePair";
146
+ const S = {
147
+ sm: "ds:gap-y-[var(--spacing-sm)]",
148
+ md: "ds:gap-y-[var(--spacing-md)]",
149
+ lg: "ds:gap-y-[var(--spacing-lg)]"
150
+ }, F = g(
151
+ ({ children: t, className: e, rowGap: s = "md", ...n }, l) => /* @__PURE__ */ a(
152
+ "div",
153
+ {
154
+ ref: l,
155
+ "data-component": "key-value-list",
156
+ className: [
157
+ "ds:grid ds:grid-cols-[auto_auto_minmax(0,1fr)]",
158
+ "ds:gap-x-[var(--spacing-md)]",
159
+ S[s],
160
+ // Each direct `data-component="key-value-pair"` child becomes
161
+ // a subgrid row spanning all three columns. The KVP's own
162
+ // flex layout still works inside the cell (icon shrinks-0,
163
+ // label shrinks-0, value flexes) — subgrid just aligns the
164
+ // boundaries between siblings.
165
+ 'ds:[&>[data-component="key-value-pair"]]:grid',
166
+ 'ds:[&>[data-component="key-value-pair"]]:grid-cols-subgrid',
167
+ 'ds:[&>[data-component="key-value-pair"]]:col-span-3',
168
+ 'ds:[&>[data-component="key-value-pair"]]:items-baseline',
169
+ // Unset the KVP's intra-row `gap-sm` so the subgrid inherits
170
+ // the parent KeyValueList's `gap-x-md` for every track gap
171
+ // (icon→label and label→value). `gap-0` here would override
172
+ // the parent's gap and crowd the icon against the label;
173
+ // `[gap:normal]` is the subgrid-spec way to defer to the
174
+ // parent.
175
+ 'ds:[&>[data-component="key-value-pair"]]:[gap:normal]',
176
+ e
177
+ ].filter(Boolean).join(" "),
178
+ ...n,
179
+ children: t
180
+ }
181
+ )
182
+ );
183
+ F.displayName = "KeyValueList";
184
+ export {
185
+ F as K,
186
+ L as a
187
+ };
188
+ //# sourceMappingURL=key-value-pair-BIBdZBLg.js.map
@@ -5,11 +5,11 @@ import { D as H } from "./date-range-picker-BD8P_rJq.js";
5
5
  import { useTranslation as D } from "react-i18next";
6
6
  import { C as Z } from "./checkbox-BuZ1u__2.js";
7
7
  import { B as E } from "./button-nJaPh_HC.js";
8
- import { M as J } from "./multi-select-DqL4o0qV.js";
8
+ import { M as J } from "./multi-select-DYOvx2SJ.js";
9
9
  import { S as Q } from "./scroll-area-BZOvUhwQ.js";
10
- import { A as Y } from "./autocomplete-BrONKN8l.js";
10
+ import { A as Y } from "./autocomplete-MpBhz-fG.js";
11
11
  import { N as M } from "./number-input-Cgu2TtA8.js";
12
- import { S as W } from "./select-BW5ecXlX.js";
12
+ import { S as W } from "./select-Bi8zril7.js";
13
13
  import { B as ee } from "./badge-sTusUqZD.js";
14
14
  import { A as j } from "./avatar-BNQNhoyL.js";
15
15
  import { T as I } from "./tag-3wgkwwDB.js";
@@ -763,4 +763,4 @@ export {
763
763
  Ie as f,
764
764
  Be as g
765
765
  };
766
- //# sourceMappingURL=link-cell-renderer-CenJx-_7.js.map
766
+ //# sourceMappingURL=link-cell-renderer-CIASXsVM.js.map
@@ -1,4 +1,4 @@
1
- import { jsx as n, jsxs as w } from "react/jsx-runtime";
1
+ import { jsx as n, jsxs as I } from "react/jsx-runtime";
2
2
  import { forwardRef as Ue, useContext as Qe, useState as q, useRef as v, useMemo as O, useEffect as Y, useCallback as le } from "react";
3
3
  import * as D from "@radix-ui/react-popover";
4
4
  import { _ as c } from "./index-4xgbg-sn.js";
@@ -222,12 +222,12 @@ const rt = {
222
222
  // silently override the visible text (WCAG 2.5.3 Label in Name).
223
223
  "aria-label": Se,
224
224
  ...xe
225
- }, Ie) {
226
- const { t: u } = Ye(), y = Ge(), S = Qe(He) !== null, [we, K] = Xe({
225
+ }, we) {
226
+ const { t: u } = Ye(), y = Ge(), S = Qe(He) !== null, [Ie, K] = Xe({
227
227
  value: fe,
228
228
  defaultValue: he ?? [],
229
229
  onChange: ge
230
- }), i = we ?? [], [N, p] = q(!1), [m, j] = q(""), x = v(null), I = v([]), P = v(null), Ne = We(Ie, P), g = S && y.disabled || !!be, ke = S && y.required, J = S && y.invalid, Ce = S && y.describedBy ? y.describedBy : void 0, Ae = M ?? (S ? y.id : void 0), _e = O(() => {
230
+ }), i = Ie ?? [], [N, p] = q(!1), [m, j] = q(""), x = v(null), w = v([]), P = v(null), Ne = We(we, P), g = S && y.disabled || !!be, ke = S && y.required, J = S && y.invalid, Ce = S && y.describedBy ? y.describedBy : void 0, Ae = M ?? (S ? y.id : void 0), _e = O(() => {
231
231
  const e = /* @__PURE__ */ new Map();
232
232
  for (const t of l) e.set(t.value, t.label);
233
233
  return e;
@@ -240,10 +240,10 @@ const rt = {
240
240
  }
241
241
  Z || k([...i, e]);
242
242
  }, $ = (e) => {
243
- const t = i.filter((s, o) => o !== e);
243
+ const t = i.filter((r, o) => o !== e);
244
244
  return k(t), t;
245
245
  }, Te = () => {
246
- const e = l.filter((s) => !s.disabled).map((s) => s.value), t = typeof b == "number" ? b : e.length;
246
+ const e = l.filter((r) => !r.disabled).map((r) => r.value), t = typeof b == "number" ? b : e.length;
247
247
  k(e.slice(0, t));
248
248
  }, Ee = () => {
249
249
  k([]);
@@ -290,20 +290,20 @@ const rt = {
290
290
  const t = e.currentTarget;
291
291
  if (e.key === "Backspace" && m === "" && i.length > 0) {
292
292
  e.preventDefault();
293
- const r = i.length - 1, d = $(r).length - 1;
293
+ const s = i.length - 1, d = $(s).length - 1;
294
294
  d >= 0 && requestAnimationFrame(() => {
295
295
  var h;
296
- (h = I.current[d]) == null || h.focus();
296
+ (h = w.current[d]) == null || h.focus();
297
297
  });
298
298
  return;
299
299
  }
300
- const s = t.selectionStart === 0 && t.selectionEnd === 0;
301
- if ((e.key === "ArrowLeft" || e.key === "ArrowRight") && s && i.length > 0) {
302
- const r = document.dir === "rtl" || t.dir === "rtl";
303
- if (r && e.key === "ArrowRight" || !r && e.key === "ArrowLeft") {
300
+ const r = t.selectionStart === 0 && t.selectionEnd === 0;
301
+ if ((e.key === "ArrowLeft" || e.key === "ArrowRight") && r && i.length > 0) {
302
+ const s = document.dir === "rtl" || t.dir === "rtl";
303
+ if (s && e.key === "ArrowRight" || !s && e.key === "ArrowLeft") {
304
304
  e.preventDefault();
305
305
  const d = i.length - 1;
306
- (o = I.current[d]) == null || o.focus();
306
+ (o = w.current[d]) == null || o.focus();
307
307
  }
308
308
  return;
309
309
  }
@@ -327,19 +327,19 @@ const rt = {
327
327
  const Be = Math.min(e, V.length - 1);
328
328
  requestAnimationFrame(() => {
329
329
  var _;
330
- (_ = I.current[Be]) == null || _.focus();
330
+ (_ = w.current[Be]) == null || _.focus();
331
331
  });
332
332
  return;
333
333
  }
334
- const s = document.dir === "rtl", o = s ? "ArrowRight" : "ArrowLeft", r = s ? "ArrowLeft" : "ArrowRight";
334
+ const r = document.dir === "rtl", o = r ? "ArrowRight" : "ArrowLeft", s = r ? "ArrowLeft" : "ArrowRight";
335
335
  if (t.key === o) {
336
336
  t.preventDefault();
337
337
  const V = Math.max(0, e - 1);
338
- (f = I.current[V]) == null || f.focus();
338
+ (f = w.current[V]) == null || f.focus();
339
339
  return;
340
340
  }
341
- if (t.key === r) {
342
- t.preventDefault(), e < i.length - 1 ? (d = I.current[e + 1]) == null || d.focus() : (h = x.current) == null || h.focus();
341
+ if (t.key === s) {
342
+ t.preventDefault(), e < i.length - 1 ? (d = w.current[e + 1]) == null || d.focus() : (h = x.current) == null || h.focus();
343
343
  return;
344
344
  }
345
345
  t.key === "Escape" && (p(!1), (A = x.current) == null || A.focus());
@@ -358,10 +358,10 @@ const rt = {
358
358
  U(Number.POSITIVE_INFINITY);
359
359
  return;
360
360
  }
361
- const s = t[0].offsetTop;
361
+ const r = t[0].offsetTop;
362
362
  let o = 0;
363
- for (const r of t)
364
- if (r.offsetTop === s) o++;
363
+ for (const s of t)
364
+ if (s.offsetTop === r) o++;
365
365
  else break;
366
366
  U(
367
367
  o === t.length ? Number.POSITIVE_INFINITY : Math.max(1, o - 1)
@@ -371,10 +371,10 @@ const rt = {
371
371
  }, [i.length, R, E]), G(() => {
372
372
  const e = P.current;
373
373
  if (!e) return;
374
- const t = new ResizeObserver((s) => {
375
- var r;
374
+ const t = new ResizeObserver((r) => {
375
+ var s;
376
376
  const o = Math.round(
377
- ((r = s[0]) == null ? void 0 : r.contentRect.width) ?? e.clientWidth
377
+ ((s = r[0]) == null ? void 0 : s.contentRect.width) ?? e.clientWidth
378
378
  );
379
379
  o !== ie.current && (ie.current = o, E());
380
380
  });
@@ -384,10 +384,10 @@ const rt = {
384
384
  value: e,
385
385
  label: _e.get(e) ?? e
386
386
  })), oe = T === Number.POSITIVE_INFINITY || T >= F.length, ze = oe ? F : F.slice(0, T), ae = oe ? [] : F.slice(T), C = ae.length, Me = (e) => {
387
- var s;
387
+ var r;
388
388
  if (g) return;
389
389
  const t = e.target;
390
- t.closest('[data-ui-chip="true"]') || t.closest('[data-ui-chip-dismiss="true"]') || (p(!0), (s = x.current) == null || s.focus());
390
+ t.closest('[data-ui-chip="true"]') || t.closest('[data-ui-chip-dismiss="true"]') || (p(!0), (r = x.current) == null || r.focus());
391
391
  }, Ke = (e) => {
392
392
  if (g) {
393
393
  p(!1);
@@ -398,8 +398,8 @@ const rt = {
398
398
  count: i.length,
399
399
  defaultValue: `${i.length} selected`
400
400
  }), { onClick: Q, ...$e } = xe;
401
- return /* @__PURE__ */ n(c, { shouldFilter: !1, label: Pe, children: /* @__PURE__ */ w(D.Root, { open: N, onOpenChange: Ke, children: [
402
- /* @__PURE__ */ n(D.Anchor, { asChild: !0, children: /* @__PURE__ */ w(
401
+ return /* @__PURE__ */ n(c, { shouldFilter: !1, label: Pe, children: /* @__PURE__ */ I(D.Root, { open: N, onOpenChange: Ke, children: [
402
+ /* @__PURE__ */ n(D.Anchor, { asChild: !0, children: /* @__PURE__ */ I(
403
403
  "div",
404
404
  {
405
405
  ref: Ne,
@@ -415,11 +415,11 @@ const rt = {
415
415
  children: [
416
416
  ze.map((e, t) => (
417
417
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- chip pill receives focus via roving tabindex; chip removal uses an inner button
418
- /* @__PURE__ */ w(
418
+ /* @__PURE__ */ I(
419
419
  "span",
420
420
  {
421
- ref: (s) => {
422
- I.current[t] = s;
421
+ ref: (r) => {
422
+ w.current[t] = r;
423
423
  },
424
424
  tabIndex: g ? -1 : 0,
425
425
  "data-ui-chip": "true",
@@ -439,8 +439,8 @@ const rt = {
439
439
  defaultValue: `Remove ${e.label}`
440
440
  }),
441
441
  disabled: g,
442
- onClick: (s) => {
443
- s.stopPropagation(), $(t), requestAnimationFrame(() => {
442
+ onClick: (r) => {
443
+ r.stopPropagation(), $(t), requestAnimationFrame(() => {
444
444
  var o;
445
445
  return (o = x.current) == null ? void 0 : o.focus();
446
446
  });
@@ -513,7 +513,7 @@ const rt = {
513
513
  align: "start",
514
514
  sideOffset: 4,
515
515
  className: ot,
516
- children: /* @__PURE__ */ w(
516
+ children: /* @__PURE__ */ I(
517
517
  c.List,
518
518
  {
519
519
  role: "listbox",
@@ -521,7 +521,7 @@ const rt = {
521
521
  "aria-label": re,
522
522
  className: "ds:max-h-[20rem] ds:overflow-y-auto ds:p-1",
523
523
  children: [
524
- je ? /* @__PURE__ */ w(c.Group, { children: [
524
+ je ? /* @__PURE__ */ I(c.Group, { children: [
525
525
  W ? /* @__PURE__ */ n(
526
526
  c.Item,
527
527
  {
@@ -542,16 +542,16 @@ const rt = {
542
542
  ) : null
543
543
  ] }) : null,
544
544
  /* @__PURE__ */ n(c.Empty, { className: "ds:ps-2 ds:pe-2 ds:py-2 type-body-sm ds:text-muted-foreground", children: u("inputs.multiSelect.noOptions", "No options found") }),
545
- Ve.map(({ group: e, items: t }, s) => {
546
- const o = t.map((r) => {
547
- const f = i.includes(r.value), d = !f && Z, h = !!r.disabled || d, A = /* @__PURE__ */ w(
545
+ Ve.map(({ group: e, items: t }, r) => {
546
+ const o = t.map((s) => {
547
+ const f = i.includes(s.value), d = !f && Z, h = !!s.disabled || d, A = /* @__PURE__ */ I(
548
548
  c.Item,
549
549
  {
550
- value: r.value,
551
- "data-option-id": r.value,
550
+ value: s.value,
551
+ "data-option-id": s.value,
552
552
  disabled: h,
553
553
  onSelect: () => {
554
- h || Re(r.value);
554
+ h || Re(s.value);
555
555
  },
556
556
  "aria-selected": f,
557
557
  "aria-disabled": h || void 0,
@@ -569,7 +569,7 @@ const rt = {
569
569
  children: f ? /* @__PURE__ */ n(st, { className: "ds:size-3.5" }) : null
570
570
  }
571
571
  ),
572
- r.startAdornment ? (
572
+ s.startAdornment ? (
573
573
  // Decorative by contract — the accessible name comes
574
574
  // from the option label.
575
575
  /* @__PURE__ */ n(
@@ -577,14 +577,22 @@ const rt = {
577
577
  {
578
578
  "aria-hidden": "true",
579
579
  className: "ds:inline-flex ds:items-center ds:shrink-0 ds:me-[var(--spacing-xs)]",
580
- children: r.startAdornment
580
+ children: s.startAdornment
581
581
  }
582
582
  )
583
583
  ) : null,
584
- /* @__PURE__ */ n("span", { className: "ds:flex-1 ds:text-start", children: r.label })
584
+ /* @__PURE__ */ n("span", { className: "ds:flex-1 ds:min-w-0 ds:truncate ds:text-start", children: s.label }),
585
+ s.endContent ? (
586
+ // Deliberately NOT aria-hidden — unlike
587
+ // `startAdornment`, this slot carries meaning
588
+ // (a price, a count) and must reach the
589
+ // option's accessible name. `ms-auto` pins it
590
+ // to the inline-end and flips under RTL.
591
+ /* @__PURE__ */ n("span", { className: "ds:inline-flex ds:items-center ds:ms-auto ds:shrink-0 ds:ps-[var(--spacing-xs)]", children: s.endContent })
592
+ ) : null
585
593
  ]
586
594
  },
587
- r.value
595
+ s.value
588
596
  );
589
597
  return d ? /* @__PURE__ */ n(
590
598
  de,
@@ -596,7 +604,7 @@ const rt = {
596
604
  delayDuration: 200,
597
605
  children: A
598
606
  },
599
- r.value
607
+ s.value
600
608
  ) : A;
601
609
  });
602
610
  return e ? /* @__PURE__ */ n(
@@ -607,7 +615,7 @@ const rt = {
607
615
  children: o
608
616
  },
609
617
  `group-${e}`
610
- ) : /* @__PURE__ */ n(c.Group, { children: o }, `group-${s}`);
618
+ ) : /* @__PURE__ */ n(c.Group, { children: o }, `group-${r}`);
611
619
  })
612
620
  ]
613
621
  }
@@ -624,4 +632,4 @@ export {
624
632
  nt as a,
625
633
  rt as m
626
634
  };
627
- //# sourceMappingURL=multi-select-DqL4o0qV.js.map
635
+ //# sourceMappingURL=multi-select-DYOvx2SJ.js.map
@@ -5,7 +5,7 @@ import { c as x1 } from "./index-D2ZczOXr.js";
5
5
  import { useTranslation as Q1 } from "react-i18next";
6
6
  import { u as K1 } from "./registry-DvAUVLHh.js";
7
7
  import { m as k1, A as v1 } from "./annotation-marker-CsUJGZjQ.js";
8
- import { T as _ } from "./tabs-CBb2AidH.js";
8
+ import { T as _ } from "./tabs-DqKtTIjZ.js";
9
9
  const x = {
10
10
  type: "string",
11
11
  description: "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
@@ -1703,4 +1703,4 @@ export {
1703
1703
  I1 as r,
1704
1704
  L1 as v
1705
1705
  };
1706
- //# sourceMappingURL=muscle-scheme-yfzP_xoJ.js.map
1706
+ //# sourceMappingURL=muscle-scheme-BSJsI4-I.js.map
@@ -4,7 +4,7 @@ import { c as fe } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as me } from "react-i18next";
5
5
  import { u as ge } from "./registry-DvAUVLHh.js";
6
6
  import { C as he } from "./clinical-note-card-BBgFd2nB.js";
7
- import { R as ve } from "./rich-text-editor-BDfFtK4H.js";
7
+ import { R as ve } from "./rich-text-editor-DtbcA6s1.js";
8
8
  import { T as be } from "./text-area-Bt3p7Pt0.js";
9
9
  import { B as ye } from "./button-nJaPh_HC.js";
10
10
  import { C as xe } from "./checkbox-BuZ1u__2.js";
@@ -350,4 +350,4 @@ const Me = oe(
350
350
  export {
351
351
  Me as N
352
352
  };
353
- //# sourceMappingURL=notes-panel-CymneXtl.js.map
353
+ //# sourceMappingURL=notes-panel-DYAtlq_i.js.map
@@ -4,7 +4,7 @@ import { c as He } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as Fe } from "react-i18next";
5
5
  import { u as qe } from "./registry-DvAUVLHh.js";
6
6
  import { N as se } from "./number-input-Cgu2TtA8.js";
7
- import { S as he } from "./select-BW5ecXlX.js";
7
+ import { S as he } from "./select-Bi8zril7.js";
8
8
  import { T as Ke } from "./text-area-Bt3p7Pt0.js";
9
9
  import { D as v } from "./description-list-CjJqR8WK.js";
10
10
  const ye = {
@@ -1257,4 +1257,4 @@ export {
1257
1257
  yt as y,
1258
1258
  Re as z
1259
1259
  };
1260
- //# sourceMappingURL=optical-prescription-Dj3Eh5Ok.js.map
1260
+ //# sourceMappingURL=optical-prescription-BvwuqTpl.js.map