@selectwin/kit 0.1.197 → 0.1.198

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 (247) hide show
  1. package/README.md +1 -1
  2. package/dist/SelectAccordion.js +54 -0
  3. package/dist/SelectActionCard.js +45 -0
  4. package/dist/SelectActionList.js +55 -0
  5. package/dist/SelectActionMenu.js +33 -0
  6. package/dist/SelectAddButton.js +22 -0
  7. package/dist/SelectAddCard.js +32 -0
  8. package/dist/SelectAlert.js +36 -0
  9. package/dist/SelectAssistant.js +184 -0
  10. package/dist/SelectAuthFx.js +626 -0
  11. package/dist/SelectAvatar.js +34 -0
  12. package/dist/SelectBackLink.js +22 -0
  13. package/dist/SelectBadge.js +18 -0
  14. package/dist/SelectBalanceCard.js +167 -0
  15. package/dist/SelectBankAccountField.js +71 -0
  16. package/dist/SelectBankIcon.js +162 -0
  17. package/dist/SelectBarChart.js +88 -0
  18. package/dist/SelectBoxPlot.js +127 -0
  19. package/dist/SelectBrandIcon.js +206 -0
  20. package/dist/SelectBreadcrumb.js +45 -0
  21. package/dist/SelectBuilderLayout.js +49 -0
  22. package/dist/SelectBuilderWorkspace.js +273 -0
  23. package/dist/SelectBullet.js +59 -0
  24. package/dist/SelectBump.js +93 -0
  25. package/dist/SelectButton.js +51 -0
  26. package/dist/SelectCalendar.js +450 -0
  27. package/dist/SelectCalendarHeatmap.js +84 -0
  28. package/dist/SelectCandlestick.js +97 -0
  29. package/dist/SelectCard.js +52 -0
  30. package/dist/SelectCardGrid.js +76 -0
  31. package/dist/SelectCertificatePreview.js +108 -0
  32. package/dist/SelectChannelPreview.js +124 -0
  33. package/dist/SelectChartCard.js +50 -0
  34. package/dist/SelectChartLegend.js +34 -0
  35. package/dist/SelectChipInput.js +110 -0
  36. package/dist/SelectChoiceCard.js +113 -0
  37. package/dist/SelectChord.js +93 -0
  38. package/dist/SelectCirclePack.js +111 -0
  39. package/dist/SelectCodeBlock.js +51 -0
  40. package/dist/SelectCollapsible.js +40 -0
  41. package/dist/SelectColorField.js +283 -0
  42. package/dist/SelectColumnChart.js +222 -0
  43. package/dist/SelectComboChart.js +139 -0
  44. package/dist/SelectCombobox.js +158 -0
  45. package/dist/SelectConfirmModal.js +42 -0
  46. package/dist/SelectConversation.js +97 -0
  47. package/dist/SelectCopyRow.js +61 -0
  48. package/dist/SelectCopyableId.js +45 -0
  49. package/dist/SelectDataTable.js +247 -0
  50. package/dist/SelectDateField.js +255 -0
  51. package/dist/SelectDatePicker.js +311 -0
  52. package/dist/SelectDateRangeField.js +57 -0
  53. package/dist/SelectDetail.js +49 -0
  54. package/dist/SelectDisclosureButton.js +23 -0
  55. package/dist/SelectDivider.js +20 -0
  56. package/dist/SelectDnsRecords.js +74 -0
  57. package/dist/SelectDocumentField.js +24 -0
  58. package/dist/SelectDonut.js +103 -0
  59. package/dist/SelectDotField.js +134 -0
  60. package/dist/SelectDumbbell.js +100 -0
  61. package/dist/SelectFactStrip.js +42 -0
  62. package/dist/SelectFeeBreakdown.js +88 -0
  63. package/dist/SelectField.d.ts +24 -6
  64. package/dist/SelectField.js +196 -0
  65. package/dist/SelectFieldGrid.js +15 -0
  66. package/dist/SelectFileDropzone.js +160 -0
  67. package/dist/SelectFileTile.js +53 -0
  68. package/dist/SelectFilterBar.js +292 -0
  69. package/dist/SelectFilterChip.js +32 -0
  70. package/dist/SelectFlowCanvas.js +282 -0
  71. package/dist/SelectFormLayout.js +21 -0
  72. package/dist/SelectFormModal.js +53 -0
  73. package/dist/SelectFunnel.js +49 -0
  74. package/dist/SelectGauge.js +74 -0
  75. package/dist/SelectGaugeBands.js +78 -0
  76. package/dist/SelectGlobe.js +472 -0
  77. package/dist/SelectHeatmap.js +76 -0
  78. package/dist/SelectHexbin.js +59 -0
  79. package/dist/SelectHorizontalBar.js +100 -0
  80. package/dist/SelectHtmlFrame.js +30 -0
  81. package/dist/SelectIcicle.js +87 -0
  82. package/dist/SelectIcon.js +21 -0
  83. package/dist/SelectIconButton.js +24 -0
  84. package/dist/SelectIconPicker.js +79 -0
  85. package/dist/SelectIconTile.js +17 -0
  86. package/dist/SelectIdentityFooter.js +30 -0
  87. package/dist/SelectImageField.js +56 -0
  88. package/dist/SelectImageGalleryField.js +243 -0
  89. package/dist/SelectImageUploadField.js +155 -0
  90. package/dist/SelectImageUrlsField.js +68 -0
  91. package/dist/SelectImageZoomModal.js +26 -0
  92. package/dist/SelectInfoTip.js +31 -0
  93. package/dist/SelectInsight.js +777 -0
  94. package/dist/SelectJourney.js +68 -0
  95. package/dist/SelectJsonViewer.js +294 -0
  96. package/dist/SelectKanban.js +124 -0
  97. package/dist/SelectKbd.js +15 -0
  98. package/dist/SelectKeyValueEditor.js +88 -0
  99. package/dist/SelectKpiBand.js +17 -0
  100. package/dist/SelectKpiCard.js +54 -0
  101. package/dist/SelectLauncher.js +58 -0
  102. package/dist/SelectLayout.js +100 -0
  103. package/dist/SelectLineChart.js +161 -0
  104. package/dist/SelectLinkButton.js +18 -0
  105. package/dist/SelectListCard.js +89 -0
  106. package/dist/SelectLoader.js +27 -0
  107. package/dist/SelectLocale.d.ts +2 -0
  108. package/dist/SelectLocale.js +191 -0
  109. package/dist/SelectMail.js +811 -0
  110. package/dist/SelectMailEditor.js +224 -0
  111. package/dist/SelectMarimekko.js +87 -0
  112. package/dist/SelectMarkStack.js +30 -0
  113. package/dist/SelectMediaCell.js +28 -0
  114. package/dist/SelectMenu.js +110 -0
  115. package/dist/SelectMiniStats.js +37 -0
  116. package/dist/SelectModal.js +177 -0
  117. package/dist/SelectMoney.js +136 -0
  118. package/dist/SelectMoneyField.js +82 -0
  119. package/dist/SelectNetwork.js +122 -0
  120. package/dist/SelectNote.js +26 -0
  121. package/dist/SelectNumberField.js +87 -0
  122. package/dist/SelectNumberedList.js +30 -0
  123. package/dist/SelectOfferPrice.js +48 -0
  124. package/dist/SelectOfflineModal.js +31 -0
  125. package/dist/SelectOptionList.js +54 -0
  126. package/dist/SelectOtpInput.js +64 -0
  127. package/dist/SelectPage.js +85 -0
  128. package/dist/SelectPagination.js +82 -0
  129. package/dist/SelectPanel.js +41 -0
  130. package/dist/SelectParallel.js +100 -0
  131. package/dist/SelectPareto.js +134 -0
  132. package/dist/SelectPasswordStrength.js +82 -0
  133. package/dist/SelectPaymentBrand.js +213 -0
  134. package/dist/SelectPaymentCard.js +53 -0
  135. package/dist/SelectPhoneField.js +139 -0
  136. package/dist/SelectPips.js +25 -0
  137. package/dist/SelectPlanCard.js +64 -0
  138. package/dist/SelectPolarArea.js +82 -0
  139. package/dist/SelectPopover.js +101 -0
  140. package/dist/SelectPreviewFrame.js +119 -0
  141. package/dist/SelectProgressBar.js +54 -0
  142. package/dist/SelectProgressList.js +58 -0
  143. package/dist/SelectPyramid.js +116 -0
  144. package/dist/SelectQrCode.d.ts +12 -0
  145. package/dist/SelectQrCode.js +51 -0
  146. package/dist/SelectQuestionStage.js +183 -0
  147. package/dist/SelectRadar.js +118 -0
  148. package/dist/SelectRadialBar.js +103 -0
  149. package/dist/SelectRadioGroup.js +54 -0
  150. package/dist/SelectRangeBar.js +89 -0
  151. package/dist/SelectRating.js +58 -0
  152. package/dist/SelectRatingQuote.js +31 -0
  153. package/dist/SelectRecordCard.js +144 -0
  154. package/dist/SelectRegions.js +23 -0
  155. package/dist/SelectRepeatingFieldArray.js +104 -0
  156. package/dist/SelectResendButton.js +44 -0
  157. package/dist/SelectRetryStatus.js +79 -0
  158. package/dist/SelectRing.js +53 -0
  159. package/dist/SelectRowActions.js +32 -0
  160. package/dist/SelectSankey.js +92 -0
  161. package/dist/SelectScatter.js +79 -0
  162. package/dist/SelectSearchInput.d.ts +8 -2
  163. package/dist/SelectSearchInput.js +38 -0
  164. package/dist/SelectSearchMenu.js +128 -0
  165. package/dist/SelectSection.js +83 -0
  166. package/dist/SelectSegmented.js +95 -0
  167. package/dist/SelectSelect.d.ts +19 -5
  168. package/dist/SelectSelect.js +84 -0
  169. package/dist/SelectSetting.js +54 -0
  170. package/dist/SelectSetupGuide.js +187 -0
  171. package/dist/SelectShareBar.js +139 -0
  172. package/dist/SelectSideNav.js +263 -0
  173. package/dist/SelectSkeleton.js +56 -0
  174. package/dist/SelectSlope.js +129 -0
  175. package/dist/SelectSortable.js +31 -0
  176. package/dist/SelectSparkline.js +66 -0
  177. package/dist/SelectSplitChain.js +52 -0
  178. package/dist/SelectSpotlight.js +81 -0
  179. package/dist/SelectStackedArea.js +117 -0
  180. package/dist/SelectStatusBadge.js +81 -0
  181. package/dist/SelectStatusPage.js +62 -0
  182. package/dist/SelectSteps.js +54 -0
  183. package/dist/SelectStreamGraph.js +99 -0
  184. package/dist/SelectSunburst.js +101 -0
  185. package/dist/SelectSurface.js +41 -0
  186. package/dist/SelectSwitch.js +24 -0
  187. package/dist/SelectSwitchField.d.ts +5 -1
  188. package/dist/SelectSwitchField.js +45 -0
  189. package/dist/SelectTable.js +243 -0
  190. package/dist/SelectTabs.js +63 -0
  191. package/dist/SelectTagSelect.js +144 -0
  192. package/dist/SelectTaskCard.js +44 -0
  193. package/dist/SelectText.js +25 -0
  194. package/dist/SelectTextarea.d.ts +15 -4
  195. package/dist/SelectTextarea.js +58 -0
  196. package/dist/SelectThemeSwitcher.js +66 -0
  197. package/dist/SelectThumbnail.js +41 -0
  198. package/dist/SelectTicker.js +69 -0
  199. package/dist/SelectTile.js +62 -0
  200. package/dist/SelectTileMap.js +268 -0
  201. package/dist/SelectTimeline.js +76 -0
  202. package/dist/SelectToast.js +159 -0
  203. package/dist/SelectToggle.js +80 -0
  204. package/dist/SelectTogglePanel.js +44 -0
  205. package/dist/SelectTokenTextarea.js +173 -0
  206. package/dist/SelectTooltip.js +100 -0
  207. package/dist/SelectTour.js +210 -0
  208. package/dist/SelectTree.js +86 -0
  209. package/dist/SelectTreemap.js +130 -0
  210. package/dist/SelectUnitInput.js +53 -0
  211. package/dist/SelectVenn.js +75 -0
  212. package/dist/SelectViolin.js +95 -0
  213. package/dist/SelectWaffle.js +56 -0
  214. package/dist/SelectWaterfall.js +123 -0
  215. package/dist/SelectWordCloud.js +27 -0
  216. package/dist/SelectWorkspaceSwitcher.js +40 -0
  217. package/dist/SelectZoomThumbnail.js +40 -0
  218. package/dist/chartTip.js +70 -0
  219. package/dist/chartUtils.js +146 -0
  220. package/dist/detectSelectTheme.js +8 -0
  221. package/dist/icons.js +1696 -0
  222. package/dist/index.d.ts +2 -1
  223. package/dist/index.js +213 -32711
  224. package/dist/internal/dateValue.js +12 -0
  225. package/dist/internal/document.js +16 -0
  226. package/dist/internal/flags.js +187 -0
  227. package/dist/internal/frame.js +17 -0
  228. package/dist/internal/inert.js +13 -0
  229. package/dist/internal/layers.d.ts +8 -0
  230. package/dist/internal/layers.js +35 -0
  231. package/dist/internal/listChrome.js +150 -0
  232. package/dist/internal/money.js +16 -0
  233. package/dist/internal/nativeProps.d.ts +11 -0
  234. package/dist/internal/nativeProps.js +14 -0
  235. package/dist/internal/phone.js +52 -0
  236. package/dist/internal/safeHref.js +17 -0
  237. package/dist/internal/useFocusTrap.d.ts +7 -1
  238. package/dist/internal/useFocusTrap.js +40 -0
  239. package/dist/internal/useMatchMedia.js +18 -0
  240. package/dist/internal/useSelectReveal.js +76 -0
  241. package/dist/jsonTree.js +183 -0
  242. package/dist/positioning.js +22 -0
  243. package/dist/spacing.js +22 -0
  244. package/dist/style.css +1 -1
  245. package/dist/uploadUtils.js +29 -0
  246. package/dist/worldLand.js +10401 -0
  247. package/package.json +4 -1
