themelia-ui 3.1.0 → 3.2.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 (178) hide show
  1. package/.agents/skills/themelia-ui/SKILL.md +38 -9
  2. package/.agents/skills/themelia-ui/manifest.json +23 -0
  3. package/.agents/skills/themelia-ui/references/api-compatibility.md +3 -2
  4. package/.agents/skills/themelia-ui/references/blocks.md +123 -0
  5. package/.agents/skills/themelia-ui/references/composition-ladder.md +8 -8
  6. package/.agents/skills/themelia-ui/references/composition.md +98 -1
  7. package/.agents/skills/themelia-ui/references/forms.md +23 -3
  8. package/.agents/skills/themelia-ui/references/framework-wiring.md +34 -6
  9. package/.agents/skills/themelia-ui/references/i18n.md +4 -2
  10. package/.agents/skills/themelia-ui/references/imports.md +1 -1
  11. package/.agents/skills/themelia-ui/references/installation.md +5 -4
  12. package/.agents/skills/themelia-ui/references/migration.md +22 -2
  13. package/.agents/skills/themelia-ui/references/provider-and-scoping.md +27 -9
  14. package/.agents/skills/themelia-ui/references/reference-workflows.md +43 -0
  15. package/.agents/skills/themelia-ui/references/structure-and-spacing.md +147 -0
  16. package/.agents/skills/themelia-ui/references/theming.md +6 -2
  17. package/.agents/skills/themelia-ui/references/troubleshooting.md +28 -5
  18. package/.agents/skills/themelia-ui/references/verification.md +58 -2
  19. package/CHANGELOG.md +25 -0
  20. package/README.md +3 -0
  21. package/dist/{alert-dialog-Bmo1YrTm.js → alert-dialog-Cg2HhuBe.js} +1 -1
  22. package/dist/base/alert-dialog.js +1 -1
  23. package/dist/base/cards.js +1 -1
  24. package/dist/base/choice-inputs.js +1 -1
  25. package/dist/base/combobox.js +1 -1
  26. package/dist/base/command.js +1 -1
  27. package/dist/base/date-pickers.js +1 -1
  28. package/dist/base/dialog.js +1 -1
  29. package/dist/base/display.js +1 -1
  30. package/dist/base/forms-numeric.js +1 -1
  31. package/dist/base/forms.js +1 -1
  32. package/dist/base/item.js +1 -1
  33. package/dist/base/navigation.js +1 -1
  34. package/dist/base/otp-input.js +1 -1
  35. package/dist/base/overlay.js +1 -1
  36. package/dist/base/popover-menu.js +1 -1
  37. package/dist/base/repeaters.js +1 -1
  38. package/dist/base/sheet.js +1 -1
  39. package/dist/base/sidebar.js +1 -1
  40. package/dist/base/skeleton.js +1 -1
  41. package/dist/base/structure.js +1 -1
  42. package/dist/base/timeline.js +1 -1
  43. package/dist/base/upload.js +1 -1
  44. package/dist/base/value-inputs.js +1 -1
  45. package/dist/blocks/admin/access.js +2 -2
  46. package/dist/blocks/admin/commerce.js +9 -9
  47. package/dist/blocks/analytics.js +3 -3
  48. package/dist/blocks/onboarding.js +1 -1
  49. package/dist/blocks/timelines.js +1 -1
  50. package/dist/{cards-DdiICdMM.js → cards-Ddhz43Bz.js} +2 -2
  51. package/dist/{choice-inputs-CCw-0gD6.js → choice-inputs-NwRxvmZN.js} +2 -2
  52. package/dist/combobox-519ubijc.js +292 -0
  53. package/dist/{command-CnB_IZSo.js → command-JjApYFds.js} +2 -2
  54. package/dist/{comments-C6Y_ddMt.js → comments-CCQ2QRaU.js} +4 -4
  55. package/dist/components/base/display/icon-badge.d.ts +2 -2
  56. package/dist/components/base/forms/form-field.d.ts +2 -2
  57. package/dist/components/base/structure/bleed.d.ts +1 -0
  58. package/dist/components/base/structure/grid.d.ts +8 -2
  59. package/dist/components/base/structure/split.d.ts +1 -0
  60. package/dist/components/features/combobox/fetching-combobox.d.ts +2 -1
  61. package/dist/components/features/combobox/resource-combobox.d.ts +3 -0
  62. package/dist/components/features/combobox/use-suggestions.d.ts +7 -0
  63. package/dist/css/structure.css +1 -1
  64. package/dist/{date-pickers-C2HgjpFU.js → date-pickers-BwCwKIVM.js} +1 -1
  65. package/dist/{dialog-0nRFg5Zs.js → dialog-CAnwRNrm.js} +1 -1
  66. package/dist/{display-BGN834xV.js → display-a7AoX_u7.js} +1 -1
  67. package/dist/features/actions.js +1 -1
  68. package/dist/features/activities.js +3 -3
  69. package/dist/features/ai-chat.js +2 -2
  70. package/dist/features/combobox.js +285 -273
  71. package/dist/features/comments.js +1 -1
  72. package/dist/features/data-view.js +5 -5
  73. package/dist/features/event-calendar.js +3 -3
  74. package/dist/features/filters.js +1 -1
  75. package/dist/features/global-search.js +4 -4
  76. package/dist/features/map.js +2 -2
  77. package/dist/features/media-library.js +8 -8
  78. package/dist/features/mentions.js +1 -1
  79. package/dist/features/overlays.js +1 -1
  80. package/dist/features/products.js +9 -9
  81. package/dist/features/resource-assignment.js +3 -3
  82. package/dist/features/resource.js +3 -3
  83. package/dist/features/schema-form.js +6 -6
  84. package/dist/features/sync.js +2 -2
  85. package/dist/features/table.js +1 -1
  86. package/dist/features/theme-tweaker.js +10 -10
  87. package/dist/{filters-geLuSlFL.js → filters-BhsTkWpZ.js} +9 -9
  88. package/dist/{forms-NxbJK4Mh.js → forms-C0WeNPFF.js} +1 -1
  89. package/dist/{forms-numeric-C6NMdj6G.js → forms-numeric-IwQ1ltNf.js} +1 -1
  90. package/dist/hooks/use-native-dialog.d.ts +1 -1
  91. package/dist/{item-CuUJyETl.js → item-M2pmpWXh.js} +1 -1
  92. package/dist/layout/app-shell.js +1 -1
  93. package/dist/layout/auth.js +1 -1
  94. package/dist/layout/header.js +3 -3
  95. package/dist/layout/navigation.js +1 -1
  96. package/dist/layout/page.js +2 -2
  97. package/dist/layout/settings.js +2 -2
  98. package/dist/layout/sidebar.js +10 -6
  99. package/dist/layout/workspace.js +3 -3
  100. package/dist/lib/ui-provider/ui-scope.d.ts +1 -1
  101. package/dist/{mentions-oeYNv_j1.js → mentions-BOxbigwp.js} +2 -2
  102. package/dist/{navigation-BTX5Ti0Z.js → navigation-Bgu7Vc0M.js} +2 -2
  103. package/dist/{navigation-WYKjDhZq.js → navigation-DiYACqpE.js} +2 -2
  104. package/dist/{overlay-C8RAgi2_.js → overlay-BuQOl8aP.js} +5 -5
  105. package/dist/{overlays-9BxwFTou.js → overlays-1sULyytH.js} +5 -5
  106. package/dist/{popover-menu-DcLeiw9r.js → popover-menu-QXgQeWeG.js} +1 -1
  107. package/dist/{repeaters-DfptvbGA.js → repeaters-CeH20dvr.js} +4 -4
  108. package/dist/{sheet-D-DVZH_b.js → sheet-CJ1-OAla.js} +1 -1
  109. package/dist/{sidebar-DXQOy_Cb.js → sidebar-D8uGqxio.js} +4 -4
  110. package/dist/{skeleton-CubvHel9.js → skeleton-BTKNKTdj.js} +1 -1
  111. package/dist/{structure-B9Y5NkP_.js → structure-CynEZ-OY.js} +1 -2
  112. package/dist/style.css +1 -1
  113. package/dist/styles/TOKENS.md +4 -3
  114. package/dist/{table-DT_20ity.js → table-B7dtIFUx.js} +4 -4
  115. package/dist/{timeline-BRZbSdhf.js → timeline-BR_jNgvz.js} +1 -1
  116. package/dist/{timelines-DczZKW5p.js → timelines-DXG1BfIN.js} +1 -1
  117. package/dist/{upload-C_6mlbfl.js → upload-CYuoJykZ.js} +1 -1
  118. package/dist/{value-inputs-CnO6RZeT.js → value-inputs-ng8aVJJZ.js} +4 -4
  119. package/docs/README.md +11 -1
  120. package/docs/build/browser-composition-fixture.ts +28 -0
  121. package/docs/build/recipes.md +398 -1
  122. package/docs/generated/component-index.json +1993 -862
  123. package/docs/generated/components/base--display.md +2 -2
  124. package/docs/generated/components/base--forms.md +72 -1
  125. package/docs/generated/components/base--structure.md +56 -5
  126. package/docs/generated/components/base--typography.md +38 -0
  127. package/docs/generated/components/blocks--admin--access.md +10 -0
  128. package/docs/generated/components/blocks--analytics.md +44 -0
  129. package/docs/generated/components/features--combobox.md +67 -0
  130. package/docs/generated/components/features--data-view.md +59 -3
  131. package/docs/generated/components/features--filters.md +10 -0
  132. package/docs/generated/components/features--media-library.md +68 -0
  133. package/docs/generated/components/features--overlays.md +54 -0
  134. package/docs/generated/components/features--rich-text-editor.md +38 -0
  135. package/docs/generated/components/layout--app-shell.md +31 -0
  136. package/docs/generated/components/layout--containers.md +40 -0
  137. package/docs/generated/components/layout--page.md +30 -1
  138. package/docs/generated/components/layout--sidebar.md +41 -0
  139. package/docs/generated/components/ui-provider.md +1 -1
  140. package/docs/generated/composition-ladder.md +8 -8
  141. package/docs/generated/consumer-contract.json +5736 -0
  142. package/docs/generated/imports.md +1 -1
  143. package/docs/generated/recipes.json +171 -1
  144. package/docs/generated/workflows/communications-overview/analytics/communications-reference.tsx +19 -0
  145. package/docs/generated/workflows/index.json +691 -0
  146. package/docs/generated/workflows/media-picking/media-library/media-picking-reference.tsx +63 -0
  147. package/docs/generated/workflows/media-picking/media-library/reference-data.ts +3 -0
  148. package/docs/generated/workflows/multi-section-form/form-workflow/multi-section-reference.tsx +46 -0
  149. package/docs/generated/workflows/nested-action-flow/action-overlays/nested-action-reference.tsx +39 -0
  150. package/docs/generated/workflows/record-detail/page-layout/record-detail-reference.tsx +24 -0
  151. package/docs/generated/workflows/resource-index/data-view/resource-index-reference.tsx +51 -0
  152. package/docs/generated/workflows/scoped-resource-selection/combobox/scoped-resource-reference.tsx +50 -0
  153. package/docs/generated/workflows/website-content-editor/media-library/reference-data.ts +3 -0
  154. package/docs/generated/workflows/website-content-editor/rich-text-editor/website-content-reference.tsx +33 -0
  155. package/docs/generated/workflows/workspace-navigation/app-shell/workspace-navigation-reference.tsx +26 -0
  156. package/docs/learn/api-compatibility.md +3 -2
  157. package/docs/learn/blocks.md +123 -0
  158. package/docs/learn/composition.md +98 -1
  159. package/docs/learn/forms.md +23 -3
  160. package/docs/learn/framework-wiring.md +34 -6
  161. package/docs/learn/i18n.md +4 -2
  162. package/docs/learn/installation.md +5 -4
  163. package/docs/learn/migration.md +22 -2
  164. package/docs/learn/provider-and-scoping.md +27 -9
  165. package/docs/learn/reference-workflows.md +43 -0
  166. package/docs/learn/structure-and-spacing.md +147 -0
  167. package/docs/learn/theming.md +6 -2
  168. package/docs/learn/troubleshooting.md +28 -5
  169. package/docs/learn/verification.md +58 -2
  170. package/package.json +4 -1
  171. package/scripts/consumer/codemod.mjs +3 -24
  172. package/scripts/consumer/contract-reader.mjs +42 -0
  173. package/scripts/consumer/css-scan.mjs +51 -0
  174. package/scripts/consumer/diagnose.mjs +136 -0
  175. package/scripts/consumer/find-component.mjs +28 -13
  176. package/scripts/consumer/install-skill.mjs +93 -11
  177. package/src/styles/TOKENS.md +4 -3
  178. package/dist/combobox-Byu8N-Oe.js +0 -274
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../overlay-C8RAgi2_.js";
2
+ import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../overlay-BuQOl8aP.js";
3
3
  export { l as Overlay, i as OverlayBody, a as OverlayClose, s as OverlayContent, o as OverlayDescription, r as OverlayDismissArea, t as OverlayFooter, u as OverlayHeader, c as OverlayTitle, e as OverlayTrigger, n as defaultOverlayStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { n as e, r as t, t as n } from "../popover-menu-DcLeiw9r.js";
2
+ import { n as e, r as t, t as n } from "../popover-menu-QXgQeWeG.js";
3
3
  export { n as PopoverMenu, e as PopoverMenuPanel, t as defaultPopoverMenuStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../repeaters-DfptvbGA.js";
2
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../repeaters-CeH20dvr.js";
3
3
  export { e as KeyValueEditor, o as LocalizedObjectField, n as LocalizedStringField, i as LocalizedStringRepeater, c as ObjectRepeater, s as Repeater, a as StringRepeater, t as defaultKeyValueEditorStrings, r as defaultObjectRepeaterStrings, l as defaultRepeaterStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { t as e } from "../sheet-D-DVZH_b.js";
2
+ import { t as e } from "../sheet-CJ1-OAla.js";
3
3
  export { e as SheetContent };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { C as e, E as t, S as n, T as r, _ as i, a, b as o, c as s, d as c, f as l, g as u, h as d, i as f, l as p, m, n as h, o as g, p as _, r as v, s as y, t as b, u as x, v as S, w as C, x as w, y as T } from "../sidebar-DXQOy_Cb.js";
2
+ import { C as e, E as t, S as n, T as r, _ as i, a, b as o, c as s, d as c, f as l, g as u, h as d, i as f, l as p, m, n as h, o as g, p as _, r as v, s as y, t as b, u as x, v as S, w as C, x as w, y as T } from "../sidebar-D8uGqxio.js";
3
3
  export { b as Sidebar, h as SidebarContent, v as SidebarFooter, f as SidebarGroup, a as SidebarGroupAction, g as SidebarGroupContent, y as SidebarGroupLabel, s as SidebarHeader, p as SidebarInput, x as SidebarInset, c as SidebarMenu, l as SidebarMenuAction, _ as SidebarMenuBadge, m as SidebarMenuButton, d as SidebarMenuItem, u as SidebarMenuSkeleton, i as SidebarMenuSub, S as SidebarMenuSubButton, T as SidebarMenuSubItem, e as SidebarProvider, o as SidebarRail, w as SidebarSeparator, n as SidebarTrigger, C as defaultSidebarStrings, r as useOptionalSidebar, t as useSidebar };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, i as t, n, o as r, r as i, t as a } from "../skeleton-CubvHel9.js";
2
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../skeleton-BTKNKTdj.js";
3
3
  export { a as ContentSkeleton, n as PageSkeleton, r as Skeleton, i as TableSkeleton, t as TwoColumnPageSkeleton, e as defaultSkeletonStrings };
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../structure-B9Y5NkP_.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../structure-CynEZ-OY.js";
2
2
  export { i as AdaptiveGrid, a as Bleed, t as Grid, e as GridCell, n as Split, r as Stack };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { n as e, r as t, t as n } from "../timeline-BRZbSdhf.js";
2
+ import { n as e, r as t, t as n } from "../timeline-BR_jNgvz.js";
3
3
  export { n as Stepper, t as Timeline, e as defaultStepperStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "../upload-C_6mlbfl.js";
2
+ import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "../upload-CYuoJykZ.js";
3
3
  export { t as AvatarUpload, c as Dropzone, h as FilePickerInput, m as FileUpload, d as ImageUpload, u as MediaGallery, v as PreviewImage, p as UploadProgressList, s as UploadTray, r as defaultAvatarUploadStrings, i as defaultDropzoneStrings, f as defaultFilePickerStrings, _ as defaultFileUploadStrings, l as defaultImageUploadStrings, o as defaultMediaGalleryStrings, a as defaultUploadProgressListStrings, e as defaultUploadTrayStrings, g as useFileDropTarget, n as validateFileSelection };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../value-inputs-CnO6RZeT.js";
2
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../value-inputs-ng8aVJJZ.js";
3
3
  export { l as COUNTRY_PREFIX_MAP, s as ColorInput, i as DEFAULT_COUNTRY_PREFIXES, d as DateTimeInput, o as PhoneInput, t as Slider, a as SliderField, u as TagsInput, f as defaultColorInputStrings, n as defaultPhoneInputStrings, r as defaultSliderStrings, c as defaultTagsInputStrings, e as normalizeCountryPrefix };
@@ -6,9 +6,9 @@ import { c as r } from "../../buttons-BX2JfL5X.js";
6
6
  import { n as i } from "../../action-menu-BwiL_F6I.js";
7
7
  import { t as a } from "../../badge-VlJVZjdm.js";
8
8
  import { _ as o, h as s, p as c } from "../../feedback-D4qVsKlD.js";
9
- import { _ as l, d as u, g as d, h as f, l as p, u as m } from "../../display-BGN834xV.js";
9
+ import { _ as l, d as u, g as d, h as f, l as p, u as m } from "../../display-a7AoX_u7.js";
10
10
  import { t as h } from "../../copyable-D9Okb1w6.js";
11
- import { c as g, n as _, o as v, r as y, t as b, u as x } from "../../item-CuUJyETl.js";
11
+ import { c as g, n as _, o as v, r as y, t as b, u as x } from "../../item-M2pmpWXh.js";
12
12
  import { t as S } from "../../use-controllable-state-HHu2LRI-.js";
13
13
  import { CheckIcon as C, KeyRoundIcon as w, MinusIcon as T, PencilIcon as E, PlusIcon as D, ShieldAlertIcon as O, Trash2Icon as k } from "lucide-react";
14
14
  import { jsx as A, jsxs as j } from "react/jsx-runtime";
@@ -4,24 +4,24 @@ import { a as e, c as t, o as n, s as r } from "../../typography-DmeR05Er.js";
4
4
  import { t as i } from "../../cx--CBrhWH0.js";
5
5
  import { c as a } from "../../buttons-BX2JfL5X.js";
6
6
  import { n as o, t as s } from "../../action-menu-BwiL_F6I.js";
7
- import { o as c } from "../../structure-B9Y5NkP_.js";
7
+ import { o as c } from "../../structure-CynEZ-OY.js";
8
8
  import { a as l, c as u, r as d } from "../../avatar-Dc_BNYfB.js";
9
9
  import { t as f } from "../../strings-Co9_qArR.js";
10
10
  import { B as p, D as m, E as h, F as g, I as _, T as v, k as y, w as b } from "../../primitives-BskKlf35.js";
11
11
  import { t as x } from "../../badge-VlJVZjdm.js";
12
12
  import { _ as ee, h as S, p as C, s as w } from "../../feedback-D4qVsKlD.js";
13
- import { _ as T, c as te, d as ne, g as re, h as E, l as D, n as O, u as k, v as A } from "../../display-BGN834xV.js";
14
- import { s as ie, v as ae } from "../../choice-inputs-CCw-0gD6.js";
13
+ import { _ as T, c as te, d as ne, g as re, h as E, l as D, n as O, u as k, v as A } from "../../display-a7AoX_u7.js";
14
+ import { s as ie, v as ae } from "../../choice-inputs-NwRxvmZN.js";
15
15
  import { l as oe } from "../../text-inputs-BboE77nZ.js";
16
16
  import { t as se } from "../../copyable-D9Okb1w6.js";
17
- import { u as j } from "../../forms-NxbJK4Mh.js";
18
- import { c as ce, i as M, n as le, o as N, r as P, t as F, u as I } from "../../item-CuUJyETl.js";
19
- import { d as ue, f as de, p as fe, u as pe } from "../../navigation-BTX5Ti0Z.js";
17
+ import { u as j } from "../../forms-C0WeNPFF.js";
18
+ import { c as ce, i as M, n as le, o as N, r as P, t as F, u as I } from "../../item-M2pmpWXh.js";
19
+ import { d as ue, f as de, p as fe, u as pe } from "../../navigation-Bgu7Vc0M.js";
20
20
  import { t as me } from "../../use-controllable-state-HHu2LRI-.js";
21
21
  import { c as he, i as L, l as R, n as ge, o as _e, s as z, t as ve } from "../../table-Ds_eO9av.js";
22
- import { r as B } from "../../timeline-BRZbSdhf.js";
23
- import { s as ye } from "../../value-inputs-CnO6RZeT.js";
24
- import { t as be } from "../../timelines-DczZKW5p.js";
22
+ import { r as B } from "../../timeline-BR_jNgvz.js";
23
+ import { s as ye } from "../../value-inputs-ng8aVJJZ.js";
24
+ import { t as be } from "../../timelines-DXG1BfIN.js";
25
25
  import { BanIcon as xe, CheckIcon as Se, CircleAlertIcon as Ce, CircleCheckIcon as we, CircleXIcon as Te, CreditCardIcon as V, DownloadIcon as Ee, FileTextIcon as De, GiftIcon as Oe, ImageIcon as ke, MailIcon as Ae, MapPinIcon as je, PackageIcon as Me, PencilIcon as Ne, PhoneIcon as Pe, ReceiptIcon as Fe, RepeatIcon as Ie, RotateCcwIcon as Le, SearchIcon as Re, ShieldCheckIcon as ze, ShoppingBagIcon as Be, TagIcon as Ve, TicketIcon as He, TriangleAlertIcon as Ue, TruckIcon as We, XIcon as Ge } from "lucide-react";
26
26
  import { useState as Ke } from "react";
27
27
  import { Fragment as H, jsx as U, jsxs as W } from "react/jsx-runtime";
@@ -7,9 +7,9 @@ import { i, n as a, t as o } from "../tooltip-BPYP-jUm.js";
7
7
  import { G as s, K as c, W as l, q as u } from "../primitives-BskKlf35.js";
8
8
  import { t as d } from "../badge-VlJVZjdm.js";
9
9
  import { s as f } from "../feedback-D4qVsKlD.js";
10
- import { i as p } from "../cards-DdiICdMM.js";
11
- import { o as m } from "../skeleton-CubvHel9.js";
12
- import { l as h, u as g } from "../display-BGN834xV.js";
10
+ import { i as p } from "../cards-Ddhz43Bz.js";
11
+ import { o as m } from "../skeleton-BTKNKTdj.js";
12
+ import { l as h, u as g } from "../display-a7AoX_u7.js";
13
13
  import { n as _, t as v } from "../chart-BkK3Xm10.js";
14
14
  import { ArrowDownIcon as y, ArrowRightIcon as b, ArrowUpIcon as x, CalendarIcon as S, EqualIcon as C, InfoIcon as w, MinusIcon as T } from "lucide-react";
15
15
  import { useId as E } from "react";
@@ -4,7 +4,7 @@ import { a as e, s as t } from "../typography-DmeR05Er.js";
4
4
  import { t as n } from "../cx--CBrhWH0.js";
5
5
  import { t as r } from "../accordion-CHuzMmWL.js";
6
6
  import { s as i } from "../feedback-D4qVsKlD.js";
7
- import { u as a } from "../display-BGN834xV.js";
7
+ import { u as a } from "../display-a7AoX_u7.js";
8
8
  import { CheckIcon as o, CircleDotIcon as s, CircleIcon as c } from "lucide-react";
9
9
  import { useEffect as l, useRef as u, useState as d } from "react";
10
10
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../timelines-DczZKW5p.js";
2
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../timelines-DXG1BfIN.js";
3
3
  export { t as ChangelogTimeline, i as MilestonesTimeline, o as Steps, n as StepsBar, e as defaultChangelogStrings, r as defaultMilestonesStrings, a as defaultStepsStrings };
@@ -6,9 +6,9 @@ import { n as i } from "./ui-provider-DpzLUD12.js";
6
6
  import { c as a } from "./buttons-BX2JfL5X.js";
7
7
  import { i as o, n as s, t as c } from "./tooltip-BPYP-jUm.js";
8
8
  import { n as l } from "./action-menu-BwiL_F6I.js";
9
- import { o as u } from "./structure-B9Y5NkP_.js";
9
+ import { o as u } from "./structure-CynEZ-OY.js";
10
10
  import { _ as d, h as f } from "./feedback-D4qVsKlD.js";
11
- import { t as p } from "./skeleton-CubvHel9.js";
11
+ import { t as p } from "./skeleton-BTKNKTdj.js";
12
12
  import { ChevronDownIcon as m, ChevronUpIcon as h, InfoIcon as g } from "lucide-react";
13
13
  import * as _ from "react";
14
14
  import { isValidElement as v } from "react";
@@ -3,8 +3,8 @@ import { c as e, s as t } from "./typography-DmeR05Er.js";
3
3
  import { t as n } from "./cx--CBrhWH0.js";
4
4
  import { u as r } from "./ui-provider-DpzLUD12.js";
5
5
  import { i, n as a, t as o } from "./tooltip-BPYP-jUm.js";
6
- import { o as s } from "./structure-B9Y5NkP_.js";
7
- import { d as c } from "./display-BGN834xV.js";
6
+ import { o as s } from "./structure-CynEZ-OY.js";
7
+ import { d as c } from "./display-a7AoX_u7.js";
8
8
  import { t as l } from "./label-HOBXAscw.js";
9
9
  import { CheckIcon as u, ChevronDownIcon as d, ChevronUpIcon as f, CircleCheckIcon as p, CircleIcon as m, InfoIcon as h, MinusIcon as g } from "lucide-react";
10
10
  import * as _ from "react";
@@ -0,0 +1,292 @@
1
+ import "#core.css";
2
+ import { c as e, s as t } from "./typography-DmeR05Er.js";
3
+ import { t as n } from "./cx--CBrhWH0.js";
4
+ import { u as r } from "./ui-provider-DpzLUD12.js";
5
+ import { CheckIcon as i, ChevronDownIcon as a, SearchIcon as o, XIcon as s } from "lucide-react";
6
+ import { useRef as c } from "react";
7
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ import { Combobox as d } from "@base-ui/react/combobox";
9
+ import "#css/combobox2.css";
10
+ //#region src/components/base/combobox/combobox.strings.ts
11
+ var f = {
12
+ clear: "Clear selection",
13
+ toggle: "Show options",
14
+ removeChip: (e) => `Remove ${e}`
15
+ }, p = {
16
+ inputWrap: "combobox__inputWrap___pq05W",
17
+ input: "combobox__input___aAwhX",
18
+ actions: "combobox__actions___IyZ2d",
19
+ action: "combobox__action___0IR8g",
20
+ trigger: "combobox__trigger___n7R5B",
21
+ triggerIcon: "combobox__triggerIcon___IMtUV",
22
+ positioner: "combobox__positioner___v-iEj",
23
+ popup: "combobox__popup___KLyqI",
24
+ list: "combobox__list___DJHyc",
25
+ item: "combobox__item___W4q_8",
26
+ itemLabel: "combobox__itemLabel___nw0at",
27
+ indicator: "combobox__indicator___UCySr",
28
+ group: "combobox__group___pmVFV",
29
+ groupLabel: "combobox__groupLabel___Ohsi4",
30
+ empty: "combobox__empty___DplDZ",
31
+ status: "combobox__status___8Yiku",
32
+ separator: "combobox__separator___Sd_Mg",
33
+ chips: "combobox__chips___S6OXP",
34
+ chip: "combobox__chip___fL92a",
35
+ chipRemove: "combobox__chipRemove___cm7qk",
36
+ popupSearch: "combobox__popupSearch___HJUiP",
37
+ popupSearchInput: "combobox__popupSearchInput___tliZC",
38
+ popupSearchIcon: "combobox__popupSearchIcon____iBcZ",
39
+ chipsInput: "combobox__chipsInput___0jhr3",
40
+ backdrop: "combobox__backdrop___HP8mt",
41
+ arrow: "combobox__arrow___OPPY3"
42
+ }, m = d.Root;
43
+ function h({ container: e, ...t }) {
44
+ let n = r(e);
45
+ return /* @__PURE__ */ l(d.Portal, {
46
+ container: n,
47
+ ...t
48
+ });
49
+ }
50
+ var g = d.Collection;
51
+ function _({ onKeyDown: e, onCompositionStart: t, onCompositionEnd: n, ...r }) {
52
+ let i = c(!1);
53
+ return /* @__PURE__ */ l(d.Input, {
54
+ ...r,
55
+ onCompositionStart: (e) => {
56
+ i.current = !0, t?.(e);
57
+ },
58
+ onCompositionEnd: (e) => {
59
+ i.current = !1, n?.(e);
60
+ },
61
+ onKeyDown: (t) => {
62
+ if (e?.(t), t.defaultPrevented || t.baseUIHandlerPrevented || t.key !== "Enter") return;
63
+ let n = i.current || t.nativeEvent.isComposing || t.keyCode === 229, r = t.currentTarget.getAttribute("aria-expanded") === "true" && !t.currentTarget.getAttribute("aria-activedescendant");
64
+ (n || r) && (t.preventDefault(), t.preventBaseUIHandler());
65
+ }
66
+ });
67
+ }
68
+ function v({ className: e, ...t }) {
69
+ return /* @__PURE__ */ l(_, {
70
+ "data-slot": "combobox-input",
71
+ "data-field-control": "",
72
+ className: n("combobox-input--component", p.input, e),
73
+ ...t
74
+ });
75
+ }
76
+ function y({ className: e, showClear: t = !1, invalid: r, strings: i, ...o }) {
77
+ let c = {
78
+ ...f,
79
+ ...i
80
+ };
81
+ return /* @__PURE__ */ u("div", {
82
+ className: p.inputWrap,
83
+ "data-has-clear": t || void 0,
84
+ children: [/* @__PURE__ */ l(_, {
85
+ "data-slot": "combobox-input",
86
+ "data-field-control": "",
87
+ "aria-invalid": r || void 0,
88
+ className: n("combobox-input--component", p.input, e),
89
+ ...o
90
+ }), /* @__PURE__ */ u("div", {
91
+ className: p.actions,
92
+ children: [t && /* @__PURE__ */ l(d.Clear, {
93
+ "data-slot": "combobox-clear",
94
+ "data-hit-area": !0,
95
+ "aria-label": c.clear,
96
+ className: p.action,
97
+ children: /* @__PURE__ */ l(s, { "aria-hidden": !0 })
98
+ }), /* @__PURE__ */ l(d.Trigger, {
99
+ "data-hit-area": !0,
100
+ "aria-label": c.toggle,
101
+ className: p.action,
102
+ children: /* @__PURE__ */ l(a, { "aria-hidden": !0 })
103
+ })]
104
+ })]
105
+ });
106
+ }
107
+ function b({ className: e, children: t, ...r }) {
108
+ return /* @__PURE__ */ u(d.Trigger, {
109
+ "data-slot": "combobox-trigger",
110
+ "data-field-control": "",
111
+ className: n("combobox-trigger--component", p.trigger, e),
112
+ ...r,
113
+ children: [t, /* @__PURE__ */ l(d.Icon, {
114
+ className: p.triggerIcon,
115
+ children: /* @__PURE__ */ l(a, { "aria-hidden": !0 })
116
+ })]
117
+ });
118
+ }
119
+ function x({ className: t, ...r }) {
120
+ return /* @__PURE__ */ u("div", {
121
+ "data-slot": "combobox-popup-input",
122
+ className: p.popupSearch,
123
+ children: [/* @__PURE__ */ l(o, {
124
+ "aria-hidden": !0,
125
+ className: p.popupSearchIcon
126
+ }), /* @__PURE__ */ l(_, {
127
+ "data-slot": "combobox-input",
128
+ className: n("combobox-popup-input--component", p.popupSearchInput, e({ size: "sm" }), t),
129
+ ...r
130
+ })]
131
+ });
132
+ }
133
+ function S({ placeholder: e, ...n }) {
134
+ return /* @__PURE__ */ l(d.Value, {
135
+ "data-slot": "combobox-value",
136
+ placeholder: e ? /* @__PURE__ */ l(t, {
137
+ tag: "span",
138
+ size: "inherit",
139
+ type: "secondary",
140
+ className: "combobox-value--component",
141
+ children: e
142
+ }) : void 0,
143
+ ...n
144
+ });
145
+ }
146
+ function C({ className: e, children: t, ...r }) {
147
+ return /* @__PURE__ */ l(d.Clear, {
148
+ "data-slot": "combobox-clear",
149
+ "data-hit-area": !0,
150
+ "aria-label": f.clear,
151
+ className: n("combobox-clear--component", p.action, e),
152
+ ...r,
153
+ children: t ?? /* @__PURE__ */ l(s, { "aria-hidden": !0 })
154
+ });
155
+ }
156
+ function w({ className: e, sideOffset: t = 4, ...r }) {
157
+ return /* @__PURE__ */ l(d.Positioner, {
158
+ "data-slot": "combobox-positioner",
159
+ sideOffset: t,
160
+ className: n("combobox-positioner--component", p.positioner, e),
161
+ ...r
162
+ });
163
+ }
164
+ function T({ className: e, ...t }) {
165
+ return /* @__PURE__ */ l(d.Popup, {
166
+ "data-slot": "combobox-popup",
167
+ className: n("combobox-popup--component", p.popup, e),
168
+ ...t
169
+ });
170
+ }
171
+ function E({ className: e, ...t }) {
172
+ return /* @__PURE__ */ l(d.List, {
173
+ "data-slot": "combobox-list",
174
+ className: n("combobox-list--component", p.list, e),
175
+ ...t
176
+ });
177
+ }
178
+ function D({ className: t, children: r, ...a }) {
179
+ return /* @__PURE__ */ u(d.Item, {
180
+ "data-slot": "combobox-item",
181
+ className: n("combobox-item--component", p.item, e({ size: "sm" }), t),
182
+ ...a,
183
+ children: [/* @__PURE__ */ l("span", {
184
+ className: p.itemLabel,
185
+ children: r
186
+ }), /* @__PURE__ */ l(d.ItemIndicator, {
187
+ className: p.indicator,
188
+ children: /* @__PURE__ */ l(i, { "aria-hidden": !0 })
189
+ })]
190
+ });
191
+ }
192
+ function O({ className: e, children: t, ...r }) {
193
+ return /* @__PURE__ */ l(d.ItemIndicator, {
194
+ "data-slot": "combobox-item-indicator",
195
+ className: n("combobox-item-indicator--component", p.indicator, e),
196
+ ...r,
197
+ children: t ?? /* @__PURE__ */ l(i, { "aria-hidden": !0 })
198
+ });
199
+ }
200
+ function k({ className: t, ...r }) {
201
+ return /* @__PURE__ */ l(d.Empty, {
202
+ "data-slot": "combobox-empty",
203
+ className: n("combobox-empty--component", p.empty, e({ size: "sm" }), t),
204
+ ...r
205
+ });
206
+ }
207
+ function A({ className: t, ...r }) {
208
+ return /* @__PURE__ */ l(d.Status, {
209
+ "data-slot": "combobox-status",
210
+ className: n("combobox-status--component", p.status, e({ size: "sm" }), t),
211
+ ...r
212
+ });
213
+ }
214
+ function j({ className: e, ...t }) {
215
+ return /* @__PURE__ */ l(d.Group, {
216
+ "data-slot": "combobox-group",
217
+ className: n("combobox-group--component", p.group, e),
218
+ ...t
219
+ });
220
+ }
221
+ function M({ className: t, ...r }) {
222
+ return /* @__PURE__ */ l(d.GroupLabel, {
223
+ "data-slot": "combobox-group-label",
224
+ className: n("combobox-group-label--component", p.groupLabel, e({
225
+ size: "xs",
226
+ weight: "medium"
227
+ }), t),
228
+ ...r
229
+ });
230
+ }
231
+ function N({ className: e, ...t }) {
232
+ return /* @__PURE__ */ l(d.Separator, {
233
+ "data-slot": "combobox-separator",
234
+ className: n("combobox-separator--component", p.separator, e),
235
+ ...t
236
+ });
237
+ }
238
+ function P({ className: e, invalid: t, ...r }) {
239
+ return /* @__PURE__ */ l(d.Chips, {
240
+ "data-slot": "combobox-chips",
241
+ "data-field-shell": "",
242
+ "aria-invalid": t || void 0,
243
+ className: n("combobox-chips--component", p.chips, e),
244
+ ...r
245
+ });
246
+ }
247
+ function F({ className: t, children: r, strings: i, ...a }) {
248
+ let o = {
249
+ ...f,
250
+ ...i
251
+ };
252
+ return /* @__PURE__ */ u(d.Chip, {
253
+ "data-slot": "combobox-chip",
254
+ className: n("combobox-chip--component", p.chip, e({
255
+ size: "xs",
256
+ weight: "medium"
257
+ }), t),
258
+ ...a,
259
+ children: [r, /* @__PURE__ */ l(d.ChipRemove, {
260
+ "data-hit-area": !0,
261
+ "aria-label": o.removeChip(typeof r == "string" || typeof r == "number" ? String(r) : "item"),
262
+ className: p.chipRemove,
263
+ children: /* @__PURE__ */ l(s, { "aria-hidden": !0 })
264
+ })]
265
+ });
266
+ }
267
+ function I({ className: e, ...t }) {
268
+ return /* @__PURE__ */ l(_, {
269
+ "data-slot": "combobox-chips-input",
270
+ "data-field-control": "",
271
+ className: n("combobox-chips-input--component", p.chipsInput, e),
272
+ ...t
273
+ });
274
+ }
275
+ function L({ className: e, ...t }) {
276
+ return /* @__PURE__ */ l(d.Backdrop, {
277
+ "data-slot": "combobox-backdrop",
278
+ className: n("combobox-backdrop--component", p.backdrop, e),
279
+ ...t
280
+ });
281
+ }
282
+ function R({ className: e, ...t }) {
283
+ return /* @__PURE__ */ l(d.Arrow, {
284
+ className: n("combobox-arrow--component", p.arrow, e),
285
+ ...t
286
+ });
287
+ }
288
+ //#endregion
289
+ //#region src/components/base/combobox/combobox-filter.ts
290
+ var z = d.useFilter;
291
+ //#endregion
292
+ export { A as C, f as E, N as S, S as T, T as _, P as a, w as b, g as c, M as d, v as f, E as g, O as h, F as i, k as l, D as m, R as n, I as o, y as p, L as r, C as s, z as t, j as u, x as v, b as w, m as x, h as y };
@@ -1,8 +1,8 @@
1
1
  import "#core.css";
2
2
  import { c as e, s as t } from "./typography-DmeR05Er.js";
3
3
  import { t as n } from "./cx--CBrhWH0.js";
4
- import { o as r, s as i, t as a, u as o } from "./overlay-C8RAgi2_.js";
5
- import { t as s } from "./dialog-0nRFg5Zs.js";
4
+ import { o as r, s as i, t as a, u as o } from "./overlay-BuQOl8aP.js";
5
+ import { t as s } from "./dialog-CAnwRNrm.js";
6
6
  import { n as c, t as l } from "./input-group-HS_Z0Ei_.js";
7
7
  import { CheckIcon as u, SearchIcon as d } from "lucide-react";
8
8
  import * as f from "react";
@@ -5,16 +5,16 @@ import { t as o } from "./ui-provider-DpzLUD12.js";
5
5
  import { c as s } from "./buttons-BX2JfL5X.js";
6
6
  import { i as c, n as l, t as u } from "./tooltip-BPYP-jUm.js";
7
7
  import { i as d, n as f } from "./action-menu-BwiL_F6I.js";
8
- import { o as p } from "./structure-B9Y5NkP_.js";
8
+ import { o as p } from "./structure-CynEZ-OY.js";
9
9
  import { a as m, c as h, r as g } from "./avatar-Dc_BNYfB.js";
10
10
  import { H as _, I as v, S as y, T as b, h as x, s as S, v as C, w as ee } from "./primitives-BskKlf35.js";
11
11
  import { t as w } from "./badge-VlJVZjdm.js";
12
12
  import { p as T } from "./feedback-D4qVsKlD.js";
13
- import { d as E, l as D } from "./display-BGN834xV.js";
13
+ import { d as E, l as D } from "./display-a7AoX_u7.js";
14
14
  import { c as O, r as k, t as te } from "./popover-CA7SP_iz.js";
15
15
  import { t as A } from "./spinner-Tc1QCnxM.js";
16
- import { i as j, t as ne } from "./overlays-9BxwFTou.js";
17
- import { f as M, i as N, o as P, s as re, t as ie } from "./mentions-oeYNv_j1.js";
16
+ import { i as j, t as ne } from "./overlays-1sULyytH.js";
17
+ import { f as M, i as N, o as P, s as re, t as ie } from "./mentions-BOxbigwp.js";
18
18
  import { t as ae } from "./rich-text-editor-D_Ppm8yh.js";
19
19
  import { AtSignIcon as oe, FileIcon as F, FileTextIcon as I, ImageIcon as L, MessageCircleIcon as R, MoreHorizontalIcon as se, PaperclipIcon as ce, PencilIcon as le, PinIcon as ue, SendIcon as de, SmilePlusIcon as fe, Trash2Icon as pe, XIcon as me } from "lucide-react";
20
20
  import { Fragment as he, cloneElement as ge, createContext as z, useCallback as B, useContext as _e, useEffect as V, useId as ve, useImperativeHandle as ye, useLayoutEffect as be, useMemo as H, useRef as U, useState as W } from "react";
@@ -22,7 +22,7 @@ export interface IconBadgeProps extends Omit<ComponentProps<"span">, "children">
22
22
  bordered?: boolean;
23
23
  }
24
24
  /**
25
- * A glyph in a tinted medallion. Its size comes from `--_icon-badge-size`, so a caller
26
- * needing a smaller mark re-points the variable instead of redrawing the badge.
25
+ * A glyph in a tinted medallion. `tone` coordinates fill and glyph; `shape` chooses
26
+ * rounded or circular geometry. Internal sizing variables are not consumer overrides.
27
27
  */
28
28
  export declare function IconBadge({ icon, children, tone, shape, solid, bordered, className, ...props }: IconBadgeProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * FormField — label, control and one supporting line: `error || helperText || hint`, one
3
- * replacing the next so the field never shifts as validation changes (so copy needed while
4
- * fixing an error belongs in the error). The field owns the ids and wires the label,
3
+ * replacing the next rather than stacking. Supporting copy can wrap; copy needed while
4
+ * fixing an error belongs in the error. The field owns the ids and wires the label,
5
5
  * `aria-describedby` and `aria-invalid` onto the control.
6
6
  */
7
7
  import * as React from "react";
@@ -15,6 +15,7 @@ export interface BleedProps extends React.ComponentProps<"div"> {
15
15
  /**
16
16
  * Which way to escape; `both` covers every direction. Sideways is the common case: an
17
17
  * image bleeds across and keeps its vertical rhythm.
18
+ * @default "inline"
18
19
  */
19
20
  axis?: BleedAxis;
20
21
  }
@@ -5,7 +5,10 @@ import { CssLength, GridColumns, GridSpan, ResponsiveValue, StructureAlign, Stru
5
5
  */
6
6
  import * as React from "react";
7
7
  export interface GridProps extends React.ComponentProps<"div"> {
8
- /** Defaults to one column, then two from the md breakpoint. */
8
+ /**
9
+ * Defaults to one column, then two from md. Uses the nearest inline-size query
10
+ * container when present (md = 32rem), otherwise the viewport (md = 48rem).
11
+ */
9
12
  columns?: ResponsiveValue<GridColumns>;
10
13
  gap?: ResponsiveValue<StructureGap>;
11
14
  rowGap?: ResponsiveValue<StructureGap>;
@@ -16,7 +19,10 @@ export interface GridProps extends React.ComponentProps<"div"> {
16
19
  }
17
20
  export declare const Grid: React.ForwardRefExoticComponent<Omit<GridProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
21
  export interface GridCellProps extends React.ComponentProps<"div"> {
19
- /** Columns occupied. `full` spans whatever the grid currently has. */
22
+ /**
23
+ * Columns occupied. `full` spans whatever the grid currently has, including in a
24
+ * responsive object. Span breakpoints follow the viewport, not Grid's container.
25
+ */
20
26
  span?: ResponsiveValue<GridSpan>;
21
27
  }
22
28
  export declare const GridCell: React.ForwardRefExoticComponent<Omit<GridCellProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -27,6 +27,7 @@ export interface SplitProps extends React.ComponentProps<"div"> {
27
27
  /**
28
28
  * Below this breakpoint the two columns become one. `never` keeps them side by side at
29
29
  * every width.
30
+ * @default "md"
30
31
  */
31
32
  collapseBelow?: "sm" | "md" | "lg" | "xl" | "never";
32
33
  }
@@ -11,6 +11,7 @@ export interface FetchingComboboxProps<T> extends Omit<AsyncComboboxProps<T>, "i
11
11
  /** Receives the trimmed query that failed. Aborts never reach it. */
12
12
  onError?: (error: unknown, query: string) => void;
13
13
  preload: boolean;
14
+ scopeKey?: string | number;
14
15
  requestDelay?: number;
15
16
  searchValue?: string;
16
17
  defaultSearchValue?: string;
@@ -30,4 +31,4 @@ export interface FetchingComboboxProps<T> extends Omit<AsyncComboboxProps<T>, "i
30
31
  /** On the wrapper, which also holds the error, not on the input. */
31
32
  className?: string;
32
33
  }
33
- export declare function FetchingCombobox<T>({ hook, slot, fetchData, onError, preload, requestDelay, minSearchLength, debounceMs, searchValue, defaultSearchValue, onSearchValueChange, value, defaultValue, onValueChange, open, defaultOpen, onOpenChange, clearSearchOnClose, getItemLabel, getItemKey, getDescription, getMeta, renderOption, highlightMatch, errorTitle, renderError, strings, disabled, className, ...props }: FetchingComboboxProps<T>): import("react").JSX.Element;
34
+ export declare function FetchingCombobox<T>({ hook, slot, fetchData, onError, preload, scopeKey, requestDelay, minSearchLength, debounceMs, searchValue, defaultSearchValue, onSearchValueChange, value, defaultValue, onValueChange, open, defaultOpen, onOpenChange, clearSearchOnClose, getItemLabel, getItemKey, getDescription, getMeta, renderOption, highlightMatch, errorTitle, renderError, strings, disabled, className, ...props }: FetchingComboboxProps<T>): import("react").JSX.Element;
@@ -17,6 +17,9 @@ export interface ResourceComboboxProps<T> extends Omit<AsyncComboboxProps<T>, "i
17
17
  * and the query arrives trimmed. Honour `signal`, so an abort does not surface as a failure.
18
18
  */
19
19
  fetcher: ResourceComboboxFetcher<T>;
20
+ /** Resource scope identity. A change aborts stale lookups and refetches the current
21
+ * eligible query. The application owns clearing a selection invalid in the new scope. */
22
+ scopeKey?: string | number;
20
23
  /** Controlled. Omit entirely to let the component own the selection. */
21
24
  value?: T | null;
22
25
  /** The starting selection when uncontrolled. Ignored once `value` is passed. */
@@ -9,6 +9,13 @@ export interface UseSuggestionsConfig<T> {
9
9
  * `context.signal` to the request: it aborts when a newer query starts.
10
10
  */
11
11
  fetchData: (query: string, context?: SuggestionsFetchContext) => MaybePromise<T[]>;
12
+ /**
13
+ * Identity of the resource scope (workspace, tenant or parent record). Changing it
14
+ * aborts previous work, hides its results/errors and immediately refetches an eligible
15
+ * query. Compared with Object.is; callback identity alone never refetches. Selection,
16
+ * query and open state survive: the application clears selections invalid in the new scope.
17
+ */
18
+ scopeKey?: string | number;
12
19
  /**
13
20
  * Characters required before a request is issued, not counting surrounding whitespace.
14
21
  * Defaults to 1.