@selectwin/kit 0.1.195 → 0.1.197

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.
package/README.md CHANGED
@@ -1,47 +1,52 @@
1
- # @selectwin/kit
2
-
3
- Design system da Selectwin — primitivos React, charts SVG (sem dependência de biblioteca de
4
- gráficos) e tokens CSS, theme-aware (light/dark).
5
-
6
- Uso interno da Selectwin. Publicado no npm para facilitar a distribuição entre os apps da casa;
7
- não há suporte, documentação pública nem garantia de estabilidade de API para terceiros.
8
-
9
- ## Uso
10
-
11
- ```bash
12
- npm i @selectwin/kit
13
- ```
14
-
15
- ```tsx
16
- import '@selectwin/kit/styles.css'; // tokens + estilos (uma vez, no root)
17
- import { SelectButton, SelectSection } from '@selectwin/kit';
18
- ```
19
-
20
- Idioma (0.1.187): os textos próprios do kit ("Página anterior", "Mais filtros", "Fechar"…) e os números que ele
21
- formata saem em português. Para inglês, envolva o app no `SelectLocaleProvider`:
22
-
23
- ```tsx
24
- import { SelectLocaleProvider } from '@selectwin/kit';
25
-
26
- <SelectLocaleProvider locale="en">{app}</SelectLocaleProvider>; // 'pt-BR' | 'en'
27
- ```
28
-
29
- A prop de texto do componente (`confirmLabel`, `noun`…) sempre ganha do dicionário.
30
-
31
- Tom corporativo (0.1.188; arredondado suave no botão desde a 0.1.192, em tudo desde a 0.1.193 e bem suave desde a
32
- 0.1.195): campo e botão com 1rem (`--select-radius`, `--select-radius-button`), card 1.5rem, caixa de dentro e menu
33
- 1rem, item de menu 0.75rem (`--select-radius-sm`); pílula só em selo. Rótulos de KPI
34
- e cabeçalho de tabela em caixa-alta espaçada. Nos gráficos, cor é situação: verde `--select-chart-paid` = pago, dourado
35
- `--select-chart-pending` (+ `-edge`) = pendente, `--select-chart-compare` = o período anterior, e os cinzas
36
- `--select-chart-ramp-1..4` para categoria. O app que quer o visual antigo sobrescreve esses tokens.
37
-
38
- Peer deps: **react**, **react-dom** (obrigatórios); **gsap** (opcional — só componentes animados),
39
- **react-router-dom** (opcional). Tematização = sobrescrever os tokens CSS `--select-*` / `--sw-*`.
40
-
41
- ## Build
42
-
43
- ```bash
44
- npm run build # → dist/index.js (ESM) + dist/style.css + dist/index.d.ts
45
- ```
46
-
47
- `npm publish` roda `prepublishOnly` (= build) e publica só `dist/` (sem sourcemaps).
1
+ # @selectwin/kit
2
+
3
+ Design system da Selectwin — primitivos React, charts SVG (sem dependência de biblioteca de
4
+ gráficos) e tokens CSS, theme-aware (light/dark).
5
+
6
+ Uso interno da Selectwin. Publicado no npm para facilitar a distribuição entre os apps da casa;
7
+ não há suporte, documentação pública nem garantia de estabilidade de API para terceiros.
8
+
9
+ ## Uso
10
+
11
+ ```bash
12
+ npm i @selectwin/kit
13
+ ```
14
+
15
+ ```tsx
16
+ import '@selectwin/kit/styles.css'; // tokens + estilos (uma vez, no root)
17
+ import { SelectButton, SelectSection } from '@selectwin/kit';
18
+ ```
19
+
20
+ Idioma (0.1.187): os textos próprios do kit ("Página anterior", "Mais filtros", "Fechar"…) e os números que ele
21
+ formata saem em português. Para inglês, envolva o app no `SelectLocaleProvider`:
22
+
23
+ ```tsx
24
+ import { SelectLocaleProvider } from '@selectwin/kit';
25
+
26
+ <SelectLocaleProvider locale="en">{app}</SelectLocaleProvider>; // 'pt-BR' | 'en'
27
+ ```
28
+
29
+ A prop de texto do componente (`confirmLabel`, `noun`…) sempre ganha do dicionário.
30
+
31
+ Tom corporativo (0.1.188; arredondado suave no botão desde a 0.1.192, em tudo desde a 0.1.193 e bem suave desde a
32
+ 0.1.195): campo e botão com 1rem (`--select-radius`, `--select-radius-button`), card 1.5rem, caixa de dentro e menu
33
+ 1rem, item de menu 0.75rem (`--select-radius-sm`); pílula só em selo. Rótulos de KPI
34
+ e cabeçalho de tabela em caixa-alta espaçada. Nos gráficos, cor é situação: verde `--select-chart-paid` = pago, dourado
35
+ `--select-chart-pending` (+ `-edge`) = pendente, `--select-chart-compare` = o período anterior, e os cinzas
36
+ `--select-chart-ramp-1..4` para categoria. O app que quer o visual antigo sobrescreve esses tokens.
37
+
38
+ O card mostra o dado; a explicação vai no tooltip (0.1.196). O "i" `help` está no `SelectSection`, no
39
+ `SelectDataTable`, no `SelectChartCard`, no `SelectKpiCard`, no `SelectListCard`, em cada número do `SelectMiniStats` e
40
+ em cada balde do `SelectBalanceCard`. Na `SelectShareBar`, cada faixa tem o seu tooltip, e a nota da parte vai em
41
+ `tip`; o que o clique faz vai em `selectHint`/`clearHint`, no lugar da linha `hint`.
42
+
43
+ Peer deps: **react**, **react-dom** (obrigatórios); **gsap** (opcional — só componentes animados),
44
+ **react-router-dom** (opcional). Tematização = sobrescrever os tokens CSS `--select-*` / `--sw-*`.
45
+
46
+ ## Build
47
+
48
+ ```bash
49
+ npm run build # → dist/index.js (ESM) + dist/style.css + dist/index.d.ts
50
+ ```
51
+
52
+ `npm publish` roda `prepublishOnly` (= build) e publica só `dist/` (sem sourcemaps).
@@ -4,8 +4,10 @@ export interface SelectBalanceBucket {
4
4
  cents: number | string | null | undefined;
5
5
  /** Optional icon embedded in the bucket's mini-card. */
6
6
  icon?: ReactNode;
7
- /** One line of context under the amount (hero tiles only) — "Entra no disponível nos próximos dias". */
7
+ /** One line of context under the amount (hero tiles only) — a DADO ("Nada retido agora"), não a definição. */
8
8
  hint?: ReactNode;
9
+ /** O "i" ao lado do rótulo (0.1.196): o que o balde é ("Vira disponível no prazo de cada venda"). */
10
+ help?: ReactNode;
9
11
  }
