@studiolxd/brand 49.12.0 → 49.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.
@@ -7,44 +7,50 @@ import { InputField as r } from "./input-field.js";
7
7
  import { forwardRef as i, useId as a } from "react";
8
8
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
9
9
  //#region src/stories/molecules/SearchForm/SearchForm.tsx
10
- var c = i(function({ id: i, name: c = "q", value: l, defaultValue: u, onChange: d, onSubmit: f, action: p, method: m = "get", label: h, labelHidden: g = !0, placeholder: _, submitLabel: v, size: y, disabled: b }, x) {
11
- let S = e("searchForm"), C = n(y === "xl" ? void 0 : y), w = y === "xl" ? "xl" : C, T = w === "xl" ? "lg" : w, E = a(), D = i ?? E;
12
- function O(e) {
13
- let t = String(new FormData(e.currentTarget).get(c) ?? "").trim();
14
- if (f) {
15
- e.preventDefault(), t && f(t);
10
+ var c = i(function({ id: i, className: c, name: l = "q", value: u, defaultValue: d, onChange: f, onSubmit: p, action: m, method: h = "get", label: g, labelHidden: _ = !0, placeholder: v, submitLabel: y, size: b, disabled: x, describedBy: S, controls: C }, w) {
11
+ let T = e("searchForm"), E = n(b === "xl" ? void 0 : b), D = b === "xl" ? "xl" : E, O = D === "xl" ? "lg" : D, k = a(), A = i ?? k;
12
+ function j(e) {
13
+ let t = String(new FormData(e.currentTarget).get(l) ?? "").trim();
14
+ if (p) {
15
+ e.preventDefault(), t && p(t);
16
16
  return;
17
17
  }
18
18
  t || e.preventDefault();
19
19
  }
20
20
  return /* @__PURE__ */ s("form", {
21
- className: ["search-form", w === "md" ? "" : `search-form--${w}`].filter(Boolean).join(" "),
21
+ className: [
22
+ "search-form",
23
+ D === "md" ? "" : `search-form--${D}`,
24
+ c
25
+ ].filter(Boolean).join(" "),
22
26
  role: "search",
23
- "aria-label": S("label", h),
24
- action: p,
25
- method: m,
26
- onSubmit: O,
27
+ "aria-label": T("label", g),
28
+ action: m,
29
+ method: h,
30
+ onSubmit: j,
27
31
  children: [/* @__PURE__ */ o(r, {
28
- ref: x,
32
+ ref: w,
29
33
  className: "search-form__field",
30
- id: D,
31
- name: c,
32
- label: S("label", h),
33
- labelHidden: g,
34
+ id: A,
35
+ name: l,
36
+ label: T("label", g),
37
+ labelHidden: _,
34
38
  type: "text",
35
39
  autoComplete: "off",
36
40
  enterKeyHint: "search",
37
- placeholder: S("placeholder", _),
38
- value: l,
39
- defaultValue: u,
40
- disabled: b,
41
- size: T,
42
- onChange: d
41
+ placeholder: T("placeholder", v),
42
+ value: u,
43
+ defaultValue: d,
44
+ disabled: x,
45
+ size: O,
46
+ onChange: f,
47
+ "aria-describedby": S,
48
+ ...C ? { "aria-controls": C } : {}
43
49
  }), /* @__PURE__ */ o("button", {
44
50
  className: "search-form__submit",
45
51
  type: "submit",
46
- disabled: b,
47
- "aria-label": S("submit", v),
52
+ disabled: x,
53
+ "aria-label": T("submit", y),
48
54
  children: /* @__PURE__ */ o(t, {
49
55
  name: "arrow",
50
56
  className: "search-form__submit-glyph"
@@ -0,0 +1 @@
1
+ .site-search{gap:var(--site-search-gap);inline-size:var(--site-search-inline-size);flex-direction:column;display:flex}.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-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);line-height:var(--site-search-result-section-line-height);color:var(--site-search-result-section-color)}.site-search__result-title{font-size:var(--site-search-result-title-font-size);line-height:var(--site-search-result-title-line-height);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);line-height:var(--site-search-result-url-line-height);color:var(--site-search-result-url-color);overflow-wrap:anywhere}
@@ -0,0 +1,141 @@
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 { EmptyState as a } from "./empty-state.js";
9
+ import { SearchForm as o } from "./search-form.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
+ return /* @__PURE__ */ u("div", {
19
+ className: ["site-search", F].filter(Boolean).join(" "),
20
+ ...L,
21
+ children: [
22
+ /* @__PURE__ */ l(o, {
23
+ ref: R,
24
+ className: "site-search__form",
25
+ id: H,
26
+ name: h,
27
+ label: z("label", A),
28
+ labelHidden: j,
29
+ placeholder: z("placeholder", M),
30
+ submitLabel: z("submit", N),
31
+ value: s,
32
+ onChange: (e) => f(e.target.value),
33
+ ...p ? { onSubmit: p } : {},
34
+ action: m,
35
+ describedBy: U,
36
+ ...J ? { controls: W } : {},
37
+ ...E ? { size: E } : {}
38
+ }),
39
+ C ? /* @__PURE__ */ l("div", {
40
+ className: "site-search__toolbar",
41
+ children: C
42
+ }) : null,
43
+ /* @__PURE__ */ u("p", {
44
+ className: "site-search__status",
45
+ id: U,
46
+ role: "status",
47
+ "aria-live": "polite",
48
+ children: [g === "loading" ? /* @__PURE__ */ l(t, {
49
+ size: "sm",
50
+ "aria-hidden": !0
51
+ }) : null, /* @__PURE__ */ l("span", {
52
+ className: "site-search__status-text",
53
+ children: Y
54
+ })]
55
+ }),
56
+ g === "idle" && b && b.length > 0 && x ? /* @__PURE__ */ u("div", {
57
+ className: "site-search__suggestions",
58
+ children: [/* @__PURE__ */ l("span", {
59
+ className: "site-search__suggestions-label",
60
+ id: `${V}-suggestions`,
61
+ children: z("suggestionsLabel")
62
+ }), /* @__PURE__ */ l("ul", {
63
+ className: "site-search__suggestions-list",
64
+ "aria-labelledby": `${V}-suggestions`,
65
+ children: b.map((e) => /* @__PURE__ */ l("li", { children: /* @__PURE__ */ l(n, {
66
+ variant: "outline",
67
+ size: "sm",
68
+ onClick: () => x(e),
69
+ children: e
70
+ }) }, e))
71
+ })]
72
+ }) : null,
73
+ g === "loading" ? /* @__PURE__ */ l("div", {
74
+ className: "site-search__loading",
75
+ "aria-hidden": !0,
76
+ children: Array.from({ length: D }, (e, t) => /* @__PURE__ */ u("div", {
77
+ className: "site-search__ghost",
78
+ children: [
79
+ /* @__PURE__ */ l(r, { className: "site-search__ghost-section" }),
80
+ /* @__PURE__ */ l(r, { className: "site-search__ghost-title" }),
81
+ /* @__PURE__ */ l(r, {}),
82
+ /* @__PURE__ */ l(r, { className: "site-search__ghost-url" })
83
+ ]
84
+ }, t))
85
+ }) : null,
86
+ J ? /* @__PURE__ */ l("ol", {
87
+ className: "site-search__results",
88
+ id: W,
89
+ "aria-label": z("resultsLabel", P),
90
+ children: _.map((e) => /* @__PURE__ */ u("li", {
91
+ className: "site-search__result",
92
+ children: [
93
+ e.section ? /* @__PURE__ */ l("p", {
94
+ className: "site-search__result-section",
95
+ children: e.section
96
+ }) : null,
97
+ /* @__PURE__ */ l(G, {
98
+ className: "site-search__result-title",
99
+ children: k({
100
+ href: e.href,
101
+ className: "site-search__result-link",
102
+ children: e.title,
103
+ onClick: () => O?.(e)
104
+ })
105
+ }),
106
+ e.excerpt ? /* @__PURE__ */ l("p", {
107
+ className: "site-search__result-excerpt",
108
+ children: e.excerpt
109
+ }) : null,
110
+ e.displayUrl ? /* @__PURE__ */ l("p", {
111
+ className: "site-search__result-url",
112
+ children: e.displayUrl
113
+ }) : null
114
+ ]
115
+ }, e.href))
116
+ }) : null,
117
+ g === "ready" && _.length === 0 ? /* @__PURE__ */ l(a, {
118
+ className: "site-search__empty",
119
+ title: z("emptyTitle"),
120
+ description: z("emptyDescription")
121
+ }) : null,
122
+ g === "error" ? /* @__PURE__ */ l(i, {
123
+ className: "site-search__error",
124
+ variant: "error",
125
+ title: z("errorTitle"),
126
+ description: z("errorDescription"),
127
+ actions: S ? /* @__PURE__ */ l(n, {
128
+ variant: "outline",
129
+ onClick: S,
130
+ children: z("retry")
131
+ }) : void 0
132
+ }) : null,
133
+ w && J ? /* @__PURE__ */ l("div", {
134
+ className: "site-search__footer",
135
+ children: w
136
+ }) : null
137
+ ]
138
+ });
139
+ });
140
+ //#endregion
141
+ export { f as SiteSearch };