@vireo-ai/trellis-ui 0.1.50 → 0.1.52

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 (154) hide show
  1. package/package.json +6 -1
  2. package/packages/client/src/components/data-grid/styles.css +13 -10
  3. package/packages/client/src/components/import-flow/styles.css +20 -0
  4. package/packages/client/src/components/import-mapper/styles.css +8 -0
  5. package/packages/client/src/components/select/styles.css +19 -0
  6. package/packages/client/src/styles/components.css +2 -0
  7. package/packages/client/src/styles/generated-sources.css +1 -1
  8. package/packages/client/src/styles/theme-support.css +267 -0
  9. package/packages/client/src/styles/theme.css +1 -268
  10. package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
  11. package/packages/client/types/components/date-picker/contract.d.ts +15 -6
  12. package/packages/client/types/components/date-picker/machine.d.ts +4 -2
  13. package/packages/client/types/components/entry.generated.d.ts +2 -0
  14. package/packages/client/types/components/formset/contract.d.ts +10 -0
  15. package/packages/client/types/components/formset/entry.generated.d.ts +5 -0
  16. package/packages/client/types/components/formset/index.d.ts +41 -0
  17. package/packages/client/types/components/formset/machine.d.ts +22 -0
  18. package/packages/client/types/components/formset/runtime-docs.d.ts +2 -0
  19. package/packages/client/types/components/heading/contract.d.ts +4 -2
  20. package/packages/client/types/components/import-flow/contract.d.ts +13 -0
  21. package/packages/client/types/components/import-flow/index.d.ts +2 -0
  22. package/packages/client/types/components/import-mapper/entry.generated.d.ts +5 -0
  23. package/packages/client/types/components/import-mapper/index.d.ts +25 -0
  24. package/packages/client/types/components/runtime.d.ts +2 -0
  25. package/packages/client/types/components/select/contract.d.ts +1 -0
  26. package/packages/client/types/components/select/machine.d.ts +3 -0
  27. package/packages/client/types/components/text/contract.d.ts +4 -2
  28. package/packages/client/types/components/virtualizer/index.d.ts +4 -1
  29. package/packages/client/types/runtime/cursor-data-source.d.ts +19 -1
  30. package/packages/client/types/runtime/engine/stream.d.ts +1 -0
  31. package/packages/client/types/runtime/virtualizer-schema.d.ts +1 -0
  32. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +56 -12
  33. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +393 -323
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-DQitxnHn.js +2 -0
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-BeZZfCbD.js.map → capability-motion-DQitxnHn.js.map} +1 -1
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Dzv1zWaL.js +3 -0
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-D5jfePOE.js.map → capability-sortable-Dzv1zWaL.js.map} +1 -1
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DMbnlSdM.js +2 -0
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-CGPV218r.js.map → core-DMbnlSdM.js.map} +1 -1
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js +2 -0
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DvHNTjt1.js.map +1 -0
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BGqM-PEq.js → entry.generated-2QEJDMe-.js} +2 -2
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BGqM-PEq.js.map → entry.generated-2QEJDMe-.js.map} +1 -1
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BsJJMR1g.js → entry.generated-BB7wWQfT.js} +2 -2
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BsJJMR1g.js.map → entry.generated-BB7wWQfT.js.map} +1 -1
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C07Tn0r-.js +2 -0
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C07Tn0r-.js.map +1 -0
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-qYKh9MwP.js → entry.generated-C2gP0OfV.js} +2 -2
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-qYKh9MwP.js.map → entry.generated-C2gP0OfV.js.map} +1 -1
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CRj4-Ef1.js +2 -0
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CRj4-Ef1.js.map +1 -0
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ByvN55ox.js → entry.generated-CirM6w9Q.js} +2 -2
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ByvN55ox.js.map → entry.generated-CirM6w9Q.js.map} +1 -1
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVk-PDBl.js → entry.generated-CvcufWkj.js} +2 -2
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DVk-PDBl.js.map → entry.generated-CvcufWkj.js.map} +1 -1
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D3w3QaSO.js +2 -0
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D3w3QaSO.js.map +1 -0
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DCLIvEtJ.js +2 -0
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DCLIvEtJ.js.map +1 -0
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B3F9jaO_.js → entry.generated-DVQaci6w.js} +2 -2
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B3F9jaO_.js.map → entry.generated-DVQaci6w.js.map} +1 -1
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_FlEfdN.js +2 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D_FlEfdN.js.map +1 -0
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ZTRbQ10A.js → entry.generated-DvvVMsQo.js} +2 -2
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-ZTRbQ10A.js.map → entry.generated-DvvVMsQo.js.map} +1 -1
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-QspMEPHx.js → entry.generated-QspMEPHx.js} +1 -1
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-QspMEPHx.js.map +1 -0
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Rx9NofFi.js +2 -0
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Rx9NofFi.js.map +1 -0
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-gxr2-89M.js → entry.generated-gxr2-89M.js} +1 -1
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-gxr2-89M.js.map +1 -0
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js +2 -0
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oz1RCU1b.js.map +1 -0
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-yg-lGtcT.js → entry.generated-payXlXhL.js} +2 -2
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-yg-lGtcT.js.map → entry.generated-payXlXhL.js.map} +1 -1
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cwv0HSDM.js → entry.generated-wEt8LYAv.js} +2 -2
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cwv0HSDM.js.map → entry.generated-wEt8LYAv.js.map} +1 -1
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CpoK52gE.js +2 -0
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-CpoK52gE.js.map +1 -0
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-D1X0sDop.js +2 -0
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-D1X0sDop.js.map +1 -0
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-DXDHgDsN.js +2 -0
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-DXDHgDsN.js.map +1 -0
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-_UPpJlWp.js +2 -0
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-_UPpJlWp.js.map +1 -0
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{form-control-BkVb2Qed.js → form-control-DjbUb602.js} +2 -2
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/form-control-DjbUb602.js.map +1 -0
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/morph-Cq3V_23_.js +2 -0
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/morph-Cq3V_23_.js.map +1 -0
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-C3XtSJ4O.js → motion-BDQdr83d.js} +2 -2
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-C3XtSJ4O.js.map → motion-BDQdr83d.js.map} +1 -1
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-SdoiMWig.js +4 -0
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-SdoiMWig.js.map +1 -0
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +1 -1
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -1
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +1 -0
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js +1 -0
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +1 -1
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +1 -1
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +1 -1
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +1 -1
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +1 -1
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +1 -1
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +1 -1
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -1
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +168 -126
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +8 -8
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +8 -8
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-BeZZfCbD.js +0 -2
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-D5jfePOE.js +0 -3
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-CGPV218r.js +0 -2
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-6_ClPYhC.js +0 -2
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-6_ClPYhC.js.map +0 -1
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B6Gjj1Mu.js +0 -2
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B6Gjj1Mu.js.map +0 -1
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-By-7ucpB.js +0 -2
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-By-7ucpB.js.map +0 -1
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvHs5hfG.js +0 -2
  137. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CvHs5hfG.js.map +0 -1
  138. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DFkEr0wI.js +0 -2
  139. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DFkEr0wI.js.map +0 -1
  140. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-N4M4QtmC.js +0 -2
  141. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-N4M4QtmC.js.map +0 -1
  142. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Wl7imdNP.js +0 -2
  143. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Wl7imdNP.js.map +0 -1
  144. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-qNEmG1Ht.js +0 -2
  145. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-qNEmG1Ht.js.map +0 -1
  146. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dzq4GSqn.js +0 -2
  147. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-Dzq4GSqn.js.map +0 -1
  148. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-QspMEPHx.js.map +0 -1
  149. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-gxr2-89M.js.map +0 -1
  150. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/form-control-BkVb2Qed.js.map +0 -1
  151. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BHBokFNi.js +0 -4
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BHBokFNi.js.map +0 -1
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-CSk2RJEN.js +0 -2
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-CSk2RJEN.js.map +0 -1
@@ -2,271 +2,4 @@
2
2
  @import "./generated/theme-runtime.css";