10
12
  /** One context number on the hero's strip ("Entra nos próximos 7 dias", "Último saque · 23/09"). */
11
13
  export interface SelectBalanceMeta {
@@ -20,6 +22,9 @@ export interface SelectBalanceMeta {
20
22
  export interface SelectBalanceCardProps {
21
23
  availableCents: number | string | null | undefined;
22
24
  availableLabel?: string;
25
+ /** hero: o "i" ao lado do rótulo do saldo (0.1.197) — "Os próximos recebíveis abatem sozinhos" sob o saldo devedor.
26
+ * A explicação não ocupa a linha do "Atualizado…" (dono, 03/11/2026: a explicação vai no tooltip). */
27
+ availableHelp?: ReactNode;
23
28
  /** Period-over-period variation of the available balance (percentage). `card` only. */
24
29
  delta?: number | null;
25
30
  buckets?: SelectBalanceBucket[];
@@ -1,6 +1,11 @@
1
1
  import { ReactNode, ComponentPropsWithoutRef } from 'react';
2
2
  type SelectListCardOwnProps = {
3
3
  title?: ReactNode;
4
+ /**
5
+ * O "i" ao lado do título (0.1.196), como o do `SelectSection`: a explicação do card mora aqui, não numa linha do
6
+ * corpo nem na descrição (dono, 03/11/2026 — o card mostra o dado).
7
+ */
8
+ help?: ReactNode;
4
9
  description?: ReactNode;
5
10
  /** Right-aligned action in the header (e.g. an "Add" button). */
6
11
  headerAction?: ReactNode;
@@ -3,8 +3,10 @@ export interface SelectMiniStat {
3
3
  key?: string;
4
4
  label: ReactNode;
5
5
  value: ReactNode;
6
- /** Linha de apoio sob o número ("398 de 1.284", "mediana entre compras"). */
6
+ /** Linha de apoio sob o número — DADO ("398 de 1.284"). A definição do número vai em `help`. */
7
7
  hint?: ReactNode;
8
+ /** O "i" ao lado do rótulo (0.1.196): como o número é contado ("mediana entre compras"). Não vira linha no card. */
9
+ help?: ReactNode;
8
10
  }
9
11
  type SelectMiniStatsOwnProps = {
10
12
  items: SelectMiniStat[];
@@ -10,6 +10,8 @@ export interface SelectShareItem {
10
10
  valueText?: ReactNode;
11
11
  /** Na legenda em fichas: o número em negrito ao lado do rótulo (a contagem). */
12
12
  count?: ReactNode;
13
+ /** A nota da parte, no tooltip da faixa e da ficha (0.1.196): "Inclui 203 Pix vencidos…". Nunca uma linha no card. */
14
+ tip?: ReactNode;
13
15
  }
14
16
  type SelectShareBarOwnProps = {
15
17
  items: SelectShareItem[];
@@ -23,9 +25,13 @@ type SelectShareBarOwnProps = {
23
25
  onSelect?: (key: string) => void;
24
26
  /** A parte escolhida (as outras esmaecem). */
25
27
  selected?: string | null;
26
- /** Linha discreta sob a legenda. */
28
+ /** Linha discreta sob a legenda. Prefira o tooltip: a explicação vai no `tip` da parte e o clique em `selectHint`. */
27
29
  hint?: ReactNode;
30
+ /** Com `onSelect`, a última linha do tooltip de cada faixa e ficha (0.1.196). Padrão: "Clique para filtrar." */
31
+ selectHint?: ReactNode;
32
+ /** A mesma linha na parte escolhida. Padrão: "Clique de novo para ver todas." */
33
+ clearHint?: ReactNode;
28
34
  };
29
35
  export type SelectShareBarProps = SelectShareBarOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectShareBarOwnProps>;
30
- export declare function SelectShareBar({ items, label, aside, legend, size, onSelect, selected, hint, className, ...rest }: SelectShareBarProps): import("react").JSX.Element | null;
36
+ export declare function SelectShareBar({ items, label, aside, legend, size, onSelect, selected, hint, selectHint, clearHint, className, ...rest }: SelectShareBarProps): import("react").JSX.Element | null;
31
37
  export {};
package/dist/index.js CHANGED
@@ -12715,19 +12715,19 @@ var Mu = "allow-scripts allow-same-origin allow-forms", Nu = 390, Pu = 1280, Fu
12715
12715
  })
12716
12716
  })]
12717
12717
  });
