@vireo-ai/trellis-ui 0.1.48 → 0.1.50

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 (147) hide show
  1. package/package.json +5 -5
  2. package/packages/client/src/components/data-grid/styles.css +20 -2
  3. package/packages/client/src/components/field/styles.css +29 -3
  4. package/packages/client/src/components/tabs/styles.css +1 -1
  5. package/packages/client/src/styles/generated/theme-fonts.css +1 -1
  6. package/packages/client/src/styles/generated/theme-palette.css +8 -1
  7. package/packages/client/src/styles/generated/theme-runtime.css +13 -13
  8. package/packages/client/src/styles/generated-sources.css +1 -1
  9. package/packages/client/src/styles/recipes/option.css +4 -0
  10. package/packages/client/types/component-api.d.ts +3 -1
  11. package/packages/client/types/components/data-grid/contract.d.ts +2 -0
  12. package/packages/client/types/components/data-grid/index.d.ts +28 -4
  13. package/packages/client/types/components/data-grid/model.d.ts +4 -2
  14. package/packages/client/types/components/menu/contract.d.ts +2 -2
  15. package/packages/client/types/components/runtime.d.ts +1 -1
  16. package/packages/client/types/components/sidebar/contract.d.ts +8 -2
  17. package/packages/client/types/components/virtualizer/contract.d.ts +1 -29
  18. package/packages/client/types/components/virtualizer/cursor.d.ts +1 -0
  19. package/packages/client/types/components/virtualizer/index.d.ts +2 -28
  20. package/packages/client/types/motion/index.d.ts +1 -0
  21. package/packages/client/types/motion/registry.d.ts +2 -1
  22. package/packages/client/types/runtime/cursor-data-source.d.ts +45 -0
  23. package/packages/client/types/runtime/focus-handoff.d.ts +12 -0
  24. package/packages/client/types/runtime/virtualizer-schema.d.ts +29 -0
  25. package/packages/client/types/runtime/virtualizer.d.ts +41 -0
  26. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +83 -17
  27. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  28. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +377 -357
  29. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  30. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +1 -1
  31. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  32. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{alpine-machine-BS13dbK4.js → alpine-machine-BTDXpEr6.js} +2 -2
  33. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{alpine-machine-BS13dbK4.js.map → alpine-machine-BTDXpEr6.js.map} +1 -1
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-C8JwDQHB.js → capability-motion-BeZZfCbD.js} +2 -2
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-C8JwDQHB.js.map → capability-motion-BeZZfCbD.js.map} +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-CGpfLNL-.js +2 -0
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-CGpfLNL-.js.map +1 -0
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-D5jfePOE.js +3 -0
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-D5jfePOE.js.map +1 -0
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-BOf7dxV2.js → controller-xDNH-xzt.js} +2 -2
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{controller-BOf7dxV2.js.map → controller-xDNH-xzt.js.map} +1 -1
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-D_APohl9.js → core-CGPV218r.js} +2 -2
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-D_APohl9.js.map → core-CGPV218r.js.map} +1 -1
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-6_ClPYhC.js +2 -0
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-6_ClPYhC.js.map +1 -0
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C5kjUnFe.js → entry.generated-AFRarPro.js} +2 -2
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-C5kjUnFe.js.map → entry.generated-AFRarPro.js.map} +1 -1
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DRZyI4u3.js → entry.generated-B3F9jaO_.js} +2 -2
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DRZyI4u3.js.map → entry.generated-B3F9jaO_.js.map} +1 -1
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BK8q8vxJ.js → entry.generated-B6Gjj1Mu.js} +2 -2
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BK8q8vxJ.js.map → entry.generated-B6Gjj1Mu.js.map} +1 -1
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B_e0djHK.js → entry.generated-BGqM-PEq.js} +2 -2
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B_e0djHK.js.map → entry.generated-BGqM-PEq.js.map} +1 -1
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-f6HGqvQY.js → entry.generated-BqEMECZx.js} +2 -2
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-f6HGqvQY.js.map → entry.generated-BqEMECZx.js.map} +1 -1
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D6qaa8bk.js → entry.generated-BsJJMR1g.js} +2 -2
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-D6qaa8bk.js.map → entry.generated-BsJJMR1g.js.map} +1 -1
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-By-7ucpB.js +2 -0
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-By-7ucpB.js.map +1 -0
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cj1CmH13.js → entry.generated-ByvN55ox.js} +2 -2
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cj1CmH13.js.map → entry.generated-ByvN55ox.js.map} +1 -1
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DckTWjSU.js → entry.generated-CvHs5hfG.js} +2 -2
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DckTWjSU.js.map → entry.generated-CvHs5hfG.js.map} +1 -1
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cekl4pYo.js → entry.generated-Cwv0HSDM.js} +2 -2
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cekl4pYo.js.map → entry.generated-Cwv0HSDM.js.map} +1 -1
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DFkEr0wI.js +2 -0
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DFkEr0wI.js.map +1 -0
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DcCdeWRk.js → entry.generated-DVk-PDBl.js} +2 -2
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DcCdeWRk.js.map → entry.generated-DVk-PDBl.js.map} +1 -1
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-dyQ_HJ8D.js → entry.generated-DwYIFLsE.js} +2 -2
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-dyQ_HJ8D.js.map → entry.generated-DwYIFLsE.js.map} +1 -1
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-OqzkZfIu.js → entry.generated-N4M4QtmC.js} +2 -2
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-OqzkZfIu.js.map → entry.generated-N4M4QtmC.js.map} +1 -1
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Bl38ruYD.js → entry.generated-Wl7imdNP.js} +2 -2
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Wl7imdNP.js.map +1 -0
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-RR5GZAgO.js → entry.generated-ZTRbQ10A.js} +2 -2
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-RR5GZAgO.js.map → entry.generated-ZTRbQ10A.js.map} +1 -1
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BNM7EWpC.js → entry.generated-qNEmG1Ht.js} +2 -2
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BNM7EWpC.js.map → entry.generated-qNEmG1Ht.js.map} +1 -1
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CZWpqP88.js → entry.generated-qYKh9MwP.js} +2 -2
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CZWpqP88.js.map → entry.generated-qYKh9MwP.js.map} +1 -1
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-yg-lGtcT.js +2 -0
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-yg-lGtcT.js.map +1 -0
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dzq4GSqn.js +2 -0
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dzq4GSqn.js.map +1 -0
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CPbvsglm.js → entry2.generated-gxr2-89M.js} +2 -2
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-gxr2-89M.js.map +1 -0
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-BE3g0swK.js +2 -0
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-handoff-BE3g0swK.js.map +1 -0
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-C3XtSJ4O.js +3 -0
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-BlyJpJAE.js.map → motion-C3XtSJ4O.js.map} +1 -1
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{semantic-observer-BUswpsNx.js → semantic-observer-CdRbZHir.js} +2 -2
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{semantic-observer-BUswpsNx.js.map → semantic-observer-CdRbZHir.js.map} +1 -1
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BHBokFNi.js +4 -0
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-CfByjNaO.js.map → ui-BHBokFNi.js.map} +1 -1
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-CSk2RJEN.js +2 -0
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-CSk2RJEN.js.map +1 -0
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +1 -1
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +1 -1
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +1 -1
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +1 -1
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +169 -162
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js +0 -2
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-Z-__iteD.js.map +0 -1
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ms02uATJ.js +0 -3
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Ms02uATJ.js.map +0 -1
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-6GztwKjx.js +0 -2
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-6GztwKjx.js.map +0 -1
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js +0 -2
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js.map +0 -1
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bl38ruYD.js.map +0 -1
  137. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C0kdsGqX.js +0 -2
  138. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C0kdsGqX.js.map +0 -1
  139. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CPbvsglm.js.map +0 -1
  140. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DldFffYN.js +0 -2
  141. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DldFffYN.js.map +0 -1
  142. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-jxSblEo7.js +0 -2
  143. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-jxSblEo7.js.map +0 -1
  144. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-BlyJpJAE.js +0 -3
  145. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CfByjNaO.js +0 -4
  146. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js +0 -2
  147. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ type CursorPage<Content> = {
2
+ content: Content;
3
+ startCursor: string | null;
4
+ endCursor: string | null;
5
+ hasNext: boolean;
6
+ hasPrevious: boolean;
7
+ startIndex?: number;
8
+ };
9
+ type CursorRenderPayload = {
10
+ html: string;
11
+ assets: Array<{
12
+ id: string;
13
+ src: string;
14
+ preloads?: string[];
15
+ }>;
16
+ totalItems: number | null;
17
+ };
18
+ type SoughtCursorPage<Content> = CursorPage<Content> & {
19
+ startIndex: number;
20
+ };
21
+ type CursorFirstArgs<Query> = {
22
+ limit: number;
23
+ query: Query;
24
+ signal: AbortSignal;
25
+ };
26
+ type CursorMoveArgs<Query> = CursorFirstArgs<Query> & {
27
+ cursor: string;
28
+ };
29
+ type CursorSeekArgs<Query> = CursorFirstArgs<Query> & {
30
+ index: number;
31
+ };
32
+ type CursorDataSource<Query, Content> = {
33
+ first(args: CursorFirstArgs<Query>): Promise<CursorPage<Content>>;
34
+ next(args: CursorMoveArgs<Query>): Promise<CursorPage<Content>>;
35
+ previous(args: CursorMoveArgs<Query>): Promise<CursorPage<Content>>;
36
+ seek?(args: CursorSeekArgs<Query>): Promise<SoughtCursorPage<Content>>;
37
+ };
38
+ type CursorResponseAdapter<Content> = (content: Content, page: CursorPage<Content>) => CursorRenderPayload | Promise<CursorRenderPayload>;
39
+ type CursorVirtualizerOptions<Query, Content> = {
40
+ dataSource: CursorDataSource<Query, Content>;
41
+ query: Query;
42
+ responseAdapter: CursorResponseAdapter<Content>;
43
+ seekDebounce?: number;
44
+ };
45
+ export type { CursorDataSource, CursorFirstArgs, CursorMoveArgs, CursorPage, CursorResponseAdapter, CursorRenderPayload, CursorSeekArgs, SoughtCursorPage, CursorVirtualizerOptions, };
@@ -0,0 +1,12 @@
1
+ type FocusHandoffState = {
2
+ pointerDown: boolean;
3
+ pointerFocused: HTMLElement | null;
4
+ indicatorSuppressed: HTMLElement | null;
5
+ shortcut: boolean;
6
+ shortcutReset: number | undefined;
7
+ };
8
+ declare const ensureFocusHandoff: (document: Document) => FocusHandoffState;
9
+ declare const beginShortcutFocusHandoff: (document: Document) => void;
10
+ declare const isShortcutFocusHandoff: (document: Document) => boolean;
11
+ declare const focusWithoutIndicator: (element: HTMLElement) => void;
12
+ export { beginShortcutFocusHandoff, ensureFocusHandoff, focusWithoutIndicator, isShortcutFocusHandoff, };
@@ -0,0 +1,29 @@
1
+ import { type SchemaToProps } from './codecs';
2
+ declare const VIRTUALIZER_AXES: readonly ["vertical"];
3
+ type VirtualizerAxis = typeof VIRTUALIZER_AXES[number];
4
+ declare const virtualizerSchema: {
5
+ fetchUrl: import("./codecs").StringCodec;
6
+ totalItems: import("./codecs").NumberCodec;
7
+ itemSize: import("./codecs").NumberCodec;
8
+ bufferSize: import("./codecs").NumberCodec;
9
+ overscan: import("./codecs").NumberCodec;
10
+ axis: import("./codecs").OneOfCodec<"vertical">;
11
+ initialIndex: import("./codecs").NumberCodec;
12
+ startParam: import("./codecs").StringCodec;
13
+ countParam: import("./codecs").StringCodec;
14
+ totalParam: import("./codecs").StringCodec;
15
+ windowParam: import("./codecs").StringCodec;
16
+ totalHeader: import("./codecs").StringCodec;
17
+ assetsHeader: import("./codecs").StringCodec;
18
+ metaSelector: import("./codecs").StringCodec;
19
+ scrollArea: import("./codecs").BoolCodec;
20
+ fill: import("./codecs").BoolCodec;
21
+ class: import("./codecs").StringCodec;
22
+ scrollAreaClass: import("./codecs").StringCodec;
23
+ viewportClass: import("./codecs").StringCodec;
24
+ spacerClass: import("./codecs").StringCodec;
25
+ blockClass: import("./codecs").StringCodec;
26
+ };
27
+ type VirtualizerProps = SchemaToProps<typeof virtualizerSchema>;
28
+ export { VIRTUALIZER_AXES, virtualizerSchema };
29
+ export type { VirtualizerAxis, VirtualizerProps };
@@ -0,0 +1,41 @@
1
+ import type Alpine from 'alpinejs';
2
+ import { type PropState } from './codecs';
3
+ import type { TrellisAlpineComponent } from './index';
4
+ import { type VirtualScrollAlign } from './virtual-window';
5
+ import { virtualizerSchema } from './virtualizer-schema';
6
+ import type { CursorVirtualizerOptions } from './cursor-data-source';
7
+ type ResetOptions = {
8
+ scrollTop?: number;
9
+ };
10
+ type SetUrlOptions = {
11
+ reset?: boolean;
12
+ };
13
+ /** Public Alpine API for `ui.virtualizer`. @public */
14
+ interface UiVirtualizerApi<Query = unknown> {
15
+ /** Whether the configured cursor data source supports arbitrary index seeks. */
16
+ readonly supportsSeek: boolean;
17
+ /** Scrolls a logical item into the requested vertical alignment. */
18
+ scrollToIndex(index: number, align?: VirtualScrollAlign): void;
19
+ /** Replaces the known logical item count and reloads mounted ranges. */
20
+ setTotalItems(count: number): void;
21
+ /** Replaces the fragment endpoint and optionally resets to the top. */
22
+ setUrl(url: string, options?: SetUrlOptions): void;
23
+ /** Replaces cursor-mode query state and resets to the first cursor. */
24
+ setQuery(query: Query): void;
25
+ /** Invalidates all blocks and reloads them around a scroll position. */
26
+ reset(options?: ResetOptions): void;
27
+ /** Reloads all blocks without changing the fragment endpoint. */
28
+ reload(options?: ResetOptions): void;
29
+ }
30
+ type VirtualizerData<Query = unknown> = UiVirtualizerApi<Query> & {
31
+ props: PropState<typeof virtualizerSchema>;
32
+ init(): void;
33
+ destroy(): void;
34
+ };
35
+ type VirtualizerOptions<Query, Content> = {
36
+ cursor?: CursorVirtualizerOptions<Query, Content>;
37
+ };
38
+ declare const UiVirtualizer: <Query = unknown, Content = unknown>(AlpineInstance: Alpine.Alpine, options?: VirtualizerOptions<Query, Content>) => TrellisAlpineComponent<VirtualizerData<Query>>;
39
+ export { UiVirtualizer };
40
+ export type { CursorDataSource, CursorFirstArgs, CursorMoveArgs, CursorPage, CursorResponseAdapter, CursorRenderPayload, CursorSeekArgs, SoughtCursorPage, CursorVirtualizerOptions, } from './cursor-data-source';
41
+ export type { ResetOptions, SetUrlOptions, UiVirtualizerApi, VirtualizerOptions, VirtualizerData, VirtualScrollAlign, };
@@ -85,6 +85,11 @@
85
85
  --color-neutral-a11: transparent;
