@womp/kookie-ui 0.9.1 → 0.11.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 (171) hide show
  1. package/components.css +145 -26
  2. package/dist/cjs/components/app-bar.d.ts +49 -0
  3. package/dist/cjs/components/app-bar.d.ts.map +1 -0
  4. package/dist/cjs/components/app-bar.js +2 -0
  5. package/dist/cjs/components/app-bar.js.map +7 -0
  6. package/dist/cjs/components/chatbar.js +2 -2
  7. package/dist/cjs/components/chatbar.js.map +4 -4
  8. package/dist/cjs/components/context-menu.js +1 -1
  9. package/dist/cjs/components/context-menu.js.map +4 -4
  10. package/dist/cjs/components/dropdown-menu.js +1 -1
  11. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  12. package/dist/cjs/components/index.d.ts +2 -1
  13. package/dist/cjs/components/index.d.ts.map +1 -1
  14. package/dist/cjs/components/index.js +5 -5
  15. package/dist/cjs/components/index.js.map +4 -4
  16. package/dist/cjs/components/message-scroller.d.ts +6 -0
  17. package/dist/cjs/components/message-scroller.d.ts.map +1 -1
  18. package/dist/cjs/components/message-scroller.js +2 -2
  19. package/dist/cjs/components/message-scroller.js.map +4 -4
  20. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  21. package/dist/cjs/components/scroll-area.js +1 -1
  22. package/dist/cjs/components/scroll-area.js.map +4 -4
  23. package/dist/cjs/components/scroll-area.props.d.ts +10 -0
  24. package/dist/cjs/components/scroll-area.props.d.ts.map +1 -1
  25. package/dist/cjs/components/scroll-area.props.js +1 -1
  26. package/dist/cjs/components/scroll-area.props.js.map +2 -2
  27. package/dist/cjs/components/sidebar.js +1 -1
  28. package/dist/cjs/components/sidebar.js.map +4 -4
  29. package/dist/cjs/components/table.js +1 -1
  30. package/dist/cjs/components/table.js.map +4 -4
  31. package/dist/cjs/components/theme-panel.js +3 -3
  32. package/dist/cjs/components/theme-panel.js.map +4 -4
  33. package/dist/cjs/components/toolbar.d.ts +88 -36
  34. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  35. package/dist/cjs/components/toolbar.js +4 -1
  36. package/dist/cjs/components/toolbar.js.map +4 -4
  37. package/dist/cjs/components/toolbar.props.d.ts +28 -0
  38. package/dist/cjs/components/toolbar.props.d.ts.map +1 -0
  39. package/dist/cjs/components/toolbar.props.js +2 -0
  40. package/dist/cjs/components/toolbar.props.js.map +7 -0
  41. package/dist/cjs/hooks/use-scroll-edges.d.ts +12 -0
  42. package/dist/cjs/hooks/use-scroll-edges.d.ts.map +1 -0
  43. package/dist/cjs/hooks/use-scroll-edges.js +2 -0
  44. package/dist/cjs/hooks/use-scroll-edges.js.map +7 -0
  45. package/dist/cjs/index.js +5 -5
  46. package/dist/cjs/index.js.map +4 -4
  47. package/dist/cjs/props/index.js +1 -1
  48. package/dist/cjs/props/index.js.map +2 -2
  49. package/dist/esm/{chunk-ABSKRHVM.js → chunk-36A5BYCN.js} +2 -2
  50. package/dist/esm/{chunk-73QGEY2I.js → chunk-3R4YLW4A.js} +2 -2
  51. package/dist/esm/{chunk-ZZLZGHZQ.js → chunk-4LDVSTXI.js} +2 -2
  52. package/dist/esm/{chunk-YQRSAP46.js → chunk-53SZ4Y23.js} +2 -2
  53. package/dist/esm/chunk-54JFIP5S.js +2 -0
  54. package/dist/esm/chunk-54JFIP5S.js.map +7 -0
  55. package/dist/esm/chunk-5BWLY27A.js +2 -0
  56. package/dist/esm/chunk-5BWLY27A.js.map +7 -0
  57. package/dist/esm/{chunk-X3JM2565.js → chunk-6G3MPL4A.js} +2 -2
  58. package/dist/esm/{chunk-DSJY5RI3.js → chunk-7JJT42J2.js} +2 -2
  59. package/dist/esm/chunk-C7EVYSWK.js +1 -0
  60. package/dist/esm/chunk-COWZAUZR.js +2 -0
  61. package/dist/esm/chunk-COWZAUZR.js.map +7 -0
  62. package/dist/esm/{chunk-ERY5TH2M.js → chunk-CYU6BLZ5.js} +2 -2
  63. package/dist/esm/{chunk-MWIIGYAJ.js → chunk-D6PHTHF2.js} +2 -2
  64. package/dist/esm/{chunk-YTD3AJAU.js → chunk-ENLFKWYV.js} +2 -2
  65. package/dist/esm/{chunk-4XGGX2V2.js → chunk-ISOLUTZF.js} +2 -2
  66. package/dist/esm/{chunk-LXWPEDPZ.js → chunk-IYCPYN4Z.js} +2 -2
  67. package/dist/esm/{chunk-RJP5QUXO.js → chunk-L5PID6BU.js} +2 -2
  68. package/dist/esm/{chunk-BW5CO4PZ.js → chunk-METRW4HG.js} +2 -2
  69. package/dist/esm/{chunk-PYHEBG5I.js → chunk-MJOXEUBT.js} +2 -2
  70. package/dist/esm/{chunk-PHC3QBV3.js → chunk-MZXHKM4V.js} +2 -2
  71. package/dist/esm/chunk-OIUCV5HK.js +2 -0
  72. package/dist/esm/chunk-OIUCV5HK.js.map +7 -0
  73. package/dist/esm/{chunk-NIM7DIVH.js → chunk-PQKJNRMR.js} +2 -2
  74. package/dist/esm/{chunk-65GAANJD.js → chunk-UYCPDGWA.js} +2 -2
  75. package/dist/esm/chunk-XLMTTSRO.js +2 -0
  76. package/dist/esm/chunk-XLMTTSRO.js.map +7 -0
  77. package/dist/esm/chunk-XPRPYCII.js +2 -0
  78. package/dist/esm/{chunk-5KICSAT7.js.map → chunk-XPRPYCII.js.map} +2 -2
  79. package/dist/esm/{chunk-QWVU2TW4.js → chunk-ZK7A2MZZ.js} +2 -2
  80. package/dist/esm/chunk-ZUOK3KFY.js +2 -0
  81. package/dist/esm/chunk-ZUOK3KFY.js.map +7 -0
  82. package/dist/esm/components/_internal/base-button.js +1 -1
  83. package/dist/esm/components/alert-dialog.js +1 -1
  84. package/dist/esm/components/app-bar.d.ts +49 -0
  85. package/dist/esm/components/app-bar.d.ts.map +1 -0
  86. package/dist/esm/components/app-bar.js +2 -0
  87. package/dist/esm/components/app-bar.js.map +7 -0
  88. package/dist/esm/components/button.js +1 -1
  89. package/dist/esm/components/chatbar.js +1 -1
  90. package/dist/esm/components/checkbox-cards.js +1 -1
  91. package/dist/esm/components/context-menu.js +1 -1
  92. package/dist/esm/components/dialog.js +1 -1
  93. package/dist/esm/components/dropdown-menu.js +1 -1
  94. package/dist/esm/components/icon-button.js +1 -1
  95. package/dist/esm/components/index.d.ts +2 -1
  96. package/dist/esm/components/index.d.ts.map +1 -1
  97. package/dist/esm/components/index.js +1 -1
  98. package/dist/esm/components/message-scroller.d.ts +6 -0
  99. package/dist/esm/components/message-scroller.d.ts.map +1 -1
  100. package/dist/esm/components/message-scroller.js +1 -1
  101. package/dist/esm/components/notice.js +1 -1
  102. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  103. package/dist/esm/components/scroll-area.js +1 -1
  104. package/dist/esm/components/scroll-area.props.d.ts +10 -0
  105. package/dist/esm/components/scroll-area.props.d.ts.map +1 -1
  106. package/dist/esm/components/scroll-area.props.js +1 -1
  107. package/dist/esm/components/sheet.js +1 -1
  108. package/dist/esm/components/shell.js +1 -1
  109. package/dist/esm/components/sidebar.js +1 -1
  110. package/dist/esm/components/table.js +1 -1
  111. package/dist/esm/components/theme-panel.js +1 -1
  112. package/dist/esm/components/toggle-button.js +1 -1
  113. package/dist/esm/components/toggle-icon-button.js +1 -1
  114. package/dist/esm/components/toolbar.d.ts +88 -36
  115. package/dist/esm/components/toolbar.d.ts.map +1 -1
  116. package/dist/esm/components/toolbar.js +1 -1
  117. package/dist/esm/components/toolbar.props.d.ts +28 -0
  118. package/dist/esm/components/toolbar.props.d.ts.map +1 -0
  119. package/dist/esm/components/toolbar.props.js +2 -0
  120. package/dist/esm/components/toolbar.props.js.map +7 -0
  121. package/dist/esm/components/user-card.js +1 -1
  122. package/dist/esm/hooks/use-scroll-edges.d.ts +12 -0
  123. package/dist/esm/hooks/use-scroll-edges.d.ts.map +1 -0
  124. package/dist/esm/hooks/use-scroll-edges.js +2 -0
  125. package/dist/esm/hooks/use-scroll-edges.js.map +7 -0
  126. package/dist/esm/index.js +1 -1
  127. package/dist/esm/props/index.js +1 -1
  128. package/package.json +1 -1
  129. package/src/components/app-bar.css +204 -0
  130. package/src/components/app-bar.tsx +256 -0
  131. package/src/components/index.css +2 -0
  132. package/src/components/index.tsx +13 -1
  133. package/src/components/message-scroller.tsx +24 -5
  134. package/src/components/scroll-area.css +44 -0
  135. package/src/components/scroll-area.props.tsx +8 -0
  136. package/src/components/scroll-area.tsx +7 -1
  137. package/src/components/toolbar.css +87 -160
  138. package/src/components/toolbar.props.tsx +27 -0
  139. package/src/components/toolbar.tsx +259 -193
  140. package/src/hooks/use-scroll-edges.ts +46 -0
  141. package/src/styles/tokens/color.css +19 -0
  142. package/styles.css +159 -26
  143. package/tokens/base.css +14 -0
  144. package/tokens.css +14 -0
  145. package/dist/esm/chunk-47LMOIW3.js +0 -2
  146. package/dist/esm/chunk-47LMOIW3.js.map +0 -7
  147. package/dist/esm/chunk-5KICSAT7.js +0 -2
  148. package/dist/esm/chunk-CTA5ODAO.js +0 -2
  149. package/dist/esm/chunk-CTA5ODAO.js.map +0 -7
  150. package/dist/esm/chunk-JKS2YXMS.js +0 -1
  151. package/dist/esm/chunk-W4WWN3RC.js +0 -2
  152. package/dist/esm/chunk-W4WWN3RC.js.map +0 -7
  153. /package/dist/esm/{chunk-ABSKRHVM.js.map → chunk-36A5BYCN.js.map} +0 -0
  154. /package/dist/esm/{chunk-73QGEY2I.js.map → chunk-3R4YLW4A.js.map} +0 -0
  155. /package/dist/esm/{chunk-ZZLZGHZQ.js.map → chunk-4LDVSTXI.js.map} +0 -0
  156. /package/dist/esm/{chunk-YQRSAP46.js.map → chunk-53SZ4Y23.js.map} +0 -0
  157. /package/dist/esm/{chunk-X3JM2565.js.map → chunk-6G3MPL4A.js.map} +0 -0
  158. /package/dist/esm/{chunk-DSJY5RI3.js.map → chunk-7JJT42J2.js.map} +0 -0
  159. /package/dist/esm/{chunk-JKS2YXMS.js.map → chunk-C7EVYSWK.js.map} +0 -0
  160. /package/dist/esm/{chunk-ERY5TH2M.js.map → chunk-CYU6BLZ5.js.map} +0 -0
  161. /package/dist/esm/{chunk-MWIIGYAJ.js.map → chunk-D6PHTHF2.js.map} +0 -0
  162. /package/dist/esm/{chunk-YTD3AJAU.js.map → chunk-ENLFKWYV.js.map} +0 -0
  163. /package/dist/esm/{chunk-4XGGX2V2.js.map → chunk-ISOLUTZF.js.map} +0 -0
  164. /package/dist/esm/{chunk-LXWPEDPZ.js.map → chunk-IYCPYN4Z.js.map} +0 -0
  165. /package/dist/esm/{chunk-RJP5QUXO.js.map → chunk-L5PID6BU.js.map} +0 -0
  166. /package/dist/esm/{chunk-BW5CO4PZ.js.map → chunk-METRW4HG.js.map} +0 -0
  167. /package/dist/esm/{chunk-PYHEBG5I.js.map → chunk-MJOXEUBT.js.map} +0 -0
  168. /package/dist/esm/{chunk-PHC3QBV3.js.map → chunk-MZXHKM4V.js.map} +0 -0
  169. /package/dist/esm/{chunk-NIM7DIVH.js.map → chunk-PQKJNRMR.js.map} +0 -0
  170. /package/dist/esm/{chunk-65GAANJD.js.map → chunk-UYCPDGWA.js.map} +0 -0
  171. /package/dist/esm/{chunk-QWVU2TW4.js.map → chunk-ZK7A2MZZ.js.map} +0 -0
