@selectwin/kit 0.1.196 → 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 (248) 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.d.ts +3 -0
  15. package/dist/SelectBalanceCard.js +167 -0
  16. package/dist/SelectBankAccountField.js +71 -0
  17. package/dist/SelectBankIcon.js +162 -0
  18. package/dist/SelectBarChart.js +88 -0
  19. package/dist/SelectBoxPlot.js +127 -0
  20. package/dist/SelectBrandIcon.js +206 -0
  21. package/dist/SelectBreadcrumb.js +45 -0
  22. package/dist/SelectBuilderLayout.js +49 -0
  23. package/dist/SelectBuilderWorkspace.js +273 -0
  24. package/dist/SelectBullet.js +59 -0
  25. package/dist/SelectBump.js +93 -0
  26. package/dist/SelectButton.js +51 -0
  27. package/dist/SelectCalendar.js +450 -0
  28. package/dist/SelectCalendarHeatmap.js +84 -0
  29. package/dist/SelectCandlestick.js +97 -0
  30. package/dist/SelectCard.js +52 -0
  31. package/dist/SelectCardGrid.js +76 -0
  32. package/dist/SelectCertificatePreview.js +108 -0
  33. package/dist/SelectChannelPreview.js +124 -0
  34. package/dist/SelectChartCard.js +50 -0
  35. package/dist/SelectChartLegend.js +34 -0
  36. package/dist/SelectChipInput.js +110 -0
  37. package/dist/SelectChoiceCard.js +113 -0
  38. package/dist/SelectChord.js +93 -0
  39. package/dist/SelectCirclePack.js +111 -0
  40. package/dist/SelectCodeBlock.js +51 -0
  41. package/dist/SelectCollapsible.js +40 -0
  42. package/dist/SelectColorField.js +283 -0
  43. package/dist/SelectColumnChart.js +222 -0
  44. package/dist/SelectComboChart.js +139 -0
  45. package/dist/SelectCombobox.js +158 -0
  46. package/dist/SelectConfirmModal.js +42 -0
  47. package/dist/SelectConversation.js +97 -0
  48. package/dist/SelectCopyRow.js +61 -0
  49. package/dist/SelectCopyableId.js +45 -0
  50. package/dist/SelectDataTable.js +247 -0
  51. package/dist/SelectDateField.js +255 -0
  52. package/dist/SelectDatePicker.js +311 -0
  53. package/dist/SelectDateRangeField.js +57 -0
  54. package/dist/SelectDetail.js +49 -0
  55. package/dist/SelectDisclosureButton.js +23 -0
  56. package/dist/SelectDivider.js +20 -0
  57. package/dist/SelectDnsRecords.js +74 -0
  58. package/dist/SelectDocumentField.js +24 -0
  59. package/dist/SelectDonut.js +103 -0
  60. package/dist/SelectDotField.js +134 -0
  61. package/dist/SelectDumbbell.js +100 -0
  62. package/dist/SelectFactStrip.js +42 -0
  63. package/dist/SelectFeeBreakdown.js +88 -0
  64. package/dist/SelectField.d.ts +24 -6
  65. package/dist/SelectField.js +196 -0
  66. package/dist/SelectFieldGrid.js +15 -0
  67. package/dist/SelectFileDropzone.js +160 -0
  68. package/dist/SelectFileTile.js +53 -0
  69. package/dist/SelectFilterBar.js +292 -0
  70. package/dist/SelectFilterChip.js +32 -0
  71. package/dist/SelectFlowCanvas.js +282 -0
  72. package/dist/SelectFormLayout.js +21 -0
  73. package/dist/SelectFormModal.js +53 -0
  74. package/dist/SelectFunnel.js +49 -0
  75. package/dist/SelectGauge.js +74 -0
  76. package/dist/SelectGaugeBands.js +78 -0
  77. package/dist/SelectGlobe.js +472 -0
  78. package/dist/SelectHeatmap.js +76 -0
  79. package/dist/SelectHexbin.js +59 -0
  80. package/dist/SelectHorizontalBar.js +100 -0
  81. package/dist/SelectHtmlFrame.js +30 -0
  82. package/dist/SelectIcicle.js +87 -0
  83. package/dist/SelectIcon.js +21 -0
  84. package/dist/SelectIconButton.js +24 -0
  85. package/dist/SelectIconPicker.js +79 -0
  86. package/dist/SelectIconTile.js +17 -0
  87. package/dist/SelectIdentityFooter.js +30 -0
  88. package/dist/SelectImageField.js +56 -0
  89. package/dist/SelectImageGalleryField.js +243 -0
  90. package/dist/SelectImageUploadField.js +155 -0
  91. package/dist/SelectImageUrlsField.js +68 -0
  92. package/dist/SelectImageZoomModal.js +26 -0
  93. package/dist/SelectInfoTip.js +31 -0
  94. package/dist/SelectInsight.js +777 -0
  95. package/dist/SelectJourney.js +68 -0
  96. package/dist/SelectJsonViewer.js +294 -0
  97. package/dist/SelectKanban.js +124 -0
  98. package/dist/SelectKbd.js +15 -0
  99. package/dist/SelectKeyValueEditor.js +88 -0
  100. package/dist/SelectKpiBand.js +17 -0
  101. package/dist/SelectKpiCard.js +54 -0
  102. package/dist/SelectLauncher.js +58 -0
  103. package/dist/SelectLayout.js +100 -0
  104. package/dist/SelectLineChart.js +161 -0
  105. package/dist/SelectLinkButton.js +18 -0
  106. package/dist/SelectListCard.js +89 -0
  107. package/dist/SelectLoader.js +27 -0
  108. package/dist/SelectLocale.d.ts +2 -0
  109. package/dist/SelectLocale.js +191 -0
  110. package/dist/SelectMail.js +811 -0
  111. package/dist/SelectMailEditor.js +224 -0
  112. package/dist/SelectMarimekko.js +87 -0
  113. package/dist/SelectMarkStack.js +30 -0
  114. package/dist/SelectMediaCell.js +28 -0
  115. package/dist/SelectMenu.js +110 -0
  116. package/dist/SelectMiniStats.js +37 -0
  117. package/dist/SelectModal.js +177 -0
  118. package/dist/SelectMoney.js +136 -0
  119. package/dist/SelectMoneyField.js +82 -0
  120. package/dist/SelectNetwork.js +122 -0
  121. package/dist/SelectNote.js +26 -0
  122. package/dist/SelectNumberField.js +87 -0
  123. package/dist/SelectNumberedList.js +30 -0
  124. package/dist/SelectOfferPrice.js +48 -0
  125. package/dist/SelectOfflineModal.js +31 -0
  126. package/dist/SelectOptionList.js +54 -0
  127. package/dist/SelectOtpInput.js +64 -0
  128. package/dist/SelectPage.js +85 -0
  129. package/dist/SelectPagination.js +82 -0
  130. package/dist/SelectPanel.js +41 -0
  131. package/dist/SelectParallel.js +100 -0
  132. package/dist/SelectPareto.js +134 -0
  133. package/dist/SelectPasswordStrength.js +82 -0
  134. package/dist/SelectPaymentBrand.js +213 -0
  135. package/dist/SelectPaymentCard.js +53 -0
  136. package/dist/SelectPhoneField.js +139 -0
  137. package/dist/SelectPips.js +25 -0
  138. package/dist/SelectPlanCard.js +64 -0
  139. package/dist/SelectPolarArea.js +82 -0
  140. package/dist/SelectPopover.js +101 -0
  141. package/dist/SelectPreviewFrame.js +119 -0
  142. package/dist/SelectProgressBar.js +54 -0
  143. package/dist/SelectProgressList.js +58 -0
  144. package/dist/SelectPyramid.js +116 -0
  145. package/dist/SelectQrCode.d.ts +12 -0
  146. package/dist/SelectQrCode.js +51 -0
  147. package/dist/SelectQuestionStage.js +183 -0
  148. package/dist/SelectRadar.js +118 -0
  149. package/dist/SelectRadialBar.js +103 -0
  150. package/dist/SelectRadioGroup.js +54 -0
  151. package/dist/SelectRangeBar.js +89 -0
  152. package/dist/SelectRating.js +58 -0
  153. package/dist/SelectRatingQuote.js +31 -0
  154. package/dist/SelectRecordCard.js +144 -0
  155. package/dist/SelectRegions.js +23 -0
  156. package/dist/SelectRepeatingFieldArray.js +104 -0
  157. package/dist/SelectResendButton.js +44 -0
  158. package/dist/SelectRetryStatus.js +79 -0
  159. package/dist/SelectRing.js +53 -0
  160. package/dist/SelectRowActions.js +32 -0
  161. package/dist/SelectSankey.js +92 -0
  162. package/dist/SelectScatter.js +79 -0
  163. package/dist/SelectSearchInput.d.ts +8 -2
  164. package/dist/SelectSearchInput.js +38 -0
  165. package/dist/SelectSearchMenu.js +128 -0
  166. package/dist/SelectSection.js +83 -0
  167. package/dist/SelectSegmented.js +95 -0
  168. package/dist/SelectSelect.d.ts +19 -5
  169. package/dist/SelectSelect.js +84 -0
  170. package/dist/SelectSetting.js +54 -0
  171. package/dist/SelectSetupGuide.js +187 -0
  172. package/dist/SelectShareBar.js +139 -0
  173. package/dist/SelectSideNav.js +263 -0
  174. package/dist/SelectSkeleton.js +56 -0
  175. package/dist/SelectSlope.js +129 -0
  176. package/dist/SelectSortable.js +31 -0
  177. package/dist/SelectSparkline.js +66 -0
  178. package/dist/SelectSplitChain.js +52 -0
  179. package/dist/SelectSpotlight.js +81 -0
  180. package/dist/SelectStackedArea.js +117 -0
  181. package/dist/SelectStatusBadge.js +81 -0
  182. package/dist/SelectStatusPage.js +62 -0
  183. package/dist/SelectSteps.js +54 -0
  184. package/dist/SelectStreamGraph.js +99 -0
  185. package/dist/SelectSunburst.js +101 -0
  186. package/dist/SelectSurface.js +41 -0
  187. package/dist/SelectSwitch.js +24 -0
  188. package/dist/SelectSwitchField.d.ts +5 -1
  189. package/dist/SelectSwitchField.js +45 -0
  190. package/dist/SelectTable.js +243 -0
  191. package/dist/SelectTabs.js +63 -0
  192. package/dist/SelectTagSelect.js +144 -0
  193. package/dist/SelectTaskCard.js +44 -0
  194. package/dist/SelectText.js +25 -0
  195. package/dist/SelectTextarea.d.ts +15 -4
  196. package/dist/SelectTextarea.js +58 -0
  197. package/dist/SelectThemeSwitcher.js +66 -0
  198. package/dist/SelectThumbnail.js +41 -0
  199. package/dist/SelectTicker.js +69 -0
  200. package/dist/SelectTile.js +62 -0
  201. package/dist/SelectTileMap.js +268 -0
  202. package/dist/SelectTimeline.js +76 -0
  203. package/dist/SelectToast.js +159 -0
  204. package/dist/SelectToggle.js +80 -0
  205. package/dist/SelectTogglePanel.js +44 -0
  206. package/dist/SelectTokenTextarea.js +173 -0
  207. package/dist/SelectTooltip.js +100 -0
  208. package/dist/SelectTour.js +210 -0
  209. package/dist/SelectTree.js +86 -0
  210. package/dist/SelectTreemap.js +130 -0
  211. package/dist/SelectUnitInput.js +53 -0
  212. package/dist/SelectVenn.js +75 -0
  213. package/dist/SelectViolin.js +95 -0
  214. package/dist/SelectWaffle.js +56 -0
  215. package/dist/SelectWaterfall.js +123 -0
  216. package/dist/SelectWordCloud.js +27 -0
  217. package/dist/SelectWorkspaceSwitcher.js +40 -0
  218. package/dist/SelectZoomThumbnail.js +40 -0
  219. package/dist/chartTip.js +70 -0
  220. package/dist/chartUtils.js +146 -0
  221. package/dist/detectSelectTheme.js +8 -0
  222. package/dist/icons.js +1696 -0
  223. package/dist/index.d.ts +2 -1
  224. package/dist/index.js +213 -32708
  225. package/dist/internal/dateValue.js +12 -0
  226. package/dist/internal/document.js +16 -0
  227. package/dist/internal/flags.js +187 -0
  228. package/dist/internal/frame.js +17 -0
  229. package/dist/internal/inert.js +13 -0
  230. package/dist/internal/layers.d.ts +8 -0
  231. package/dist/internal/layers.js +35 -0
  232. package/dist/internal/listChrome.js +150 -0
  233. package/dist/internal/money.js +16 -0
  234. package/dist/internal/nativeProps.d.ts +11 -0
  235. package/dist/internal/nativeProps.js +14 -0
  236. package/dist/internal/phone.js +52 -0
  237. package/dist/internal/safeHref.js +17 -0
  238. package/dist/internal/useFocusTrap.d.ts +7 -1
  239. package/dist/internal/useFocusTrap.js +40 -0
  240. package/dist/internal/useMatchMedia.js +18 -0
  241. package/dist/internal/useSelectReveal.js +76 -0
  242. package/dist/jsonTree.js +183 -0
  243. package/dist/positioning.js +22 -0
  244. package/dist/spacing.js +22 -0
  245. package/dist/style.css +1 -1
  246. package/dist/uploadUtils.js +29 -0
  247. package/dist/worldLand.js +10401 -0
  248. package/package.json +4 -1