86
86
  --color-neutral-12: transparent;
87
87
  --color-neutral-a12: transparent;
88
+ --interaction-disclosure-expanded-emphasis-mix: 0%;
89
+ --interaction-disclosure-expanded-emphasis-edge-width: 0px;
90
+ --interaction-disclosure-expanded-focus-edge-width: 0px;
91
+ --interaction-disclosure-expanded-accent-focus-width: 0px;
92
+ --interaction-disclosure-expanded-danger-focus-width: 0px;
88
93
  --border-width-0: 0px;
89
94
  --border-width-1: 1px;
90
95
  --border-width-2: 2px;
@@ -5492,6 +5497,37 @@
5492
5497
  padding-block: var(--spacing-2);
5493
5498
  }
5494
5499
  }
5500
+ .\[\&\:not\(\[data-responsive-mode\=desktop\]\)\]\:inset-0 {
5501
+ &:not([data-responsive-mode=desktop]) {
5502
+ inset: var(--spacing-0);
5503
+ }
5504
+ }
5505
+ .\[\&\:not\(\[data-responsive-mode\=desktop\]\)\]\:h-dvh {
5506
+ &:not([data-responsive-mode=desktop]) {
5507
+ height: 100dvh;
5508
+ }
5509
+ }
5510
+ .\[\&\:not\(\[data-responsive-mode\=desktop\]\)\]\:w-full {
5511
+ &:not([data-responsive-mode=desktop]) {
5512
+ width: 100%;
5513
+ }
5514
+ }
5515
+ .\[\&\:not\(\[data-responsive-mode\=desktop\]\)\]\:max-w-none {
5516
+ &:not([data-responsive-mode=desktop]) {
5517
+ max-width: none;
5518
+ }
5519
+ }
5520
+ .\[\&\:not\(\[data-responsive-mode\=desktop\]\)\]\:rounded-none {
5521
+ &:not([data-responsive-mode=desktop]) {
5522
+ border-radius: var(--radius-none);
5523
+ }
5524
+ }
5525
+ .\[\&\:not\(\[data-responsive-mode\=desktop\]\)\]\:border-0 {
5526
+ &:not([data-responsive-mode=desktop]) {
5527
+ border-style: var(--tw-border-style);
5528
+ border-width: var(--border-width-0);
5529
+ }
5530
+ }
5495
5531
  .\[\&\>\*\]\:bg-interaction-selected {
5496
5532
  &>* {
5497
5533
  background-color: var(--color-interaction-selected);
@@ -6399,12 +6435,12 @@
6399
6435
  --color-surface-8: oklch(100% 0 none / 1);
6400
6436
  --color-surface-8-ink: oklch(22.74366% 0 none / 1);
6401
6437
  --color-surface-8-ink-muted: oklch(56.808564% 0 none / 1);
6402
- --color-intent-accent-focus-width: 2px;
6403
- --color-intent-danger-focus-width: 3px;
6404
- --color-intent-information-focus-width: 3px;
6405
- --color-intent-neutral-focus-width: 3px;
6406
- --color-intent-success-focus-width: 3px;
6407
- --color-intent-warning-focus-width: 3px;
6438
+ --color-intent-accent-focus-width: 1px;
6439
+ --color-intent-danger-focus-width: 1px;
6440
+ --color-intent-information-focus-width: 1px;
6441
+ --color-intent-neutral-focus-width: 1px;
6442
+ --color-intent-success-focus-width: 1px;
6443
+ --color-intent-warning-focus-width: 1px;
6408
6444
  --background-interaction-selection-accent: oklch(50.756307% 0.185449 257.696372 / 0.118811);
6409
6445
  --background-interaction-selection-accent-hover: oklch(50.756307% 0.185449 257.696372 / 0.167052);
6410
6446
  --background-interaction-selection-danger: oklch(50.734487% 0.20819 29.23388 / 0.120444);
@@ -6698,12 +6734,12 @@
6698
6734
  --color-surface-8: oklch(45.262653% 0.002896 251.779887 / 1);
6699
6735
  --color-surface-8-ink: oklch(99.80618% 0.000579 251.779887 / 1);
6700
6736
  --color-surface-8-ink-muted: oklch(85.441382% 0.000579 251.779887 / 1);
6701
- --color-intent-accent-focus-width: 2px;
6702
- --color-intent-danger-focus-width: 3px;
6703
- --color-intent-information-focus-width: 3px;
6704
- --color-intent-neutral-focus-width: 3px;
6705
- --color-intent-success-focus-width: 3px;
6706
- --color-intent-warning-focus-width: 3px;
6737
+ --color-intent-accent-focus-width: 1px;
6738
+ --color-intent-danger-focus-width: 1px;
6739
+ --color-intent-information-focus-width: 1px;
6740
+ --color-intent-neutral-focus-width: 1px;
6741
+ --color-intent-success-focus-width: 1px;
6742
+ --color-intent-warning-focus-width: 1px;
6707
6743
  --background-interaction-selection-accent: oklch(77.631661% 0.121666 245.605952 / 0.058873);
6708
6744
  --background-interaction-selection-accent-hover: oklch(77.631661% 0.121666 245.605952 / 0.087255);
6709
6745
  --background-interaction-selection-danger: oklch(78.425088% 0.125337 22.763785 / 0.056177);
@@ -9251,7 +9287,22 @@
9251
9287
  [data-ui-data-grid-column-header][data-pinned], [data-ui-data-grid-cell][data-pinned] {
9252
9288
  background: var(--ui-surface-color);
9253
9289
  }
9254
- [data-ui-data-grid][data-border="row"] [data-ui-data-grid-column-header], [data-ui-data-grid][data-border="row"] [data-ui-data-grid-cell], [data-ui-data-grid][data-border="grid"] [data-ui-data-grid-column-header], [data-ui-data-grid][data-border="grid"] [data-ui-data-grid-cell] {
9290
+ [data-ui-data-grid-cell][data-align="start"] {
9291
+ justify-content: flex-start;
9292
+ text-align: left;
9293
+ }
9294
+ [data-ui-data-grid-cell][data-align="center"] {
9295
+ justify-content: center;
9296
+ text-align: center;
9297
+ }
9298
+ [data-ui-data-grid-cell][data-align="end"] {
9299
+ justify-content: flex-end;
9300
+ text-align: right;
9301
+ }
9302
+ [data-ui-data-grid][data-border="row"] [data-ui-data-grid-header], [data-ui-data-grid][data-border="grid"] [data-ui-data-grid-header] {
9303
+ box-shadow: inset 0 -1px var(--color-separator);
9304
+ }
9305
+ [data-ui-data-grid][data-border="row"] [data-ui-data-grid-cell], [data-ui-data-grid][data-border="grid"] [data-ui-data-grid-cell] {
9255
9306
  border-bottom: 1px solid var(--color-separator);
9256
9307
  }
9257
9308
  [data-ui-data-grid][data-border="grid"] [data-ui-data-grid-column-header]:not(:first-child), [data-ui-data-grid][data-border="grid"] [data-ui-data-grid-cell]:not(:first-child) {
@@ -10473,7 +10524,7 @@
10473
10524
  width: var(--ui-tabs-line-indicator-width);
10474
10525
  height: var(--ui-tabs-line-indicator-height);
10475
10526
  border-radius: 0;
10476
- background-color: var(--color-intent-accent-solid);
10527
+ background-color: var(--ui-selection-solid);
10477
10528
  }
10478
10529
  [data-ui-tabs-list][data-variant="segmented"]:not([data-ui-tabs-ready]) > [data-ui-tabs-tab][data-selected]::before {
10479
10530
  inset: var(--border-width-edge-control);
@@ -10604,6 +10655,9 @@
10604
10655
  color: var(--ui-option-text);
10605
10656
  background-color: var(--ui-option-active);
10606
10657
  }
10658
+ [data-ui-sortable][data-ui-menu] [data-ui-menu-item]:not([data-active="true"]):not([data-disabled]) {
10659
+ background-color: transparent;
10660
+ }
10607
10661
  [data-ui-option-recipe]:is([data-selected], [data-current], [aria-current]:not([aria-current="false"])):not([data-ui-option-selection="mark"]):not([data-disabled]), [data-ui-select][data-mark="none"] [data-ui-option-recipe][data-ui-option-selection="mark"][data-selected]:not([data-disabled]) {
10608
10662
  color: var(--ui-option-selected-ink);
10609
10663
  background: var(--ui-option-selected-background);
@@ -10675,24 +10729,36 @@
10675
10729
  background-color: var(--color-interaction-hover);
10676
10730
  box-shadow: none;
10677
10731
  }
10678
- [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"]:is(:hover, :active, :focus-within, [data-state="open"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10732
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"]:is(:hover, :active, :focus-within):not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]), [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"][data-ui-control-interaction="disclosure"]:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10679
10733
  background-color: var(--color-interaction-pressed);
10680
10734
  }
10735
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"][data-ui-control-interaction="disclosure"][data-state="open"]:not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10736
+ background-color: color-mix( in oklch, transparent, transparent 0% );
10737
+ @supports (color: color-mix(in lab, red, red)) {
10738
+ background-color: color-mix( in oklch, var(--color-interaction-hover), var(--color-interaction-pressed) var(--interaction-disclosure-expanded-emphasis-mix) );
10739
+ }
10740
+ }
10681
10741
  [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10682
10742
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--ui-surface-edge-hover);
10683
10743
  }