3
3
  @import "./components.css";
4
4
  @import "./generated-sources.css";
5
-
6
- @custom-variant dark (&:where(.dark, .dark *):not(:where(.light, .light *)));
7
- @custom-variant ui-interactive (&:is([data-ui-interactive]));
8
- @custom-variant ui-active (&:is(:active, :focus-visible, [data-active], [data-highlighted]));
9
- @custom-variant ui-selected (&:is([data-selected="true"], [aria-selected="true"], [data-current], [aria-current]:not([aria-current="false"]), [data-checked], [aria-checked="true"], [data-pressed], [aria-pressed="true"]));
10
-
11
- /* Keep the core authored palette available to custom components in the precompiled package. */
12
- @source inline("{bg,text,border,ring,fill,stroke}-{neutral,accent}-{1..12}");
13
- @source inline("{bg,text,border,ring,fill,stroke}-{neutral,accent}-a{1..12}");
14
- @source inline("bg-canvas {bg,border,ring,fill,stroke}-surface-{0..8}");
15
- @source inline("text-surface-{0..8}-{ink,ink-muted} shadow-elevation-{0..8}");
16
- @source inline("rounded-{1..6} rounded-{control,surface,overlay} rounded-{control,surface,overlay}-{xs,sm,md,lg}");
17
- @source inline("{rounded-t,rounded-r,rounded-b,rounded-l}-{control,surface,overlay}-{xs,sm,md,lg}");
18
- @source inline("rounded-{none,full,circle}");
19
- @source inline("gap-control-gap px-control-padding-{xs,sm,md,lg,xlg} px-badge-padding-{xs,sm,md,lg,xlg}");
20
- @source inline("p-popover-padding px-menu-item-padding-inline");
21
- @source inline("text-{1..13} text-{body,heading,code,label,description,metadata,menu-item}");
22
- @source inline("text-{control,badge}-{xs,sm,md,lg,xlg}");
23
- @source inline("font-{body,heading,code,control,badge,label,description,metadata,menu-item}");
24
- @source inline("min-h-control-multiline-{xs,sm,md,lg,xlg}");
25
- @source inline("size-{brand-logo,badge-close,checkbox-indicator,radio-indicator,radio-dot,slider-thumb}-{xs,sm,md,lg,xlg}");
26
- @source inline("h-switch-track-height-{xs,sm,md,lg,xlg} w-switch-track-width-{xs,sm,md,lg,xlg} size-switch-thumb-{xs,sm,md,lg,xlg}");
27
- @source inline("p-switch-inset data-checked:translate-x-switch-travel-{xs,sm,md,lg,xlg}");
28
- @source inline("{h,w}-slider-track-{xs,sm,md,lg,xlg} max-w-modal-{sm,md,lg,xl}");
29
- @source inline("border-{0..3} border-edge-{perimeter,control,separator,divider}");
30
- @source inline("{border-t,border-r,border-b,border-l}-edge-{perimeter,control,separator,divider}");
31
-
32
- @media (hover: hover) {
33
- [data-ui-elevation][data-ui-interactive="surface"]:hover {
34
- --ui-state-shadow-layers: 0 0 0 var(--border-width-edge-perimeter) var(--ui-surface-edge-hover);
35
- }
36
- }
37
-
38
- [data-ui-elevation][data-ui-interactive="surface"]:is(
39
- [data-selected="true"],
40
- [aria-selected="true"],
41
- [data-current],
42
- [aria-current]:not([aria-current="false"]),
43
- [data-checked],
44
- [aria-checked="true"],
45
- [data-pressed],
46
- [aria-pressed="true"]
47
- ) {
48
- --ui-state-shadow-layers: 0 0 0 var(--border-width-edge-perimeter) var(--color-intent-accent-edge);
49
- }
50
-
51
- [data-ui-elevation][data-ui-interactive="surface"]:is(:focus-visible, :has(:focus-visible)) {
52
- --ui-state-shadow-layers: 0 0 0 var(--color-intent-accent-focus-width) var(--color-intent-accent-focus);
53
- }
54
-
55
- /*
56
- Shared interaction treatments keep state independent from its visual channels.
57
- Tonal layers are painted over the element's existing surface with a background
58
- image, while edge layers join the composable state/elevation shadow stack.
59
- */
60
- [data-ui-selection-color],
61
- [data-ui-interaction] {
62
- --ui-interaction-selected-fill: var(--background-interaction-selection-neutral);
63
- --ui-interaction-selected-fill-hover: var(--background-interaction-selection-neutral-hover);
64
- --ui-interaction-selected-ink: var(--color-interaction-selection-neutral-ink);
65
- --ui-interaction-selected-edge: var(--color-intent-neutral-edge);
66
- --ui-interaction-selected-edge-hover: var(--color-intent-neutral-edge-hover);
67
- --ui-interaction-selected-edge-strong: var(--color-intent-neutral-edge-strong);
68
- --ui-selection-solid: var(--color-intent-neutral-solid);
69
- --ui-selection-solid-ink: var(--color-intent-neutral-solid-ink);
70
- }
71
-
72
- :is([data-ui-selection-color], [data-ui-interaction])[data-color="accent"] {
73
- --ui-interaction-selected-fill: var(--background-interaction-selection-accent);
74
- --ui-interaction-selected-fill-hover: var(--background-interaction-selection-accent-hover);
75
- --ui-interaction-selected-ink: var(--color-interaction-selection-accent-ink);
76
- --ui-interaction-selected-edge: var(--color-intent-accent-edge);
77
- --ui-interaction-selected-edge-hover: var(--color-intent-accent-edge-hover);
78
- --ui-interaction-selected-edge-strong: var(--color-intent-accent-edge-strong);
79
- --ui-selection-solid: var(--color-intent-accent-solid);
80
- --ui-selection-solid-ink: var(--color-intent-accent-solid-ink);
81
- }
82
-
83
- [data-ui-interaction] {
84
- --ui-interaction-fill: transparent;
85
- --ui-interaction-edge: var(--ui-interaction-rest-edge, transparent);
86
- }
87
-
88
- :is([data-ui-interaction="tonal"], [data-ui-interaction="combined"]) {
89
- background-image: linear-gradient(var(--ui-interaction-fill), var(--ui-interaction-fill));
90
- }
91
-
92
- :is([data-ui-interaction="edge"], [data-ui-interaction="combined"]) {
93
- --ui-state-shadow-layers:
94
- 0 0 0 var(--border-width-edge-perimeter) var(--ui-interaction-edge);
95
- }
96
-
97
- :is([data-ui-interaction="edge"], [data-ui-interaction="combined"]):not([data-ui-elevation]) {
98
- box-shadow: var(--ui-state-shadow-layers);
99
- }
100
-
101
- @media (hover: hover) {
102
- [data-ui-interaction]:hover {
103
- --ui-interaction-fill: var(--color-interaction-hover);
104
- --ui-interaction-edge: var(--ui-surface-edge-hover);
105
- }
106
- }
107
-
108
- [data-ui-interaction]:active {
109
- --ui-interaction-fill: var(--color-interaction-pressed);
110
- --ui-interaction-edge: var(--ui-surface-edge-strong);
111
- }
112
-
113
- [data-ui-interaction]:is(
114
- [data-selected="true"],
115
- [aria-selected="true"],
116
- [data-current],
117
- [aria-current]:not([aria-current="false"]),
118
- [data-checked],
119
- [aria-checked="true"],
120
- [data-pressed],
121
- [aria-pressed="true"]
122
- ) {
123
- --ui-interaction-fill: var(--ui-interaction-selected-fill);
124
- --ui-interaction-edge: var(--ui-interaction-selected-edge);
125
- }
126
-
127
- :is([data-ui-interaction="tonal"], [data-ui-interaction="combined"]):is(
128
- [data-selected="true"],
129
- [aria-selected="true"],
130
- [data-current],
131
- [aria-current]:not([aria-current="false"]),
132
- [data-checked],
133
- [aria-checked="true"],
134
- [data-pressed],
135
- [aria-pressed="true"]
136
- ) {
137
- color: var(--ui-interaction-selected-ink);
138
- }
139
-
140
- @media (hover: hover) {
141
- [data-ui-interaction]:is(
142
- [data-selected="true"],
143
- [aria-selected="true"],
144
- [data-current],
145
- [aria-current]:not([aria-current="false"]),
146
- [data-checked],
147
- [aria-checked="true"],
148
- [data-pressed],
149
- [aria-pressed="true"]
150
- ):hover {
151
- --ui-interaction-fill: var(--ui-interaction-selected-fill-hover);
152
- --ui-interaction-edge: var(--ui-interaction-selected-edge-hover);
153
- }
154
- }
155
-
156
- [data-ui-interaction]:is(:focus-visible, :has(:focus-visible)) {
157
- --ui-state-shadow-layers:
158
- 0 0 0 var(--color-intent-accent-focus-width) var(--color-intent-accent-focus);
159
- }
160
-
161
- /*
162
- Root theme for the Trellis UI component system.
163
-
164
- Token layers:
165
- 1. Generated primitives: 1–12 color families, alpha families, surfaces, and elevation.
166
- 2. Generated relationships: intent roles, interaction states, paired inks, and scrim.
167
- 3. Authored recipes: local component variables and state composition.
168
-
169
- Theme config regenerates the first two layers. Component recipes consume their
170
- relationships; custom UI may use the registered Tailwind palette directly.
171
-
172
- CSS ownership:
173
- - TypeScript style recipes own class composition, variants, sizes, and parts.
174
- - This file owns imports, Tailwind source hints and variants, tokens, utilities,
175
- global theme rules, and generic reusable behavior.
176
- - Colocated component CSS owns selector-only styling that recipes cannot
177
- express cleanly, such as pseudo-elements, ::part(...), :has(...), native
178
- quirks, and child-order selectors.
179
- */
180
-
181
- @theme {
182
- --radius-scrollbar-thumb: var(--ui-scrollbar-thumb-radius);
183
- --container-reading: var(--container-prose);
184
- --z-index-popover: 50;
185
- --z-index-dialog: 60;
186
- --z-index-toast: 70;
187
- }
188
-
189
- @theme inline {
190
- --color-surface: var(--ui-surface-color);
191
- --color-surface-ink: var(--ui-surface-ink);
192
- --color-surface-ink-muted: var(--ui-surface-ink-muted);
193
- --color-label-ink: var(--ui-label-ink);
194
- --color-icon: var(--ui-surface-ink-muted);
195
- --color-separator: var(--ui-surface-separator);
196
- --color-separator-muted: var(--ui-surface-separator-muted);
197
- --color-scrollbar-thumb: var(--ui-surface-edge);
198
- --color-scrollbar-thumb-hover: var(--ui-surface-edge-hover);
199
- }
200
-
201
- :root,
202
- .light,
203
- .dark {
204
- color-scheme: light;
205
-
206
- --ui-label-ink: color-mix(
207
- in oklab,
208
- var(--ui-surface-ink-muted),
209
- var(--ui-surface-ink) var(--label-ink-emphasis)
210
- );
211
-
212
- --ui-control-height-xs: var(--spacing-control-xs);
213
- --ui-control-height-sm: var(--spacing-control-sm);
214
- --ui-control-height-md: var(--spacing-control-md);
215
- --ui-control-height-lg: var(--spacing-control-lg);
216
- --ui-control-height-xlg: var(--spacing-control-xlg);
217
- --ui-popover-radius: var(--radius-overlay-sm);
218
- --ui-popover-padding: var(--spacing-popover-padding);
219
-
220
- --ui-icon-size-xs: var(--spacing-icon-xs);
221
- --ui-icon-size-sm: var(--spacing-icon-sm);
222
- --ui-icon-size: var(--spacing-icon);
223
- --ui-icon-size-lg: var(--spacing-icon-lg);
224
- --ui-scrollbar-size: var(--spacing-scrollbar);
225
- --ui-scrollbar-inset: var(--spacing-scrollbar-inset);
226
- --ui-scrollbar-thumb-radius: var(--radius-full);
227
- }
228
-
229
- .light {
230
- color-scheme: light;
231
- }
232
-
233
- @utility max-h-xs {
234
- max-height: var(--container-xs);
235
- }
236
-
237
- @utility max-h-sm {
238
- max-height: var(--container-sm);
239
- }
240
-
241
- @utility max-h-md {
242
- max-height: var(--container-md);
243
- }
244
-
245
- @utility max-h-lg {
246
- max-height: var(--container-lg);
247
- }
248
-
249
- @utility max-h-xl {
250
- max-height: var(--container-xl);
251
- }
252
-
253
- @utility max-h-prose {
254
- max-height: 65ch;
255
- }
256
-
257
- @utility ui-edge {
258
- box-shadow: 0 0 0 var(--border-width-edge-control) var(--ui-surface-edge);
259
- }
260
-
261
- @utility ui-focus-ring {
262
- box-shadow: 0 0 0 var(--color-intent-accent-focus-width) var(--color-intent-accent-focus);
263
- }
264
-
265
- @utility ui-focus-ring-inset {
266
- box-shadow: inset 0 0 0 var(--color-intent-accent-focus-width) var(--color-intent-accent-focus);
267
- }
268
-
269
-
270
- .dark {
271
- color-scheme: dark;
272
- }
5
+ @import "./theme-support.css";
@@ -1,2 +1,2 @@
1
- declare const fullRuntimeAssetIds: readonly ["trellis:core", "trellis:motion", "trellis:resizable", "trellis:sortable", "trellis:shortcut", "trellis:accordion", "trellis:button", "trellis:checkbox", "trellis:date-picker", "trellis:direct-upload", "trellis:dropdown", "trellis:field", "trellis:file-upload", "trellis:input", "trellis:keybinding", "trellis:modal", "trellis:panels", "trellis:radio", "trellis:scroll-area", "trellis:select", "trellis:sidebar", "trellis:slider", "trellis:switch", "trellis:tabs", "trellis:toast", "trellis:tooltip", "trellis:data-grid", "trellis:virtualizer", "trellis:table"];
1
+ declare const fullRuntimeAssetIds: readonly ["trellis:core", "trellis:motion", "trellis:resizable", "trellis:sortable", "trellis:shortcut", "trellis:accordion", "trellis:button", "trellis:checkbox", "trellis:date-picker", "trellis:direct-upload", "trellis:dropdown", "trellis:field", "trellis:file-upload", "trellis:formset", "trellis:import-mapper", "trellis:input", "trellis:keybinding", "trellis:modal", "trellis:panels", "trellis:radio", "trellis:scroll-area", "trellis:select", "trellis:sidebar", "trellis:slider", "trellis:switch", "trellis:tabs", "trellis:toast", "trellis:tooltip", "trellis:data-grid", "trellis:virtualizer", "trellis:table"];
2
2
  export { fullRuntimeAssetIds };