package/styles.css CHANGED
@@ -3420,6 +3420,20 @@
3420
3420
  --color-surface-translucent: rgba(255, 255, 255, var(--surface-opacity));
3421
3421
  --color-dialog-solid: white;
3422
3422
  --color-dialog-translucent: rgba(255, 255, 255, var(--dialog-opacity));
3423
+ --color-page: var(--color-background);
3424
+ --color-text: var(--gray-12);
3425
+ --neutral-1: var(--gray-1);
3426
+ --neutral-2: var(--gray-2);
3427
+ --neutral-3: var(--gray-3);
3428
+ --neutral-4: var(--gray-4);
3429
+ --neutral-5: var(--gray-5);
3430
+ --neutral-6: var(--gray-6);
3431
+ --neutral-7: var(--gray-7);
3432
+ --neutral-8: var(--gray-8);
3433
+ --neutral-9: var(--gray-9);
3434
+ --neutral-10: var(--gray-10);
3435
+ --neutral-11: var(--gray-11);
3436
+ --neutral-12: var(--gray-12);
3423
3437
  --material-blend: 100%;
3424
3438
  --material-alpha: 0;
3425
3439
  --color-transparent: rgb(0 0 0 / 0);
@@ -18981,6 +18995,19 @@
18981
18995
  background-color: var(--gray-a8);
18982
18996
  }
18983
18997
  }
18998
+ :where(.rt-ScrollAreaRoot[data-fade]) > .rt-ScrollAreaViewport,
18999
+ .rt-MessageScrollerViewport:where([data-fade]) {
19000
+ -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black min(var(--scroll-overflow-start, 0px), var(--scroll-fade-start, var(--scroll-fade-size))), black calc(100% - min(var(--scroll-overflow-end, 0px), var(--scroll-fade-end, var(--scroll-fade-size)))), transparent 100%);
19001
+ mask-image: linear-gradient(to bottom, transparent 0%, black min(var(--scroll-overflow-start, 0px), var(--scroll-fade-start, var(--scroll-fade-size))), black calc(100% - min(var(--scroll-overflow-end, 0px), var(--scroll-fade-end, var(--scroll-fade-size)))), transparent 100%);
19002
+ }
19003
+ :root,
19004
+ .radix-themes {
19005
+ --scroll-fade-size: var(--space-6);
19006
+ }
19007
+ :where(.rt-ScrollAreaViewport, .rt-MessageScrollerViewport) :where(.rt-ScrollAreaRoot, .rt-MessageScrollerViewport) {
19008
+ --scroll-fade-start: initial;
19009
+ --scroll-fade-end: initial;
19010
+ }
18984
19011
  .rt-SegmentedControlRoot:where(:has([data-icon-only])) {
18985
19012
  grid-auto-columns: minmax(var(--segmented-control-height), 1fr);
18986
19013
  }