@@ -0,0 +1,160 @@
1
+ import { SelectButton as e } from "./SelectButton.js";
2
+ import { CameraIcon as t, UploadIcon as n } from "./icons.js";
3
+ import { useMatchMedia as r } from "./internal/useMatchMedia.js";
4
+ import { SelectAlert as i } from "./SelectAlert.js";
5
+ import { SelectFileTile as a } from "./SelectFileTile.js";
6
+ import { extOf as ee, isImageFile as o, matchesAccept as s, prettySize as c } from "./uploadUtils.js";
7
+ import { forwardRef as l, useCallback as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
8
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
9
+ //#region src/SelectFileDropzone.tsx
10
+ var _ = l(function({ files: l, onChange: _, accept: v, maxSizeMB: y = 10, allowMultiple: b = !0, maxFiles: x, hint: S, capture: C, captureLabel: w = "Fotografar", pickLabel: T = "Escolher arquivo", prepare: E, layout: D = "inline", label: O = "Arraste o arquivo ou clique para escolher", className: k, ...A }, j) {
11
+ let M = p(null), N = p(null), [P, F] = m(!1), [I, L] = m(0), [R, z] = m(null), [B, V] = m(!1), H = r(C ? "(hover: none) and (pointer: coarse)" : void 0), U = y * 1024 * 1024, W = f(() => l.map((e) => o(e) ? URL.createObjectURL(e) : null), [l]);
12
+ d(() => () => {
13
+ W.forEach((e) => {
14
+ e && URL.revokeObjectURL(e);
15
+ });
16
+ }, [W]);
17
+ let G = u(async (e) => {
18
+ z(null);
19
+ let t = e;
20
+ if (E && e.length) {
21
+ V(!0);
22
+ let n = [];
23
+ for (let t of e) try {
24
+ n.push(await E(t));
25
+ } catch (e) {
26
+ z(e instanceof Error && e.message ? e.message : "Não foi possível usar este arquivo.");
27
+ }
28
+ V(!1), t = n;
29
+ }
30
+ let n = t.filter((e) => e.size <= U && s(e, v));
31
+ if (L(t.length - n.length), n.length) {
32
+ let e = b ? [...l, ...n] : n.slice(0, 1);
33
+ _(x == null ? e : e.slice(0, x));
34
+ }
35
+ }, [
36
+ l,
37
+ U,
38
+ v,
39
+ b,
40
+ x,
41
+ _,
42
+ E
43
+ ]), K = {
44
+ onDragOver: (e) => {
45
+ e.preventDefault(), F(!0);
46
+ },
47
+ onDragLeave: () => F(!1),
48
+ onDrop: (e) => {
49
+ e.preventDefault(), F(!1), G(Array.from(e.dataTransfer.files));
50
+ }
51
+ }, q = () => {
52
+ var e;
53
+ return (e = M.current) == null ? void 0 : e.click();
54
+ }, J = () => {
55
+ var e;
56
+ return (e = N.current ?? M.current) == null ? void 0 : e.click();
57
+ }, Y = B ? "Preparando o arquivo…" : S ?? `Selecionar arquivo · até ${y} MB`, X = (e) => _(l.filter((t, n) => n !== e)), Z = x != null && l.length >= x, Q = (b || l.length === 0) && !Z, $ = l.length > 0;
58
+ return /* @__PURE__ */ g("div", {
59
+ ref: j,
60
+ ...A,
61
+ className: `select-dropzone-wrap${k ? " " + k : ""}`,
62
+ children: [
63
+ $ && /* @__PURE__ */ g("div", {
64
+ className: "select-filetile-grid",
65
+ children: [l.map((e, t) => /* @__PURE__ */ h(a, {
66
+ src: W[t] ?? void 0,
67
+ docExt: ee(e.name),
68
+ name: e.name,
69
+ sub: c(e.size),
70
+ onRemove: () => X(t)
71
+ }, `${e.name}-${t}`)), Q && /* @__PURE__ */ g("button", {
72
+ type: "button",
73
+ className: `select-dropzone select-dropzone--tile${P ? " is-over" : ""}`,
74
+ onClick: q,
75
+ ...K,
76
+ children: [/* @__PURE__ */ h(n, {}), /* @__PURE__ */ h("span", { children: "Adicionar" })]
77
+ })]
78
+ }),
79
+ !$ && Q && C && H && /* @__PURE__ */ g("div", {
80
+ className: "select-dropzone-capture",
81
+ children: [/* @__PURE__ */ g("div", {
82
+ className: "select-dropzone-capture__buttons",
83
+ children: [/* @__PURE__ */ h(e, {
84
+ variant: "primary",
85
+ inline: !0,
86
+ icon: /* @__PURE__ */ h(t, {}),
87
+ onClick: J,
88
+ loading: B,
89
+ children: w
90
+ }), /* @__PURE__ */ h(e, {
91
+ variant: "secondary",
92
+ inline: !0,
93
+ icon: /* @__PURE__ */ h(n, {}),
94
+ onClick: q,
95
+ disabled: B,
96
+ children: T
97
+ })]
98
+ }), S && /* @__PURE__ */ h("p", {
99
+ className: "select-dropzone-capture__hint",
100
+ children: S
101
+ })]
102
+ }),
103
+ !$ && Q && !(C && H) && /* @__PURE__ */ g("button", {
104
+ type: "button",
105
+ className: `select-dropzone${D === "vertical" ? " select-dropzone--vertical" : ""}${P ? " is-over" : ""}`,
106
+ onClick: q,
107
+ disabled: B,
108
+ "aria-busy": B || void 0,
109
+ ...K,
110
+ children: [/* @__PURE__ */ h(n, {}), D === "vertical" ? /* @__PURE__ */ g("span", {
111
+ className: "select-dropzone__text",
112
+ children: [/* @__PURE__ */ h("span", {
113
+ className: "select-dropzone__label",
114
+ children: B ? "Preparando o arquivo…" : O
115
+ }), S && !B && /* @__PURE__ */ h("span", {
116
+ className: "select-dropzone__hint",
117
+ children: S
118
+ })]
119
+ }) : /* @__PURE__ */ h("span", { children: Y })]
120
+ }),
121
+ /* @__PURE__ */ h("input", {
122
+ ref: M,
123
+ type: "file",
124
+ accept: v,
125
+ multiple: b,
126
+ hidden: !0,
127
+ onChange: (e) => {
128
+ G(Array.from(e.target.files ?? [])), e.target.value = "";
129
+ }
130
+ }),
131
+ C && /* @__PURE__ */ h("input", {
132
+ ref: N,
133
+ type: "file",
134
+ accept: "image/*",
135
+ capture: C,
136
+ hidden: !0,
137
+ onChange: (e) => {
138
+ G(Array.from(e.target.files ?? [])), e.target.value = "";
139
+ }
140
+ }),
141
+ R && /* @__PURE__ */ h(i, {
142
+ tone: "critical",
143
+ children: R
144
+ }),
145
+ I > 0 && /* @__PURE__ */ g(i, {
146
+ tone: "warning",
147
+ children: [
148
+ I,
149
+ " arquivo(s) ignorado(s): tipo não permitido ou acima de ",
150
+ y,
151
+ " MB."
152
+ ]
153
+ })
154
+ ]
155
+ });
156
+ });
157
+ //#endregion
158
+ export { _ as SelectFileDropzone };
159
+
160
+ //# sourceMappingURL=SelectFileDropzone.js.map
@@ -0,0 +1,53 @@
1
+ import { CloseIcon as e, NoteIcon as t } from "./icons.js";
2
+ import { forwardRef as n } from "react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/SelectFileTile.tsx
5
+ var a = n(function({ src: n, docExt: a, name: o, sub: s, badge: c, onRemove: l, className: u, ...d }, f) {
6
+ return /* @__PURE__ */ i("div", {
7
+ ref: f,
8
+ ...d,
9
+ className: `select-filetile${u ? " " + u : ""}`,
10
+ children: [
11
+ /* @__PURE__ */ i("div", {
12
+ className: "select-filetile__media",
13
+ children: [
14
+ n ? /* @__PURE__ */ r("img", {
15
+ src: n,
16
+ alt: o,
17
+ className: "select-filetile__img",
18
+ onError: (e) => {
19
+ e.currentTarget.style.visibility = "hidden";
20
+ }
21
+ }) : /* @__PURE__ */ i("span", {
22
+ className: "select-filetile__doc",
23
+ children: [/* @__PURE__ */ r(t, {}), /* @__PURE__ */ r("span", { children: a ?? "FILE" })]
24
+ }),
25
+ c && /* @__PURE__ */ r("span", {
26
+ className: "select-filetile__badge",
27
+ children: c
28
+ }),
29
+ l && /* @__PURE__ */ r("button", {
30
+ type: "button",
31
+ className: "select-filetile__remove",
32
+ "aria-label": `Remover ${o}`,
33
+ onClick: l,
34
+ children: /* @__PURE__ */ r(e, {})
35
+ })
36
+ ]
37
+ }),
38
+ /* @__PURE__ */ r("span", {
39
+ className: "select-filetile__name",
40
+ title: o,
41
+ children: o
42
+ }),
43
+ s && /* @__PURE__ */ r("span", {
44
+ className: "select-filetile__size",
45
+ children: s
46
+ })
47
+ ]
48
+ });
49
+ });
50
+ //#endregion
51
+ export { a as SelectFileTile };
52
+
53
+ //# sourceMappingURL=SelectFileTile.js.map
@@ -0,0 +1,292 @@
1
+ import { CheckIcon as e, ChevronDownIcon as t, CloseIcon as n, PlusIcon as r, SearchIcon as i } from "./icons.js";
2
+ import { useSelectMessages as a } from "./SelectLocale.js";
3
+ import { SelectField as o } from "./SelectField.js";
4
+ import { SelectPopover as s } from "./SelectPopover.js";
5
+ import { SelectSearchInput as c } from "./SelectSearchInput.js";
6
+ import { SelectDateField as l } from "./SelectDateField.js";
7
+ import { formatDateValue as u } from "./internal/dateValue.js";
8
+ import { forwardRef as d, useEffect as f, useState as p } from "react";
9
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
10
+ //#region src/SelectFilterBar.tsx
11
+ function g(e) {
12
+ return (e ?? "").split(",").map((e) => e.trim()).filter(Boolean);
13
+ }
14
+ function _(e, t) {
15
+ let n = new Set(e);
16
+ return (t ? t.map((e) => e.value).filter((e) => n.has(e)) : [...n]).join(",");
17
+ }
18
+ function v(e, t) {
19
+ var n;
20
+ if (e.type === "select") return ((n = e.options) == null || (n = n.find((e) => e.value === t)) == null ? void 0 : n.label) ?? t;
21
+ if (e.type === "multiselect") {
22
+ let n = g(t).map((t) => {
23
+ var n;
24
+ return ((n = e.options) == null || (n = n.find((e) => e.value === t)) == null ? void 0 : n.label) ?? t;
25
+ });
26
+ return n.length > 2 ? `${n[0]} +${n.length - 1}` : n.join(", ");
27
+ }
28
+ return e.type === "date" ? u(t) ?? t : t;
29
+ }
30
+ function y({ filter: n, value: r, onChange: i, open: u, onToggle: d, onClose: y, disabled: b }) {
31
+ let x = a(), [S, C] = p("");
32
+ f(() => {
33
+ u || C("");
34
+ }, [u]);
35
+ let w = r.trim() !== "", T = w ? v(n, r) : null, E = w && !!n.error, D = n.options ?? [], O = D.length > 7, k = O ? D.filter((e) => e.label.toLowerCase().includes(S.trim().toLowerCase())) : D;
36
+ return /* @__PURE__ */ h(s, {
37
+ active: u,
38
+ onClose: y,
39
+ placement: "bottom-start",
40
+ activator: /* @__PURE__ */ h("button", {
41
+ type: "button",
42
+ className: `select-facet${w ? " is-active" : ""}${E ? " is-error" : ""}`,
43
+ onClick: d,
44
+ disabled: b,
45
+ "aria-expanded": u,
46
+ "aria-invalid": E || void 0,
47
+ title: E ? n.error : void 0,
48
+ children: [/* @__PURE__ */ m("span", {
49
+ className: "select-facet__label",
50
+ children: T == null ? n.label : `${n.label}: ${T}`
51
+ }), /* @__PURE__ */ m("span", {
52
+ className: `select-facet__caret${u ? " is-open" : ""}`,
53
+ "aria-hidden": "true",
54
+ children: /* @__PURE__ */ m(t, {})
55
+ })]
56
+ }),
57
+ children: [
58
+ n.type === "multiselect" ? /* @__PURE__ */ h("div", {
59
+ className: "select-facet__panel",
60
+ children: [O && /* @__PURE__ */ m("div", {
61
+ className: "select-facet__search",
62
+ children: /* @__PURE__ */ m(c, {
63
+ value: S,
64
+ onChange: C,
65
+ placeholder: x.filterBar.searchOption
66
+ })
67
+ }), /* @__PURE__ */ m("div", {
68
+ className: "select-facet__options",
69
+ role: "listbox",
70
+ "aria-multiselectable": "true",
71
+ children: k.length === 0 ? /* @__PURE__ */ m("div", {
72
+ className: "select-facet__empty",
73
+ children: x.common.nothingFound
74
+ }) : k.map((t) => {
75
+ let n = g(r), a = n.includes(t.value);
76
+ return /* @__PURE__ */ h("button", {
77
+ type: "button",
78
+ role: "option",
79
+ "aria-selected": a,
80
+ className: "select-facet__opt",
81
+ onClick: () => i(_(a ? n.filter((e) => e !== t.value) : [...n, t.value], D)),
82
+ children: [/* @__PURE__ */ m("span", { children: t.label }), a && /* @__PURE__ */ m("span", {
83
+ className: "select-facet__check",
84
+ "aria-hidden": "true",
85
+ children: /* @__PURE__ */ m(e, {})
86
+ })]
87
+ }, t.value);
88
+ })
89
+ })]
90
+ }) : n.type === "select" ? /* @__PURE__ */ h("div", {
91
+ className: "select-facet__panel",
92
+ children: [O && /* @__PURE__ */ m("div", {
93
+ className: "select-facet__search",
94
+ children: /* @__PURE__ */ m(c, {
95
+ value: S,
96
+ onChange: C,
97
+ placeholder: x.filterBar.searchOption
98
+ })
99
+ }), /* @__PURE__ */ m("div", {
100
+ className: "select-facet__options",
101
+ role: "listbox",
102
+ children: k.length === 0 ? /* @__PURE__ */ m("div", {
103
+ className: "select-facet__empty",
104
+ children: x.common.nothingFound
105
+ }) : k.map((t) => {
106
+ let n = r === t.value;
107
+ return /* @__PURE__ */ h("button", {
108
+ type: "button",
109
+ role: "option",
110
+ "aria-selected": n,
111
+ className: `select-facet__opt${n ? " is-selected" : ""}`,
112
+ onClick: () => {
113
+ i(n ? "" : t.value), y();
114
+ },
115
+ children: [/* @__PURE__ */ m("span", { children: t.label }), n && /* @__PURE__ */ m("span", {
116
+ className: "select-facet__check",
117
+ "aria-hidden": "true",
118
+ children: /* @__PURE__ */ m(e, {})
119
+ })]
120
+ }, t.value);
121
+ })
122
+ })]
123
+ }) : n.type === "date" ? /* @__PURE__ */ m("div", {
124
+ className: "select-facet__field",
125
+ children: /* @__PURE__ */ m(l, {
126
+ value: r,
127
+ onChange: i,
128
+ placeholder: n.placeholder,
129
+ clearable: !1
130
+ })
131
+ }) : /* @__PURE__ */ m("div", {
132
+ className: "select-facet__field",
133
+ onKeyDown: (e) => {
134
+ e.key === "Enter" && (e.preventDefault(), y());
135
+ },
136
+ children: /* @__PURE__ */ m(o, {
137
+ type: "text",
138
+ value: r,
139
+ onChange: i,
140
+ placeholder: n.placeholder,
141
+ autoFocus: !0
142
+ })
143
+ }),
144
+ E && /* @__PURE__ */ m("div", {
145
+ className: "select-facet__error",
146
+ role: "alert",
147
+ children: n.error
148
+ }),
149
+ w && /* @__PURE__ */ m("div", {
150
+ className: "select-facet__foot",
151
+ children: /* @__PURE__ */ m("button", {
152
+ type: "button",
153
+ className: "select-facet__clear",
154
+ onClick: () => {
155
+ i(""), y();
156
+ },
157
+ children: x.filterBar.clear
158
+ })
159
+ })
160
+ ]
161
+ });
162
+ }
163
+ var b = d(function({ filters: e, values: t, onChange: o, onClearAll: c, search: l, leading: u, disabled: d, className: f, ...g }, _) {
164
+ let b = a(), [x, S] = p([]), [C, w] = p(null), [T, E] = p(!1), D = (e) => (t[e.key] ?? "").trim() !== "", O = (e) => !!e.pinned || D(e) || x.includes(e.key), k = e.filter(O), A = e.filter((e) => !O(e)), j = e.filter(D), M = () => {
165
+ S([]), w(null), c();
166
+ }, N = (e) => {
167
+ S((t) => t.includes(e) ? t : [...t, e]), E(!1), w(e);
168
+ };
169
+ return /* @__PURE__ */ h("div", {
170
+ ref: _,
171
+ ...g,
172
+ className: `select-filterbar${f ? " " + f : ""}`,
173
+ children: [
174
+ /* @__PURE__ */ h("div", {
175
+ className: "select-filterbar__row",
176
+ children: [
177
+ u,
178
+ l && /* @__PURE__ */ h("div", {
179
+ className: `select-filterbar__query${l.error ? " select-filterbar__query--error" : ""}`,
180
+ children: [
181
+ /* @__PURE__ */ m("span", {
182
+ className: "select-filterbar__query-icon",
183
+ "aria-hidden": "true",
184
+ children: /* @__PURE__ */ m(i, {})
185
+ }),
186
+ /* @__PURE__ */ m("input", {
187
+ className: "select-filterbar__query-input",
188
+ type: "search",
189
+ value: l.value,
190
+ placeholder: l.placeholder ?? b.common.searchPlaceholder,
191
+ onChange: (e) => l.onChange(e.target.value),
192
+ onKeyDown: l.onSubmit ? (e) => {
193
+ if (e.key === "Enter") {
194
+ var t;
195
+ e.preventDefault(), (t = l.onSubmit) == null || t.call(l);
196
+ }
197
+ } : void 0,
198
+ "aria-label": l.ariaLabel ?? l.placeholder ?? b.common.search,
199
+ "aria-invalid": l.error ? !0 : void 0,
200
+ disabled: d
201
+ }),
202
+ l.value && /* @__PURE__ */ m("button", {
203
+ type: "button",
204
+ className: "select-filterbar__query-clear",
205
+ "aria-label": b.filterBar.clearSearch,
206
+ onClick: () => l.onChange(""),
207
+ children: /* @__PURE__ */ m(n, {})
208
+ }),
209
+ l.onSubmit && /* @__PURE__ */ m("button", {
210
+ type: "button",
211
+ className: "select-filterbar__query-submit",
212
+ onClick: l.onSubmit,
213
+ disabled: d,
214
+ children: l.submitLabel ?? b.common.search
215
+ })
216
+ ]
217
+ }),
218
+ k.map((e) => /* @__PURE__ */ m(y, {
219
+ filter: e,
220
+ value: t[e.key] ?? "",
221
+ onChange: (t) => o(e.key, t),
222
+ open: C === e.key,
223
+ onToggle: () => w((t) => t === e.key ? null : e.key),
224
+ onClose: () => w((t) => t === e.key ? null : t),
225
+ disabled: d
226
+ }, e.key)),
227
+ A.length > 0 && /* @__PURE__ */ m(s, {
228
+ active: T,
229
+ onClose: () => E(!1),
230
+ placement: "bottom-start",
231
+ activator: /* @__PURE__ */ h("button", {
232
+ type: "button",
233
+ className: "select-facet select-facet--more",
234
+ onClick: () => E((e) => !e),
235
+ disabled: d,
236
+ "aria-expanded": T,
237
+ children: [/* @__PURE__ */ m("span", {
238
+ className: "select-facet__addicon",
239
+ "aria-hidden": "true",
240
+ children: /* @__PURE__ */ m(r, {})
241
+ }), b.filterBar.moreFilters]
242
+ }),
243
+ children: /* @__PURE__ */ m("div", {
244
+ className: "select-facet__options",
245
+ role: "menu",
246
+ children: A.map((e) => /* @__PURE__ */ m("button", {
247
+ type: "button",
248
+ role: "menuitem",
249
+ className: "select-facet__opt",
250
+ onClick: () => N(e.key),
251
+ children: /* @__PURE__ */ m("span", { children: e.label })
252
+ }, e.key))
253
+ })
254
+ })
255
+ ]
256
+ }),
257
+ l != null && l.error ? /* @__PURE__ */ m("p", {
258
+ className: "select-filterbar__query-error",
259
+ role: "alert",
260
+ children: l.error
261
+ }) : null,
262
+ j.length > 0 && /* @__PURE__ */ h("div", {
263
+ className: "select-filterbar__applied",
264
+ children: [j.map((e) => /* @__PURE__ */ h("span", {
265
+ className: `select-filterbar__tag${e.error ? " is-error" : ""}`,
266
+ title: e.error || void 0,
267
+ children: [
268
+ e.label,
269
+ ": ",
270
+ v(e, t[e.key] ?? ""),
271
+ /* @__PURE__ */ m("button", {
272
+ type: "button",
273
+ className: "select-filterbar__tagx",
274
+ "aria-label": b.filterBar.removeFilter(e.label),
275
+ onClick: () => o(e.key, ""),
276
+ children: /* @__PURE__ */ m(n, {})
277
+ })
278
+ ]
279
+ }, e.key)), /* @__PURE__ */ m("button", {
280
+ type: "button",
281
+ className: "select-filterbar__clear",
282
+ onClick: M,
283
+ children: b.filterBar.clearAll
284
+ })]
285
+ })
286
+ ]
287
+ });
288
+ });
289
+ //#endregion
290
+ export { b as SelectFilterBar, _ as joinFilterValues, g as splitFilterValues };
291
+
292
+ //# sourceMappingURL=SelectFilterBar.js.map
@@ -0,0 +1,32 @@
1
+ import { PlusIcon as e } from "./icons.js";
2
+ import { formatSelectNumber as t, useSelectLocale as n } from "./SelectLocale.js";
3
+ import { forwardRef as r } from "react";
4
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ //#region src/SelectFilterChip.tsx
6
+ var o = r(function({ children: r, onClick: o, active: s = !1, toggle: c = !1, count: l, className: u, ...d }, f) {
7
+ let p = n();
8
+ return /* @__PURE__ */ a("button", {
9
+ ref: f,
10
+ ...d,
11
+ type: "button",
12
+ "aria-pressed": c ? s : void 0,
13
+ className: `select-chip${c ? " select-chip--toggle" : ""}${s ? " select-chip--active" : ""}${u ? " " + u : ""}`,
14
+ onClick: o,
15
+ children: [
16
+ !s && !c && /* @__PURE__ */ i("span", {
17
+ className: "select-chip__icon",
18
+ "aria-hidden": "true",
19
+ children: /* @__PURE__ */ i(e, {})
20
+ }),
21
+ r,
22
+ l != null && /* @__PURE__ */ i("span", {
23
+ className: "select-chip__count",
24
+ children: t(l, p)
25
+ })
26
+ ]
27
+ });
28
+ });
29
+ //#endregion
30
+ export { o as SelectFilterChip };
31
+
32
+ //# sourceMappingURL=SelectFilterChip.js.map