@studiolxd/brand 49.28.0 → 50.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/LICENSE +61 -0
  2. package/README.md +26 -4
  3. package/dist/_shared/assign-ref.js +6 -0
  4. package/dist/_shared/calendargrid.js +57 -57
  5. package/dist/_shared/datepicker.js +67 -65
  6. package/dist/_shared/default-render-link.js +7 -0
  7. package/dist/_shared/dialogsurface.js +1 -1
  8. package/dist/_shared/dropdownitems.js +14 -20
  9. package/dist/_shared/imagecropdialog.js +38 -441
  10. package/dist/_shared/overflow-focusable.js +15 -0
  11. package/dist/_shared/side-offset.js +13 -0
  12. package/dist/_shared/tokens.js +31 -129
  13. package/dist/_shared/useasyncoptions.js +30 -0
  14. package/dist/_types/atoms/Accordion/Accordion.d.ts +7 -1
  15. package/dist/_types/atoms/AsyncMultiSelect/AsyncMultiSelect.d.ts +8 -4
  16. package/dist/_types/atoms/AsyncSelect/AsyncSelect.d.ts +8 -4
  17. package/dist/_types/atoms/Autocomplete/Autocomplete.d.ts +10 -6
  18. package/dist/_types/atoms/CloseButton/CloseButton.d.ts +13 -3
  19. package/dist/_types/atoms/Fieldset/Fieldset.d.ts +1 -1
  20. package/dist/_types/atoms/InputPhone/InputPhone.d.ts +2 -0
  21. package/dist/_types/atoms/MultiSelect/MultiSelect.d.ts +11 -10
  22. package/dist/_types/atoms/Select/Select.d.ts +6 -0
  23. package/dist/_types/atoms/Skeleton/Skeleton.d.ts +1 -1
  24. package/dist/_types/atoms/Spinner/Spinner.d.ts +3 -1
  25. package/dist/_types/atoms/TypingIndicator/TypingIndicator.d.ts +3 -1
  26. package/dist/_types/atoms/_shared/useAsyncOptions.d.ts +36 -0
  27. package/dist/_types/constants/assign-ref.d.ts +12 -0
  28. package/dist/_types/constants/default-render-link.d.ts +13 -0
  29. package/dist/_types/constants/overflow-focusable.d.ts +15 -0
  30. package/dist/_types/constants/side-offset.d.ts +18 -0
  31. package/dist/_types/email/EmailLayout.d.ts +38 -21
  32. package/dist/_types/messages/BrandMessages.d.ts +8 -2
  33. package/dist/_types/messages/index.d.ts +1 -1
  34. package/dist/_types/molecules/AppLauncher/AppLauncher.d.ts +9 -3
  35. package/dist/_types/molecules/Calendar/Calendar.d.ts +10 -1
  36. package/dist/_types/molecules/CalendarPlanner/CalendarPlanner.d.ts +43 -13
  37. package/dist/_types/molecules/CalendarRoster/CalendarRoster.d.ts +10 -2
  38. package/dist/_types/molecules/ContextMenu/ContextMenu.d.ts +8 -1
  39. package/dist/_types/molecules/DatePicker/DatePicker.d.ts +6 -0
  40. package/dist/_types/molecules/DateTimeField/DateTimeField.d.ts +2 -0
  41. package/dist/_types/molecules/DocsSearch/DocsSearch.d.ts +2 -2
  42. package/dist/_types/molecules/FloatingToolbar/FloatingToolbar.d.ts +83 -0
  43. package/dist/_types/molecules/FormField/FormField.d.ts +5 -6
  44. package/dist/_types/molecules/LanguageSwitcher/LanguageSwitcher.d.ts +7 -3
  45. package/dist/_types/molecules/LoadingRegion/LoadingRegion.d.ts +12 -4
  46. package/dist/_types/molecules/Modal/Modal.d.ts +10 -4
  47. package/dist/_types/molecules/OrgSwitcher/OrgSwitcher.d.ts +7 -1
  48. package/dist/_types/molecules/PasswordField/PasswordField.d.ts +9 -2
  49. package/dist/_types/molecules/PrevNextNav/PrevNextNav.d.ts +3 -1
  50. package/dist/_types/molecules/RecurrenceField/RecurrenceField.d.ts +6 -1
  51. package/dist/_types/molecules/SidebarNav/SidebarNav.d.ts +18 -2
  52. package/dist/_types/molecules/SiteNav/SiteNav.d.ts +4 -1
  53. package/dist/_types/molecules/StatTile/StatTile.d.ts +15 -1
  54. package/dist/_types/molecules/Table/Table.d.ts +1 -1
  55. package/dist/_types/molecules/ThemeSwitcher/ThemeSwitcher.d.ts +38 -3
  56. package/dist/_types/molecules/Toast/Toaster.d.ts +8 -0
  57. package/dist/_types/molecules/UserMenu/UserMenu.d.ts +7 -1
  58. package/dist/_types/molecules/_shared/calendarGrid.d.ts +15 -2
  59. package/dist/_types/molecules/_shared/dialogSurface.d.ts +6 -1
  60. package/dist/_types/molecules/_shared/dropdownItems.d.ts +0 -2
  61. package/dist/_types/sections/AppHeader/AppHeader.d.ts +3 -1
  62. package/dist/_types/sections/AppShell/AppShell.d.ts +6 -1
  63. package/dist/_types/sections/LegalFooter/LegalFooter.d.ts +7 -1
  64. package/dist/_types/sections/Sidebar/Sidebar.d.ts +3 -1
  65. package/dist/_types/sections/SiteFooter/SiteFooter.d.ts +6 -2
  66. package/dist/_types/sections/SiteHeader/SiteHeader.d.ts +2 -2
  67. package/dist/_types/templates/ConnectorAuth/ConnectorAuthShell.d.ts +5 -2
  68. package/dist/_types/templates/ConnectorAuth/ConnectorConsentPage.d.ts +1 -1
  69. package/dist/_types/templates/ConnectorAuth/ConnectorExternalSignInPage.d.ts +1 -1
  70. package/dist/_types/templates/ConnectorAuth/ConnectorRejectionPage.d.ts +1 -1
  71. package/dist/_types/templates/ConnectorAuth/ConnectorSignInPage.d.ts +1 -1
  72. package/dist/_types/templates/ErrorPage/ErrorPage.d.ts +7 -1
  73. package/dist/_types/templates/NotFoundPage/NotFoundPage.d.ts +7 -1
  74. package/dist/_types/templates/PublicPageShell/PublicPageShell.d.ts +6 -0
  75. package/dist/accordion.css +1 -1
  76. package/dist/accordion.js +6 -5
  77. package/dist/alert.css +1 -1
  78. package/dist/app-header.js +16 -21
  79. package/dist/app-launcher.css +1 -1
  80. package/dist/app-launcher.js +29 -21
  81. package/dist/app-shell.js +43 -43
  82. package/dist/async-multi-select.css +1 -1
  83. package/dist/async-multi-select.js +104 -173
  84. package/dist/async-select.css +1 -1
  85. package/dist/async-select.js +81 -137
  86. package/dist/autocomplete.css +1 -1
  87. package/dist/autocomplete.js +76 -115
  88. package/dist/brand.css +77 -987
  89. package/dist/breadcrumb.js +11 -16
  90. package/dist/button.css +1 -1
  91. package/dist/calendar-planner.css +1 -1
  92. package/dist/calendar-planner.js +100 -95
  93. package/dist/calendar-roster.css +1 -1
  94. package/dist/calendar-roster.js +69 -61
  95. package/dist/calendar.css +1 -1
  96. package/dist/calendar.js +86 -85
  97. package/dist/card.css +1 -1
  98. package/dist/card.js +42 -41
  99. package/dist/chart.css +1 -1
  100. package/dist/chat-shell.js +48 -47
  101. package/dist/checkbox.css +1 -1
  102. package/dist/close-button.js +14 -12
  103. package/dist/command-palette.css +1 -1
  104. package/dist/connector-consent-page.js +19 -18
  105. package/dist/connector-external-sign-in-page.js +6 -5
  106. package/dist/connector-rejection-page.js +5 -4
  107. package/dist/connector-sign-in-page.js +10 -9
  108. package/dist/consent.css +1 -1
  109. package/dist/context-menu.js +3 -2
  110. package/dist/conversation-list.css +1 -1
  111. package/dist/conversation-thread.css +1 -1
  112. package/dist/conversation-thread.js +1 -0
  113. package/dist/data-table.js +74 -1625
  114. package/dist/date-time-field.js +7 -6
  115. package/dist/docs-search.js +36 -38
  116. package/dist/email.js +10 -7
  117. package/dist/error-page.js +2 -2
  118. package/dist/fieldset.css +1 -1
  119. package/dist/figure.js +1 -0
  120. package/dist/file-upload.css +1 -1
  121. package/dist/file-upload.js +48 -50
  122. package/dist/floating-toolbar.css +1 -0
  123. package/dist/floating-toolbar.js +64 -0
  124. package/dist/form-field.js +55 -53
  125. package/dist/imagecropdialog.css +1 -1
  126. package/dist/input-phone.css +1 -1
  127. package/dist/input-phone.js +30 -31
  128. package/dist/input.css +1 -1
  129. package/dist/label.css +1 -1
  130. package/dist/language-switcher.js +37 -44
  131. package/dist/legal-footer.js +12 -17
  132. package/dist/loading-region.css +1 -1
  133. package/dist/loading-region.js +8 -8
  134. package/dist/menu.css +1 -1
  135. package/dist/menu.js +4 -3
  136. package/dist/message-bubble.css +1 -1
  137. package/dist/message-composer.css +1 -1
  138. package/dist/modal.css +1 -1
  139. package/dist/modal.js +9 -9
  140. package/dist/multi-select.css +1 -1
  141. package/dist/multi-select.js +104 -172
  142. package/dist/not-found-page.js +8 -5
  143. package/dist/notification-list.js +16 -21
  144. package/dist/notification-panel.js +34 -46
  145. package/dist/number-badge.css +1 -1
  146. package/dist/number-input.css +1 -1
  147. package/dist/org-switcher.css +1 -1
  148. package/dist/org-switcher.js +13 -11
  149. package/dist/password-field.js +40 -39
  150. package/dist/popover.css +1 -1
  151. package/dist/popover.js +9 -15
  152. package/dist/prev-next-nav.js +8 -7
  153. package/dist/public-page-shell.js +7 -6
  154. package/dist/radio.css +1 -1
  155. package/dist/recurrence-field.css +1 -1
  156. package/dist/recurrence-field.js +38 -37
  157. package/dist/select.css +1 -1
  158. package/dist/select.js +3 -2
  159. package/dist/sheet.css +1 -1
  160. package/dist/sidebar-nav.css +1 -1
  161. package/dist/sidebar-nav.js +75 -70
  162. package/dist/sidebar.css +1 -1
  163. package/dist/sidebar.js +46 -42
  164. package/dist/site-footer.js +28 -28
  165. package/dist/site-header.js +39 -44
  166. package/dist/site-nav.js +10 -19
  167. package/dist/site-search.js +34 -36
  168. package/dist/site-shell.js +17 -16
  169. package/dist/skeleton.js +8 -6
  170. package/dist/sortable.js +20 -19
  171. package/dist/spinner.js +11 -7
  172. package/dist/stat-tile.js +24 -26
  173. package/dist/switcher.css +1 -1
  174. package/dist/table.css +1 -1
  175. package/dist/table.js +57 -45
  176. package/dist/textarea.css +1 -1
  177. package/dist/theme-switcher.js +57 -56
  178. package/dist/toaster.css +1 -1
  179. package/dist/toggle.css +1 -1
  180. package/dist/tokens.css +75 -986
  181. package/dist/tooltip.css +1 -1
  182. package/dist/tooltip.js +20 -27
  183. package/dist/typing-indicator.css +1 -1
  184. package/dist/typing-indicator.js +4 -4
  185. package/dist/user-menu.css +1 -1
  186. package/dist/user-menu.js +38 -45
  187. package/dist/visuallyhidden.css +1 -1
  188. package/package.json +26 -14
  189. package/src/tokens/components/async-multi-select.css +4 -0
  190. package/src/tokens/components/async-select.css +3 -0
  191. package/src/tokens/components/autocomplete.css +1 -0
  192. package/src/tokens/components/breadcrumb.css +0 -2
  193. package/src/tokens/components/button.css +0 -23
  194. package/src/tokens/components/control.css +0 -4
  195. package/src/tokens/components/file-upload.css +0 -4
  196. package/src/tokens/components/radio.css +2 -0
  197. package/src/tokens/components/site-header.css +0 -1
  198. package/src/tokens/index.css +5 -7
  199. package/src/tokens/molecules/async-multi-select-field.css +0 -6
  200. package/src/tokens/molecules/async-select-field.css +0 -6
  201. package/src/tokens/molecules/autocomplete-field.css +0 -5
  202. package/src/tokens/molecules/avatar-upload.css +0 -6
  203. package/src/tokens/molecules/calendar-roster.css +5 -0
  204. package/src/tokens/molecules/chart.css +0 -3
  205. package/src/tokens/molecules/checkbox-field.css +0 -6
  206. package/src/tokens/molecules/consent.css +1 -0
  207. package/src/tokens/molecules/conversation-thread.css +10 -0
  208. package/src/tokens/molecules/date-picker-field.css +0 -6
  209. package/src/tokens/molecules/date-time-field.css +0 -6
  210. package/src/tokens/molecules/dropdown-field.css +0 -6
  211. package/src/tokens/molecules/file-upload-field.css +0 -6
  212. package/src/tokens/molecules/floating-toolbar.css +18 -0
  213. package/src/tokens/molecules/floating-toolbar.ts +4 -0
  214. package/src/tokens/molecules/input-field.css +0 -1
  215. package/src/tokens/molecules/input-phone-field.css +0 -6
  216. package/src/tokens/molecules/modal.css +1 -0
  217. package/src/tokens/molecules/multi-select-field.css +0 -6
  218. package/src/tokens/molecules/number-input-field.css +0 -6
  219. package/src/tokens/molecules/otp-field.css +0 -6
  220. package/src/tokens/molecules/radio-field.css +0 -6
  221. package/src/tokens/molecules/recurrence-field.css +1 -0
  222. package/src/tokens/molecules/select-field.css +0 -6
  223. package/src/tokens/molecules/sidebar-nav.css +0 -6
  224. package/src/tokens/molecules/site-search.css +0 -2
  225. package/src/tokens/molecules/switcher-field.css +0 -1
  226. package/src/tokens/molecules/table.css +1 -0
  227. package/src/tokens/molecules/textarea-field.css +0 -6
  228. package/src/tokens/molecules/time-field.css +0 -6
  229. package/src/tokens/scss/_index.legacy.scss +1 -0
  230. package/src/tokens/scss/_index.scss +1 -0
  231. package/src/tokens/scss/components/_async-multi-select.scss +4 -0
  232. package/src/tokens/scss/components/_async-select.scss +3 -0
  233. package/src/tokens/scss/components/_autocomplete.scss +1 -0
  234. package/src/tokens/scss/components/_breadcrumb.scss +0 -2
  235. package/src/tokens/scss/components/_button.scss +0 -23
  236. package/src/tokens/scss/components/_control.scss +0 -4
  237. package/src/tokens/scss/components/_file-upload.scss +0 -4
  238. package/src/tokens/scss/components/_site-header.scss +0 -1
  239. package/src/tokens/scss/molecules/_async-multi-select-field.scss +0 -5
  240. package/src/tokens/scss/molecules/_async-select-field.scss +0 -5
  241. package/src/tokens/scss/molecules/_autocomplete-field.scss +0 -5
  242. package/src/tokens/scss/molecules/_avatar-upload.scss +0 -5
  243. package/src/tokens/scss/molecules/_calendar-roster.scss +4 -0
  244. package/src/tokens/scss/molecules/_chart.scss +0 -2
  245. package/src/tokens/scss/molecules/_checkbox-field.scss +0 -5
  246. package/src/tokens/scss/molecules/_consent.scss +1 -0
  247. package/src/tokens/scss/molecules/_conversation-thread.scss +3 -0
  248. package/src/tokens/scss/molecules/_date-picker-field.scss +0 -5
  249. package/src/tokens/scss/molecules/_date-time-field.scss +0 -5
  250. package/src/tokens/scss/molecules/_dropdown-field.scss +0 -5
  251. package/src/tokens/scss/molecules/_file-upload-field.scss +0 -5
  252. package/src/tokens/scss/molecules/_floating-toolbar.scss +15 -0
  253. package/src/tokens/scss/molecules/_input-field.scss +0 -1
  254. package/src/tokens/scss/molecules/_input-phone-field.scss +0 -5
  255. package/src/tokens/scss/molecules/_modal.scss +1 -0
  256. package/src/tokens/scss/molecules/_multi-select-field.scss +0 -5
  257. package/src/tokens/scss/molecules/_number-input-field.scss +0 -5
  258. package/src/tokens/scss/molecules/_otp-field.scss +0 -5
  259. package/src/tokens/scss/molecules/_radio-field.scss +0 -5
  260. package/src/tokens/scss/molecules/_recurrence-field.scss +1 -0
  261. package/src/tokens/scss/molecules/_select-field.scss +0 -5
  262. package/src/tokens/scss/molecules/_sidebar-nav.scss +0 -4
  263. package/src/tokens/scss/molecules/_site-search.scss +0 -2
  264. package/src/tokens/scss/molecules/_switcher-field.scss +0 -1
  265. package/src/tokens/scss/molecules/_table.scss +1 -0
  266. package/src/tokens/scss/molecules/_textarea-field.scss +0 -5
  267. package/src/tokens/scss/molecules/_time-field.scss +0 -5
  268. package/src/tokens/surface-dark-derived.css +2 -1
  269. package/src/tokens/surface-invert.css +15 -21
  270. package/src/tokens/surface-public.css +0 -19
  271. package/src/tokens/tokens.json +31 -129
  272. package/CHANGELOG.md +0 -8154
  273. package/dist/_types/data/home.d.ts +0 -83
  274. package/dist/_types/pages/Auth/AuthPage.d.ts +0 -24
  275. package/dist/_types/pages/Onboarding/OnboardingPage.d.ts +0 -37
  276. package/dist/_types/pages/Status/StatusPage.d.ts +0 -37
  277. package/dist/_types/pages/Status/_datos.d.ts +0 -47
  278. package/src/tokens/surface-light.css +0 -782
  279. package/src/tokens/utils.test.ts +0 -86