@@ -0,0 +1,173 @@
1
+ import { SelectLabelRow as e } from "./SelectField.js";
2
+ import { forwardRef as t, useCallback as n, useEffect as r, useId as i, useImperativeHandle as a, useLayoutEffect as o, useRef as s } from "react";
3
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ //#region src/SelectTokenTextarea.tsx
5
+ var u = /\{\{?\s*([a-zA-Z_][a-zA-Z0-9_.[\]]*)\s*\}?\}/g, d = "data-select-sentinel";
6
+ function f(e, t, n) {
7
+ let r = document.createElement("span");
8
+ return r.className = "select-token", r.setAttribute("contenteditable", "false"), r.dataset.token = t, r.dataset.raw = e, r.textContent = n(t), r;
9
+ }
10
+ function p(e, t, n) {
11
+ let r = [], i = new RegExp(t.source, t.flags.includes("g") ? t.flags : t.flags + "g"), a = 0;
12
+ for (let t of e.matchAll(i)) {
13
+ let i = t.index ?? 0;
14
+ i > a && r.push(document.createTextNode(e.slice(a, i))), r.push(f(t[0], t[1] ?? "", n)), a = i + t[0].length;
15
+ }
16
+ return a < e.length && r.push(document.createTextNode(e.slice(a))), r;
17
+ }
18
+ function m(e) {
19
+ let t = "", n = (e) => {
20
+ e.childNodes.forEach((e) => {
21
+ if (e.nodeType === Node.TEXT_NODE) {
22
+ t += e.nodeValue ?? "";
23
+ return;
24
+ }
25
+ if (e instanceof HTMLElement) {
26
+ if (e.dataset.raw != null) {
27
+ t += e.dataset.raw;
28
+ return;
29
+ }
30
+ if (e.tagName === "BR") {
31
+ e.hasAttribute(d) || (t += "\n");
32
+ return;
33
+ }
34
+ (e.tagName === "DIV" || e.tagName === "P") && t && !t.endsWith("\n") && (t += "\n"), n(e);
35
+ }
36
+ });
37
+ };
38
+ return n(e), t.replace(/​/g, "");
39
+ }
40
+ var h = t(function({ label: t, value: h, onChange: g, labelOf: _, pattern: v = u, labelAction: y, help: b, hint: x, error: S, placeholder: C, rows: w = 4, disabled: T = !1, onBlur: E, size: D = "md", className: O }, k) {
41
+ let A = i(), j = s(null), M = s(null), N = s(null), P = s(_);
42
+ P.current = _;
43
+ let F = n((e) => {
44
+ let t = j.current;
45
+ if (!t) return;
46
+ t.replaceChildren(...p(e, v, P.current));
47
+ let n = document.createElement("br");
48
+ n.setAttribute(d, ""), t.appendChild(n), M.current = e;
49
+ }, [v]);
50
+ o(() => {
51
+ h !== M.current && F(h);
52
+ }, [h, F]), r(() => {
53
+ var e;
54
+ (e = j.current) == null || e.querySelectorAll(".select-token").forEach((e) => {
55
+ e.textContent = _(e.dataset.token ?? "");
56
+ });
57
+ }, [_]);
58
+ let I = () => {
59
+ let e = j.current;
60
+ if (!e) return;
61
+ if (!e.lastChild || !(e.lastChild instanceof HTMLElement && e.lastChild.hasAttribute(d))) {
62
+ let t = document.createElement("br");
63
+ t.setAttribute(d, ""), e.appendChild(t);
64
+ }
65
+ let t = m(e);
66
+ M.current = t, g(t);
67
+ }, L = () => {
68
+ let e = window.getSelection(), t = j.current;
69
+ e && e.rangeCount && t && t.contains(e.anchorNode) && (N.current = e.getRangeAt(0).cloneRange());
70
+ }, R = (e, t) => {
71
+ let n = j.current;
72
+ if (!n || e.length === 0) return;
73
+ let r = window.getSelection(), i = t && n.contains(t.startContainer) ? t : null;
74
+ if (!i) {
75
+ i = document.createRange();
76
+ let e = n.lastChild;
77
+ e ? i.setStartBefore(e) : i.selectNodeContents(n), i.collapse(!0);
78
+ }
79
+ i.deleteContents();
80
+ let a = document.createDocumentFragment();
81
+ e.forEach((e) => a.appendChild(e));
82
+ let o = e[e.length - 1];
83
+ i.insertNode(a);
84
+ let s = document.createRange();
85
+ s.setStartAfter(o), s.collapse(!0), r == null || r.removeAllRanges(), r == null || r.addRange(s), N.current = s.cloneRange(), I();
86
+ }, z = () => {
87
+ let e = j.current;
88
+ if (!e) return;
89
+ e.focus();
90
+ let t = N.current;
91
+ if (t && e.contains(t.startContainer)) {
92
+ let e = window.getSelection();
93
+ e == null || e.removeAllRanges(), e == null || e.addRange(t.cloneRange());
94
+ }
95
+ };
96
+ a(k, () => ({
97
+ insertToken: (e) => {
98
+ var t, n;
99
+ R([f(`{${e}}`, e, P.current)], N.current), z(), window.setTimeout(z, 0), (t = (n = window).requestAnimationFrame) == null || t.call(n, () => z());
100
+ },
101
+ focus: z
102
+ }));
103
+ let B = (e) => {
104
+ if (e.key === "Enter") {
105
+ e.preventDefault();
106
+ let t = window.getSelection();
107
+ R([document.createTextNode("\n")], t && t.rangeCount ? t.getRangeAt(0) : null);
108
+ }
109
+ }, V = (e) => {
110
+ e.preventDefault();
111
+ let t = e.clipboardData.getData("text/plain");
112
+ if (!t) return;
113
+ let n = window.getSelection();
114
+ R(p(t.replace(/\r\n?/g, "\n"), v, P.current), n && n.rangeCount ? n.getRangeAt(0) : null);
115
+ }, H = (e, t) => {
116
+ let n = window.getSelection();
117
+ if (!n || !n.rangeCount || n.isCollapsed) return;
118
+ let r = n.getRangeAt(0), i = document.createElement("div");
119
+ i.appendChild(r.cloneContents()), e.preventDefault(), e.clipboardData.setData("text/plain", m(i)), t && (r.deleteContents(), I());
120
+ }, U = S ? `${A}-err` : x ? `${A}-hint` : void 0;
121
+ return /* @__PURE__ */ l("div", {
122
+ className: `select-field${D === "sm" ? " select-field--sm" : ""}${O ? " " + O : ""}`,
123
+ children: [
124
+ (t || b || y) && /* @__PURE__ */ c(e, {
125
+ htmlFor: A,
126
+ label: t,
127
+ help: b,
128
+ action: y
129
+ }),
130
+ /* @__PURE__ */ c("div", {
131
+ ref: j,
132
+ id: A,
133
+ role: "textbox",
134
+ "aria-multiline": "true",
135
+ "aria-label": t,
136
+ "aria-invalid": S ? !0 : void 0,
137
+ "aria-describedby": U,
138
+ "aria-disabled": T || void 0,
139
+ contentEditable: !T,
140
+ suppressContentEditableWarning: !0,
141
+ spellCheck: !0,
142
+ "data-placeholder": C,
143
+ "data-empty": h === "" || void 0,
144
+ className: `select-input select-tokenarea${S ? " select-input--error" : ""}${T ? " is-disabled" : ""}`,
145
+ style: { minHeight: `calc(${w} * 1.4em + 2 * var(--select-sp-4) + 2px)` },
146
+ onInput: I,
147
+ onKeyDown: B,
148
+ onKeyUp: L,
149
+ onMouseUp: L,
150
+ onFocus: L,
151
+ onBlur: () => {
152
+ L(), E == null || E();
153
+ },
154
+ onPaste: V,
155
+ onCopy: (e) => H(e, !1),
156
+ onCut: (e) => H(e, !0)
157
+ }),
158
+ S ? /* @__PURE__ */ c("p", {
159
+ id: `${A}-err`,
160
+ className: "select-field__error",
161
+ children: S
162
+ }) : x ? /* @__PURE__ */ c("p", {
163
+ id: `${A}-hint`,
164
+ className: "select-field__hint",
165
+ children: x
166
+ }) : null
167
+ ]
168
+ });
169
+ });
170
+ //#endregion
171
+ export { u as SELECT_TOKEN_PATTERN, h as SelectTokenTextarea, m as readTokenText };
172
+
173
+ //# sourceMappingURL=SelectTokenTextarea.js.map
@@ -0,0 +1,100 @@
1
+ /* empty css */
2
+ import { computePopoverPosition as e } from "./positioning.js";
3
+ import { useCallback as t, useEffect as n, useId as r, useLayoutEffect as i, useRef as a, useState as o } from "react";
4
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ import { createPortal as u } from "react-dom";
6
+ //#region src/SelectTooltip.tsx
7
+ function d() {
8
+ return typeof window > "u" || !window.matchMedia || window.matchMedia("(hover: hover)").matches;
9
+ }
10
+ function f(e) {
11
+ try {
12
+ return e instanceof Element && e.matches(":focus-visible");
13
+ } catch {
14
+ return !0;
15
+ }
16
+ }
17
+ function p({ content: p, children: m, placement: h = "top", delay: g = 250, openOnClick: _ = !1, disabled: v = !1 }) {
18
+ let [y, b] = o(!1), [x, S] = o(!1), [C, w] = o(!1), T = !v && (x || y && !C), E = a(null), D = a(null), O = a(null), [k, A] = o(null), j = r(), M = () => {
19
+ d() && (O.current && clearTimeout(O.current), O.current = setTimeout(() => b(!0), g));
20
+ }, N = () => {
21
+ O.current && clearTimeout(O.current), b(!1), w(!1);
22
+ }, P = () => {
23
+ _ && (O.current && clearTimeout(O.current), T ? (S(!1), b(!1), w(!0)) : S(!0));
24
+ };
25
+ n(() => () => {
26
+ O.current && clearTimeout(O.current);
27
+ }, []);
28
+ let F = t(() => {
29
+ var t;
30
+ let n = ((t = E.current) == null ? void 0 : t.firstElementChild) ?? E.current, r = D.current;
31
+ if (!n || !r) return;
32
+ let i = e(n.getBoundingClientRect(), {
33
+ width: r.offsetWidth,
34
+ height: r.offsetHeight
35
+ }, h, 6);
36
+ A({
37
+ top: i.top,
38
+ left: i.left
39
+ });
40
+ }, [h]);
41
+ return i(() => {
42
+ if (!T) {
43
+ A(null);
44
+ return;
45
+ }
46
+ F();
47
+ }, [T, F]), n(() => {
48
+ if (!T) return;
49
+ let e = () => F();
50
+ return window.addEventListener("scroll", e, !0), window.addEventListener("resize", e), () => {
51
+ window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e);
52
+ };
53
+ }, [T, F]), n(() => {
54
+ if (!T) return;
55
+ let e = (e) => {
56
+ e.key === "Escape" && (S(!1), b(!1));
57
+ };
58
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
59
+ }, [T]), n(() => {
60
+ if (!x) return;
61
+ let e = (e) => {
62
+ var t, n;
63
+ let r = e.target;
64
+ (t = E.current) != null && t.contains(r) || (n = D.current) != null && n.contains(r) || (S(!1), b(!1));
65
+ };
66
+ return document.addEventListener("mousedown", e, !0), () => document.removeEventListener("mousedown", e, !0);
67
+ }, [x]), /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("span", {
68
+ className: "select-tip__trigger",
69
+ ref: E,
70
+ onMouseEnter: M,
71
+ onMouseLeave: N,
72
+ onFocusCapture: (e) => {
73
+ f(e.target) && b(!0);
74
+ },
75
+ onBlurCapture: N,
76
+ onClick: _ ? P : void 0,
77
+ "aria-describedby": T ? j : void 0,
78
+ children: m
79
+ }), T && u(/* @__PURE__ */ c("div", {
80
+ ref: D,
81
+ id: j,
82
+ role: "tooltip",
83
+ className: `select select-tip${x ? " select-tip--pinned" : ""}`,
84
+ style: k ? {
85
+ position: "fixed",
86
+ top: k.top,
87
+ left: k.left
88
+ } : {
89
+ position: "fixed",
90
+ top: 0,
91
+ left: 0,
92
+ visibility: "hidden"
93
+ },
94
+ children: p
95
+ }), document.body)] });
96
+ }
97
+ //#endregion
98
+ export { p as SelectTooltip };
99
+
100
+ //# sourceMappingURL=SelectTooltip.js.map
@@ -0,0 +1,210 @@
1
+ /* empty css */
2
+ import { SelectButton as e } from "./SelectButton.js";
3
+ import { SelectLinkButton as t } from "./SelectLinkButton.js";
4
+ import { useCallback as n, useEffect as r, useLayoutEffect as i, useMemo as a, useRef as o, useState as s } from "react";
5
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
+ import { createPortal as u } from "react-dom";
7
+ //#region src/SelectTour.tsx
8
+ var d = 6, f = 14, p = 8, m = 640;
9
+ function h(e) {
10
+ let t = document.querySelector(e);
11
+ if (!t) return null;
12
+ let n = t.getBoundingClientRect();
13
+ if (n.width === 0 && n.height === 0) return null;
14
+ let r = Math.min(parseFloat(getComputedStyle(t).borderTopLeftRadius) || 0, Math.min(n.width, n.height) / 2);
15
+ return {
16
+ top: n.top - d,
17
+ left: n.left - d,
18
+ width: n.width + 12,
19
+ height: n.height + 12,
20
+ radius: r + d
21
+ };
22
+ }
23
+ var g = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n));
24
+ function _(e, t, n, r, i) {
25
+ if (r < m) return {
26
+ side: "sheet",
27
+ left: p,
28
+ top: e.top + e.height / 2 > i / 2 ? p : i - n - p
29
+ };
30
+ let a = e.top + e.height / 2, o = e.left + e.width / 2, s = (e) => e >= p && e + n <= i - p, c = (e) => e >= p && e + t <= r - p, l = g(a - n / 2, p, i - n - p), u = g(o - t / 2, p, r - t - p), d = [
31
+ {
32
+ side: "right",
33
+ left: e.left + e.width + f,
34
+ top: l,
35
+ arrow: a - l
36
+ },
37
+ {
38
+ side: "left",
39
+ left: e.left - f - t,
40
+ top: l,
41
+ arrow: a - l
42
+ },
43
+ {
44
+ side: "bottom",
45
+ left: u,
46
+ top: e.top + e.height + f,
47
+ arrow: o - u
48
+ },
49
+ {
50
+ side: "top",
51
+ left: u,
52
+ top: e.top - f - n,
53
+ arrow: o - u
54
+ }
55
+ ];
56
+ for (let r of d) {
57
+ let o = r.side === "right" || r.side === "left";
58
+ if (!(o && (e.height > i * .6 || a < p || a > i - p)) && c(r.left) && s(r.top)) return {
59
+ ...r,
60
+ arrow: g(r.arrow ?? 0, 16, (o ? n : t) - 16)
61
+ };
62
+ }
63
+ return {
64
+ side: "sheet",
65
+ left: u,
66
+ top: i - n - p
67
+ };
68
+ }
69
+ function v(e) {
70
+ let t = document.querySelector(e);
71
+ if (!t) return !1;
72
+ let n = t.getBoundingClientRect();
73
+ return n.width === 0 && n.height === 0 || n.right <= 0 || n.left >= window.innerWidth ? !1 : getComputedStyle(t).visibility !== "hidden";
74
+ }
75
+ function y({ open: d, steps: f, onClose: p, labels: m = {}, theme: g = "light" }) {
76
+ let y = a(() => d ? f.filter((e) => v(e.target)) : [], [d]), [b, x] = s(0), [S, C] = s(null), [w, T] = s(null), E = o(null), D = o(null);
77
+ r(() => {
78
+ d && x(0);
79
+ }, [d]);
80
+ let O = y[b], k = b === y.length - 1, A = n(() => {
81
+ if (!O) return;
82
+ let e = h(O.target);
83
+ C(e);
84
+ let t = E.current;
85
+ e && t && T(_(e, t.offsetWidth, t.offsetHeight, window.innerWidth, window.innerHeight));
86
+ }, [O]);
87
+ return i(() => {
88
+ var e, t;
89
+ if (!d || !O) return;
90
+ (e = document.querySelector(O.target)) == null || e.scrollIntoView({
91
+ block: "nearest",
92
+ inline: "nearest"
93
+ }), A();
94
+ let n = requestAnimationFrame(A);
95
+ return (t = D.current) == null || t.focus({ preventScroll: !0 }), () => cancelAnimationFrame(n);
96
+ }, [
97
+ d,
98
+ O,
99
+ A
100
+ ]), r(() => {
101
+ if (d) return document.body.classList.add("select-tour-open"), () => document.body.classList.remove("select-tour-open");
102
+ }, [d]), r(() => {
103
+ if (!d) return;
104
+ let e = (e) => {
105
+ e.key === "Escape" && p("skip"), e.key === "ArrowRight" && x((e) => Math.min(e + 1, y.length - 1)), e.key === "ArrowLeft" && x((e) => Math.max(e - 1, 0));
106
+ };
107
+ return window.addEventListener("keydown", e), window.addEventListener("resize", A), window.addEventListener("scroll", A, !0), () => {
108
+ window.removeEventListener("keydown", e), window.removeEventListener("resize", A), window.removeEventListener("scroll", A, !0);
109
+ };
110
+ }, [
111
+ d,
112
+ p,
113
+ A,
114
+ y.length
115
+ ]), !d || !O ? null : u(/* @__PURE__ */ l("div", {
116
+ className: "select select-tour",
117
+ "data-theme": g,
118
+ children: [
119
+ /* @__PURE__ */ c("div", {
120
+ className: "select-tour__catch",
121
+ "aria-hidden": "true"
122
+ }),
123
+ S && /* @__PURE__ */ c("div", {
124
+ className: "select-tour__hole",
125
+ "aria-hidden": "true",
126
+ style: {
127
+ top: S.top,
128
+ left: S.left,
129
+ width: S.width,
130
+ height: S.height,
131
+ borderRadius: S.radius
132
+ }
133
+ }),
134
+ /* @__PURE__ */ l("div", {
135
+ ref: E,
136
+ className: `select-tour__pop${w ? ` select-tour__pop--${w.side}` : ""}`,
137
+ role: "dialog",
138
+ "aria-modal": "true",
139
+ "aria-labelledby": "select-tour-title",
140
+ style: w ? {
141
+ top: w.top,
142
+ left: w.left
143
+ } : { visibility: "hidden" },
144
+ children: [
145
+ (w == null ? void 0 : w.arrow) !== void 0 && /* @__PURE__ */ c("span", {
146
+ className: "select-tour__arrow",
147
+ "aria-hidden": "true",
148
+ style: w.side === "right" || w.side === "left" ? { top: w.arrow } : { left: w.arrow }
149
+ }),
150
+ /* @__PURE__ */ l("div", {
151
+ className: "select-tour__content",
152
+ children: [
153
+ /* @__PURE__ */ l("span", {
154
+ className: "select-tour__count",
155
+ children: [
156
+ b + 1,
157
+ " de ",
158
+ y.length
159
+ ]
160
+ }),
161
+ /* @__PURE__ */ c("h2", {
162
+ id: "select-tour-title",
163
+ className: "select-tour__title",
164
+ children: O.title
165
+ }),
166
+ /* @__PURE__ */ c("div", {
167
+ className: "select-tour__body",
168
+ children: O.body
169
+ })
170
+ ]
171
+ }, b),
172
+ /* @__PURE__ */ l("div", {
173
+ className: "select-tour__foot",
174
+ children: [
175
+ /* @__PURE__ */ c("span", {
176
+ className: "select-tour__dots",
177
+ "aria-hidden": "true",
178
+ children: y.map((e, t) => /* @__PURE__ */ c("i", { className: t === b ? "is-on" : void 0 }, t))
179
+ }),
180
+ /* @__PURE__ */ c(t, {
181
+ onClick: () => p("skip"),
182
+ children: m.skip ?? "Pular tour"
183
+ }),
184
+ /* @__PURE__ */ l("span", {
185
+ className: "select-tour__nav",
186
+ children: [b > 0 && /* @__PURE__ */ c(e, {
187
+ variant: "secondary",
188
+ size: "sm",
189
+ inline: !0,
190
+ onClick: () => x((e) => e - 1),
191
+ children: m.prev ?? "Anterior"
192
+ }), /* @__PURE__ */ c(e, {
193
+ ref: D,
194
+ size: "sm",
195
+ inline: !0,
196
+ onClick: () => k ? p("done") : x((e) => e + 1),
197
+ children: k ? m.done ?? "Concluir" : m.next ?? "Próximo"
198
+ })]
199
+ })
200
+ ]
201
+ })
202
+ ]
203
+ })
204
+ ]
205
+ }), document.body);
206
+ }
207
+ //#endregion
208
+ export { y as SelectTour, _ as placePop };
209
+
210
+ //# sourceMappingURL=SelectTour.js.map
@@ -0,0 +1,86 @@
1
+ /* empty css */
2
+ import { chartColor as e, useChartSize as t } from "./chartUtils.js";
3
+ import { ChartTooltip as n, useChartTooltip as r } from "./chartTip.js";
4
+ import { useState as i } from "react";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ //#region src/SelectTree.tsx
7
+ function s({ data: s, height: c = 260, className: l, ...u }) {
8
+ let { ref: d, width: f } = t(c), p = r(), [m, h] = i(null), g = {
9
+ top: 14,
10
+ right: 96,
11
+ bottom: 14,
12
+ left: 16
13
+ }, _ = null;
14
+ if (f > 0) {
15
+ let t = [], n = 0, r = 0, i = (e, a, o, s) => {
16
+ r = Math.max(r, a);
17
+ let c = {
18
+ node: e,
19
+ depth: a,
20
+ yUnit: 0,
21
+ ci: o,
22
+ parent: s
23
+ };
24
+ if (e.children && e.children.length) {
25
+ let t = e.children.map((e, t) => i(e, a + 1, a === 0 ? t : o, c));
26
+ c.yUnit = (t[0].yUnit + t[t.length - 1].yUnit) / 2;
27
+ } else c.yUnit = n, n++;
28
+ return t.push(c), c;
29
+ };
30
+ i(s, 0, 0);
31
+ let l = f - g.left - g.right, u = c - g.top - g.bottom, d = (e) => g.left + (r <= 0 ? 0 : l / r * e), v = (e) => g.top + (n <= 1 ? u / 2 : u / (n - 1) * e);
32
+ _ = /* @__PURE__ */ o("svg", {
33
+ width: f,
34
+ height: c,
35
+ className: "select-chart",
36
+ onMouseLeave: () => {
37
+ h(null), p.hide();
38
+ },
39
+ children: [t.map((e, t) => e.parent ? /* @__PURE__ */ a("path", {
40
+ className: "select-tree__link",
41
+ d: `M${d(e.parent.depth)},${v(e.parent.yUnit)} C${(d(e.parent.depth) + d(e.depth)) / 2},${v(e.parent.yUnit)} ${(d(e.parent.depth) + d(e.depth)) / 2},${v(e.yUnit)} ${d(e.depth)},${v(e.yUnit)}`
42
+ }, `l${t}`) : null), t.map((t, n) => {
43
+ let r = t.node.color ?? e(t.ci), i = d(t.depth), s = v(t.yUnit), c = !t.node.children || !t.node.children.length;
44
+ return /* @__PURE__ */ o("g", {
45
+ style: { opacity: m === null || m === n ? 1 : .4 },
46
+ children: [/* @__PURE__ */ a("circle", {
47
+ cx: i,
48
+ cy: s,
49
+ r: m === n ? 6 : 4.5,
50
+ fill: r,
51
+ className: "select-tree__node",
52
+ onMouseEnter: () => {
53
+ h(n), p.show({
54
+ x: i,
55
+ y: s - 8,
56
+ place: "top",
57
+ title: t.node.label,
58
+ rows: []
59
+ });
60
+ },
61
+ onMouseLeave: () => {
62
+ h(null), p.hide();
63
+ }
64
+ }), /* @__PURE__ */ a("text", {
65
+ x: c ? i + 9 : i,
66
+ y: c ? s : s - 9,
67
+ className: "select-chart__xlabel",
68
+ dominantBaseline: "middle",
69
+ textAnchor: c ? "start" : "middle",
70
+ children: t.node.label
71
+ })]
72
+ }, `n${n}`);
73
+ })]
74
+ });
75
+ }
76
+ return /* @__PURE__ */ o("div", {
77
+ ...u,
78
+ className: `select-chart-wrap${l ? " " + l : ""}`,
79
+ ref: d,
80
+ children: [_, /* @__PURE__ */ a(n, { tip: p.tip })]
81
+ });
82
+ }
83
+ //#endregion
84
+ export { s as SelectTree };
85
+
86
+ //# sourceMappingURL=SelectTree.js.map
@@ -0,0 +1,130 @@
1
+ /* empty css */
2
+ import { chartColor as e, formatCompact as t, useChartSize as n } from "./chartUtils.js";
3
+ import { ChartTooltip as r, useChartTooltip as i } from "./chartTip.js";
4
+ import { useId as a } from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ //#region src/SelectTreemap.tsx
7
+ function c(e, t, n) {
8
+ let r = [], i = (e, t) => {
9
+ let n = e.reduce((e, t) => e + t, 0), r = Math.max(...e), i = Math.min(...e);
10
+ return Math.max(t * t * r / (n * n), n * n / (t * t * i));
11
+ }, a = (t, n, o, s, c) => {
12
+ if (t.length === 0 || s <= 0 || c <= 0) return;
13
+ if (t.length === 1) {
14
+ r.push({
15
+ x: n,
16
+ y: o,
17
+ w: s,
18
+ h: c,
19
+ idx: t[0]
20
+ });
21
+ return;
22
+ }
23
+ let l = t.reduce((t, n) => t + e[n], 0) || 1, u = s * c, d = t.map((t) => e[t] / l * u), f = Math.min(s, c), p = 0, m = [];
24
+ for (; p < d.length;) {
25
+ let e = [...m, d[p]];
26
+ if (m.length === 0 || i(e, f) <= i(m, f)) m = e, p++;
27
+ else break;
28
+ }
29
+ let h = t.slice(0, p), g = m.reduce((e, t) => e + t, 0);
30
+ if (s >= c) {
31
+ let e = g / c, i = o;
32
+ h.forEach((t, a) => {
33
+ let o = m[a] / e;
34
+ r.push({
35
+ x: n,
36
+ y: i,
37
+ w: e,
38
+ h: o,
39
+ idx: t
40
+ }), i += o;
41
+ }), a(t.slice(p), n + e, o, s - e, c);
42
+ } else {
43
+ let e = g / s, i = n;
44
+ h.forEach((t, n) => {
45
+ let a = m[n] / e;
46
+ r.push({
47
+ x: i,
48
+ y: o,
49
+ w: a,
50
+ h: e,
51
+ idx: t
52
+ }), i += a;
53
+ }), a(t.slice(p), n, o + e, s, c - e);
54
+ }
55
+ };
56
+ return a(e.map((e, t) => t), 0, 0, t, n), r;
57
+ }
58
+ function l({ data: l, height: u = 240, format: d = t, className: f, ...p }) {
59
+ let { ref: m, width: h } = n(u), g = i(), _ = a(), v = l.map((e, t) => t).sort((e, t) => l[t].value - l[e].value), y = h > 0 ? c(v.map((e) => l[e].value), h, u) : [];
60
+ return /* @__PURE__ */ s("div", {
61
+ ...p,
62
+ className: `select-chart-wrap select-treemap${f ? " " + f : ""}`,
63
+ ref: m,
64
+ children: [h > 0 && /* @__PURE__ */ s("svg", {
65
+ width: h,
66
+ height: u,
67
+ className: "select-chart",
68
+ children: [/* @__PURE__ */ o("defs", { children: l.map((t, n) => {
69
+ let r = t.color ?? e(n);
70
+ return /* @__PURE__ */ s("linearGradient", {
71
+ id: `${_}-t${n}`,
72
+ x1: "0",
73
+ y1: "0",
74
+ x2: "0",
75
+ y2: "1",
76
+ children: [/* @__PURE__ */ o("stop", {
77
+ offset: "0%",
78
+ stopColor: r,
79
+ stopOpacity: .95
80
+ }), /* @__PURE__ */ o("stop", {
81
+ offset: "100%",
82
+ stopColor: r,
83
+ stopOpacity: .6
84
+ })]
85
+ }, n);
86
+ }) }), y.map((t, n) => {
87
+ let r = v[t.idx], i = l[r], a = t.w > 56 && t.h > 30;
88
+ return /* @__PURE__ */ s("g", { children: [
89
+ /* @__PURE__ */ o("rect", {
90
+ x: t.x + 1.5,
91
+ y: t.y + 1.5,
92
+ width: Math.max(0, t.w - 3),
93
+ height: Math.max(0, t.h - 3),
94
+ rx: 6,
95
+ fill: `url(#${_}-t${r})`,
96
+ className: "select-treemap__cell",
97
+ onMouseEnter: () => g.show({
98
+ x: t.x + t.w / 2,
99
+ y: t.y + 6,
100
+ place: t.y < 44 ? "bottom" : "top",
101
+ title: i.label,
102
+ rows: [{
103
+ label: "Valor",
104
+ value: d(i.value),
105
+ color: i.color ?? e(r)
106
+ }]
107
+ }),
108
+ onMouseLeave: g.hide
109
+ }),
110
+ a && /* @__PURE__ */ o("text", {
111
+ x: t.x + 12,
112
+ y: t.y + 22,
113
+ className: "select-treemap__label",
114
+ children: i.label
115
+ }),
116
+ a && t.h > 46 && /* @__PURE__ */ o("text", {
117
+ x: t.x + 12,
118
+ y: t.y + 40,
119
+ className: "select-treemap__value",
120
+ children: d(i.value)
121
+ })
122
+ ] }, n);
123
+ })]
124
+ }), /* @__PURE__ */ o(r, { tip: g.tip })]
125
+ });
126
+ }
127
+ //#endregion
128
+ export { l as SelectTreemap };
129
+
130
+ //# sourceMappingURL=SelectTreemap.js.map