@studiolxd/brand 49.11.0 → 49.13.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 (60) hide show
  1. package/CHANGELOG.md +134 -0
  2. package/dist/_shared/tokens.js +199 -0
  3. package/dist/_types/messages/BrandMessages.d.ts +15 -1
  4. package/dist/_types/messages/index.d.ts +1 -1
  5. package/dist/_types/molecules/ClockWidget/ClockWidget.d.ts +116 -0
  6. package/dist/_types/molecules/ClockWidget/clockDuration.d.ts +23 -0
  7. package/dist/_types/molecules/Heatmap/Heatmap.d.ts +101 -0
  8. package/dist/_types/molecules/Heatmap/heatmapScale.d.ts +39 -0
  9. package/dist/_types/molecules/RecurrenceField/RecurrenceField.d.ts +93 -0
  10. package/dist/_types/molecules/RecurrenceField/recurrenceRule.d.ts +62 -0
  11. package/dist/_types/molecules/Timeline/Timeline.d.ts +77 -0
  12. package/dist/_types/organisms/OrgChart/OrgChart.d.ts +104 -0
  13. package/dist/_types/organisms/PlanningGrid/PlanningGrid.d.ts +120 -0
  14. package/dist/_types/organisms/PlanningGrid/planningHours.d.ts +10 -0
  15. package/dist/_types/organisms/SiteSearch/SiteSearch.d.ts +170 -0
  16. package/dist/brand.css +472 -1
  17. package/dist/clock-widget.css +1 -0
  18. package/dist/clock-widget.js +126 -0
  19. package/dist/heatmap.css +1 -0
  20. package/dist/heatmap.js +104 -0
  21. package/dist/org-chart.css +1 -0
  22. package/dist/org-chart.js +122 -0
  23. package/dist/planning-grid.css +1 -0
  24. package/dist/planning-grid.js +167 -0
  25. package/dist/recurrence-field.css +1 -0
  26. package/dist/recurrence-field.js +185 -0
  27. package/dist/site-search.css +1 -0
  28. package/dist/site-search.js +161 -0
  29. package/dist/timeline.css +1 -0
  30. package/dist/timeline.js +57 -0
  31. package/dist/tokens.css +493 -1
  32. package/package.json +36 -1
  33. package/src/tokens/index.css +7 -0
  34. package/src/tokens/molecules/clock-widget.css +36 -0
  35. package/src/tokens/molecules/clock-widget.ts +7 -0
  36. package/src/tokens/molecules/heatmap.css +78 -0
  37. package/src/tokens/molecules/heatmap.ts +7 -0
  38. package/src/tokens/molecules/org-chart.css +59 -0
  39. package/src/tokens/molecules/org-chart.ts +7 -0
  40. package/src/tokens/molecules/planning-grid.css +58 -0
  41. package/src/tokens/molecules/planning-grid.ts +7 -0
  42. package/src/tokens/molecules/recurrence-field.css +21 -0
  43. package/src/tokens/molecules/recurrence-field.ts +7 -0
  44. package/src/tokens/molecules/site-search.css +59 -0
  45. package/src/tokens/molecules/site-search.ts +7 -0
  46. package/src/tokens/molecules/timeline.css +36 -0
  47. package/src/tokens/molecules/timeline.ts +7 -0
  48. package/src/tokens/scss/_index.legacy.scss +7 -0
  49. package/src/tokens/scss/_index.scss +7 -0
  50. package/src/tokens/scss/molecules/_clock-widget.scss +22 -0
  51. package/src/tokens/scss/molecules/_heatmap.scss +48 -0
  52. package/src/tokens/scss/molecules/_org-chart.scss +39 -0
  53. package/src/tokens/scss/molecules/_planning-grid.scss +36 -0
  54. package/src/tokens/scss/molecules/_recurrence-field.scss +11 -0
  55. package/src/tokens/scss/molecules/_site-search.scss +42 -0
  56. package/src/tokens/scss/molecules/_timeline.scss +22 -0
  57. package/src/tokens/surface-invert.css +64 -0
  58. package/src/tokens/surface-light.css +64 -0
  59. package/src/tokens/surface-public.css +10 -0
  60. package/src/tokens/tokens.json +199 -0