@@ -2,193 +2,124 @@
2
2
  import './async-multi-select.css';
3
3
  import { n as e } from "./_shared/brandmessagescontext.js";
4
4
  import { Icon as t } from "./icon.js";
5
- import { Spinner as n } from "./spinner.js";
6
- import { n as r } from "./_shared/portal-container.js";
7
- import { forwardRef as i, useCallback as a, useEffect as o, useId as s, useRef as c, useState as l } from "react";
8
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
- import { Popover as f } from "@base-ui/react/popover";
5
+ import { VisuallyHidden as n } from "./visually-hidden.js";
6
+ import { Spinner as r } from "./spinner.js";
7
+ import { t as i } from "./_shared/useasyncoptions.js";
8
+ import { n as a } from "./_shared/portal-container.js";
9
+ import { forwardRef as o, useState as s } from "react";
10
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
11
+ import { Combobox as u } from "@base-ui/react/combobox";
10
12
  //#region src/stories/atoms/AsyncMultiSelect/AsyncMultiSelect.tsx
11
- function ee(e, t) {
12
- typeof e == "function" ? e(t) : e && (e.current = t);
13
- }
14
- var p = i(function({ onSearch: i, value: p, defaultValue: te = [], onValueChange: ne, selectedOptions: m, placeholder: h, disabled: g, readOnly: _, size: v = "md", debounceMs: re = 300, id: ie, name: y, error: b = !1, required: x, onBlur: S, className: ae, "aria-label": C, "aria-describedby": oe, removeLabel: se, emptyMessage: ce, loadingLabel: w, container: T }, E) {
15
- let D = e("asyncMultiSelect"), O = r(T), [k, A] = l(!1), [j, M] = l(""), [N, P] = l(!1), [F, I] = l([]), [L, R] = l(!1), [z, B] = l(-1), [V, H] = l(te), [U, W] = l([]), G = c(null), K = c(0), q = c(null), J = c(null), Y = s(), le = s(), X = p === void 0 ? V : p, ue = X.map((e) => m?.find((t) => t.value === e) ?? U.find((t) => t.value === e) ?? {
13
+ var d = [], f = (e, t) => e.value === t.value, p = o(function({ onSearch: o, value: p, defaultValue: m = [], onValueChange: h, selectedOptions: g, placeholder: _, disabled: v, readOnly: y, size: b = "md", debounceMs: x = 300, id: S, name: C, error: w = !1, required: T, onBlur: E, className: D, "aria-label": O, "aria-describedby": k, removeLabel: A, emptyMessage: j, loadingLabel: M, container: N }, P) {
14
+ let F = e("asyncMultiSelect"), I = a(N), { results: L, loading: R, hasSearched: ee, search: z, schedule: B } = i(o, x), [V, H] = s(!1), [U, W] = s(""), [G, K] = s(m), [q, J] = s([]), Y = p === void 0 ? G : p, X = Y.map((e) => g?.find((t) => t.value === e) ?? q.find((t) => t.value === e) ?? {
16
15
  value: e,
17
16
  label: e
18
- }), Z = (e) => `${le}-opt-${e}`, Q = a(async (e) => {
19
- let t = ++K.current;
20
- P(!0), R(!1);
21
- try {
22
- let n = await i(e);
23
- if (t !== K.current) return;
24
- I(n), B(-1);
25
- } catch {
26
- if (t !== K.current) return;
27
- I([]), B(-1);
28
- } finally {
29
- t === K.current && (P(!1), R(!0));
30
- }
31
- }, [i]);
32
- o(() => () => {
33
- K.current += 1, G.current && clearTimeout(G.current);
34
- }, []);
35
- function de(e) {
36
- let t = e.target.value;
37
- M(t), k || A(!0), G.current && clearTimeout(G.current), G.current = setTimeout(() => void Q(t), re);
38
- }
39
- function fe(e) {
40
- g || _ || k || (e.preventDefault(), q.current?.focus(), B(-1), M(""), I([]), R(!1), A(!0), Q(""));
41
- }
42
- function $(e, t) {
43
- let n = X.includes(e) ? X.filter((t) => t !== e) : [...X, e];
44
- t && W((e) => e.some((e) => e.value === t.value) ? e : [...e, t]), p === void 0 && H(n), ne?.(n);
17
+ });
18
+ function Z(e) {
19
+ J((t) => {
20
+ let n = e.filter((e) => !t.some((t) => t.value === e.value));
21
+ return n.length ? [...t, ...n] : t;
22
+ });
23
+ let t = e.map((e) => e.value);
24
+ p === void 0 && K(t), h?.(t);
45
25
  }
46
- function pe(e) {
47
- if (e.key === "ArrowDown") e.preventDefault(), k ? B((e) => Math.min(e + 1, F.length - 1)) : (A(!0), Q(j));
48
- else if (e.key === "ArrowUp") e.preventDefault(), B((e) => Math.max(e - 1, -1));
49
- else if (e.key === "Enter" && z >= 0 && F[z]) e.preventDefault(), $(F[z].value, F[z]), q.current?.focus();
50
- else if (e.key === "Escape") A(!1), M(""), B(-1);
51
- else if (e.key === "Tab") A(!1), B(-1);
52
- else if (e.key === "Backspace" && j === "" && X.length > 0) {
53
- let e = X[X.length - 1];
54
- $(e);
55
- }
26
+ function Q(e, t) {
27
+ e !== V && (H(e), !(e && t.reason === "input-change") && (W(""), e && z("")));
56
28
  }
57
- function me(e, t) {
58
- if (!e) {
59
- if (t.reason === "outside-press") {
60
- let e = t.event?.target;
61
- if (e instanceof Node && J.current?.contains(e)) return;
62
- }
63
- A(!1), M(""), B(-1);
64
- }
29
+ function $(e) {
30
+ e.key === "Escape" && !V && e.preventBaseUIHandler?.();
65
31
  }
66
- let he = [
32
+ let te = [
67
33
  "async-multi-select",
68
- v === "md" ? "" : `async-multi-select--${v}`,
69
- g ? "async-multi-select--disabled" : "",
70
- k ? "async-multi-select--open" : "",
71
- b ? "async-multi-select--error" : "",
72
- ae ?? ""
73
- ].filter(Boolean).join(" "), ge = ["async-multi-select__content", v === "md" ? "" : `async-multi-select__content--${v}`].filter(Boolean).join(" ");
74
- return /* @__PURE__ */ d(f.Root, {
75
- open: k,
76
- onOpenChange: me,
77
- children: [/* @__PURE__ */ d("div", {
78
- ref: J,
79
- className: he,
80
- "data-popup-open": k || void 0,
81
- children: [/* @__PURE__ */ d("div", {
34
+ b === "md" ? "" : `async-multi-select--${b}`,
35
+ v ? "async-multi-select--disabled" : "",
36
+ V ? "async-multi-select--open" : "",
37
+ w ? "async-multi-select--error" : "",
38
+ D ?? ""
39
+ ].filter(Boolean).join(" "), ne = ["async-multi-select__content", b === "md" ? "" : `async-multi-select__content--${b}`].filter(Boolean).join(" ");
40
+ return /* @__PURE__ */ l(u.Root, {
41
+ multiple: !0,
42
+ items: R ? d : L,
43
+ filter: null,
44
+ value: X,
45
+ onValueChange: Z,
46
+ isItemEqualToValue: f,
47
+ inputValue: U,
48
+ onInputValueChange: (e, t) => {
49
+ t.reason === "input-change" && (W(e), B(e));
50
+ },
51
+ open: V,
52
+ onOpenChange: Q,
53
+ name: C,
54
+ disabled: v,
55
+ readOnly: y,
56
+ children: [/* @__PURE__ */ l(u.InputGroup, {
57
+ className: te,
58
+ children: [/* @__PURE__ */ l(u.Chips, {
82
59
  className: "async-multi-select__input-area",
83
- children: [
84
- ue.map((e) => /* @__PURE__ */ d("span", {
85
- className: "async-multi-select__pill",
86
- children: [/* @__PURE__ */ u("span", {
87
- className: "async-multi-select__pill-label",
88
- children: e.label
89
- }), !g && !_ && /* @__PURE__ */ u("button", {
90
- type: "button",
91
- className: "async-multi-select__pill-remove",
92
- "aria-label": D("remove", se)(e.label),
93
- tabIndex: -1,
94
- onMouseDown: (t) => {
95
- t.preventDefault(), $(e.value);
96
- },
97
- children: /* @__PURE__ */ u(t, {
98
- name: "close",
99
- size: "xs"
100
- })
101
- })]
102
- }, e.value)),
103
- /* @__PURE__ */ u("input", {
104
- ref: (e) => {
105
- q.current = e, ee(E, e);
106
- },
107
- id: ie,
108
- type: "text",
109
- className: "async-multi-select__input",
110
- value: j,
111
- onChange: de,
112
- onPointerDown: fe,
113
- onKeyDown: pe,
114
- placeholder: X.length === 0 ? D("placeholder", h) : void 0,
115
- disabled: g,
116
- readOnly: _,
117
- "aria-label": C,
118
- "aria-describedby": oe,
119
- "aria-invalid": b || void 0,
120
- "aria-required": x || void 0,
121
- "aria-expanded": k,
122
- "aria-haspopup": "listbox",
123
- "aria-controls": k ? Y : void 0,
124
- "aria-activedescendant": z >= 0 ? Z(z) : void 0,
125
- autoComplete: "off",
126
- role: "combobox",
127
- "aria-autocomplete": "list",
128
- onBlur: S
129
- }),
130
- y && X.map((e) => /* @__PURE__ */ u("input", {
131
- type: "hidden",
132
- name: y,
133
- value: e
134
- }, e))
135
- ]
136
- }), N && /* @__PURE__ */ u(n, {
60
+ children: [X.map((e) => /* @__PURE__ */ l(u.Chip, {
61
+ className: "async-multi-select__pill",
62
+ children: [/* @__PURE__ */ c("span", {
63
+ className: "async-multi-select__pill-label",
64
+ children: e.label
65
+ }), !v && !y && /* @__PURE__ */ c(u.ChipRemove, {
66
+ className: "async-multi-select__pill-remove",
67
+ "aria-label": F("remove", A)(e.label),
68
+ children: /* @__PURE__ */ c(t, {
69
+ name: "close",
70
+ size: "xs"
71
+ })
72
+ })]
73
+ }, e.value)), /* @__PURE__ */ c(u.Input, {
74
+ ref: P,
75
+ id: S,
76
+ className: "async-multi-select__input",
77
+ onKeyDown: $,
78
+ placeholder: Y.length === 0 ? F("placeholder", _) : void 0,
79
+ "aria-label": O,
80
+ "aria-describedby": k,
81
+ "aria-invalid": w || void 0,
82
+ "aria-required": T || void 0,
83
+ onBlur: E
84
+ })]
85
+ }), R && /* @__PURE__ */ c(r, {
137
86
  size: "sm",
138
87
  "aria-hidden": !0
139
88
  })]
140
- }), /* @__PURE__ */ u(f.Portal, {
141
- container: O,
142
- children: /* @__PURE__ */ u(f.Positioner, {
89
+ }), /* @__PURE__ */ c(u.Portal, {
90
+ container: I,
91
+ children: /* @__PURE__ */ c(u.Positioner, {
143
92
  className: "async-multi-select__positioner",
144
- anchor: J,
145
93
  align: "start",
146
94
  sideOffset: -1,
147
- children: /* @__PURE__ */ u(f.Popup, {
148
- className: ge,
149
- initialFocus: !1,
150
- finalFocus: !1,
151
- children: /* @__PURE__ */ d("div", {
152
- role: "listbox",
153
- "aria-multiselectable": "true",
154
- "aria-label": C ?? D("placeholder", h),
155
- id: Y,
156
- children: [
157
- N && /* @__PURE__ */ u("div", {
158
- className: "async-multi-select__loading",
159
- children: /* @__PURE__ */ u(n, {
160
- size: "sm",
161
- label: D("loading", w)
162
- })
163
- }),
164
- !N && L && F.length === 0 && /* @__PURE__ */ u("div", {
165
- className: "async-multi-select__empty",
166
- children: D("empty", ce)
167
- }),
168
- !N && F.map((e, t) => {
169
- let n = X.includes(e.value), r = z === t;
170
- return /* @__PURE__ */ d("div", {
171
- id: Z(t),
172
- role: "option",
173
- "aria-selected": n,
174
- className: [
175
- "async-multi-select__item",
176
- n ? "async-multi-select__item--selected" : "",
177
- r ? "async-multi-select__item--active" : ""
178
- ].filter(Boolean).join(" "),
179
- onPointerDown: (e) => e.preventDefault(),
180
- onClick: () => {
181
- $(e.value, e), q.current?.focus();
182
- },
183
- children: [/* @__PURE__ */ u("span", {
184
- className: "async-multi-select__item-check",
185
- "aria-hidden": "true",
186
- children: /* @__PURE__ */ u("span", { className: "async-multi-select__item-check-mark" })
187
- }), /* @__PURE__ */ u("span", { children: e.label })]
188
- }, e.value);
189
- })
190
- ]
191
- })
95
+ children: /* @__PURE__ */ l(u.Popup, {
96
+ className: ne,
97
+ "aria-busy": R || void 0,
98
+ children: [
99
+ /* @__PURE__ */ c(u.Status, { children: R && /* @__PURE__ */ l("div", {
100
+ className: "async-multi-select__loading",
101
+ children: [/* @__PURE__ */ c(r, {
102
+ size: "sm",
103
+ "aria-hidden": !0
104
+ }), /* @__PURE__ */ c(n, { children: F("loading", M) })]
105
+ }) }),
106
+ /* @__PURE__ */ c(u.Empty, { children: !R && ee && /* @__PURE__ */ c("div", {
107
+ className: "async-multi-select__empty",
108
+ children: F("empty", j)
109
+ }) }),
110
+ /* @__PURE__ */ c(u.List, {
111
+ "aria-label": O ?? F("placeholder", _),
112
+ children: (e) => /* @__PURE__ */ l(u.Item, {
113
+ value: e,
114
+ className: "async-multi-select__item",
115
+ children: [/* @__PURE__ */ c("span", {
116
+ className: "async-multi-select__item-check",
117
+ "aria-hidden": "true",
118
+ children: /* @__PURE__ */ c("span", { className: "async-multi-select__item-check-mark" })
119
+ }), /* @__PURE__ */ c("span", { children: e.label })]
120
+ }, e.value)
121
+ })
122
+ ]
192
123
  })
193
124
  })
194
125
  })]
@@ -1 +1 @@
1
- .async-select{align-items:center;gap:var(--async-select-content-gap);block-size:var(--async-select-height);padding-block:0;padding-inline:var(--async-select-padding-inline);font-family:var(--async-select-font-family);font-size:var(--async-select-font-size);line-height:var(--async-select-line-height);font-weight:var(--async-select-font-weight);color:var(--async-select-color);background-color:var(--async-select-bg);border-width:var(--async-select-border-width);border-style:var(--async-select-border-style);border-color:var(--async-select-border-color);border-radius:var(--async-select-border-radius);box-sizing:border-box;width:100%;display:inline-flex}.async-select:focus-within{outline:var(--async-select-focus-ring-width) solid var(--async-select-focus-ring-color);outline-offset:calc(-1 * (var(--async-select-focus-ring-width) + var(--async-select-border-width)))}.async-select.async-select--disabled{opacity:.5;cursor:var(--async-select-disabled-cursor);pointer-events:none}.async-select__input{all:unset;cursor:text;min-width:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;flex:1}.async-select__input::placeholder{color:var(--async-select-placeholder-color)}.async-select__input:disabled{cursor:var(--async-select-disabled-cursor)}.async-select__clear{all:unset;cursor:pointer;line-height:1;font-size:var(--async-select-font-size);opacity:.7;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.async-select__clear:hover{opacity:1}.async-select__content{background-color:var(--async-select-content-bg);border-width:var(--async-select-border-width);border-style:var(--async-select-border-style);border-color:var(--async-select-content-border-color);min-width:var(--anchor-width);max-height:var(--async-select-content-max-height,var(--available-height));overscroll-behavior:contain;overflow-y:auto}.async-select__content[data-side=bottom]{border-top:none}.async-select__content[data-side=top]{border-bottom:none}.async-select__loading{padding-block:var(--async-select-loading-padding-block);padding-inline:var(--async-select-loading-padding-inline);justify-content:center;align-items:center;display:flex}.async-select__empty{padding-block:var(--async-select-empty-padding-block);padding-inline:var(--async-select-empty-padding-inline);font-size:var(--async-select-empty-font-size);font-family:var(--async-select-empty-font-family);color:var(--async-select-empty-color)}.async-select__item{all:unset;box-sizing:border-box;width:100%;padding-block:var(--async-select-item-padding-block);padding-inline:var(--async-select-padding-inline);font-size:var(--async-select-font-size);font-family:var(--async-select-font-family);color:var(--async-select-color);cursor:pointer;align-items:center;display:flex}.async-select__item:focus-visible,.async-select__item:hover{background-color:var(--async-select-item-highlighted-bg);color:var(--async-select-item-highlighted-color)}.async-select__item.async-select__item--selected{font-weight:var(--async-select-item-selected-font-weight)}.async-select__item.async-select__item--active{background-color:var(--async-select-item-highlighted-bg);color:var(--async-select-item-highlighted-color)}.async-select__content .async-select__item+.async-select__item,.async-select__content[data-side=bottom] .async-select__item:first-child{border-top:var(--async-select-border-width) var(--async-select-border-style) var(--async-select-content-border-color)}.async-select__content[data-side=top] .async-select__item:last-child{border-bottom:var(--async-select-border-width) var(--async-select-border-style) var(--async-select-content-border-color)}.async-select.async-select--sm{font-size:var(--async-select-sm-font-size);--async-select-height:var(--async-select-sm-height);padding-inline:var(--async-select-sm-padding-inline)}.async-select__content--sm .async-select__item{font-size:var(--async-select-sm-font-size);padding-block:var(--async-select-sm-item-padding-block)}.async-select.async-select--lg{font-size:var(--async-select-lg-font-size);--async-select-height:var(--async-select-lg-height);padding-inline:var(--async-select-lg-padding-inline)}.async-select__content--lg .async-select__item{font-size:var(--async-select-lg-font-size);padding-block:var(--async-select-lg-item-padding-block)}.async-select__positioner{z-index:var(--async-select-content-z-index)}.async-select.async-select--error{border-color:var(--async-select-error-border-color)}
1
+ .async-select{align-items:center;gap:var(--async-select-content-gap);block-size:var(--async-select-height);padding-block:0;padding-inline:var(--async-select-padding-inline);font-family:var(--async-select-font-family);font-size:var(--async-select-font-size);line-height:var(--async-select-line-height);font-weight:var(--async-select-font-weight);color:var(--async-select-color);background-color:var(--async-select-bg);border-width:var(--async-select-border-width);border-style:var(--async-select-border-style);border-color:var(--async-select-border-color);border-radius:var(--async-select-border-radius);box-sizing:border-box;inline-size:100%;display:inline-flex}.async-select:focus-within{outline:var(--async-select-focus-ring-width) solid var(--async-select-focus-ring-color);outline-offset:calc(-1 * (var(--async-select-focus-ring-width) + var(--async-select-border-width)))}.async-select.async-select--disabled{opacity:var(--async-select-disabled-opacity);cursor:var(--async-select-disabled-cursor);pointer-events:none}.async-select__input{all:unset;cursor:text;min-inline-size:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;flex:1}.async-select__input::placeholder{color:var(--async-select-placeholder-color)}.async-select__input:disabled{cursor:var(--async-select-disabled-cursor)}.async-select__clear{all:unset;cursor:pointer;line-height:1;font-size:var(--async-select-font-size);opacity:var(--async-select-clear-opacity);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.async-select__clear:hover{opacity:var(--async-select-clear-hover-opacity)}.async-select__content{background-color:var(--async-select-content-bg);border-width:var(--async-select-border-width);border-style:var(--async-select-border-style);border-color:var(--async-select-content-border-color);min-inline-size:var(--anchor-width);max-block-size:var(--async-select-content-max-height,var(--available-height));overscroll-behavior:contain;overflow-y:auto}.async-select__content[data-side=bottom]{border-block-start:none}.async-select__content[data-side=top]{border-block-end:none}.async-select__loading{padding-block:var(--async-select-loading-padding-block);padding-inline:var(--async-select-loading-padding-inline);justify-content:center;align-items:center;display:flex}.async-select__empty{padding-block:var(--async-select-empty-padding-block);padding-inline:var(--async-select-empty-padding-inline);font-size:var(--async-select-empty-font-size);font-family:var(--async-select-empty-font-family);color:var(--async-select-empty-color)}.async-select__item{all:unset;box-sizing:border-box;inline-size:100%;padding-block:var(--async-select-item-padding-block);padding-inline:var(--async-select-padding-inline);font-size:var(--async-select-font-size);font-family:var(--async-select-font-family);color:var(--async-select-color);cursor:pointer;align-items:center;display:flex}.async-select__item[data-highlighted],.async-select__item:hover{background-color:var(--async-select-item-highlighted-bg);color:var(--async-select-item-highlighted-color)}.async-select__item[data-selected]{font-weight:var(--async-select-item-selected-font-weight)}.async-select__content .async-select__item+.async-select__item,.async-select__content[data-side=bottom] .async-select__item:first-child{border-block-start:var(--async-select-border-width) var(--async-select-border-style) var(--async-select-content-border-color)}.async-select__content[data-side=top] .async-select__item:last-child{border-block-end:var(--async-select-border-width) var(--async-select-border-style) var(--async-select-content-border-color)}.async-select.async-select--sm{font-size:var(--async-select-sm-font-size);--async-select-height:var(--async-select-sm-height);padding-inline:var(--async-select-sm-padding-inline)}.async-select__content--sm .async-select__item{font-size:var(--async-select-sm-font-size);padding-block:var(--async-select-sm-item-padding-block)}.async-select.async-select--lg{font-size:var(--async-select-lg-font-size);--async-select-height:var(--async-select-lg-height);padding-inline:var(--async-select-lg-padding-inline)}.async-select__content--lg .async-select__item{font-size:var(--async-select-lg-font-size);padding-block:var(--async-select-lg-item-padding-block)}.async-select__positioner{z-index:var(--async-select-content-z-index)}.async-select.async-select--error{border-color:var(--async-select-error-border-color)}
@@ -2,169 +2,113 @@
2
2
  import './async-select.css';
3
3
  import { n as e } from "./_shared/brandmessagescontext.js";
4
4
  import { Icon as t } from "./icon.js";
5
- import { Spinner as n } from "./spinner.js";
6
- import { n as r } from "./_shared/portal-container.js";
7
- import { forwardRef as i, useCallback as ee, useEffect as a, useId as o, useRef as s, useState as c } from "react";
8
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
- import { Popover as d } from "@base-ui/react/popover";
5
+ import { VisuallyHidden as n } from "./visually-hidden.js";
6
+ import { Spinner as r } from "./spinner.js";
7
+ import { t as i } from "./_shared/useasyncoptions.js";
8
+ import { n as a } from "./_shared/portal-container.js";
9
+ import { forwardRef as o, useState as s } from "react";
10
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
11
+ import { Combobox as u } from "@base-ui/react/combobox";
10
12
  //#region src/stories/atoms/AsyncSelect/AsyncSelect.tsx
11
- function f(e, t) {
12
- typeof e == "function" ? e(t) : e && (e.current = t);
13
- }
14
- var p = i(function({ onSearch: i, value: p, onValueChange: m, selectedOption: h, placeholder: g, disabled: _, readOnly: v, size: y = "md", debounceMs: b = 300, id: x, name: S, error: C = !1, required: te, onBlur: ne, className: w, "aria-label": T, "aria-describedby": re, emptyMessage: E, loadingLabel: D, clearLabel: ie, container: ae }, oe) {
15
- let O = e("asyncSelect"), se = r(ae), [k, A] = c(!1), [j, M] = c(""), [N, P] = c(!1), [F, I] = c([]), [ce, L] = c(!1), [R, z] = c(-1), [B, V] = c(null), [H, U] = c(null), W = s(null), G = s(0), K = s(null), q = s(null), J = o(), le = o(), Y = p === void 0 ? B : p, ue = h === void 0 ? H : h, X = (e) => `${le}-opt-${e}`, Z = ee(async (e) => {
16
- let t = ++G.current;
17
- P(!0), L(!1);
18
- try {
19
- let n = await i(e);
20
- if (t !== G.current) return;
21
- I(n), z(-1);
22
- } catch {
23
- if (t !== G.current) return;
24
- I([]), z(-1);
25
- } finally {
26
- t === G.current && (P(!1), L(!0));
27
- }
28
- }, [i]);
29
- a(() => () => {
30
- G.current += 1, W.current && clearTimeout(W.current);
31
- }, []);
32
- function de(e) {
33
- let t = e.target.value;
34
- M(t), W.current && clearTimeout(W.current), W.current = setTimeout(() => void Z(t), b);
13
+ var d = [], f = (e, t) => e.value === t.value, p = o(function({ onSearch: o, value: p, onValueChange: m, selectedOption: h, placeholder: g, disabled: _, readOnly: v, size: y = "md", debounceMs: b = 300, id: x, name: S, error: C = !1, required: w, onBlur: T, className: E, "aria-label": D, "aria-describedby": O, emptyMessage: k, loadingLabel: A, clearLabel: j, container: M }, N) {
14
+ let P = e("asyncSelect"), F = a(M), { results: I, loading: L, hasSearched: R, search: z, schedule: B, clear: V } = i(o, b), [H, U] = s(!1), [W, G] = s(""), [K, q] = s(null), [J, Y] = s(null), X = p === void 0 ? K : p, Z = (h === void 0 ? J : h)?.label ?? "", Q = X ? {
15
+ value: X,
16
+ label: Z
17
+ } : null;
18
+ function $(e) {
19
+ p === void 0 && (q(e?.value ?? null), Y(e)), m?.(e?.value ?? null, e);
35
20
  }
36
- function fe(e) {
37
- _ || v || k || (e.preventDefault(), K.current?.focus(), z(-1), M(""), I([]), L(!1), A(!0), Z(""));
21
+ function ee() {
22
+ $(null), G(""), V();
38
23
  }
39
- function Q(e) {
40
- p === void 0 && (V(e.value), U(e)), m?.(e.value, e), A(!1), z(-1), M("");
24
+ function te(e, t) {
25
+ e !== H && (U(e), !(e && t.reason === "input-change") && (G(""), e && z("")));
41
26
  }
42
- function $() {
43
- p === void 0 && (V(null), U(null)), m?.(null, null), M(""), I([]), L(!1), K.current?.focus();
27
+ function ne(e) {
28
+ _ || v || (e.key === "Escape" && !H ? e.preventBaseUIHandler?.() : (e.key === "Backspace" || e.key === "Delete") && W === "" && X ? (e.preventDefault(), e.preventBaseUIHandler?.(), ee()) : !H && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), e.preventBaseUIHandler?.(), U(!0), G(e.key), V(), B(e.key)));
44
29
  }
45
- function pe(e) {
46
- e.stopPropagation(), $();
47
- }
48
- function me(e) {
49
- e.key === "ArrowDown" ? (e.preventDefault(), k ? z((e) => Math.min(e + 1, F.length - 1)) : (A(!0), Z(j))) : e.key === "ArrowUp" ? (e.preventDefault(), z((e) => Math.max(e - 1, -1))) : e.key === "Enter" && R >= 0 && F[R] ? (e.preventDefault(), Q(F[R])) : e.key === "Escape" ? (A(!1), M(""), z(-1)) : e.key === "Tab" ? (A(!1), z(-1)) : (e.key === "Backspace" || e.key === "Delete") && j === "" && Y && !_ && !v ? (e.preventDefault(), $()) : !k && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), M(e.key), A(!0), I([]), L(!1), W.current && clearTimeout(W.current), W.current = setTimeout(() => void Z(e.key), b));
50
- }
51
- function he(e, t) {
52
- if (!e) {
53
- if (t.reason === "outside-press") {
54
- let e = t.event?.target;
55
- if (e instanceof Node && q.current?.contains(e)) return;
56
- }
57
- A(!1), M(""), z(-1);
58
- }
59
- }
60
- let ge = k ? j : ue?.label ?? "", _e = [
30
+ let re = [
61
31
  "async-select",
62
32
  y === "md" ? "" : `async-select--${y}`,
63
33
  _ ? "async-select--disabled" : "",
64
34
  C ? "async-select--error" : "",
65
- w ?? ""
66
- ].filter(Boolean).join(" "), ve = ["async-select__content", y === "md" ? "" : `async-select__content--${y}`].filter(Boolean).join(" ");
67
- return /* @__PURE__ */ u(d.Root, {
68
- open: k,
69
- onOpenChange: he,
70
- children: [/* @__PURE__ */ u("div", {
71
- ref: q,
72
- className: _e,
73
- "data-popup-open": k || void 0,
35
+ E ?? ""
36
+ ].filter(Boolean).join(" "), ie = ["async-select__content", y === "md" ? "" : `async-select__content--${y}`].filter(Boolean).join(" ");
37
+ return /* @__PURE__ */ l(u.Root, {
38
+ items: L ? d : I,
39
+ filter: null,
40
+ value: Q,
41
+ onValueChange: (e) => {
42
+ $(e), G("");
43
+ },
44
+ isItemEqualToValue: f,
45
+ inputValue: H ? W : Z,
46
+ onInputValueChange: (e, t) => {
47
+ t.reason === "input-change" && (G(e), B(e));
48
+ },
49
+ open: H,
50
+ onOpenChange: te,
51
+ name: S,
52
+ disabled: _,
53
+ readOnly: v,
54
+ children: [/* @__PURE__ */ l(u.InputGroup, {
55
+ className: re,
74
56
  children: [
75
- /* @__PURE__ */ l("input", {
76
- ref: (e) => {
77
- K.current = e, f(oe, e);
78
- },
57
+ /* @__PURE__ */ c(u.Input, {
58
+ ref: N,
79
59
  id: x,
80
- type: "text",
81
60
  className: "async-select__input",
82
- value: ge,
83
- onChange: de,
84
- onPointerDown: fe,
85
- onKeyDown: me,
86
- placeholder: O("placeholder", g),
87
- disabled: _,
88
- readOnly: v,
89
- "aria-label": T,
90
- "aria-describedby": re,
61
+ onKeyDown: ne,
62
+ placeholder: P("placeholder", g),
63
+ "aria-label": D,
64
+ "aria-describedby": O,
91
65
  "aria-invalid": C || void 0,
92
- "aria-required": te || void 0,
93
- "aria-expanded": k,
94
- "aria-haspopup": "listbox",
95
- "aria-controls": k ? J : void 0,
96
- "aria-activedescendant": R >= 0 ? X(R) : void 0,
97
- autoComplete: "off",
98
- role: "combobox",
99
- "aria-autocomplete": "list",
100
- onBlur: ne
66
+ "aria-required": w || void 0,
67
+ onBlur: T
101
68
  }),
102
- S && /* @__PURE__ */ l("input", {
103
- type: "hidden",
104
- name: S,
105
- value: Y ?? ""
106
- }),
107
- N && /* @__PURE__ */ l(n, {
69
+ L && /* @__PURE__ */ c(r, {
108
70
  size: "sm",
109
71
  "aria-hidden": !0
110
72
  }),
111
- !N && Y && !_ && !v && /* @__PURE__ */ l("button", {
112
- type: "button",
73
+ !L && !_ && !v && /* @__PURE__ */ c(u.Clear, {
113
74
  className: "async-select__clear",
114
- "aria-label": O("clear", ie),
115
- tabIndex: -1,
116
- onMouseDown: pe,
117
- children: /* @__PURE__ */ l(t, {
75
+ "aria-label": P("clear", j),
76
+ children: /* @__PURE__ */ c(t, {
118
77
  name: "close",
119
78
  size: "xs"
120
79
  })
121
80
  })
122
81
  ]
123
- }), /* @__PURE__ */ l(d.Portal, {
124
- container: se,
125
- children: /* @__PURE__ */ l(d.Positioner, {
82
+ }), /* @__PURE__ */ c(u.Portal, {
83
+ container: F,
84
+ children: /* @__PURE__ */ c(u.Positioner, {
126
85
  className: "async-select__positioner",
127
- anchor: q,
128
86
  align: "start",
129
87
  sideOffset: -1,
130
- children: /* @__PURE__ */ l(d.Popup, {
131
- className: ve,
132
- initialFocus: !1,
133
- finalFocus: !1,
134
- children: /* @__PURE__ */ u("div", {
135
- role: "listbox",
136
- "aria-label": T ?? O("placeholder", g),
137
- id: J,
138
- children: [
139
- N && /* @__PURE__ */ l("div", {
140
- className: "async-select__loading",
141
- children: /* @__PURE__ */ l(n, {
142
- size: "sm",
143
- label: O("loading", D)
144
- })
145
- }),
146
- !N && ce && F.length === 0 && /* @__PURE__ */ l("div", {
147
- className: "async-select__empty",
148
- children: O("empty", E)
149
- }),
150
- !N && F.map((e, t) => {
151
- let n = e.value === Y, r = R === t;
152
- return /* @__PURE__ */ l("div", {
153
- id: X(t),
154
- role: "option",
155
- "aria-selected": n,
156
- className: [
157
- "async-select__item",
158
- n ? "async-select__item--selected" : "",
159
- r ? "async-select__item--active" : ""
160
- ].filter(Boolean).join(" "),
161
- onPointerDown: (e) => e.preventDefault(),
162
- onClick: () => Q(e),
163
- children: e.label
164
- }, e.value);
165
- })
166
- ]
167
- })
88
+ children: /* @__PURE__ */ l(u.Popup, {
89
+ className: ie,
90
+ "aria-busy": L || void 0,
91
+ children: [
92
+ /* @__PURE__ */ c(u.Status, { children: L && /* @__PURE__ */ l("div", {
93
+ className: "async-select__loading",
94
+ children: [/* @__PURE__ */ c(r, {
95
+ size: "sm",
96
+ "aria-hidden": !0
97
+ }), /* @__PURE__ */ c(n, { children: P("loading", A) })]
98
+ }) }),
99
+ /* @__PURE__ */ c(u.Empty, { children: !L && R && /* @__PURE__ */ c("div", {
100
+ className: "async-select__empty",
101
+ children: P("empty", k)
102
+ }) }),
103
+ /* @__PURE__ */ c(u.List, {
104
+ "aria-label": D ?? P("placeholder", g),
105
+ children: (e) => /* @__PURE__ */ c(u.Item, {
106
+ value: e,
107
+ className: "async-select__item",
108
+ children: e.label
109
+ }, e.value)
110
+ })
111
+ ]
168
112
  })
169
113
  })
170
114
  })]
@@ -1 +1 @@
1
- .autocomplete{align-items:center;gap:var(--autocomplete-content-gap);block-size:var(--autocomplete-height);padding-block:0;padding-inline:var(--autocomplete-padding-inline);font-family:var(--autocomplete-font-family);font-size:var(--autocomplete-font-size);line-height:var(--autocomplete-line-height);font-weight:var(--autocomplete-font-weight);color:var(--autocomplete-color);background-color:var(--autocomplete-bg);border-width:var(--autocomplete-border-width);border-style:var(--autocomplete-border-style);border-color:var(--autocomplete-border-color);border-radius:var(--autocomplete-border-radius);box-sizing:border-box;width:100%;display:inline-flex}.autocomplete:focus-within{outline:var(--autocomplete-focus-ring-width) solid var(--autocomplete-focus-ring-color);outline-offset:calc(-1 * (var(--autocomplete-focus-ring-width) + var(--autocomplete-border-width)))}.autocomplete.autocomplete--disabled{opacity:.5;cursor:var(--autocomplete-disabled-cursor);pointer-events:none}.autocomplete__input{all:unset;cursor:text;min-width:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;flex:1}.autocomplete__input::placeholder{color:var(--autocomplete-placeholder-color)}.autocomplete__input:disabled{cursor:var(--autocomplete-disabled-cursor)}.autocomplete__content{background-color:var(--autocomplete-content-bg);border-width:var(--autocomplete-border-width);border-style:var(--autocomplete-border-style);border-color:var(--autocomplete-content-border-color);min-width:var(--anchor-width);max-height:var(--autocomplete-content-max-height,var(--available-height));overscroll-behavior:contain;overflow-y:auto}.autocomplete__content[data-side=bottom]{border-top:none}.autocomplete__content[data-side=top]{border-bottom:none}.autocomplete__item{all:unset;box-sizing:border-box;width:100%;padding-block:var(--autocomplete-item-padding-block);padding-inline:var(--autocomplete-padding-inline);font-size:var(--autocomplete-font-size);font-family:var(--autocomplete-font-family);color:var(--autocomplete-color);cursor:pointer;align-items:center;display:flex}.autocomplete__item:focus-visible,.autocomplete__item:hover{background-color:var(--autocomplete-item-highlighted-bg);color:var(--autocomplete-item-highlighted-color)}.autocomplete__item.autocomplete__item--selected{font-weight:var(--autocomplete-item-selected-font-weight)}.autocomplete__item.autocomplete__item--active{background-color:var(--autocomplete-item-highlighted-bg);color:var(--autocomplete-item-highlighted-color)}.autocomplete__content .autocomplete__item+.autocomplete__item,.autocomplete__content[data-side=bottom] .autocomplete__item:first-child{border-top:var(--autocomplete-border-width) var(--autocomplete-border-style) var(--autocomplete-content-border-color)}.autocomplete__content[data-side=top] .autocomplete__item:last-child{border-bottom:var(--autocomplete-border-width) var(--autocomplete-border-style) var(--autocomplete-content-border-color)}.autocomplete.autocomplete--sm{font-size:var(--autocomplete-sm-font-size);--autocomplete-height:var(--autocomplete-sm-height);padding-inline:var(--autocomplete-sm-padding-inline)}.autocomplete__content--sm .autocomplete__item{font-size:var(--autocomplete-sm-font-size);padding-block:var(--autocomplete-sm-item-padding-block)}.autocomplete.autocomplete--lg{font-size:var(--autocomplete-lg-font-size);--autocomplete-height:var(--autocomplete-lg-height);padding-inline:var(--autocomplete-lg-padding-inline)}.autocomplete__content--lg .autocomplete__item{font-size:var(--autocomplete-lg-font-size);padding-block:var(--autocomplete-lg-item-padding-block)}.autocomplete__positioner{z-index:var(--autocomplete-content-z-index)}.autocomplete.autocomplete--error{border-color:var(--autocomplete-error-border-color)}
1
+ .autocomplete{align-items:center;gap:var(--autocomplete-content-gap);block-size:var(--autocomplete-height);padding-block:0;padding-inline:var(--autocomplete-padding-inline);font-family:var(--autocomplete-font-family);font-size:var(--autocomplete-font-size);line-height:var(--autocomplete-line-height);font-weight:var(--autocomplete-font-weight);color:var(--autocomplete-color);background-color:var(--autocomplete-bg);border-width:var(--autocomplete-border-width);border-style:var(--autocomplete-border-style);border-color:var(--autocomplete-border-color);border-radius:var(--autocomplete-border-radius);box-sizing:border-box;inline-size:100%;display:inline-flex}.autocomplete:focus-within{outline:var(--autocomplete-focus-ring-width) solid var(--autocomplete-focus-ring-color);outline-offset:calc(-1 * (var(--autocomplete-focus-ring-width) + var(--autocomplete-border-width)))}.autocomplete.autocomplete--disabled{opacity:var(--autocomplete-disabled-opacity);cursor:var(--autocomplete-disabled-cursor);pointer-events:none}.autocomplete__input{all:unset;cursor:text;min-inline-size:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;flex:1}.autocomplete__input::placeholder{color:var(--autocomplete-placeholder-color)}.autocomplete__input:disabled{cursor:var(--autocomplete-disabled-cursor)}.autocomplete__content{background-color:var(--autocomplete-content-bg);border-width:var(--autocomplete-border-width);border-style:var(--autocomplete-border-style);border-color:var(--autocomplete-content-border-color);min-inline-size:var(--anchor-width);max-block-size:var(--autocomplete-content-max-height,var(--available-height));overscroll-behavior:contain;overflow-y:auto}.autocomplete__content[data-side=bottom]{border-block-start:none}.autocomplete__content[data-side=top]{border-block-end:none}.autocomplete__item{all:unset;box-sizing:border-box;inline-size:100%;padding-block:var(--autocomplete-item-padding-block);padding-inline:var(--autocomplete-padding-inline);font-size:var(--autocomplete-font-size);font-family:var(--autocomplete-font-family);color:var(--autocomplete-color);cursor:pointer;align-items:center;display:flex}.autocomplete__item[data-highlighted],.autocomplete__item:hover{background-color:var(--autocomplete-item-highlighted-bg);color:var(--autocomplete-item-highlighted-color)}.autocomplete__item.autocomplete__item--selected{font-weight:var(--autocomplete-item-selected-font-weight)}.autocomplete__content .autocomplete__item+.autocomplete__item,.autocomplete__content[data-side=bottom] .autocomplete__item:first-child{border-block-start:var(--autocomplete-border-width) var(--autocomplete-border-style) var(--autocomplete-content-border-color)}.autocomplete__content[data-side=top] .autocomplete__item:last-child{border-block-end:var(--autocomplete-border-width) var(--autocomplete-border-style) var(--autocomplete-content-border-color)}.autocomplete.autocomplete--sm{font-size:var(--autocomplete-sm-font-size);--autocomplete-height:var(--autocomplete-sm-height);padding-inline:var(--autocomplete-sm-padding-inline)}.autocomplete__content--sm .autocomplete__item{font-size:var(--autocomplete-sm-font-size);padding-block:var(--autocomplete-sm-item-padding-block)}.autocomplete.autocomplete--lg{font-size:var(--autocomplete-lg-font-size);--autocomplete-height:var(--autocomplete-lg-height);padding-inline:var(--autocomplete-lg-padding-inline)}.autocomplete__content--lg .autocomplete__item{font-size:var(--autocomplete-lg-font-size);padding-block:var(--autocomplete-lg-item-padding-block)}.autocomplete__positioner{z-index:var(--autocomplete-content-z-index)}.autocomplete.autocomplete--error{border-color:var(--autocomplete-error-border-color)}