@@ -1,7 +1,8 @@
1
1
  import { type SchemaToProps } from '../../runtime';
2
- import { type Alignment, type ComponentRadius, type ElevationReference, type Position, type SurfaceReference } from '../common';
2
+ import { type Alignment, type ComponentRadius, type ControlVariant, type ElevationReference, type Position, type SurfaceReference } from '../common';
3
3
  declare const DATE_PICKER_MODES: readonly ["single", "range"];
4
- declare const DATE_PICKER_VARIANTS: readonly ["enhanced", "native"];
4
+ declare const DATE_PICKER_IMPLEMENTATIONS: readonly ["enhanced", "native"];
5
+ declare const DATE_PICKER_VARIANTS: readonly ["outline", "filled", "plain"];
5
6
  declare const DATE_PICKER_CLOSE: readonly ["auto", "confirm"];
6
7
  declare const DATE_PICKER_COLORS: readonly ["neutral", "accent"];
7
8
  declare const DATE_PICKER_RADII: readonly ["none", "xs", "sm", "md", "lg", "full"];
@@ -9,7 +10,8 @@ declare const DATE_PICKER_PRESETS_POSITIONS: readonly ["left", "right", "top", "
9
10
  declare const DATE_PICKER_SURFACES: readonly ["inherit", "0", "1", "2", "3", "4", "5", "6", "7", "8", "+1", "+2", "+3", "+4", "+5", "+6", "+7", "+8"];
10
11
  declare const DATE_PICKER_ELEVATIONS: readonly ["none", "match", "1", "2", "3", "4", "5", "6", "7", "8"];
11
12
  type DatePickerMode = typeof DATE_PICKER_MODES[number];
12
- type DatePickerVariant = typeof DATE_PICKER_VARIANTS[number];
13
+ type DatePickerImplementation = typeof DATE_PICKER_IMPLEMENTATIONS[number];
14
+ type DatePickerVariant = ControlVariant;
13
15
  type DatePickerClose = typeof DATE_PICKER_CLOSE[number];
14
16
  type DatePickerColor = typeof DATE_PICKER_COLORS[number];
15
17
  type DatePickerRadius = ComponentRadius;
@@ -56,7 +58,8 @@ declare const datePickerSchema: {
56
58
  align: import("../../runtime/codecs").OneOfCodec<"end" | "center" | "start">;
57
59
  offset: import("../../runtime/codecs").NumberCodec;
58
60
  gap: import("../../runtime/codecs").NumberCodec;
59
- variant: import("../../runtime/codecs").OneOfCodec<"enhanced" | "native">;
61
+ implementation: import("../../runtime/codecs").OneOfCodec<"enhanced" | "native">;
62
+ variant: import("../../runtime/codecs").OneOfCodec<"outline" | "filled" | "plain">;
60
63
  color: import("../../runtime/codecs").OneOfCodec<"neutral" | "accent">;
61
64
  radius: import("../../runtime/codecs").OneOfCodec<"none" | "xs" | "sm" | "md" | "lg" | "full">;
62
65
  surface: import("../../runtime/codecs").OneOfCodec<"0" | "1" | "inherit" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "+1" | "+2" | "+3" | "+4" | "+5" | "+6" | "+7" | "+8">;
@@ -83,6 +86,11 @@ declare const datePickerPresetSchema: {
83
86
  disabled: import("../../runtime/codecs").BoolCodec;
84
87
  class: import("../../runtime/codecs").StringCodec;
85
88
  };
89
+ declare const datePickerTriggerSchema: {
90
+ variant: import("../../runtime/codecs").OneOfCodec<"outline" | "filled" | "plain">;
91
+ radius: import("../../runtime/codecs").OneOfCodec<"none" | "xs" | "sm" | "md" | "lg" | "full">;
92
+ class: import("../../runtime/codecs").StringCodec;
93
+ };
86
94
  declare const datePickerPresetsSchema: {
87
95
  position: import("../../runtime/codecs").OneOfCodec<"bottom" | "left" | "right" | "top">;
88
96
  class: import("../../runtime/codecs").StringCodec;
@@ -90,5 +98,6 @@ declare const datePickerPresetsSchema: {
90
98
  type DatePickerProps = SchemaToProps<typeof datePickerSchema>;
91
99
  type DatePickerPresetProps = SchemaToProps<typeof datePickerPresetSchema>;
92
100
  type DatePickerPresetsProps = SchemaToProps<typeof datePickerPresetsSchema>;
93
- export { DATE_PICKER_CLOSE, DATE_PICKER_COLORS, DATE_PICKER_ELEVATIONS, DATE_PICKER_MODES, DATE_PICKER_PRESETS_POSITIONS, DATE_PICKER_RADII, DATE_PICKER_SURFACES, DATE_PICKER_VARIANTS, datePickerPresetSchema, datePickerPresetsSchema, datePickerSchema, };
94
- export type { DatePickerAlign, DatePickerClose, DatePickerColor, DatePickerElevation, DatePickerMode, DatePickerPreset, DatePickerPresetProps, DatePickerPresetsPosition, DatePickerPresetsProps, DatePickerProps, DatePickerRadius, DatePickerSide, DatePickerSurface, DatePickerVariant, };
101
+ type DatePickerTriggerProps = SchemaToProps<typeof datePickerTriggerSchema>;
102
+ export { DATE_PICKER_CLOSE, DATE_PICKER_COLORS, DATE_PICKER_ELEVATIONS, DATE_PICKER_IMPLEMENTATIONS, DATE_PICKER_MODES, DATE_PICKER_PRESETS_POSITIONS, DATE_PICKER_RADII, DATE_PICKER_SURFACES, DATE_PICKER_VARIANTS, datePickerPresetSchema, datePickerPresetsSchema, datePickerSchema, datePickerTriggerSchema, };
103
+ export type { DatePickerAlign, DatePickerClose, DatePickerColor, DatePickerElevation, DatePickerImplementation, DatePickerMode, DatePickerPreset, DatePickerPresetProps, DatePickerPresetsPosition, DatePickerPresetsProps, DatePickerProps, DatePickerRadius, DatePickerSide, DatePickerSurface, DatePickerTriggerProps, DatePickerVariant, };
@@ -93,7 +93,8 @@ declare const datePickerHooks: readonly [{
93
93
  align: import("../../runtime/codecs").OneOfCodec<"end" | "center" | "start">;
94
94
  offset: import("../../runtime/codecs").NumberCodec;
95
95
  gap: import("../../runtime/codecs").NumberCodec;
96
- variant: import("../../runtime/codecs").OneOfCodec<"enhanced" | "native">;
96
+ implementation: import("../../runtime/codecs").OneOfCodec<"enhanced" | "native">;
97
+ variant: import("../../runtime/codecs").OneOfCodec<"outline" | "filled" | "plain">;
97
98
  color: import("../../runtime/codecs").OneOfCodec<"neutral" | "accent">;
98
99
  radius: import("../../runtime/codecs").OneOfCodec<"none" | "xs" | "sm" | "md" | "lg" | "full">;
99
100
  surface: import("../../runtime/codecs").OneOfCodec<"0" | "1" | "inherit" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "+1" | "+2" | "+3" | "+4" | "+5" | "+6" | "+7" | "+8">;
@@ -166,7 +167,8 @@ declare const datePickerHooks: readonly [{
166
167
  align: import("../../runtime/codecs").OneOfCodec<"end" | "center" | "start">;
167
168
  offset: import("../../runtime/codecs").NumberCodec;
168
169
  gap: import("../../runtime/codecs").NumberCodec;
169
- variant: import("../../runtime/codecs").OneOfCodec<"enhanced" | "native">;
170
+ implementation: import("../../runtime/codecs").OneOfCodec<"enhanced" | "native">;
171
+ variant: import("../../runtime/codecs").OneOfCodec<"outline" | "filled" | "plain">;
170
172
  color: import("../../runtime/codecs").OneOfCodec<"neutral" | "accent">;
171
173
  radius: import("../../runtime/codecs").OneOfCodec<"none" | "xs" | "sm" | "md" | "lg" | "full">;
172
174
  surface: import("../../runtime/codecs").OneOfCodec<"0" | "1" | "inherit" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "+1" | "+2" | "+3" | "+4" | "+5" | "+6" | "+7" | "+8">;
@@ -12,6 +12,8 @@ export * from './direct-upload/entry.generated';
12
12
  export * from './dropdown/entry.generated';
13
13
  export * from './field/entry.generated';
14
14
  export * from './file-upload/entry.generated';
15
+ export * from './formset/entry.generated';
16
+ export * from './import-mapper/entry.generated';
15
17
  export * from './input/entry.generated';
16
18
  export * from './keybinding/entry.generated';
17
19
  export * from './modal/entry.generated';
@@ -0,0 +1,10 @@
1
+ import { type SchemaToProps } from '../../runtime';
2
+ declare const formsetSchema: {
3
+ prefix: import("../../runtime/codecs").StringCodec;
4
+ minForms: import("../../runtime/codecs").NumberCodec;
5
+ maxForms: import("../../runtime/codecs").JsonCodec<number | null>;
6
+ disabled: import("../../runtime/codecs").BoolCodec;
7
+ };
8
+ type FormsetProps = SchemaToProps<typeof formsetSchema>;
9
+ export { formsetSchema };
10
+ export type { FormsetProps };
@@ -0,0 +1,5 @@
1
+ import type { Alpine as AlpineType } from 'alpinejs';
2
+ declare const registerFormset: (AlpineInstance: AlpineType) => void;
3
+ export { registerFormset };
4
+ export default registerFormset;
5
+ export * from './index';
@@ -0,0 +1,41 @@
1
+ import type Alpine from 'alpinejs';
2
+ import { type AlpineMachine, type TrellisAlpineComponent } from '../../runtime';
3
+ import { type FormsetProps } from './contract';
4
+ import { formsetHooks, type FormsetContext } from './machine';
5
+ type FormsetOperation = 'add' | 'remove' | 'restore';
6
+ type FormsetItemArgument = HTMLElement | number;
7
+ type FormsetItemDetail = {
8
+ index: number;
9
+ item: HTMLElement;
10
+ activeCount: number;
11
+ };
12
+ type FormsetChangeDetail = {
13
+ operation: FormsetOperation;
14
+ index: number;
15
+ activeCount: number;
16
+ };
17
+ /** Public Alpine API for `ui.formset`. @public */
18
+ interface UiFormsetApi {
19
+ /** Number of rows not marked for Django deletion. */
20
+ readonly activeCount: number;
21
+ /** Whether adding one row is currently permitted. */
22
+ readonly canAdd: boolean;
23
+ /** Whether removing one active row is currently permitted. */
24
+ readonly canRemove: boolean;
25
+ /** Clone, index, initialize, and focus one empty-form row. */
26
+ add(): HTMLElement | null;
27
+ /** Tombstone an active member by element or immutable index. */
28
+ remove(itemOrIndex?: FormsetItemArgument): boolean;
29
+ /** Restore a tombstoned member by element or immutable index. */
30
+ restore(itemOrIndex: FormsetItemArgument): boolean;
31
+ /** Re-derive rows and management state from server-owned DOM. */
32
+ refresh(): void;
33
+ }
34
+ type FormsetData = AlpineMachine<FormsetContext, FormsetProps, typeof formsetHooks> & UiFormsetApi & {
35
+ init(): void;
36
+ destroy(): void;
37
+ };
38
+ declare const UiFormset: (AlpineInstance: Alpine.Alpine) => TrellisAlpineComponent<FormsetData>;
39
+ declare const registerFormset: (AlpineInstance: Alpine.Alpine) => void;
40
+ export { registerFormset, UiFormset };
41
+ export type { FormsetChangeDetail, FormsetData, FormsetItemArgument, FormsetItemDetail, UiFormsetApi, };
@@ -0,0 +1,22 @@
1
+ import { type Machine, type MachineScope } from '../../runtime/state-machine';
2
+ import type { FormsetProps } from './contract';
3
+ type FormsetContext = {
4
+ activeCount: number;
5
+ };
6
+ type FormsetMachineEffects = {
7
+ add(): void;
8
+ remove(scope: MachineScope<FormsetContext, FormsetProps>): void;
9
+ restore(scope: MachineScope<FormsetContext, FormsetProps>): void;
10
+ refresh(): void;
11
+ maxLimit(): void;
12
+ minLimit(): void;
13
+ };
14
+ type CreateFormsetMachineOptions = {
15
+ props: FormsetProps;
16
+ context: FormsetContext;
17
+ effects: FormsetMachineEffects;
18
+ };
19
+ declare const createFormsetMachine: ({ props, context, effects, }: CreateFormsetMachineOptions) => Machine<FormsetContext, FormsetProps>;
20
+ declare const formsetHooks: readonly [];
21
+ export { createFormsetMachine, formsetHooks };
22
+ export type { CreateFormsetMachineOptions, FormsetContext, FormsetMachineEffects };
@@ -0,0 +1,2 @@
1
+ declare const formsetRuntimeDocs: import("../../docs/transition-docs").ComponentTransitionDocs;
2
+ export { formsetRuntimeDocs };
@@ -1,9 +1,11 @@
1
1
  import { type TypographyColor } from '../common';
2
2
  declare const HEADING_AS_VALUES: readonly ["div", "h1", "h2", "h3", "h4", "h5", "h6"];
3
3
  declare const HEADING_SIZE_VALUES: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"];
4
+ declare const HEADING_FONT_VALUES: readonly ["heading", "mono"];
4
5
  declare const HEADING_COLOR_VALUES: readonly ["inherit", "muted", "subtle", "accent", "danger"];
5
6
  type HeadingAs = typeof HEADING_AS_VALUES[number];
6
7
  type HeadingSize = typeof HEADING_SIZE_VALUES[number];
8
+ type HeadingFont = typeof HEADING_FONT_VALUES[number];
7
9
  type HeadingColor = TypographyColor;
8
- export { HEADING_AS_VALUES, HEADING_COLOR_VALUES, HEADING_SIZE_VALUES, };
9
- export type { HeadingAs, HeadingColor, HeadingSize };
10
+ export { HEADING_AS_VALUES, HEADING_COLOR_VALUES, HEADING_FONT_VALUES, HEADING_SIZE_VALUES, };
11
+ export type { HeadingAs, HeadingColor, HeadingFont, HeadingSize };
@@ -0,0 +1,13 @@
1
+ type ImportFlowProps = {
2
+ id: string;
3
+ session: string;
4
+ step: 'upload' | 'schema' | 'mapping' | 'review' | 'preview';
5
+ revision: number;
6
+ busy: boolean;
7
+ restartUrl: string;
8
+ showRestart: boolean;
9
+ submitValue: 'next' | 'start';
10
+ submitLabel: string;
11
+ class: string;
12
+ };
13
+ export type { ImportFlowProps };
@@ -0,0 +1,2 @@
1
+ export type { ImportFlowProps } from './contract';
2
+ export { importFlowManifest } from './manifest';
@@ -0,0 +1,5 @@
1
+ import type { Alpine as AlpineType } from 'alpinejs';
2
+ declare const registerImportMapper: (AlpineInstance: AlpineType) => void;
3
+ export { registerImportMapper };
4
+ export default registerImportMapper;
5
+ export * from './index';
@@ -0,0 +1,25 @@
1
+ import type Alpine from 'alpinejs';
2
+ import { type TrellisAlpineComponent } from '../../runtime';
3
+ type MappingProjectionRow = {
4
+ source: string;
5
+ target: string;
6
+ deleted: boolean;
7
+ };
8
+ type MappingProjection = {
9
+ usedSources: ReadonlySet<string>;
10
+ usedTargets: ReadonlySet<string>;
11
+ sourceAvailable(current: string, candidate: string): boolean;
12
+ targetAvailable(current: string, candidate: string): boolean;
13
+ };
14
+ declare const mappingProjection: (rows: readonly MappingProjectionRow[]) => MappingProjection;
15
+ type ImportMapperData = {
16
+ activeSource: string;
17
+ init(): void;
18
+ destroy(): void;
19
+ refresh(): void;
20
+ selectSource(source: string): void;
21
+ };
22
+ declare const UiImportMapper: () => TrellisAlpineComponent<ImportMapperData>;
23
+ declare const registerImportMapper: (AlpineInstance: Alpine.Alpine) => void;
24
+ export { mappingProjection, registerImportMapper, UiImportMapper };
25
+ export type { ImportMapperData, MappingProjection, MappingProjectionRow };
@@ -13,6 +13,8 @@ export type { DropdownData, DropdownTransition, UiDropdownApi } from './dropdown
13
13
  export { registerField, UiField } from './field';
14
14
  export { registerFileUpload, UiFileUpload } from './file-upload';
15
15
  export type { FileTransferStatus, FileUploadData, FileUploadMetadata, FileUploadRecord, FileUploadTransition, UiFileUploadApi, } from './file-upload';
16
+ export { registerFormset, UiFormset } from './formset';
17
+ export type { FormsetChangeDetail, FormsetData, FormsetItemArgument, FormsetItemDetail, UiFormsetApi, } from './formset';
16
18
  export { registerInput, UiInput } from './input';
17
19
  export type { InputData, UiInputApi } from './input';
18
20
  export { createKeybindingController, registerKeybinding } from './keybinding';
@@ -34,6 +34,7 @@ declare const selectSchema: {
34
34
  mode: import("../../runtime/codecs").OneOfCodec<"native" | "listbox" | "combobox" | "pillbox">;
35
35
  multiple: import("../../runtime/codecs").BoolCodec;
36
36
  searchable: import("../../runtime/codecs").BoolCodec;
37
+ searchMinItems: import("../../runtime/codecs").NumberCodec;
37
38
  virtualized: import("../../runtime/codecs").BoolCodec;
38
39
  optionsFetchUrl: import("../../runtime/codecs").StringCodec;
39
40
  optionsTotalItems: import("../../runtime/codecs").NumberCodec;
@@ -27,6 +27,7 @@ type SelectMachineEffects = {
27
27
  syncProps(scope: MachineScope<SelectContext, SelectProps>): void;
28
28
  syncOptions(scope: MachineScope<SelectContext, SelectProps>): void;
29
29
  syncActive(scope: MachineScope<SelectContext, SelectProps>): void;
30
+ syncDom(scope: MachineScope<SelectContext, SelectProps>): void;
30
31
  };
31
32
  type CreateSelectMachineOptions = {
32
33
  props: SelectProps;
@@ -71,6 +72,7 @@ declare const selectHooks: readonly [{
71
72
  mode: import("../../runtime/codecs").OneOfCodec<"native" | "listbox" | "combobox" | "pillbox">;
72
73
  multiple: import("../../runtime/codecs").BoolCodec;
73
74
  searchable: import("../../runtime/codecs").BoolCodec;
75
+ searchMinItems: import("../../runtime/codecs").NumberCodec;
74
76
  virtualized: import("../../runtime/codecs").BoolCodec;
75
77
  optionsFetchUrl: import("../../runtime/codecs").StringCodec;
76
78
  optionsTotalItems: import("../../runtime/codecs").NumberCodec;
@@ -148,6 +150,7 @@ declare const selectHooks: readonly [{
148
150
  mode: import("../../runtime/codecs").OneOfCodec<"native" | "listbox" | "combobox" | "pillbox">;
149
151
  multiple: import("../../runtime/codecs").BoolCodec;
150
152
  searchable: import("../../runtime/codecs").BoolCodec;
153
+ searchMinItems: import("../../runtime/codecs").NumberCodec;
151
154
  virtualized: import("../../runtime/codecs").BoolCodec;
152
155
  optionsFetchUrl: import("../../runtime/codecs").StringCodec;
153
156
  optionsTotalItems: import("../../runtime/codecs").NumberCodec;
@@ -2,10 +2,12 @@ import { type TypographyColor } from '../common';
2
2
  declare const TEXT_AS_VALUES: readonly ["span", "p", "div", "label", "kbd", "code", "strong"];
3
3
  declare const TEXT_SIZE_VALUES: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"];
4
4
  declare const TEXT_WEIGHT_VALUES: readonly ["normal", "medium", "semibold", "bold"];
5
+ declare const TEXT_FONT_VALUES: readonly ["body", "mono"];
5
6
  declare const TEXT_COLOR_VALUES: readonly ["inherit", "muted", "subtle", "accent", "danger"];
6
7
  type TextAs = typeof TEXT_AS_VALUES[number];
7
8
  type TextSize = typeof TEXT_SIZE_VALUES[number];
8
9
  type TextWeight = typeof TEXT_WEIGHT_VALUES[number];
10
+ type TextFont = typeof TEXT_FONT_VALUES[number];
9
11
  type TextColor = TypographyColor;
10
- export { TEXT_AS_VALUES, TEXT_COLOR_VALUES, TEXT_SIZE_VALUES, TEXT_WEIGHT_VALUES, };
11
- export type { TextAs, TextColor, TextSize, TextWeight };
12
+ export { TEXT_AS_VALUES, TEXT_COLOR_VALUES, TEXT_FONT_VALUES, TEXT_SIZE_VALUES, TEXT_WEIGHT_VALUES, };
13
+ export type { TextAs, TextColor, TextFont, TextSize, TextWeight };
@@ -1,5 +1,8 @@
1
1
  import type Alpine from 'alpinejs';
2
+ import { type TrellisAlpineComponent } from '../../runtime';
2
3
  import { UiVirtualizer } from '../../runtime/virtualizer';
4
+ import type { UiVirtualizerApi, VirtualizerData } from '../../runtime/virtualizer';
5
+ declare const UiCursorVirtualizer: (AlpineInstance: Alpine.Alpine) => TrellisAlpineComponent<VirtualizerData<null>> & UiVirtualizerApi<null>;
3
6
  declare const registerVirtualizer: (AlpineInstance: Alpine.Alpine) => void;
4
- export { registerVirtualizer, UiVirtualizer };
7
+ export { registerVirtualizer, UiCursorVirtualizer, UiVirtualizer };
5
8
  export type { CursorDataSource, CursorFirstArgs, CursorMoveArgs, CursorPage, CursorResponseAdapter, CursorRenderPayload, CursorSeekArgs, SoughtCursorPage, CursorVirtualizerOptions, ResetOptions, SetUrlOptions, UiVirtualizerApi, VirtualizerOptions, VirtualizerData, VirtualScrollAlign, } from '../../runtime/virtualizer';
@@ -14,6 +14,7 @@ type CursorRenderPayload = {
14
14
  preloads?: string[];
15
15
  }>;
16
16
  totalItems: number | null;
17
+ itemCount?: number;
17
18
  };
18
19
  type SoughtCursorPage<Content> = CursorPage<Content> & {
19
20
  startIndex: number;
@@ -42,4 +43,21 @@ type CursorVirtualizerOptions<Query, Content> = {
42
43
  responseAdapter: CursorResponseAdapter<Content>;
43
44
  seekDebounce?: number;
44
45
  };
45
- export type { CursorDataSource, CursorFirstArgs, CursorMoveArgs, CursorPage, CursorResponseAdapter, CursorRenderPayload, CursorSeekArgs, SoughtCursorPage, CursorVirtualizerOptions, };
46
+ type ServerCursorResponse = {
47
+ content: string;
48
+ assets?: Array<{
49
+ id: string;
50
+ src: string;
51
+ preloads?: string[];
52
+ }>;
53
+ startCursor: string | null;
54
+ endCursor: string | null;
55
+ hasNext: boolean;
56
+ hasPrevious: boolean;
57
+ startIndex?: number;
58
+ total?: number;
59
+ count?: number;
60
+ };
61
+ declare const serverCursorOptions: (element: () => HTMLElement) => CursorVirtualizerOptions<null, ServerCursorResponse>;
62
+ export { serverCursorOptions };
63
+ export type { CursorDataSource, CursorFirstArgs, CursorMoveArgs, CursorPage, CursorResponseAdapter, CursorRenderPayload, CursorSeekArgs, ServerCursorResponse, SoughtCursorPage, CursorVirtualizerOptions, };
@@ -9,6 +9,7 @@ type StreamPatchPayload = {
9
9
  requestId?: string | null;
10
10
  viewTransition?: boolean;
11
11
  assets?: AssetDescriptor[];
12
+ focus?: string | null;
12
13
  };
13
14
  type StreamEventPayload = {
14
15
  event: string;
@@ -3,6 +3,7 @@ declare const VIRTUALIZER_AXES: readonly ["vertical"];
3
3
  type VirtualizerAxis = typeof VIRTUALIZER_AXES[number];
4
4
  declare const virtualizerSchema: {
5
5
  fetchUrl: import("./codecs").StringCodec;
6
+ cursor: import("./codecs").BoolCodec;
6
7
  totalItems: import("./codecs").NumberCodec;
7
8
  itemSize: import("./codecs").NumberCodec;
8
9
  bufferSize: import("./codecs").NumberCodec;