@@ -26708,11 +26735,11 @@
26708
26735
  outline-style: solid;
26709
26736
  outline-color: var(--accent-9);
26710
26737
  }
26711
- .rt-Toolbar {
26738
+ .rt-AppBar {
26712
26739
  position: absolute;
26713
26740
  z-index: 1;
26714
26741
  }
26715
- .rt-ToolbarInner {
26742
+ .rt-AppBarInner {
26716
26743
  display: grid;
26717
26744
  grid-template-columns: 1fr auto 1fr;
26718
26745
  -webkit-box-align: center;
@@ -26722,112 +26749,218 @@
26722
26749
  height: 100%;
26723
26750
  gap: var(--space-2);
26724
26751
  }
26725
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarInner {
26752
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarInner {
26726
26753
  grid-template-columns: 1fr;
26727
26754
  grid-template-rows: 1fr auto 1fr;
26728
26755
  }
26729
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarLeft {
26756
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarLeft {
26730
26757
  grid-column: 1;
26731
26758
  grid-row: 1;
26732
26759
  align-self: start;
26733
26760
  justify-self: center;
26734
26761
  }
26735
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarCenter {
26762
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarCenter {
26736
26763
  grid-column: 1;
26737
26764
  grid-row: 2;
26738
26765
  align-self: center;
26739
26766
  justify-self: center;
26740
26767
  }
26741
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarRight {
26768
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarRight {
26742
26769
  grid-column: 1;
26743
26770
  grid-row: 3;
26744
26771
  align-self: end;
26745
26772
  justify-self: center;
26746
26773
  }
26747
- .rt-Toolbar:where([data-anchor='top']) {
26774
+ .rt-AppBar:where([data-anchor='top']) {
26748
26775
  top: 0;
26749
26776
  left: 0;
26750
26777
  right: 0;
26751
26778
  }
26752
- .rt-Toolbar:where([data-anchor='bottom']) {
26779
+ .rt-AppBar:where([data-anchor='bottom']) {
26753
26780
  bottom: 0;
26754
26781
  left: 0;
26755
26782
  right: 0;
26756
26783
  }
26757
- .rt-Toolbar:where([data-anchor='left']) {
26784
+ .rt-AppBar:where([data-anchor='left']) {
26758
26785
  top: 0;
26759
26786
  bottom: 0;
26760
26787
  left: 0;
26761
26788
  }
26762
- .rt-Toolbar:where([data-anchor='right']) {
26789
+ .rt-AppBar:where([data-anchor='right']) {
26763
26790
  top: 0;
26764
26791
  bottom: 0;
26765
26792
  right: 0;
26766
26793
  }
26767
- .rt-Toolbar:where(:not([data-floating])) {
26794
+ .rt-AppBar:where(:not([data-floating])) {
26768
26795
  --base-card-border-radius: 0;
26769
26796
  border-radius: 0;
26770
26797
  }
26771
- .rt-Toolbar:where([data-anchor='top']:not([data-floating]))::after {
26798
+ .rt-AppBar:where([data-anchor='top']:not([data-floating]))::after {
26772
26799
  -webkit-box-shadow: inset 0 -1px 0 0 var(--gray-6);
26773
26800
  box-shadow: inset 0 -1px 0 0 var(--gray-6);
26774
26801
  }
26775
- :where([data-panel-background='translucent'],[data-material='translucent']) .rt-Toolbar:where([data-anchor='top']:not([data-floating]))::after,.rt-Toolbar:where([data-anchor='top']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26802
+ :where([data-panel-background='translucent'],[data-material='translucent']) .rt-AppBar:where([data-anchor='top']:not([data-floating]))::after,.rt-AppBar:where([data-anchor='top']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26776
26803
  -webkit-box-shadow: inset 0 -1px 0 0 var(--gray-a6);
26777
26804
  box-shadow: inset 0 -1px 0 0 var(--gray-a6);
26778
26805
  }
26779
- .rt-Toolbar:where([data-anchor='bottom']:not([data-floating]))::after {
26806
+ .rt-AppBar:where([data-anchor='bottom']:not([data-floating]))::after {
26780
26807
  -webkit-box-shadow: inset 0 1px 0 0 var(--gray-6);
26781
26808
  box-shadow: inset 0 1px 0 0 var(--gray-6);
26782
26809
  }
26783
- :where([data-panel-background='translucent'],[data-material='translucent']) .rt-Toolbar:where([data-anchor='bottom']:not([data-floating]))::after,.rt-Toolbar:where([data-anchor='bottom']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26810
+ :where([data-panel-background='translucent'],[data-material='translucent']) .rt-AppBar:where([data-anchor='bottom']:not([data-floating]))::after,.rt-AppBar:where([data-anchor='bottom']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26784
26811
  -webkit-box-shadow: inset 0 1px 0 0 var(--gray-a6);
26785
26812
  box-shadow: inset 0 1px 0 0 var(--gray-a6);
26786
26813
  }
26787
- .rt-Toolbar:where([data-anchor='left']:not([data-floating]))::after {
26814
+ .rt-AppBar:where([data-anchor='left']:not([data-floating]))::after {
26788
26815
  -webkit-box-shadow: inset -1px 0 0 0 var(--gray-6);
26789
26816
  box-shadow: inset -1px 0 0 0 var(--gray-6);
26790
26817
  }
26791
- :where([data-panel-background='translucent'],[data-material='translucent']) .rt-Toolbar:where([data-anchor='left']:not([data-floating]))::after,.rt-Toolbar:where([data-anchor='left']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26818
+ :where([data-panel-background='translucent'],[data-material='translucent']) .rt-AppBar:where([data-anchor='left']:not([data-floating]))::after,.rt-AppBar:where([data-anchor='left']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26792
26819
  -webkit-box-shadow: inset -1px 0 0 0 var(--gray-a6);
26793
26820
  box-shadow: inset -1px 0 0 0 var(--gray-a6);
26794
26821
  }
26795
- .rt-Toolbar:where([data-anchor='right']:not([data-floating]))::after {
26822
+ .rt-AppBar:where([data-anchor='right']:not([data-floating]))::after {
26796
26823
  -webkit-box-shadow: inset 1px 0 0 0 var(--gray-6);
26797
26824
  box-shadow: inset 1px 0 0 0 var(--gray-6);
26798
26825
  }
26799
- :where([data-panel-background='translucent'],[data-material='translucent']) .rt-Toolbar:where([data-anchor='right']:not([data-floating]))::after,.rt-Toolbar:where([data-anchor='right']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26826
+ :where([data-panel-background='translucent'],[data-material='translucent']) .rt-AppBar:where([data-anchor='right']:not([data-floating]))::after,.rt-AppBar:where([data-anchor='right']:not([data-floating])):where([data-panel-background='translucent'],[data-material='translucent'])::after {
26800
26827
  -webkit-box-shadow: inset 1px 0 0 0 var(--gray-a6);
26801
26828
  box-shadow: inset 1px 0 0 0 var(--gray-a6);
26802
26829
  }
26803
- .rt-Toolbar:where(.rt-variant-ghost:not([data-floating]))::after {
26830
+ .rt-AppBar:where(.rt-variant-ghost:not([data-floating]))::after {
26804
26831
  -webkit-box-shadow: none;
26805
26832
  box-shadow: none;
26806
26833
  }
26807
- .rt-Toolbar:where(.rt-variant-soft:not([data-floating]))::after {
26834
+ .rt-AppBar:where(.rt-variant-soft:not([data-floating]))::after {
26808
26835
  -webkit-box-shadow: none;
26809
26836
  box-shadow: none;
26810
26837
  }
26811
- .rt-ToolbarTitle {
26838
+ .rt-AppBarTitle {
26812
26839
  min-width: 0;
26813
26840
  -ms-flex-negative: 1;
26814
26841
  flex-shrink: 1;
26815
26842
  }
26816
- .rt-ToolbarSection {
26843
+ .rt-AppBarSection {
26817
26844
  min-width: 0;
26818
26845
  }
26819
- .rt-ToolbarLeft {
26846
+ .rt-AppBarLeft {
26820
26847
  grid-column: 1;
26821
26848
  justify-self: start;
26822
26849
  }
26823
- .rt-ToolbarCenter {
26850
+ .rt-AppBarCenter {
26824
26851
  grid-column: 2;
26825
26852
  justify-self: center;
26826
26853
  }
26827
- .rt-ToolbarRight {
26854
+ .rt-AppBarRight {
26828
26855
  grid-column: 3;
26829
26856
  justify-self: end;
26830
26857
  }
26858
+ .rt-Toolbar {
26859
+ --toolbar-group-inset: calc(var(--space-1) / 2);
26860
+ display: -webkit-box;
26861
+ display: -ms-flexbox;
26862
+ display: flex;
26863
+ -webkit-box-align: center;
26864
+ -ms-flex-align: center;
26865
+ align-items: center;
26866
+ -webkit-box-pack: justify;
26867
+ -ms-flex-pack: justify;
26868
+ justify-content: space-between;
26869
+ gap: var(--toolbar-gap);
26870
+ min-width: 0;
26871
+ min-height: var(--toolbar-control-height);
26872
+ -webkit-box-sizing: border-box;
26873
+ box-sizing: border-box;
26874
+ }
26875
+ .rt-Toolbar:where([data-orientation='vertical']) {
26876
+ -webkit-box-orient: vertical;
26877
+ -webkit-box-direction: normal;
26878
+ -ms-flex-direction: column;
26879
+ flex-direction: column;
26880
+ -webkit-box-pack: start;
26881
+ -ms-flex-pack: start;
26882
+ justify-content: flex-start;
26883
+ min-height: 0;
26884
+ min-width: var(--toolbar-control-height);
26885
+ }
26886
+ .rt-Toolbar:where(.rt-r-size-1) {
26887
+ --toolbar-control-height: var(--space-5);
26888
+ --toolbar-radius: max(var(--radius-1), var(--radius-full));
26889
+ --toolbar-gap: var(--space-1);
26890
+ --toolbar-title-gap: var(--space-2);
26891
+ }
26892
+ .rt-Toolbar:where(.rt-r-size-2) {
26893
+ --toolbar-control-height: var(--space-6);
26894
+ --toolbar-radius: max(var(--radius-2), var(--radius-full));
26895
+ --toolbar-gap: var(--space-2);
26896
+ --toolbar-title-gap: var(--space-3);
26897
+ }
26898
+ .rt-Toolbar:where(.rt-r-size-3) {
26899
+ --toolbar-control-height: var(--space-7);
26900
+ --toolbar-radius: max(var(--radius-3), var(--radius-full));
26901
+ --toolbar-gap: var(--space-2);
26902
+ --toolbar-title-gap: var(--space-4);
26903
+ }
26904
+ .rt-Toolbar:where(.rt-r-size-4) {
26905
+ --toolbar-control-height: var(--space-8);
26906
+ --toolbar-radius: max(var(--radius-4), var(--radius-full));
26907
+ --toolbar-gap: var(--space-3);
26908
+ --toolbar-title-gap: var(--space-5);
26909
+ }
26910
+ .rt-ToolbarGroup {
26911
+ display: -webkit-inline-box;
26912
+ display: -ms-inline-flexbox;
26913
+ display: inline-flex;
26914
+ -webkit-box-align: center;
26915
+ -ms-flex-align: center;
26916
+ align-items: center;
26917
+ -ms-flex-negative: 0;
26918
+ flex-shrink: 0;
26919
+ -webkit-box-sizing: border-box;
26920
+ box-sizing: border-box;
26921
+ height: var(--toolbar-control-height);
26922
+ padding: var(--toolbar-group-inset);
26923
+ border-radius: var(--toolbar-radius);
26924
+ background-color: var(--gray-a3);
26925
+ }
26926
+ .rt-ToolbarGroup:where([data-orientation='vertical']) {
26927
+ -webkit-box-orient: vertical;
26928
+ -webkit-box-direction: normal;
26929
+ -ms-flex-direction: column;
26930
+ flex-direction: column;
26931
+ height: auto;
26932
+ width: var(--toolbar-control-height);
26933
+ }
26934
+ .rt-ToolbarGroup > :where(.rt-BaseButton) {
26935
+ --base-button-height: calc(var(--toolbar-control-height) - 2 * var(--toolbar-group-inset));
26936
+ border-radius: max(0px, calc(var(--toolbar-radius) - var(--toolbar-group-inset)));
26937
+ }
26938
+ .rt-ToolbarSeparator {
26939
+ -ms-flex-negative: 0;
26940
+ flex-shrink: 0;
26941
+ background-color: var(--gray-a5);
26942
+ }
26943
+ .rt-ToolbarSeparator:where([data-orientation='vertical']) {
26944
+ width: var(--border-width-standard);
26945
+ height: calc(var(--toolbar-control-height) / 2);
26946
+ }
26947
+ .rt-ToolbarSeparator:where([data-orientation='horizontal']) {
26948
+ height: var(--border-width-standard);
26949
+ width: calc(var(--toolbar-control-height) / 2);
26950
+ }
26951
+ .rt-ToolbarTitle {
26952
+ min-width: 0;
26953
+ -ms-flex-negative: 1;
26954
+ flex-shrink: 1;
26955
+ }
26956
+ :where(.rt-Toolbar) .rt-ToolbarTitle:where(:not(:first-child)) {
26957
+ -webkit-margin-start: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
26958
+ margin-inline-start: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
26959
+ }
26960
+ :where(.rt-Toolbar) .rt-ToolbarTitle:where(:not(:last-child)) {
26961
+ -webkit-margin-end: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
26962
+ margin-inline-end: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
26963
+ }
26831
26964
  .rt-TooltipContent {
26832
26965
  -webkit-box-sizing: border-box;
26833
26966
  box-sizing: border-box;
package/tokens/base.css CHANGED
@@ -66,6 +66,20 @@
66
66
  --color-surface-translucent: rgba(255, 255, 255, var(--surface-opacity));
67
67
  --color-dialog-solid: white;
68
68
  --color-dialog-translucent: rgba(255, 255, 255, var(--dialog-opacity));
69
+ --color-page: var(--color-background);
70
+ --color-text: var(--gray-12);
71
+ --neutral-1: var(--gray-1);
72
+ --neutral-2: var(--gray-2);
73
+ --neutral-3: var(--gray-3);
74
+ --neutral-4: var(--gray-4);
75
+ --neutral-5: var(--gray-5);
76
+ --neutral-6: var(--gray-6);
77
+ --neutral-7: var(--gray-7);
78
+ --neutral-8: var(--gray-8);
79
+ --neutral-9: var(--gray-9);
80
+ --neutral-10: var(--gray-10);
81
+ --neutral-11: var(--gray-11);
82
+ --neutral-12: var(--gray-12);
69
83
  --material-blend: 100%;
70
84
  --material-alpha: 0;
71
85
  --color-transparent: rgb(0 0 0 / 0);
package/tokens.css CHANGED
@@ -3420,6 +3420,20 @@
3420
3420
  --color-surface-translucent: rgba(255, 255, 255, var(--surface-opacity));
3421
3421
  --color-dialog-solid: white;
3422
3422
  --color-dialog-translucent: rgba(255, 255, 255, var(--dialog-opacity));
3423
+ --color-page: var(--color-background);
3424
+ --color-text: var(--gray-12);
3425
+ --neutral-1: var(--gray-1);
3426
+ --neutral-2: var(--gray-2);
3427
+ --neutral-3: var(--gray-3);
3428
+ --neutral-4: var(--gray-4);
3429
+ --neutral-5: var(--gray-5);
3430
+ --neutral-6: var(--gray-6);
3431
+ --neutral-7: var(--gray-7);
3432
+ --neutral-8: var(--gray-8);
3433
+ --neutral-9: var(--gray-9);
3434
+ --neutral-10: var(--gray-10);
3435
+ --neutral-11: var(--gray-11);
3436
+ --neutral-12: var(--gray-12);
3423
3437
  --material-blend: 100%;
3424
3438
  --material-alpha: 0;
3425
3439
  --color-transparent: rgb(0 0 0 / 0);
@@ -1,2 +0,0 @@
1
- import{a as P}from"./chunk-JDGJSNWT.js";import{a as u}from"./chunk-GO7OHBHW.js";import{a as p}from"./chunk-FHOCUZDR.js";import*as e from"react";import c from"classnames";var h=e.forwardRef((l,o)=>{let{anchor:r="top",floating:t=!1,offset:s="2",size:n="1",variant:i="ghost",material:N,className:x,style:R,children:L,...H}=l,T=r==="top"||r==="bottom",y=e.useRef(null),F=e.useCallback(a=>{y.current=a,typeof o=="function"?o(a):o&&(o.current=a)},[o]);e.useEffect(()=>{let a=y.current;if(!a)return;let m=a.parentElement;if(!m)return;let d=()=>{let b=T?a.offsetHeight:a.offsetWidth;if(t){let j=getComputedStyle(a),w=parseFloat(j.marginTop)||0;b+=w*2}T?m.style.setProperty("--rt-toolbar-height",`${b}px`):m.style.setProperty("--rt-toolbar-width",`${b}px`)};d();let g=new ResizeObserver(d);return g.observe(a),()=>g.disconnect()},[T,t]);let z=t?{margin:`var(--space-${s})`,...R}:R;return e.createElement(P,{ref:F,size:n,variant:i,material:N,"data-anchor":r,"data-floating":t||void 0,className:c("rt-Toolbar",x),style:z,...H},e.createElement("div",{className:"rt-ToolbarInner"},L))});h.displayName="Toolbar.Root";var S=e.forwardRef(({gap:l="2",align:o="center",className:r,children:t,...s},n)=>e.createElement(p,{ref:n,align:o,gap:l,className:c("rt-ToolbarSection","rt-ToolbarLeft",r),...s},t));S.displayName="Toolbar.Left";var C=e.forwardRef(({gap:l="2",align:o="center",justify:r="center",className:t,children:s,...n},i)=>e.createElement(p,{ref:i,align:o,justify:r,gap:l,className:c("rt-ToolbarSection","rt-ToolbarCenter",t),...n},s));C.displayName="Toolbar.Center";var E=e.forwardRef(({gap:l="2",align:o="center",justify:r="end",className:t,children:s,...n},i)=>e.createElement(p,{ref:i,align:o,justify:r,gap:l,className:c("rt-ToolbarSection","rt-ToolbarRight",t),...n},s));E.displayName="Toolbar.Right";var v=e.forwardRef(({className:l,size:o="2",weight:r="medium",truncate:t=!0,children:s,...n},i)=>e.createElement(u,{ref:i,size:o,weight:r,truncate:t,className:c("rt-ToolbarTitle",l),...n},s));v.displayName="Toolbar.Title";var f=h;f.Left=S;f.Center=C;f.Right=E;f.Title=v;export{h as a,S as b,C as c,E as d,v as e,f};
2
- //# sourceMappingURL=chunk-47LMOIW3.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/toolbar.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { Card } from './card.js';\nimport { Flex } from './flex.js';\nimport { Heading } from './heading.js';\n\nimport type { CardProps } from './card.js';\nimport type { FlexProps } from './flex.js';\n\n// ============================================================================\n// Toolbar Root\n// ============================================================================\n\ntype ToolbarRootElement = React.ElementRef<'div'>;\ntype Anchor = 'top' | 'bottom' | 'left' | 'right';\ntype SpaceScale = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\ninterface ToolbarRootProps extends Omit<CardProps, 'asChild'> {\n /**\n * Which edge to anchor to. Sets position: sticky and the appropriate edge.\n * @default \"top\"\n */\n anchor?: Anchor;\n /**\n * Floating mode adds margin from edges for a detached look with absolute positioning.\n * When false (default), uses inset mode with negative margins to go edge-to-edge inside Cards.\n * @default false\n */\n floating?: boolean;\n /**\n * Margin offset from edges when floating. Uses space scale values.\n * @default \"2\"\n */\n offset?: SpaceScale;\n}\n\nconst ToolbarRoot = React.forwardRef<ToolbarRootElement, ToolbarRootProps>(\n (props, forwardedRef) => {\n const {\n anchor = 'top',\n floating = false,\n offset = '2',\n size = '1',\n variant = 'ghost',\n material,\n className,\n style,\n children,\n ...restProps\n } = props;\n\n const isHorizontal = anchor === 'top' || anchor === 'bottom';\n const internalRef = React.useRef<HTMLDivElement>(null);\n\n // Merge refs\n const mergedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n (internalRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef],\n );\n\n // Expose height/width as CSS variable on parent element\n React.useEffect(() => {\n const element = internalRef.current;\n if (!element) return;\n\n const parent = element.parentElement;\n if (!parent) return;\n\n const update = () => {\n let dimension = isHorizontal ? element.offsetHeight : element.offsetWidth;\n\n // For floating mode, include the margin in the total space\n if (floating) {\n const computedStyle = getComputedStyle(element);\n const margin = parseFloat(computedStyle.marginTop) || 0;\n dimension += margin * 2;\n }\n\n if (isHorizontal) {\n parent.style.setProperty('--rt-toolbar-height', `${dimension}px`);\n } else {\n parent.style.setProperty('--rt-toolbar-width', `${dimension}px`);\n }\n };\n\n update();\n\n const resizeObserver = new ResizeObserver(update);\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, [isHorizontal, floating]);\n\n const computedStyle = floating\n ? { margin: `var(--space-${offset})`, ...style }\n : style;\n\n return (\n <Card\n ref={mergedRef}\n size={size}\n variant={variant}\n material={material}\n data-anchor={anchor}\n data-floating={floating || undefined}\n className={classNames('rt-Toolbar', className)}\n style={computedStyle}\n {...restProps}\n >\n <div className=\"rt-ToolbarInner\">\n {children}\n </div>\n </Card>\n );\n },\n);\nToolbarRoot.displayName = 'Toolbar.Root';\n\n// ============================================================================\n// Toolbar Left (for horizontal) / Start (alias)\n// ============================================================================\n\ntype ToolbarSectionElement = React.ElementRef<'div'>;\ntype ToolbarSectionProps = FlexProps;\n\nconst ToolbarLeft = React.forwardRef<ToolbarSectionElement, ToolbarSectionProps>(\n ({ gap = '2', align = 'center', className, children, ...props }, forwardedRef) => (\n <Flex\n ref={forwardedRef}\n align={align}\n gap={gap}\n className={classNames('rt-ToolbarSection', 'rt-ToolbarLeft', className)}\n {...props}\n >\n {children}\n </Flex>\n ),\n);\nToolbarLeft.displayName = 'Toolbar.Left';\n\n// ============================================================================\n// Toolbar Center\n// ============================================================================\n\nconst ToolbarCenter = React.forwardRef<ToolbarSectionElement, ToolbarSectionProps>(\n ({ gap = '2', align = 'center', justify = 'center', className, children, ...props }, forwardedRef) => (\n <Flex\n ref={forwardedRef}\n align={align}\n justify={justify}\n gap={gap}\n className={classNames('rt-ToolbarSection', 'rt-ToolbarCenter', className)}\n {...props}\n >\n {children}\n </Flex>\n ),\n);\nToolbarCenter.displayName = 'Toolbar.Center';\n\n// ============================================================================\n// Toolbar Right (for horizontal) / End (alias)\n// ============================================================================\n\nconst ToolbarRight = React.forwardRef<ToolbarSectionElement, ToolbarSectionProps>(\n ({ gap = '2', align = 'center', justify = 'end', className, children, ...props }, forwardedRef) => (\n <Flex\n ref={forwardedRef}\n align={align}\n justify={justify}\n gap={gap}\n className={classNames('rt-ToolbarSection', 'rt-ToolbarRight', className)}\n {...props}\n >\n {children}\n </Flex>\n ),\n);\nToolbarRight.displayName = 'Toolbar.Right';\n\n// ============================================================================\n// Toolbar Title\n// ============================================================================\n\ntype ToolbarTitleElement = React.ElementRef<typeof Heading>;\ntype ToolbarTitleProps = React.ComponentPropsWithoutRef<typeof Heading>;\n\nconst ToolbarTitle = React.forwardRef<ToolbarTitleElement, ToolbarTitleProps>(\n ({ className, size = '2', weight = 'medium', truncate = true, children, ...props }, forwardedRef) => (\n <Heading\n ref={forwardedRef}\n size={size}\n weight={weight}\n truncate={truncate}\n className={classNames('rt-ToolbarTitle', className)}\n {...props}\n >\n {children}\n </Heading>\n ),\n);\nToolbarTitle.displayName = 'Toolbar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst Toolbar = ToolbarRoot as typeof ToolbarRoot & {\n Left: typeof ToolbarLeft;\n Center: typeof ToolbarCenter;\n Right: typeof ToolbarRight;\n Title: typeof ToolbarTitle;\n};\n\nToolbar.Left = ToolbarLeft;\nToolbar.Center = ToolbarCenter;\nToolbar.Right = ToolbarRight;\nToolbar.Title = ToolbarTitle;\n\nexport {\n Toolbar,\n ToolbarRoot as Root,\n ToolbarLeft as Left,\n ToolbarCenter as Center,\n ToolbarRight as Right,\n ToolbarTitle as Title,\n};\nexport type {\n ToolbarRootProps as RootProps,\n ToolbarSectionProps as LeftProps,\n ToolbarSectionProps as CenterProps,\n ToolbarSectionProps as RightProps,\n ToolbarTitleProps as TitleProps,\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "classNames", "ToolbarRoot", "props", "forwardedRef", "anchor", "floating", "offset", "size", "variant", "material", "className", "style", "children", "restProps", "isHorizontal", "internalRef", "mergedRef", "node", "element", "parent", "update", "dimension", "computedStyle", "margin", "resizeObserver", "Card", "classNames", "ToolbarLeft", "gap", "align", "Flex", "ToolbarCenter", "justify", "ToolbarRight", "ToolbarTitle", "weight", "truncate", "Heading", "Toolbar"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as e}from"./chunk-KRJTW535.js";import{a as s}from"./chunk-NZJGC6ZW.js";var r=["1","2","3"],o=["vertical","horizontal","both"],l={...s,size:{type:"enum",className:"rt-r-size",values:r,default:"1",responsive:!0},...e,scrollbars:{type:"enum",values:o,default:"both"}};export{l as a};
2
- //# sourceMappingURL=chunk-5KICSAT7.js.map
@@ -1,2 +0,0 @@
1
- import{a as S}from"./chunk-5GXFBLBJ.js";import{a as f}from"./chunk-UBOOUDS4.js";import{a as o}from"./chunk-5KICSAT7.js";import{a as n}from"./chunk-PS6NEG5A.js";import{a as c}from"./chunk-E23RKOQJ.js";import{b as a}from"./chunk-JUY7CBSL.js";import*as r from"react";import t from"classnames";import{ScrollArea as e}from"radix-ui";var C=r.forwardRef((P,u)=>{let{rest:A,...d}=S(P),[y,v]=f(d),{asChild:s,children:N,className:R,style:b,type:i,scrollHideDelay:g=i!=="scroll"?0:void 0,dir:z,size:p=o.size.default,radius:m=o.radius.default,scrollbars:l=o.scrollbars.default,...h}=A;return r.createElement(e.Root,{type:i,scrollHideDelay:g,className:t("rt-ScrollAreaRoot",y,R),style:c(v,b),asChild:s},n({asChild:s,children:N},w=>r.createElement(r.Fragment,null,r.createElement(e.Viewport,{...h,ref:u,className:"rt-ScrollAreaViewport"},w),r.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),l!=="vertical"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"horizontal",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l!=="horizontal"?r.createElement(e.Scrollbar,{"data-radius":m,orientation:"vertical",className:t("rt-ScrollAreaScrollbar",a({className:"rt-r-size",value:p,propValues:o.size.values}))},r.createElement(e.Thumb,{className:"rt-ScrollAreaThumb"})):null,l==="both"?r.createElement(e.Corner,{className:"rt-ScrollAreaCorner"}):null)))});C.displayName="ScrollArea";export{C as a};
2
- //# sourceMappingURL=chunk-CTA5ODAO.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/scroll-area.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\n\nimport { scrollAreaPropDefs } from './scroll-area.props.js';\nimport { extractMarginProps } from '../helpers/extract-margin-props.js';\nimport { getMarginStyles } from '../helpers/get-margin-styles.js';\nimport { getResponsiveClassNames } from '../helpers/get-responsive-styles.js';\nimport { getSubtree } from '../helpers/get-subtree.js';\nimport { mergeStyles } from '../helpers/merge-styles.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype ScrollAreaElement = React.ElementRef<typeof ScrollAreaPrimitive.Viewport>;\ntype ScrollAreaOwnProps = GetPropDefTypes<typeof scrollAreaPropDefs>;\ninterface ScrollAreaProps\n extends ComponentPropsWithout<typeof ScrollAreaPrimitive.Root, RemovedProps>,\n ComponentPropsWithout<typeof ScrollAreaPrimitive.Viewport, RemovedProps | 'dir'>,\n MarginProps,\n ScrollAreaOwnProps {}\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>((props, forwardedRef) => {\n const { rest: marginRest, ...marginProps } = extractMarginProps(props);\n const [marginClassNames, marginCustomProperties] = getMarginStyles(marginProps);\n\n const {\n asChild,\n children,\n className,\n style,\n type,\n scrollHideDelay = type !== 'scroll' ? 0 : undefined,\n dir,\n size = scrollAreaPropDefs.size.default,\n radius = scrollAreaPropDefs.radius.default,\n scrollbars = scrollAreaPropDefs.scrollbars.default,\n ...viewportProps\n } = marginRest;\n\n return (\n <ScrollAreaPrimitive.Root\n type={type}\n scrollHideDelay={scrollHideDelay}\n className={classNames('rt-ScrollAreaRoot', marginClassNames, className)}\n style={mergeStyles(marginCustomProperties, style)}\n asChild={asChild}\n >\n {getSubtree({ asChild, children }, (children) => (\n <>\n <ScrollAreaPrimitive.Viewport\n {...viewportProps}\n ref={forwardedRef}\n className=\"rt-ScrollAreaViewport\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n\n <div className=\"rt-ScrollAreaViewportFocusRing\" />\n\n {scrollbars !== 'vertical' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"horizontal\"\n className={classNames(\n 'rt-ScrollAreaScrollbar',\n getResponsiveClassNames({\n className: 'rt-r-size',\n value: size,\n propValues: scrollAreaPropDefs.size.values,\n }),\n )}\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars !== 'horizontal' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"vertical\"\n className={classNames(\n 'rt-ScrollAreaScrollbar',\n getResponsiveClassNames({\n className: 'rt-r-size',\n value: size,\n propValues: scrollAreaPropDefs.size.values,\n }),\n )}\n >\n <ScrollAreaPrimitive.Thumb className=\"rt-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars === 'both' ? (\n <ScrollAreaPrimitive.Corner className=\"rt-ScrollAreaCorner\" />\n ) : null}\n </>\n ))}\n </ScrollAreaPrimitive.Root>\n );\n});\nScrollArea.displayName = 'ScrollArea';\n\nexport { ScrollArea };\nexport type { ScrollAreaProps };\n"],
5
- "mappings": "gPAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,cAAcC,MAA2B,WAoBlD,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CAAE,KAAMC,EAAY,GAAGC,CAAY,EAAIC,EAAmBJ,CAAK,EAC/D,CAACK,EAAkBC,CAAsB,EAAIC,EAAgBJ,CAAW,EAExE,CACJ,QAAAK,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,gBAAAC,EAAkBD,IAAS,SAAW,EAAI,OAC1C,IAAAE,EACA,KAAAC,EAAOC,EAAmB,KAAK,QAC/B,OAAAC,EAASD,EAAmB,OAAO,QACnC,WAAAE,EAAaF,EAAmB,WAAW,QAC3C,GAAGG,CACL,EAAIjB,EAEJ,OACE,gBAACkB,EAAoB,KAApB,CACC,KAAMR,EACN,gBAAiBC,EACjB,UAAWQ,EAAW,oBAAqBhB,EAAkBK,CAAS,EACtE,MAAOY,EAAYhB,EAAwBK,CAAK,EAChD,QAASH,GAERe,EAAW,CAAE,QAAAf,EAAS,SAAAC,CAAS,EAAIA,GAClC,gCACE,gBAACW,EAAoB,SAApB,CACE,GAAGD,EACJ,IAAKlB,EACL,UAAU,yBAETQ,CACH,EAEA,gBAAC,OAAI,UAAU,iCAAiC,EAE/CS,IAAe,WACd,gBAACE,EAAoB,UAApB,CACC,cAAaH,EACb,YAAY,aACZ,UAAWI,EACT,yBACAG,EAAwB,CACtB,UAAW,YACX,MAAOT,EACP,WAAYC,EAAmB,KAAK,MACtC,CAAC,CACH,GAEA,gBAACI,EAAoB,MAApB,CAA0B,UAAU,qBAAqB,CAC5D,EACE,KAEHF,IAAe,aACd,gBAACE,EAAoB,UAApB,CACC,cAAaH,EACb,YAAY,WACZ,UAAWI,EACT,yBACAG,EAAwB,CACtB,UAAW,YACX,MAAOT,EACP,WAAYC,EAAmB,KAAK,MACtC,CAAC,CACH,GAEA,gBAACI,EAAoB,MAApB,CAA0B,UAAU,qBAAqB,CAC5D,EACE,KAEHF,IAAe,OACd,gBAACE,EAAoB,OAApB,CAA2B,UAAU,sBAAsB,EAC1D,IACN,CACD,CACH,CAEJ,CAAC,EACDrB,EAAW,YAAc",
6
- "names": ["React", "classNames", "ScrollAreaPrimitive", "ScrollArea", "props", "forwardedRef", "marginRest", "marginProps", "extractMarginProps", "marginClassNames", "marginCustomProperties", "getMarginStyles", "asChild", "children", "className", "style", "type", "scrollHideDelay", "dir", "size", "scrollAreaPropDefs", "radius", "scrollbars", "viewportProps", "ScrollAreaPrimitive", "classNames", "mergeStyles", "getSubtree", "getResponsiveClassNames"]
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-JKS2YXMS.js.map
@@ -1,2 +0,0 @@
1
- import{a as m}from"./chunk-4XGGX2V2.js";import{a as b}from"./chunk-OS3FCYZY.js";var B={};b(B,{Button:()=>g,Content:()=>d,Item:()=>f,Root:()=>S,Viewport:()=>u,useMessageScroller:()=>v,useMessageScrollerScrollable:()=>y,useMessageScrollerVisibility:()=>w});import*as e from"react";import a from"classnames";import{MessageScroller as l,useMessageScroller as v,useMessageScrollerScrollable as y,useMessageScrollerVisibility as w}from"@shadcn/react/message-scroller";var S=e.forwardRef(({autoScroll:o=!0,defaultScrollPosition:r="end",scrollEdgeThreshold:t,scrollMargin:s,className:i,children:n,...c},p)=>e.createElement(l.Provider,{autoScroll:o,defaultScrollPosition:r,...t!=null?{scrollEdgeThreshold:t}:{},...s!=null?{scrollMargin:s}:{}},e.createElement(l.Root,{...c,ref:p,className:a("rt-MessageScrollerRoot",i)},n)));S.displayName="MessageScroller.Root";var u=e.forwardRef(({className:o,"aria-label":r,...t},s)=>e.createElement(l.Viewport,{"aria-label":r??"",...t,ref:s,className:a("rt-MessageScrollerViewport",o)}));u.displayName="MessageScroller.Viewport";var d=e.forwardRef(({className:o,...r},t)=>e.createElement(l.Content,{...r,ref:t,className:a("rt-MessageScrollerContent",o)}));d.displayName="MessageScroller.Content";var f=e.forwardRef(({className:o,...r},t)=>e.createElement(l.Item,{...r,ref:t,className:a("rt-MessageScrollerItem",o)}));f.displayName="MessageScroller.Item";var g=e.forwardRef(({direction:o="end",behavior:r,className:t,children:s,size:i="2",variant:n="surface",color:c="gray",radius:p="full","aria-label":P,...M},R)=>e.createElement(l.Button,{direction:o,...r?{behavior:r}:{},render:e.createElement(m,{...M,ref:R,size:i,variant:n,color:c,radius:p,"aria-label":P??(o==="end"?"Jump to the latest":"Jump to the first"),className:a("rt-MessageScrollerButton",t),"data-direction":o},s??e.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none","aria-hidden":!0,style:o==="start"?{transform:"rotate(180deg)"}:void 0},e.createElement("path",{d:"M7.5 2.5v10M3.5 8.5l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})))}));g.displayName="MessageScroller.Button";export{v as a,y as b,w as c,S as d,u as e,d as f,f as g,g as h,B as i};
2
- //# sourceMappingURL=chunk-W4WWN3RC.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/message-scroller.tsx"],
4
- "sourcesContent": ["'use client';\n\n/**\n * MessageScroller \u2014 a transcript that follows a conversation.\n *\n * The behaviour is shadcn/ui's Message Scroller primitive (`@shadcn/react/message-scroller`,\n * MIT, https://ui.shadcn.com). Streaming, anchoring a new turn, keeping your place when history\n * loads above, and jumping back to the latest are a body of edge cases nobody should rewrite, so\n * Kookie takes the primitive and adds only the surface: the parts, the class names, the button.\n *\n * Anatomy\n * ```tsx\n * <MessageScroller.Root>\n * <MessageScroller.Viewport aria-label=\"Conversation\">\n * <MessageScroller.Content>\n * <MessageScroller.Item messageId=\"u1\" scrollAnchor>\u2026</MessageScroller.Item>\n * <MessageScroller.Item messageId=\"a1\">\u2026</MessageScroller.Item>\n * </MessageScroller.Content>\n * </MessageScroller.Viewport>\n * <MessageScroller.Button aria-label=\"Jump to the latest\" />\n * </MessageScroller.Root>\n * ```\n *\n * The viewport is its own scroller. Kookie's `ScrollArea` is Radix's, and Radix cannot hand its\n * viewport element to another library, so the transcript scrolls natively with a thin scrollbar.\n *\n * Requires React 19, which the primitive needs.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport {\n MessageScroller as Primitive,\n useMessageScroller,\n useMessageScrollerScrollable,\n useMessageScrollerVisibility,\n type MessageScrollerDefaultScrollPosition,\n type MessageScrollerScrollOptions,\n type MessageScrollerScrollable,\n type MessageScrollerVisibilityState,\n} from '@shadcn/react/message-scroller';\n\nimport { IconButton, type IconButtonProps } from './icon-button.js';\n\ninterface RootProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Keeps the newest content in view while the reader is at the end. Default `true`.\n * Once the reader scrolls up, the transcript stays where they are until they return.\n */\n autoScroll?: boolean;\n /** Where the transcript opens: `end` (default), `start`, or the last anchored message. */\n defaultScrollPosition?: MessageScrollerDefaultScrollPosition;\n /** Distance in pixels from the end that still counts as \"at the end\". */\n scrollEdgeThreshold?: number;\n /** Space in pixels kept above a message when one is scrolled to or anchored. */\n scrollMargin?: number;\n}\n\n/** Holds the scroll state. Everything else goes inside it. */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n ({ autoScroll = true, defaultScrollPosition = 'end', scrollEdgeThreshold, scrollMargin, className, children, ...props }, forwardedRef) => (\n <Primitive.Provider\n autoScroll={autoScroll}\n defaultScrollPosition={defaultScrollPosition}\n {...(scrollEdgeThreshold != null ? { scrollEdgeThreshold } : {})}\n {...(scrollMargin != null ? { scrollMargin } : {})}\n >\n <Primitive.Root {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerRoot', className)}>\n {children}\n </Primitive.Root>\n </Primitive.Provider>\n ),\n);\nRoot.displayName = 'MessageScroller.Root';\n\ninterface ViewportProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Name of the transcript region, e.g. \"Conversation\". */\n 'aria-label'?: string;\n /** Keep the reader's place when older messages are added above. Default `true`. */\n preserveScrollOnPrepend?: boolean;\n}\n\n/** The scrolling element. */\nconst Viewport = React.forwardRef<HTMLDivElement, ViewportProps>(({ className, 'aria-label': label, ...props }, forwardedRef) => (\n // The primitive names an unnamed viewport \"Messages\", in English. An empty name is skipped by\n // accessible-name computation, so a transcript is only named when the app names it.\n <Primitive.Viewport aria-label={label ?? ''} {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerViewport', className)} />\n));\nViewport.displayName = 'MessageScroller.Viewport';\n\ntype ContentProps = React.ComponentPropsWithoutRef<'div'>;\n\n/** The list of messages, inside the viewport. */\nconst Content = React.forwardRef<HTMLDivElement, ContentProps>(({ className, ...props }, forwardedRef) => (\n <Primitive.Content {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerContent', className)} />\n));\nContent.displayName = 'MessageScroller.Content';\n\ninterface ItemProps extends React.ComponentPropsWithoutRef<'div'> {\n /** A stable id, so the row can be scrolled to with `useMessageScroller().scrollToMessage`. */\n messageId?: string;\n /** Anchor this row near the top when it arrives. Set it on the person's own messages. */\n scrollAnchor?: boolean;\n}\n\n/** One row of the transcript. */\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>(({ className, ...props }, forwardedRef) => (\n <Primitive.Item {...props} ref={forwardedRef} className={classNames('rt-MessageScrollerItem', className)} />\n));\nItem.displayName = 'MessageScroller.Item';\n\ntype ButtonProps = Omit<IconButtonProps, 'aria-label' | 'aria-labelledby'> & {\n /** Accessible name, in your words. Default \"Jump to the latest\". */\n 'aria-label'?: string;\n /** `end` jumps to the latest message (default); `start` to the first. */\n direction?: 'start' | 'end';\n /** Scroll behaviour of the jump. Default `smooth`. */\n behavior?: ScrollBehavior;\n};\n\n/**\n * Jumps back to the latest message. It renders only while the reader is away from the end.\n * Place it inside `Root`, after the viewport. It sits over the viewport's bottom edge.\n */\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ direction = 'end', behavior, className, children, size = '2', variant = 'surface', color = 'gray', radius = 'full', 'aria-label': label, ...props }, forwardedRef) => (\n <Primitive.Button\n direction={direction}\n {...(behavior ? { behavior } : {})}\n render={\n <IconButton\n {...props}\n ref={forwardedRef}\n size={size}\n variant={variant}\n color={color}\n radius={radius}\n aria-label={label ?? (direction === 'end' ? 'Jump to the latest' : 'Jump to the first')}\n className={classNames('rt-MessageScrollerButton', className)}\n data-direction={direction}\n >\n {children ?? (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden style={direction === 'start' ? { transform: 'rotate(180deg)' } : undefined}>\n <path d=\"M7.5 2.5v10M3.5 8.5l4 4 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </IconButton>\n }\n />\n ),\n);\nButton.displayName = 'MessageScroller.Button';\n\nexport { Root, Viewport, Content, Item, Button, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility };\nexport type {\n RootProps as MessageScrollerRootProps,\n ViewportProps as MessageScrollerViewportProps,\n ContentProps as MessageScrollerContentProps,\n ItemProps as MessageScrollerItemProps,\n ButtonProps as MessageScrollerButtonProps,\n MessageScrollerDefaultScrollPosition,\n MessageScrollerScrollOptions,\n MessageScrollerScrollable,\n MessageScrollerVisibilityState,\n};\n"],
5
- "mappings": "gFAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,YAAAC,EAAA,SAAAC,EAAA,SAAAC,EAAA,aAAAC,EAAA,uBAAAC,EAAA,iCAAAC,EAAA,iCAAAC,IA6BA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OACE,mBAAmBC,EACnB,sBAAAL,EACA,gCAAAC,EACA,gCAAAC,MAKK,iCAmBP,IAAMI,EAAa,aACjB,CAAC,CAAE,WAAAC,EAAa,GAAM,sBAAAC,EAAwB,MAAO,oBAAAC,EAAqB,aAAAC,EAAc,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IACvH,gBAACC,EAAU,SAAV,CACC,WAAYR,EACZ,sBAAuBC,EACtB,GAAIC,GAAuB,KAAO,CAAE,oBAAAA,CAAoB,EAAI,CAAC,EAC7D,GAAIC,GAAgB,KAAO,CAAE,aAAAA,CAAa,EAAI,CAAC,GAEhD,gBAACK,EAAU,KAAV,CAAgB,GAAGF,EAAO,IAAKC,EAAc,UAAWE,EAAW,yBAA0BL,CAAS,GACpGC,CACH,CACF,CAEJ,EACAN,EAAK,YAAc,uBAUnB,IAAMW,EAAiB,aAA0C,CAAC,CAAE,UAAAN,EAAW,aAAcO,EAAO,GAAGL,CAAM,EAAGC,IAG9G,gBAACC,EAAU,SAAV,CAAmB,aAAYG,GAAS,GAAK,GAAGL,EAAO,IAAKC,EAAc,UAAWE,EAAW,6BAA8BL,CAAS,EAAG,CAC5I,EACDM,EAAS,YAAc,2BAKvB,IAAME,EAAgB,aAAyC,CAAC,CAAE,UAAAR,EAAW,GAAGE,CAAM,EAAGC,IACvF,gBAACC,EAAU,QAAV,CAAmB,GAAGF,EAAO,IAAKC,EAAc,UAAWE,EAAW,4BAA6BL,CAAS,EAAG,CACjH,EACDQ,EAAQ,YAAc,0BAUtB,IAAMC,EAAa,aAAsC,CAAC,CAAE,UAAAT,EAAW,GAAGE,CAAM,EAAGC,IACjF,gBAACC,EAAU,KAAV,CAAgB,GAAGF,EAAO,IAAKC,EAAc,UAAWE,EAAW,yBAA0BL,CAAS,EAAG,CAC3G,EACDS,EAAK,YAAc,uBAenB,IAAMC,EAAe,aACnB,CAAC,CAAE,UAAAC,EAAY,MAAO,SAAAC,EAAU,UAAAZ,EAAW,SAAAC,EAAU,KAAAY,EAAO,IAAK,QAAAC,EAAU,UAAW,MAAAC,EAAQ,OAAQ,OAAAC,EAAS,OAAQ,aAAcT,EAAO,GAAGL,CAAM,EAAGC,IACtJ,gBAACC,EAAU,OAAV,CACC,UAAWO,EACV,GAAIC,EAAW,CAAE,SAAAA,CAAS,EAAI,CAAC,EAChC,OACE,gBAACK,EAAA,CACE,GAAGf,EACJ,IAAKC,EACL,KAAMU,EACN,QAASC,EACT,MAAOC,EACP,OAAQC,EACR,aAAYT,IAAUI,IAAc,MAAQ,qBAAuB,qBACnE,UAAWN,EAAW,2BAA4BL,CAAS,EAC3D,iBAAgBW,GAEfV,GACC,gBAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,cAAW,GAAC,MAAOU,IAAc,QAAU,CAAE,UAAW,gBAAiB,EAAI,QACvI,gBAAC,QAAK,EAAE,8BAA8B,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,eAAe,QAAQ,CAC7H,CAEJ,EAEJ,CAEJ,EACAD,EAAO,YAAc",
6
- "names": ["message_scroller_exports", "__export", "Button", "Content", "Item", "Root", "Viewport", "useMessageScroller", "useMessageScrollerScrollable", "useMessageScrollerVisibility", "React", "classNames", "Primitive", "Root", "autoScroll", "defaultScrollPosition", "scrollEdgeThreshold", "scrollMargin", "className", "children", "props", "forwardedRef", "Primitive", "classNames", "Viewport", "label", "Content", "Item", "Button", "direction", "behavior", "size", "variant", "color", "radius", "IconButton"]
7
- }