@@ -0,0 +1,185 @@
1
+ 'use client';
2
+ import './recurrence-field.css';
3
+ import { n as e } from "./_shared/brandmessagescontext.js";
4
+ import { Fieldset as t } from "./fieldset.js";
5
+ import { Toggle as n } from "./toggle.js";
6
+ import { ToggleGroup as r } from "./toggle-group.js";
7
+ import { SelectField as i } from "./select-field.js";
8
+ import { DatePickerField as a } from "./date-picker-field.js";
9
+ import { NumberInputField as o } from "./number-input-field.js";
10
+ import { useId as s, useMemo as c } from "react";
11
+ import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
12
+ //#region src/stories/molecules/RecurrenceField/recurrenceRule.ts
13
+ var f = [
14
+ "MO",
15
+ "TU",
16
+ "WE",
17
+ "TH",
18
+ "FR",
19
+ "SA",
20
+ "SU"
21
+ ], p = {
22
+ frequency: "weekly",
23
+ interval: 1,
24
+ weekdays: [],
25
+ end: { type: "never" }
26
+ }, m = [
27
+ "daily",
28
+ "weekly",
29
+ "monthly",
30
+ "yearly"
31
+ ], h = Date.UTC(2024, 0, 1);
32
+ function g({ value: g, onValueChange: _, id: v, legend: y, disabled: b, size: x, locale: S = "es-ES", weekStartsOn: C = "monday", minDate: w, maxDate: T, className: E, frequencyLabel: D, weekdaysLabel: O, endLabel: k }) {
33
+ let A = e("recurrenceField"), j = s(), M = v ?? j, N = c(() => {
34
+ let e = new Intl.DateTimeFormat(S, {
35
+ weekday: "short",
36
+ timeZone: "UTC"
37
+ }), t = new Intl.DateTimeFormat(S, {
38
+ weekday: "long",
39
+ timeZone: "UTC"
40
+ }), n = f.map((n, r) => {
41
+ let i = new Date(h + r * 864e5);
42
+ return {
43
+ key: n,
44
+ short: e.format(i),
45
+ long: t.format(i)
46
+ };
47
+ });
48
+ return C === "sunday" ? [n[6], ...n.slice(0, 6)] : n;
49
+ }, [S, C]), P = (e) => {
50
+ g && _({
51
+ ...g,
52
+ ...e
53
+ });
54
+ }, F = [{
55
+ value: "",
56
+ label: A("never")
57
+ }, ...m.map((e) => ({
58
+ value: e,
59
+ label: A(e)
60
+ }))], I = [
61
+ {
62
+ value: "never",
63
+ label: A("endNever")
64
+ },
65
+ {
66
+ value: "until",
67
+ label: A("endUntil")
68
+ },
69
+ {
70
+ value: "count",
71
+ label: A("endCount")
72
+ }
73
+ ], L = /* @__PURE__ */ d("div", {
74
+ className: ["recurrence-field", E].filter(Boolean).join(" "),
75
+ children: [/* @__PURE__ */ u(i, {
76
+ id: `${M}-frequency`,
77
+ label: A("frequency", D),
78
+ options: F,
79
+ value: g?.frequency ?? "",
80
+ disabled: b,
81
+ size: x,
82
+ onValueChange: (e) => {
83
+ if (!e) return _(null);
84
+ _({
85
+ ...g ?? p,
86
+ frequency: e
87
+ });
88
+ }
89
+ }), g ? /* @__PURE__ */ d(l, { children: [
90
+ /* @__PURE__ */ u("div", {
91
+ className: "recurrence-field__row",
92
+ children: /* @__PURE__ */ u(o, {
93
+ id: `${M}-interval`,
94
+ className: "recurrence-field__interval",
95
+ label: A("interval")(g.frequency),
96
+ value: g.interval,
97
+ min: 1,
98
+ max: 99,
99
+ disabled: b,
100
+ size: x,
101
+ onChange: (e) => P({ interval: Number.isFinite(e) ? Math.max(1, e) : 1 })
102
+ })
103
+ }),
104
+ g.frequency === "weekly" ? /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("span", {
105
+ className: "recurrence-field__weekdays-label",
106
+ id: `${M}-weekdays-label`,
107
+ children: A("weekdays", O)
108
+ }), /* @__PURE__ */ u(r, {
109
+ className: "recurrence-field__weekdays",
110
+ multiple: !0,
111
+ size: x,
112
+ value: g.weekdays,
113
+ "aria-labelledby": `${M}-weekdays-label`,
114
+ onValueChange: (e) => P({ weekdays: e }),
115
+ children: N.map((e) => /* @__PURE__ */ u(n, {
116
+ value: e.key,
117
+ "aria-label": e.long,
118
+ disabled: b,
119
+ children: e.short
120
+ }, e.key))
121
+ })] }) : null,
122
+ /* @__PURE__ */ d("div", {
123
+ className: "recurrence-field__row",
124
+ children: [
125
+ /* @__PURE__ */ u(i, {
126
+ id: `${M}-end`,
127
+ className: "recurrence-field__end",
128
+ label: A("end", k),
129
+ options: I,
130
+ value: g.end.type,
131
+ disabled: b,
132
+ size: x,
133
+ onValueChange: (e) => {
134
+ if (e === "until") return P({ end: {
135
+ type: "until",
136
+ date: null
137
+ } });
138
+ if (e === "count") return P({ end: {
139
+ type: "count",
140
+ count: 10
141
+ } });
142
+ P({ end: { type: "never" } });
143
+ }
144
+ }),
145
+ g.end.type === "until" ? /* @__PURE__ */ u(a, {
146
+ id: `${M}-until`,
147
+ className: "recurrence-field__end",
148
+ label: A("until"),
149
+ value: g.end.date,
150
+ locale: S,
151
+ minDate: w,
152
+ maxDate: T,
153
+ disabled: b,
154
+ size: x,
155
+ onChange: (e) => P({ end: {
156
+ type: "until",
157
+ date: e
158
+ } })
159
+ }) : null,
160
+ g.end.type === "count" ? /* @__PURE__ */ u(o, {
161
+ id: `${M}-count`,
162
+ className: "recurrence-field__end",
163
+ label: A("count"),
164
+ value: g.end.count,
165
+ min: 1,
166
+ max: 999,
167
+ disabled: b,
168
+ size: x,
169
+ onChange: (e) => P({ end: {
170
+ type: "count",
171
+ count: Number.isFinite(e) ? Math.max(1, e) : 1
172
+ } })
173
+ }) : null
174
+ ]
175
+ })
176
+ ] }) : null]
177
+ });
178
+ return y ? /* @__PURE__ */ u(t, {
179
+ legend: y,
180
+ disabled: b,
181
+ children: L
182
+ }) : L;
183
+ }
184
+ //#endregion
185
+ export { g as RecurrenceField };
@@ -0,0 +1 @@
1
+ .site-search{gap:var(--site-search-gap);flex-direction:column;display:flex}.site-search__form{align-items:flex-end;gap:var(--site-search-form-gap);flex-wrap:wrap;display:flex}.site-search__field{flex:1 1 var(--site-search-field-basis);min-inline-size:0}.site-search__submit{flex:none}.site-search__status{align-items:center;gap:var(--site-search-status-gap);font-size:var(--site-search-status-font-size);line-height:var(--site-search-status-line-height);color:var(--site-search-status-color);margin-block:0;margin-inline:0;display:flex}.site-search__status-text{overflow-wrap:anywhere;min-inline-size:0}.site-search__suggestions{gap:var(--site-search-suggestions-gap);flex-direction:column;display:flex}.site-search__suggestions-label{font-size:var(--site-search-suggestions-label-font-size);color:var(--site-search-suggestions-label-color)}.site-search__suggestions-list{gap:var(--site-search-suggestions-gap);flex-wrap:wrap;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;list-style:none;display:flex}.site-search__loading{gap:var(--site-search-results-gap);flex-direction:column;display:flex}.site-search__ghost{gap:var(--site-search-skeleton-gap);flex-direction:column;display:flex}.site-search__ghost-section{inline-size:var(--site-search-ghost-section-inline-size)}.site-search__ghost-title{inline-size:var(--site-search-ghost-title-inline-size)}.site-search__ghost-url{inline-size:var(--site-search-ghost-url-inline-size)}.site-search__results{gap:var(--site-search-results-gap);flex-direction:column;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;list-style:none;display:flex}.site-search__result{gap:var(--site-search-result-gap);flex-direction:column;display:flex}.site-search__result+.site-search__result{border-block-start:var(--site-search-result-separator-width) solid var(--site-search-result-separator-color);padding-block-start:var(--site-search-result-padding-block)}.site-search__result-section,.site-search__result-excerpt,.site-search__result-url{margin-block:0;margin-inline:0}.site-search__result-section{font-size:var(--site-search-result-section-font-size);color:var(--site-search-result-section-color)}.site-search__result-title{font-size:var(--site-search-result-title-font-size);font-weight:var(--site-search-result-title-font-weight);color:var(--site-search-result-title-color);margin-block:0;margin-inline:0}.site-search .site-search__result-link{box-shadow:none;color:inherit;padding-block-end:0}.site-search .site-search__result-link:hover{box-shadow:inset 0 calc(-1 * var(--site-search-result-link-hover-line-width)) 0 0 currentColor;padding-block-end:var(--site-search-result-link-hover-line-offset)}.site-search .site-search__result-link:focus-visible{outline:var(--site-search-result-focus-ring-width) solid var(--site-search-result-focus-ring-color);outline-offset:var(--site-search-result-focus-ring-offset)}.site-search__result-excerpt{font-size:var(--site-search-result-excerpt-font-size);line-height:var(--site-search-result-excerpt-line-height);color:var(--site-search-result-excerpt-color);max-inline-size:var(--site-search-result-measure);overflow-wrap:anywhere}.site-search__result-excerpt mark{background-color:var(--site-search-result-mark-bg);color:var(--site-search-result-mark-color)}.site-search__result-url{font-size:var(--site-search-result-url-font-size);color:var(--site-search-result-url-color);overflow-wrap:anywhere}
@@ -0,0 +1,161 @@
1
+ 'use client';
2
+ import './site-search.css';
3
+ import { n as e } from "./_shared/brandmessagescontext.js";
4
+ import { Spinner as t } from "./spinner.js";
5
+ import { Button as n } from "./button.js";
6
+ import { Skeleton as r } from "./skeleton.js";
7
+ import { Alert as i } from "./alert.js";
8
+ import { InputField as a } from "./input-field.js";
9
+ import { EmptyState as o } from "./empty-state.js";
10
+ import { forwardRef as s, useId as c } from "react";
11
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
12
+ //#region src/stories/organisms/SiteSearch/SiteSearch.tsx
13
+ function d(e) {
14
+ return /* @__PURE__ */ l("a", { ...e });
15
+ }
16
+ var f = s(function({ query: s, onQueryChange: f, onSubmit: p, action: m, name: h = "q", status: g = "idle", results: _ = [], total: v, minLength: y = 2, suggestions: b, onSuggestionSelect: x, onRetry: S, toolbar: C, footer: w, headingLevel: T = 2, size: E, loadingRows: D = 3, onSelect: O, renderLink: k = d, label: A, labelHidden: j = !0, placeholder: M, submitLabel: N, resultsLabel: P, className: F, id: I, ...L }, R) {
17
+ let z = e("siteSearch"), B = c(), V = I ?? B, H = `${V}-input`, U = `${V}-status`, W = `${V}-results`, G = `h${T}`, K = s.trim(), q = v ?? _.length, J = g === "ready" && _.length > 0, Y = g === "idle" ? z("idle") : g === "typing" ? K.length < y ? z("minLength")(y) : z("pending") : g === "loading" ? z("loading") : g === "error" ? null : z("results")(q, K);
18
+ function X(e) {
19
+ if (p) {
20
+ e.preventDefault(), K && p(K);
21
+ return;
22
+ }
23
+ K || e.preventDefault();
24
+ }
25
+ return /* @__PURE__ */ u("div", {
26
+ className: ["site-search", F].filter(Boolean).join(" "),
27
+ ...L,
28
+ children: [
29
+ /* @__PURE__ */ u("form", {
30
+ className: "site-search__form",
31
+ role: "search",
32
+ "aria-label": z("label", A),
33
+ action: m,
34
+ method: "get",
35
+ onSubmit: X,
36
+ children: [/* @__PURE__ */ l(a, {
37
+ ref: R,
38
+ className: "site-search__field",
39
+ id: H,
40
+ name: h,
41
+ kind: "search",
42
+ clearable: !0,
43
+ label: z("label", A),
44
+ labelHidden: j,
45
+ placeholder: z("placeholder", M),
46
+ value: s,
47
+ onChange: (e) => f(e.target.value),
48
+ onClear: () => f(""),
49
+ "aria-describedby": U,
50
+ ...J ? { "aria-controls": W } : {},
51
+ ...E ? { size: E } : {}
52
+ }), /* @__PURE__ */ l(n, {
53
+ className: "site-search__submit",
54
+ type: "submit",
55
+ ...E ? { size: E } : {},
56
+ children: z("submit", N)
57
+ })]
58
+ }),
59
+ C ? /* @__PURE__ */ l("div", {
60
+ className: "site-search__toolbar",
61
+ children: C
62
+ }) : null,
63
+ /* @__PURE__ */ u("p", {
64
+ className: "site-search__status",
65
+ id: U,
66
+ role: "status",
67
+ "aria-live": "polite",
68
+ children: [g === "loading" ? /* @__PURE__ */ l(t, {
69
+ size: "sm",
70
+ "aria-hidden": !0
71
+ }) : null, /* @__PURE__ */ l("span", {
72
+ className: "site-search__status-text",
73
+ children: Y
74
+ })]
75
+ }),
76
+ g === "idle" && b && b.length > 0 && x ? /* @__PURE__ */ u("div", {
77
+ className: "site-search__suggestions",
78
+ children: [/* @__PURE__ */ l("span", {
79
+ className: "site-search__suggestions-label",
80
+ id: `${V}-suggestions`,
81
+ children: z("suggestionsLabel")
82
+ }), /* @__PURE__ */ l("ul", {
83
+ className: "site-search__suggestions-list",
84
+ "aria-labelledby": `${V}-suggestions`,
85
+ children: b.map((e) => /* @__PURE__ */ l("li", { children: /* @__PURE__ */ l(n, {
86
+ variant: "outline",
87
+ size: "sm",
88
+ onClick: () => x(e),
89
+ children: e
90
+ }) }, e))
91
+ })]
92
+ }) : null,
93
+ g === "loading" ? /* @__PURE__ */ l("div", {
94
+ className: "site-search__loading",
95
+ "aria-hidden": !0,
96
+ children: Array.from({ length: D }, (e, t) => /* @__PURE__ */ u("div", {
97
+ className: "site-search__ghost",
98
+ children: [
99
+ /* @__PURE__ */ l(r, { className: "site-search__ghost-section" }),
100
+ /* @__PURE__ */ l(r, { className: "site-search__ghost-title" }),
101
+ /* @__PURE__ */ l(r, {}),
102
+ /* @__PURE__ */ l(r, { className: "site-search__ghost-url" })
103
+ ]
104
+ }, t))
105
+ }) : null,
106
+ J ? /* @__PURE__ */ l("ol", {
107
+ className: "site-search__results",
108
+ id: W,
109
+ "aria-label": z("resultsLabel", P),
110
+ children: _.map((e) => /* @__PURE__ */ u("li", {
111
+ className: "site-search__result",
112
+ children: [
113
+ e.section ? /* @__PURE__ */ l("p", {
114
+ className: "site-search__result-section",
115
+ children: e.section
116
+ }) : null,
117
+ /* @__PURE__ */ l(G, {
118
+ className: "site-search__result-title",
119
+ children: k({
120
+ href: e.href,
121
+ className: "site-search__result-link",
122
+ children: e.title,
123
+ onClick: () => O?.(e)
124
+ })
125
+ }),
126
+ e.excerpt ? /* @__PURE__ */ l("p", {
127
+ className: "site-search__result-excerpt",
128
+ children: e.excerpt
129
+ }) : null,
130
+ e.displayUrl ? /* @__PURE__ */ l("p", {
131
+ className: "site-search__result-url",
132
+ children: e.displayUrl
133
+ }) : null
134
+ ]
135
+ }, e.href))
136
+ }) : null,
137
+ g === "ready" && _.length === 0 ? /* @__PURE__ */ l(o, {
138
+ className: "site-search__empty",
139
+ title: z("emptyTitle"),
140
+ description: z("emptyDescription")
141
+ }) : null,
142
+ g === "error" ? /* @__PURE__ */ l(i, {
143
+ className: "site-search__error",
144
+ variant: "error",
145
+ title: z("errorTitle"),
146
+ description: z("errorDescription"),
147
+ actions: S ? /* @__PURE__ */ l(n, {
148
+ variant: "outline",
149
+ onClick: S,
150
+ children: z("retry")
151
+ }) : void 0
152
+ }) : null,
153
+ w && J ? /* @__PURE__ */ l("div", {
154
+ className: "site-search__footer",
155
+ children: w
156
+ }) : null
157
+ ]
158
+ });
159
+ });
160
+ //#endregion
161
+ export { f as SiteSearch };
@@ -0,0 +1 @@
1
+ .timeline{font-family:var(--timeline-font-family);margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;list-style:none}.timeline__item{column-gap:var(--timeline-column-gap);grid-template-columns:auto 1fr;display:grid}.timeline__item:not(:last-child) .timeline__body{padding-block-end:var(--timeline-gap)}.timeline__marker{align-items:center;gap:var(--timeline-rail-gap);flex-direction:column;display:flex}.timeline__rail{inline-size:var(--timeline-rail-width);min-block-size:var(--timeline-gap);background-color:var(--timeline-rail-color);flex:auto}.timeline__body{gap:var(--timeline-body-gap);flex-direction:column;min-inline-size:0;display:flex}.timeline__title{font-size:var(--timeline-title-font-size);font-weight:var(--timeline-title-font-weight);line-height:var(--timeline-title-line-height);color:var(--timeline-title-color);margin-block:0}.timeline__meta{align-items:baseline;gap:var(--timeline-meta-gap);font-size:var(--timeline-meta-font-size);color:var(--timeline-meta-color);flex-wrap:wrap;margin-block:0;display:flex}.timeline__date+.timeline__author:before{content:"·";color:var(--timeline-meta-separator-color);margin-inline-end:var(--timeline-meta-gap)}.timeline__note{font-size:var(--timeline-note-font-size);line-height:var(--timeline-note-line-height);color:var(--timeline-note-color);margin-block:0}.timeline__actions{margin-block-start:var(--timeline-actions-margin-block-start)}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import './timeline.css';
3
+ import { n as e } from "./_shared/brandmessagescontext.js";
4
+ import { VisuallyHidden as t } from "./visually-hidden.js";
5
+ import { StepMarker as n } from "./step-marker.js";
6
+ import { forwardRef as r } from "react";
7
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
8
+ //#region src/stories/molecules/Timeline/Timeline.tsx
9
+ var o = r(function({ items: r, label: o, currentLabel: s, markerSize: c = "sm", className: l, ...u }, d) {
10
+ let f = e("timeline");
11
+ return /* @__PURE__ */ i("ol", {
12
+ ref: d,
13
+ className: ["timeline", l].filter(Boolean).join(" "),
14
+ "aria-label": f("label", o),
15
+ ...u,
16
+ children: r.map((e, o) => /* @__PURE__ */ a("li", {
17
+ className: "timeline__item",
18
+ children: [/* @__PURE__ */ a("span", {
19
+ className: "timeline__marker",
20
+ children: [/* @__PURE__ */ i(n, {
21
+ state: e.current ? "current" : "neutral",
22
+ tone: e.tone ?? "neutral",
23
+ size: c,
24
+ icon: e.icon ?? "dot"
25
+ }), o < r.length - 1 ? /* @__PURE__ */ i("span", { className: "timeline__rail" }) : null]
26
+ }), /* @__PURE__ */ a("div", {
27
+ className: "timeline__body",
28
+ children: [
29
+ /* @__PURE__ */ a("p", {
30
+ className: "timeline__title",
31
+ children: [e.title, e.current ? /* @__PURE__ */ i(t, { children: ` (${f("current", s)})` }) : null]
32
+ }),
33
+ e.date || e.author ? /* @__PURE__ */ a("p", {
34
+ className: "timeline__meta",
35
+ children: [e.date ? /* @__PURE__ */ i("span", {
36
+ className: "timeline__date",
37
+ children: e.date
38
+ }) : null, e.author ? /* @__PURE__ */ i("span", {
39
+ className: "timeline__author",
40
+ children: e.author
41
+ }) : null]
42
+ }) : null,
43
+ e.note ? /* @__PURE__ */ i("p", {
44
+ className: "timeline__note",
45
+ children: e.note
46
+ }) : null,
47
+ e.actions ? /* @__PURE__ */ i("div", {
48
+ className: "timeline__actions",
49
+ children: e.actions
50
+ }) : null
51
+ ]
52
+ })]
53
+ }, e.id))
54
+ });
55
+ });
56
+ //#endregion
57
+ export { o as Timeline };