12718
- }), Iu = r(function({ availableCents: e, availableLabel: t = "Saldo disponível", delta: n, buckets: r = [], action: i, variant: a = "card", updatedLabel: o, meta: s = [], status: c, loading: l = !1, className: u, ...d }, f) {
12719
- if (a === "hero") {
12720
- let n = (e, t = "1em") => /* @__PURE__ */ v("span", {
12718
+ }), Iu = r(function({ availableCents: e, availableLabel: t = "Saldo disponível", availableHelp: n, delta: r, buckets: i = [], action: a, variant: o = "card", updatedLabel: s, meta: c = [], status: l, loading: u = !1, className: d, ...f }, p) {
12719
+ if (o === "hero") {
12720
+ let r = (e, t = "1em") => /* @__PURE__ */ v("span", {
12721
12721
  className: "select-skeleton select-balance__skel",
12722
12722
  style: {
12723
12723
  width: e,
12724
12724
  height: t
12725
12725
  }
12726
- }), a = (e) => e == null || e === "" ? "—" : /* @__PURE__ */ v(Gl, { cents: e });
12726
+ }), o = (e) => e == null || e === "" ? "—" : /* @__PURE__ */ v(Gl, { cents: e });
12727
12727
  return /* @__PURE__ */ v("div", {
12728
- ref: f,
12729
- ...d,
12730
- className: `select-balance-hero${u ? " " + u : ""}`,
12728
+ ref: p,
12729
+ ...f,
12730
+ className: `select-balance-hero${d ? " " + d : ""}`,
12731
12731
  children: /* @__PURE__ */ y("div", {
12732
12732
  className: "select-balance-hero__layout",
12733
12733
  children: [/* @__PURE__ */ y("section", {
@@ -12737,64 +12737,74 @@ var Mu = "allow-scripts allow-same-origin allow-forms", Nu = 390, Pu = 1280, Fu
12737
12737
  /* @__PURE__ */ y("div", {
12738
12738
  className: "select-balance-hero__top",
12739
12739
  children: [
12740
- /* @__PURE__ */ v("span", {
12741
- className: "select-balance-hero__label",
12742
- children: t
12740
+ /* @__PURE__ */ y("span", {
12741
+ className: `select-balance-hero__label${n == null ? "" : " select-balance-hero__label--help"}`,
12742
+ children: [t, n != null && /* @__PURE__ */ v(Mn, {
12743
+ content: n,
12744
+ label: `Sobre ${t}`
12745
+ })]
12743
12746
  }),
12744
12747
  /* @__PURE__ */ v("span", {
12745
12748
  className: "select-balance-hero__amount",
12746
- children: l ? n("11ch", "0.9em") : a(e)
12749
+ children: u ? r("11ch", "0.9em") : o(e)
12747
12750
  }),
12748
- o != null && !l && /* @__PURE__ */ y("span", {
12751
+ s != null && !u && /* @__PURE__ */ y("span", {
12749
12752
  className: "select-balance-hero__updated",
12750
- children: [/* @__PURE__ */ v(he, {}), o]
12753
+ children: [/* @__PURE__ */ v(he, {}), s]
12751
12754
  })
12752
12755
  ]
12753
12756
  }),
12754
- s.length > 0 && /* @__PURE__ */ v("dl", {
12757
+ c.length > 0 && /* @__PURE__ */ v("dl", {
12755
12758
  className: "select-balance-hero__meta",
12756
- children: s.map((e, t) => /* @__PURE__ */ y("div", {
12759
+ children: c.map((e, t) => /* @__PURE__ */ y("div", {
12757
12760
  className: "select-balance-hero__metaitem",
12758
- children: [/* @__PURE__ */ v("dt", { children: e.label }), /* @__PURE__ */ v("dd", { children: l ? n("7ch") : e.cents != null && e.cents !== "" ? /* @__PURE__ */ y(_, { children: [e.prefix, /* @__PURE__ */ v(Gl, { cents: e.cents })] }) : e.value ?? "—" })]
12761
+ children: [/* @__PURE__ */ v("dt", { children: e.label }), /* @__PURE__ */ v("dd", { children: u ? r("7ch") : e.cents != null && e.cents !== "" ? /* @__PURE__ */ y(_, { children: [e.prefix, /* @__PURE__ */ v(Gl, { cents: e.cents })] }) : e.value ?? "—" })]
12759
12762
  }, t))
12760
12763
  }),
12761
- (i || c) && /* @__PURE__ */ y("div", {
12764
+ (a || l) && /* @__PURE__ */ y("div", {
12762
12765
  className: "select-balance-hero__foot",
12763
- children: [i && /* @__PURE__ */ y("button", {
12766
+ children: [a && /* @__PURE__ */ y("button", {
12764
12767
  type: "button",
12765
12768
  className: "select-balance-hero__cta",
12766
- onClick: i.onAction,
12767
- disabled: i.disabled || i.loading,
12768
- "aria-busy": i.loading || void 0,
12769
- children: [i.icon, i.content]
12770
- }), c && /* @__PURE__ */ y("span", {
12771
- className: `select-balance-hero__status select-balance-hero__status--${c.tone ?? "success"}`,
12769
+ onClick: a.onAction,
12770
+ disabled: a.disabled || a.loading,
12771
+ "aria-busy": a.loading || void 0,
12772
+ children: [a.icon, a.content]
12773
+ }), l && /* @__PURE__ */ y("span", {
12774
+ className: `select-balance-hero__status select-balance-hero__status--${l.tone ?? "success"}`,
12772
12775
  children: [/* @__PURE__ */ v("span", {
12773
12776
  className: "select-balance-hero__statusdot",
12774
12777
  "aria-hidden": "true"
12775
- }), c.label]
12778
+ }), l.label]
12776
12779
  })]
12777
12780
  })
12778
12781
  ]
12779
- }), r.length > 0 && /* @__PURE__ */ v("div", {
12782
+ }), i.length > 0 && /* @__PURE__ */ v("div", {
12780
12783
  className: "select-balance-hero__tiles",
12781
- children: r.map((e) => /* @__PURE__ */ y("div", {
12784
+ children: i.map((e) => /* @__PURE__ */ y("div", {
12782
12785
  className: "select-balance-hero__tile",
12783
12786
  children: [
12784
12787
  /* @__PURE__ */ y("div", {
12785
12788
  className: "select-balance-hero__tilehead",
12786
- children: [e.icon && /* @__PURE__ */ v("span", {
12787
- className: "select-balance-hero__tileicon",
12788
- children: e.icon
12789
- }), /* @__PURE__ */ v("span", {
12790
- className: "select-balance-hero__tilelabel",
12791
- title: e.label,
12792
- children: e.label
12793
- })]
12789
+ children: [
12790
+ e.icon && /* @__PURE__ */ v("span", {
12791
+ className: "select-balance-hero__tileicon",
12792
+ children: e.icon
12793
+ }),
12794
+ /* @__PURE__ */ v("span", {
12795
+ className: "select-balance-hero__tilelabel",
12796
+ title: e.label,
12797
+ children: e.label
12798
+ }),
12799
+ e.help != null && /* @__PURE__ */ v(Mn, {
12800
+ content: e.help,
12801
+ label: `Sobre ${e.label}`
12802
+ })
12803
+ ]
12794
12804
  }),
12795
12805
  /* @__PURE__ */ v("span", {
12796
12806
  className: "select-balance-hero__tileamount",
12797
- children: l ? n("8ch", "0.85em") : a(e.cents)
12807
+ children: u ? r("8ch", "0.85em") : o(e.cents)
12798
12808
  }),
12799
12809
  e.hint != null && /* @__PURE__ */ v("span", {
12800
12810
  className: "select-balance-hero__tilehint",
@@ -12807,22 +12817,22 @@ var Mu = "allow-scripts allow-same-origin allow-forms", Nu = 390, Pu = 1280, Fu
12807
12817
  });
12808
12818
  }
12809
12819
  return /* @__PURE__ */ y("div", {
12810
- ref: f,
12811
- ...d,
12812
- className: `select-balance${u ? " " + u : ""}`,
12820
+ ref: p,
12821
+ ...f,
12822
+ className: `select-balance${d ? " " + d : ""}`,
12813
12823
  children: [/* @__PURE__ */ y("div", {
12814
12824
  className: "select-balance__head",
12815
12825
  children: [/* @__PURE__ */ v("h3", {
12816
12826
  className: "select-balance__title",
12817
12827
  children: t
12818
- }), i && /* @__PURE__ */ v(W, {
12828
+ }), a && /* @__PURE__ */ v(W, {
12819
12829
  variant: "primary",
12820
12830
  size: "sm",
12821
12831
  inline: !0,
12822
- onClick: i.onAction,
12823
- disabled: i.disabled,
12824
- loading: i.loading,
12825
- children: i.content
12832
+ onClick: a.onAction,
12833
+ disabled: a.disabled,
12834
+ loading: a.loading,
12835
+ children: a.content
12826
12836
  })]
12827
12837
  }), /* @__PURE__ */ y("div", {
12828
12838
  className: "select-balance__body",
@@ -12831,23 +12841,26 @@ var Mu = "allow-scripts allow-same-origin allow-forms", Nu = 390, Pu = 1280, Fu
12831
12841
  children: [/* @__PURE__ */ v("span", {
12832
12842
  className: "select-balance__heroamount",
12833
12843
  children: /* @__PURE__ */ v(Gl, { cents: e })
12834
- }), n != null && /* @__PURE__ */ v(ql, {
12835
- value: n,
12844
+ }), r != null && /* @__PURE__ */ v(ql, {
12845
+ value: r,
12836
12846
  caption: "vs. período anterior"
12837
12847
  })]
12838
- }), r.length > 0 && /* @__PURE__ */ v("div", {
12848
+ }), i.length > 0 && /* @__PURE__ */ v("div", {
12839
12849
  className: "select-balance__buckets",
12840
- children: r.map((e) => /* @__PURE__ */ y("div", {
12850
+ children: i.map((e) => /* @__PURE__ */ y("div", {
12841
12851
  className: "select-balance__bucket",
12842
12852
  children: [e.icon && /* @__PURE__ */ v("span", {
12843
12853
  className: "select-balance__bucketicon",
12844
12854
  children: e.icon
12845
12855
  }), /* @__PURE__ */ y("span", {
12846
12856
  className: "select-balance__bucketbody",
12847
- children: [/* @__PURE__ */ v("span", {
12857
+ children: [/* @__PURE__ */ y("span", {
12848
12858
  className: "select-balance__bucketlabel",
12849
12859
  title: e.label,
12850
- children: e.label
12860
+ children: [e.label, e.help != null && /* @__PURE__ */ v(Mn, {
12861
+ content: e.help,
12862
+ label: `Sobre ${e.label}`
12863
+ })]
12851
12864
  }), /* @__PURE__ */ v("span", {
12852
12865
  className: "select-balance__bucketamount",
12853
12866
  children: /* @__PURE__ */ v(Gl, { cents: e.cents })
@@ -15073,17 +15086,38 @@ function Yd({ items: e, className: t, ...n }) {
15073
15086
  }
15074
15087
  //#endregion
15075
15088
  //#region src/SelectShareBar.tsx
15076
- function Xd({ items: e, label: t, aside: n, legend: r = "list", size: i = "sm", onSelect: a, selected: o, hint: s, className: c, ...l }) {
15077
- let u = e.map((e, t) => ({
15089
+ function Xd({ items: e, label: t, aside: n, legend: r = "list", size: i = "sm", onSelect: a, selected: o, hint: s, selectHint: c = "Clique para filtrar.", clearHint: l = "Clique de novo para ver todas.", className: u, ...d }) {
15090
+ let f = e.map((e, t) => ({
15078
15091
  ...e,
15079
15092
  key: e.key ?? e.label,
15080
15093
  color: e.color ?? X(t)
15081
- })).filter((e) => e.value > 0), d = u.reduce((e, t) => e + t.value, 0);
15082
- if (d <= 0) return null;
15083
- let f = (e) => Math.round(e / d * 100), p = (e) => o != null && o !== e;
15094
+ })).filter((e) => e.value > 0), p = f.reduce((e, t) => e + t.value, 0);
15095
+ if (p <= 0) return null;
15096
+ let m = (e) => Math.round(e / p * 100), h = (e) => o != null && o !== e, g = (e, t) => {
15097
+ let n = a ? o === e.key ? l : c : null;
15098
+ return !t && e.tip == null && n == null ? null : /* @__PURE__ */ y("span", {
15099
+ className: "select-sharebar__tip",
15100
+ children: [
15101
+ t && /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("strong", { children: e.label }), /* @__PURE__ */ y("span", { children: [
15102
+ e.count != null && /* @__PURE__ */ y(_, { children: [e.count, " · "] }),
15103
+ e.valueText != null && /* @__PURE__ */ y(_, { children: [e.valueText, " · "] }),
15104
+ m(e.value),
15105
+ "%"
15106
+ ] })] }),
15107
+ e.tip != null && /* @__PURE__ */ v("span", { children: e.tip }),
15108
+ n != null && /* @__PURE__ */ v("span", {
15109
+ className: "select-sharebar__tipaction",
15110
+ children: n
15111
+ })
15112
+ ]
15113
+ });
15114
+ }, b = (e, t) => e == null ? t : /* @__PURE__ */ v(wn, {
15115
+ content: e,
15116
+ children: t
15117
+ });
15084
15118
  return /* @__PURE__ */ y("div", {
15085
- ...l,
15086
- className: `select-sharebar select-sharebar--${i}${r === "chips" ? " select-sharebar--chips" : ""}${c ? " " + c : ""}`,
15119
+ ...d,
15120
+ className: `select-sharebar select-sharebar--${i}${r === "chips" ? " select-sharebar--chips" : ""}${u ? " " + u : ""}`,
15087
15121
  children: [
15088
15122
  (t != null || n != null) && /* @__PURE__ */ y("div", {
15089
15123
  className: "select-sharebar__head",
@@ -15092,28 +15126,31 @@ function Xd({ items: e, label: t, aside: n, legend: r = "list", size: i = "sm",
15092
15126
  /* @__PURE__ */ v("div", {
15093
15127
  className: "select-sharebar__track",
15094
15128
  role: a ? "group" : "img",
15095
- "aria-label": u.map((e) => `${e.label} ${f(e.value)}%`).join(", "),
15096
- children: u.map((e) => a ? /* @__PURE__ */ v("button", {
15097
- type: "button",
15098
- className: `select-sharebar__seg select-sharebar__seg--btn${p(e.key) ? " is-dim" : ""}`,
15099
- style: {
15100
- width: `${e.value / d * 100}%`,
15101
- background: e.color
15102
- },
15103
- "aria-label": `${e.label}: ${f(e.value)}%`,
15104
- "aria-pressed": o === e.key,
15105
- onClick: () => a(e.key)
15106
- }, e.key) : /* @__PURE__ */ v("span", {
15107
- className: `select-sharebar__seg${p(e.key) ? " is-dim" : ""}`,
15108
- style: {
15109
- width: `${e.value / d * 100}%`,
15110
- background: e.color
15111
- }
15129
+ "aria-label": f.map((e) => `${e.label} ${m(e.value)}%`).join(", "),
15130
+ children: f.map((e) => /* @__PURE__ */ v(wn, {
15131
+ content: g(e, !0),
15132
+ children: a ? /* @__PURE__ */ v("button", {
15133
+ type: "button",
15134
+ className: `select-sharebar__seg select-sharebar__seg--btn${h(e.key) ? " is-dim" : ""}`,
15135
+ style: {
15136
+ width: `${e.value / p * 100}%`,
15137
+ background: e.color
15138
+ },
15139
+ "aria-label": `${e.label}: ${m(e.value)}%`,
15140
+ "aria-pressed": o === e.key,
15141
+ onClick: () => a(e.key)
15142
+ }) : /* @__PURE__ */ v("span", {
15143
+ className: `select-sharebar__seg${h(e.key) ? " is-dim" : ""}`,
15144
+ style: {
15145
+ width: `${e.value / p * 100}%`,
15146
+ background: e.color
15147
+ }
15148
+ })
15112
15149
  }, e.key))
15113
15150
  }),
15114
15151
  r === "chips" ? /* @__PURE__ */ v("ul", {
15115
15152
  className: "select-sharebar__chips",
15116
- children: u.map((e) => {
15153
+ children: f.map((e) => {
15117
15154
  let t = /* @__PURE__ */ y(_, { children: [
15118
15155
  /* @__PURE__ */ v("span", {
15119
15156
  className: "select-sharebar__dot",
@@ -15133,20 +15170,20 @@ function Xd({ items: e, label: t, aside: n, legend: r = "list", size: i = "sm",
15133
15170
  children: e.valueText
15134
15171
  })
15135
15172
  ] });
15136
- return /* @__PURE__ */ v("li", { children: a ? /* @__PURE__ */ v("button", {
15173
+ return /* @__PURE__ */ v("li", { children: b(g(e, !1), a ? /* @__PURE__ */ v("button", {
15137
15174
  type: "button",
15138
- className: `select-sharebar__chip select-sharebar__chip--btn${o === e.key ? " is-selected" : ""}${p(e.key) ? " is-dim" : ""}`,
15175
+ className: `select-sharebar__chip select-sharebar__chip--btn${o === e.key ? " is-selected" : ""}${h(e.key) ? " is-dim" : ""}`,
15139
15176
  "aria-pressed": o === e.key,
15140
15177
  onClick: () => a(e.key),
15141
15178
  children: t
15142
15179
  }) : /* @__PURE__ */ v("span", {
15143
15180
  className: "select-sharebar__chip",
15144
15181
  children: t
15145
- }) }, e.key);
15182
+ })) }, e.key);
15146
15183
  })
15147
15184
  }) : /* @__PURE__ */ v("ul", {
15148
15185
  className: "select-sharebar__legend",
15149
- children: u.map((e) => /* @__PURE__ */ y("li", {
15186
+ children: f.map((e) => /* @__PURE__ */ y("li", {
15150
15187
  className: "select-sharebar__item",
15151
15188
  children: [
15152
15189
  /* @__PURE__ */ v("span", {
@@ -15154,17 +15191,20 @@ function Xd({ items: e, label: t, aside: n, legend: r = "list", size: i = "sm",
15154
15191
  style: { background: e.color },
15155
15192
  "aria-hidden": "true"
15156
15193
  }),
15157
- /* @__PURE__ */ v("span", {
15194
+ b(e.tip == null ? null : /* @__PURE__ */ v("span", {
15195
+ className: "select-sharebar__tip",
15196
+ children: e.tip
15197
+ }), /* @__PURE__ */ v("span", {
15158
15198
  className: "select-sharebar__label",
15159
15199
  children: e.label
15160
- }),
15200
+ })),
15161
15201
  e.valueText != null && /* @__PURE__ */ v("span", {
15162
15202
  className: "select-sharebar__value",
15163
15203
  children: e.valueText
15164
15204
  }),
15165
15205
  /* @__PURE__ */ y("span", {
15166
15206
  className: "select-sharebar__pct",
15167
- children: [f(e.value), "%"]
15207
+ children: [m(e.value), "%"]
15168
15208
  })
15169
15209
  ]
15170
15210
  }, e.key))
@@ -15420,9 +15460,9 @@ var Zd = r(function({ value: e, max: t = 100, size: n = 64, thickness: r, tone:
15420
15460
  children: e.map((e, t) => /* @__PURE__ */ y("div", {
15421
15461
  className: "select-ministats__item",
15422
15462
  children: [
15423
- /* @__PURE__ */ v("dt", {
15424
- className: "select-ministats__label",
15425
- children: e.label
15463
+ /* @__PURE__ */ y("dt", {
15464
+ className: `select-ministats__label${e.help == null ? "" : " select-ministats__label--help"}`,
15465
+ children: [e.label, e.help != null && /* @__PURE__ */ v(Mn, { content: e.help })]
15426
15466
  }),
15427
15467
  /* @__PURE__ */ v("dd", {
15428
15468
  className: "select-ministats__value",
@@ -30466,38 +30506,38 @@ var Vp = r(function({ name: e, price: t, priceSuffix: n, headerAction: r, summar
30466
30506
  })]
30467
30507
  })]
30468
30508
  });
30469
- }), Hp = r(function({ title: e, description: t, headerAction: n, footer: r, dense: i = !1, spread: a = !1, flush: o = !1, children: s, className: c, ...l }, u) {
30509
+ }), Hp = r(function({ title: e, help: t, description: n, headerAction: r, footer: i, dense: a = !1, spread: o = !1, flush: s = !1, children: c, className: l, ...u }, d) {
30470
30510
  return /* @__PURE__ */ y("div", {
30471
- ref: u,
30472
- ...l,
30473
- className: `select-listcard${i ? " select-listcard--dense" : ""}${a ? " select-listcard--spread" : ""}${o ? " select-listcard--flush" : ""}${c ? " " + c : ""}`,
30511
+ ref: d,
30512
+ ...u,
30513
+ className: `select-listcard${a ? " select-listcard--dense" : ""}${o ? " select-listcard--spread" : ""}${s ? " select-listcard--flush" : ""}${l ? " " + l : ""}`,
30474
30514
  children: [
30475
- (e || n) && /* @__PURE__ */ y("div", {
30515
+ (e || r) && /* @__PURE__ */ y("div", {
30476
30516
  className: "select-listcard__head",
30477
30517
  children: [/* @__PURE__ */ y("div", {
30478
30518
  className: "select-listcard__heading",
30479
- children: [e && /* @__PURE__ */ v("h3", {
30480
- className: "select-listcard__title",
30481
- children: e
30482
- }), t && /* @__PURE__ */ v("p", {
30519
+ children: [e && /* @__PURE__ */ y("h3", {
30520
+ className: `select-listcard__title${t == null ? "" : " select-listcard__title--help"}`,
30521
+ children: [e, t != null && /* @__PURE__ */ v(Mn, { content: t })]
30522
+ }), n && /* @__PURE__ */ v("p", {
30483
30523
  className: "select-listcard__desc",
30484
- children: t
30524
+ children: n
30485
30525
  })]
30486
- }), n && /* @__PURE__ */ v("div", {
30526
+ }), r && /* @__PURE__ */ v("div", {
30487
30527
  className: "select-listcard__headeraction",
30488
- children: n
30528
+ children: r
30489
30529
  })]
30490
30530
  }),
30491
30531
  /* @__PURE__ */ v("div", {
30492
30532
  className: "select-listcard__body",
30493
30533
  children: /* @__PURE__ */ v("div", {
30494
30534
  className: "select-listcard__rows",
30495
- children: s
30535
+ children: c
30496
30536
  })
30497
30537
  }),
30498
- r && /* @__PURE__ */ v("div", {
30538
+ i && /* @__PURE__ */ v("div", {
30499
30539
  className: "select-listcard__footer",
30500
- children: r
30540
+ children: i
30501
30541
  })
30502
30542
  ]
30503
30543
  });