@alfadocs/ui-kit 0.24.0 → 0.25.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.
@@ -1,7 +1,7 @@
1
1
  import { jsxs as t, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as i, Fragment as b } from "react";
3
3
  import { useTranslation as k } from "react-i18next";
4
- import { C as o } from "./card-CWzuTLYE.js";
4
+ import { C as o } from "./card-C353dU-H.js";
5
5
  import { L as p } from "./link-DmM5IevO.js";
6
6
  import { M as v } from "./map-pin-B8STOPMJ.js";
7
7
  function L(s) {
@@ -118,4 +118,4 @@ const M = Object.assign(f, {
118
118
  export {
119
119
  M as C
120
120
  };
121
- //# sourceMappingURL=contact-card-DTQUMetD.js.map
121
+ //# sourceMappingURL=contact-card-CjG7c-1q.js.map
@@ -0,0 +1,309 @@
1
+ import { jsx as e, jsxs as V } from "react/jsx-runtime";
2
+ import { forwardRef as c, useMemo as x, Children as C, isValidElement as T, useContext as R, useState as y, useCallback as j, createContext as P } from "react";
3
+ import { c as m } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as z } from "react-i18next";
5
+ import { I as A } from "./icon-button-C4CGcYuz.js";
6
+ import { C as S } from "./check-DPdL_Sm7.js";
7
+ import { C as B } from "./copy-B00HK7tj.js";
8
+ function E(s) {
9
+ return s === "auto" ? "fit-content(50%)" : s === "fixed" ? "minmax(0,1fr)" : s;
10
+ }
11
+ function M(s) {
12
+ return s === "fixed" ? "minmax(0,2fr)" : "minmax(0,1fr)";
13
+ }
14
+ const b = P({
15
+ layout: "inline",
16
+ density: "default",
17
+ divider: "none",
18
+ hasIcons: !1
19
+ }), O = m("ds:flex ds:flex-col", {
20
+ variants: {
21
+ layout: {
22
+ inline: "",
23
+ stacked: "",
24
+ responsive: ""
25
+ },
26
+ density: {
27
+ default: "ds:gap-[var(--spacing-md)]",
28
+ compact: "ds:gap-[var(--spacing-sm)]"
29
+ },
30
+ divider: {
31
+ none: "",
32
+ between: "",
33
+ bordered: ""
34
+ }
35
+ },
36
+ defaultVariants: {
37
+ layout: "inline",
38
+ density: "default",
39
+ divider: "none"
40
+ }
41
+ }), q = m("", {
42
+ variants: {
43
+ layout: {
44
+ inline: "",
45
+ stacked: "",
46
+ responsive: ""
47
+ },
48
+ divider: {
49
+ none: "",
50
+ between: "ds:[&:not(:last-child)]:border-b ds:[&:not(:last-child)]:border-[color:var(--border)] ds:[&:not(:last-child)]:pb-[var(--spacing-md)]",
51
+ bordered: "ds:border ds:border-[color:var(--border)] ds:rounded-[var(--radius-sm)] ds:p-[var(--spacing-sm)]"
52
+ },
53
+ copyable: {
54
+ true: "",
55
+ false: ""
56
+ },
57
+ hasIcons: {
58
+ true: "",
59
+ false: ""
60
+ }
61
+ },
62
+ compoundVariants: [
63
+ /* ----- inline / no icons ----- */
64
+ {
65
+ layout: "inline",
66
+ hasIcons: !1,
67
+ copyable: !1,
68
+ className: "ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-start"
69
+ },
70
+ {
71
+ layout: "inline",
72
+ hasIcons: !1,
73
+ copyable: !0,
74
+ className: "ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-start ds:[&>button]:col-start-3"
75
+ },
76
+ /* ----- inline / with icons ----- */
77
+ {
78
+ layout: "inline",
79
+ hasIcons: !0,
80
+ copyable: !1,
81
+ className: "ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-start"
82
+ },
83
+ {
84
+ layout: "inline",
85
+ hasIcons: !0,
86
+ copyable: !0,
87
+ className: "ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-start ds:[&>button]:col-start-4"
88
+ },
89
+ /* ----- stacked / no icons / no copyable ----- */
90
+ {
91
+ layout: "stacked",
92
+ hasIcons: !1,
93
+ copyable: !1,
94
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]"
95
+ },
96
+ /* ----- stacked / no icons / copyable — 2-col grid so the copy
97
+ button sits in a trailing column instead of below dd ----- */
98
+ {
99
+ layout: "stacked",
100
+ hasIcons: !1,
101
+ copyable: !0,
102
+ className: "ds:grid ds:grid-cols-[minmax(0,1fr)_auto] ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)] ds:items-start ds:[&>button]:col-start-2 ds:[&>button]:row-span-full"
103
+ },
104
+ /* ----- stacked / with icons — explicit grid so dt/dd remain
105
+ direct children of the row div while the icon sits at the
106
+ leading edge of the column-2 stack. `labelWidth` does not
107
+ apply here (single content column). ----- */
108
+ {
109
+ layout: "stacked",
110
+ hasIcons: !0,
111
+ copyable: !1,
112
+ className: "ds:grid ds:grid-cols-[auto_minmax(0,1fr)] ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)] ds:items-start ds:[&>dt]:col-start-2 ds:[&>dd]:col-start-2 ds:[&>[data-dl-icon-slot]]:row-span-full"
113
+ },
114
+ {
115
+ layout: "stacked",
116
+ hasIcons: !0,
117
+ copyable: !0,
118
+ className: "ds:grid ds:grid-cols-[auto_minmax(0,1fr)_auto] ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-xs)] ds:items-start ds:[&>dt]:col-start-2 ds:[&>dd]:col-start-2 ds:[&>[data-dl-icon-slot]]:row-span-full ds:[&>button]:col-start-3 ds:[&>button]:row-span-full"
119
+ },
120
+ /* ----- responsive / no icons (inline above sm, stacked below) ----- */
121
+ {
122
+ layout: "responsive",
123
+ hasIcons: !1,
124
+ copyable: !1,
125
+ className: "ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-start ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]"
126
+ },
127
+ {
128
+ layout: "responsive",
129
+ hasIcons: !1,
130
+ copyable: !0,
131
+ className: "ds:grid ds:grid-cols-[var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-start ds:[&>button]:col-start-3 ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]"
132
+ },
133
+ /* ----- responsive / with icons ----- */
134
+ {
135
+ layout: "responsive",
136
+ hasIcons: !0,
137
+ copyable: !1,
138
+ className: "ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)] ds:gap-[var(--spacing-md)] ds:items-start ds:max-sm:grid-cols-[auto_minmax(0,1fr)] ds:max-sm:gap-x-[var(--spacing-sm)] ds:max-sm:gap-y-[var(--spacing-xs)] ds:max-sm:[&>dt]:col-start-2 ds:max-sm:[&>dd]:col-start-2 ds:max-sm:[&>[data-dl-icon-slot]]:row-span-full"
139
+ },
140
+ {
141
+ layout: "responsive",
142
+ hasIcons: !0,
143
+ copyable: !0,
144
+ className: "ds:grid ds:grid-cols-[auto_var(--description-list-label-track)_var(--description-list-value-track)_auto] ds:gap-[var(--spacing-md)] ds:items-start ds:[&>button]:col-start-4 ds:max-sm:grid-cols-[auto_minmax(0,1fr)_auto] ds:max-sm:gap-x-[var(--spacing-sm)] ds:max-sm:gap-y-[var(--spacing-xs)] ds:max-sm:[&>dt]:col-start-2 ds:max-sm:[&>dd]:col-start-2 ds:max-sm:[&>[data-dl-icon-slot]]:row-span-full ds:max-sm:[&>button]:col-start-3 ds:max-sm:[&>button]:row-span-full"
145
+ }
146
+ ],
147
+ defaultVariants: {
148
+ layout: "inline",
149
+ divider: "none",
150
+ copyable: !1,
151
+ hasIcons: !1
152
+ }
153
+ }), k = c(
154
+ ({
155
+ layout: s = "inline",
156
+ density: a = "default",
157
+ divider: r = "none",
158
+ labelWidth: t = "auto",
159
+ className: p,
160
+ children: o,
161
+ style: d,
162
+ ...u
163
+ }, v) => {
164
+ const g = x(
165
+ () => C.toArray(o).some(
166
+ (i) => T(i) && i.props.icon != null
167
+ ),
168
+ [o]
169
+ ), l = x(
170
+ () => ({
171
+ ...d,
172
+ "--description-list-label-track": E(t),
173
+ "--description-list-value-track": M(t)
174
+ }),
175
+ [d, t]
176
+ );
177
+ return /* @__PURE__ */ e(
178
+ b.Provider,
179
+ {
180
+ value: { layout: s, density: a, divider: r, hasIcons: g },
181
+ children: /* @__PURE__ */ e(
182
+ "dl",
183
+ {
184
+ ref: v,
185
+ className: O({
186
+ layout: s,
187
+ density: a,
188
+ divider: r,
189
+ className: p
190
+ }),
191
+ "data-component": "description-list",
192
+ "data-label-width": t === "auto" || t === "fixed" ? t : "custom",
193
+ style: l,
194
+ ...u,
195
+ children: o
196
+ }
197
+ )
198
+ }
199
+ );
200
+ }
201
+ );
202
+ k.displayName = "DescriptionList";
203
+ const w = c(
204
+ ({
205
+ copyable: s = !1,
206
+ copyText: a,
207
+ copyLabel: r,
208
+ icon: t,
209
+ className: p,
210
+ children: o,
211
+ ...d
212
+ }, u) => {
213
+ const { layout: v, divider: g, hasIcons: l } = R(b), { t: i } = z(), [h, f] = y(!1), [I, n] = y(""), L = j(async () => {
214
+ if (a)
215
+ try {
216
+ await navigator.clipboard.writeText(a), f(!0), n(i("keyValuePair.copied")), setTimeout(() => {
217
+ f(!1), n("");
218
+ }, 2e3);
219
+ } catch {
220
+ n(i("keyValuePair.notAvailable")), setTimeout(() => n(""), 3e3);
221
+ }
222
+ }, [a, i]), D = i("keyValuePair.copy", {
223
+ label: r ?? a ?? ""
224
+ });
225
+ return /* @__PURE__ */ V(
226
+ "div",
227
+ {
228
+ ref: u,
229
+ className: q({
230
+ layout: v,
231
+ divider: g,
232
+ copyable: s,
233
+ hasIcons: l,
234
+ className: p
235
+ }),
236
+ ...d,
237
+ children: [
238
+ l && /* @__PURE__ */ e(
239
+ "span",
240
+ {
241
+ "data-dl-icon-slot": !0,
242
+ "aria-hidden": "true",
243
+ className: "ds:inline-flex ds:size-4 ds:shrink-0 ds:mt-0.5 ds:items-center ds:justify-center ds:[&_svg]:size-4 ds:text-[color:var(--description-list-icon-color)]",
244
+ children: t
245
+ }
246
+ ),
247
+ o,
248
+ s && /* @__PURE__ */ e(
249
+ A,
250
+ {
251
+ icon: h ? /* @__PURE__ */ e(S, {}) : /* @__PURE__ */ e(B, {}),
252
+ size: "sm",
253
+ "aria-label": D,
254
+ onClick: L,
255
+ intent: "ghost",
256
+ className: "ds:self-start"
257
+ }
258
+ ),
259
+ s && /* @__PURE__ */ e("span", { role: "status", className: "ds:sr-only", children: I })
260
+ ]
261
+ }
262
+ );
263
+ }
264
+ );
265
+ w.displayName = "DescriptionList.Row";
266
+ const F = m(
267
+ "type-label ds:text-[color:var(--muted-foreground)] ds:text-start ds:[overflow-wrap:break-word] ds:[word-break:normal]"
268
+ ), G = m(
269
+ "type-body ds:text-[color:var(--foreground)] ds:m-0 ds:[overflow-wrap:break-word] ds:[word-break:normal]",
270
+ {
271
+ variants: {
272
+ numeric: {
273
+ true: "ds:text-end",
274
+ false: "ds:text-start"
275
+ }
276
+ },
277
+ defaultVariants: {
278
+ numeric: !1
279
+ }
280
+ }
281
+ ), _ = c(
282
+ ({ className: s, ...a }, r) => /* @__PURE__ */ e(
283
+ "dt",
284
+ {
285
+ ref: r,
286
+ className: F({ className: s }),
287
+ ...a
288
+ }
289
+ )
290
+ );
291
+ _.displayName = "DescriptionList.Term";
292
+ const N = c(({ numeric: s = !1, className: a, ...r }, t) => /* @__PURE__ */ e(
293
+ "dd",
294
+ {
295
+ ref: t,
296
+ className: G({ numeric: s, className: a }),
297
+ ...r
298
+ }
299
+ ));
300
+ N.displayName = "DescriptionList.Detail";
301
+ const Z = Object.assign(k, {
302
+ Row: w,
303
+ Term: _,
304
+ Detail: N
305
+ });
306
+ export {
307
+ Z as D
308
+ };
309
+ //# sourceMappingURL=description-list-Bsga4IW8.js.map