10684
- [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:is(:focus-within, [data-state="open"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10744
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:focus-within:not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]), [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"][data-ui-control-interaction="disclosure"]:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10685
10745
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--color-intent-accent-edge-strong), 0 0 0 var(--color-intent-accent-focus-width) var(--color-intent-accent-focus);
10686
10746
  }
10747
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"][data-ui-control-interaction="disclosure"][data-state="open"]:not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
10748
+ box-shadow: 0 0 0 var(--interaction-disclosure-expanded-focus-edge-width) var(--color-intent-accent-edge-strong), 0 0 0 var(--interaction-disclosure-expanded-emphasis-edge-width) var(--ui-surface-edge-strong), 0 0 0 var(--border-width-edge-control) var(--ui-surface-edge), 0 0 0 var(--interaction-disclosure-expanded-accent-focus-width) var(--color-intent-accent-focus);
10749
+ }
10687
10750
  [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]) {
10688
10751
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge, var(--ui-surface-edge-strong));
10689
10752
  }
10690
10753
  [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]):is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]):not(:disabled) {
10691
10754
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge-hover, var(--ui-surface-edge-strong));
10692
10755
  }
10693
- [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]):is(:focus-within, [data-state="open"]):not([data-disabled]):not(:disabled) {
10756
+ [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]):focus-within:not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled), [data-ui-control][data-ui-control-recipe="field"][data-ui-control-interaction="disclosure"]:is([data-invalid], [aria-invalid="true"]):is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled) {
10694
10757
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge-strong, var(--ui-surface-edge-strong)), 0 0 0 var(--color-intent-danger-focus-width, var(--color-intent-accent-focus-width)) var(--color-intent-danger-focus, var(--color-intent-accent-focus));
10695
10758
  }
10759
+ [data-ui-control][data-ui-control-recipe="field"][data-ui-control-interaction="disclosure"][data-state="open"]:is([data-invalid], [aria-invalid="true"]):not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled) {
10760
+ box-shadow: 0 0 0 var(--interaction-disclosure-expanded-emphasis-edge-width) var(--color-intent-danger-edge-strong, var(--ui-surface-edge-strong)), 0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge, var(--ui-surface-edge-strong)), 0 0 0 var(--interaction-disclosure-expanded-danger-focus-width, var(--interaction-disclosure-expanded-accent-focus-width)) var(--color-intent-danger-focus, var(--color-intent-accent-focus));
10761
+ }
10696
10762
  [data-ui-control][data-ui-control-recipe="field"] :is(input, textarea)::placeholder {
10697
10763
  color: var(--ui-surface-ink-muted);
10698
10764
  opacity: 1;