@womp/kookie-ui 0.10.0 → 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 (103) hide show
  1. package/components.css +132 -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/index.d.ts +2 -1
  7. package/dist/cjs/components/index.d.ts.map +1 -1
  8. package/dist/cjs/components/index.js +5 -5
  9. package/dist/cjs/components/index.js.map +4 -4
  10. package/dist/cjs/components/toolbar.d.ts +88 -36
  11. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  12. package/dist/cjs/components/toolbar.js +4 -1
  13. package/dist/cjs/components/toolbar.js.map +4 -4
  14. package/dist/cjs/components/toolbar.props.d.ts +28 -0
  15. package/dist/cjs/components/toolbar.props.d.ts.map +1 -0
  16. package/dist/cjs/components/toolbar.props.js +2 -0
  17. package/dist/cjs/components/toolbar.props.js.map +7 -0
  18. package/dist/cjs/index.js +5 -5
  19. package/dist/cjs/index.js.map +4 -4
  20. package/dist/esm/{chunk-73QGEY2I.js → chunk-3R4YLW4A.js} +2 -2
  21. package/dist/esm/{chunk-ZZLZGHZQ.js → chunk-4LDVSTXI.js} +2 -2
  22. package/dist/esm/chunk-54JFIP5S.js +2 -0
  23. package/dist/esm/chunk-54JFIP5S.js.map +7 -0
  24. package/dist/esm/{chunk-X3JM2565.js → chunk-6G3MPL4A.js} +2 -2
  25. package/dist/esm/{chunk-DSJY5RI3.js → chunk-7JJT42J2.js} +2 -2
  26. package/dist/esm/chunk-C7EVYSWK.js +1 -0
  27. package/dist/esm/{chunk-ERY5TH2M.js → chunk-CYU6BLZ5.js} +2 -2
  28. package/dist/esm/{chunk-25LBWKEV.js → chunk-D6PHTHF2.js} +2 -2
  29. package/dist/esm/{chunk-QK5RBHKV.js → chunk-ENLFKWYV.js} +2 -2
  30. package/dist/esm/{chunk-4XGGX2V2.js → chunk-ISOLUTZF.js} +2 -2
  31. package/dist/esm/{chunk-LXWPEDPZ.js → chunk-IYCPYN4Z.js} +2 -2
  32. package/dist/esm/{chunk-RJP5QUXO.js → chunk-L5PID6BU.js} +2 -2
  33. package/dist/esm/{chunk-BW5CO4PZ.js → chunk-METRW4HG.js} +2 -2
  34. package/dist/esm/{chunk-PYHEBG5I.js → chunk-MJOXEUBT.js} +2 -2
  35. package/dist/esm/{chunk-4D2OAD6I.js → chunk-OIUCV5HK.js} +2 -2
  36. package/dist/esm/{chunk-65GAANJD.js → chunk-UYCPDGWA.js} +2 -2
  37. package/dist/esm/chunk-XLMTTSRO.js +2 -0
  38. package/dist/esm/chunk-XLMTTSRO.js.map +7 -0
  39. package/dist/esm/{chunk-QWVU2TW4.js → chunk-ZK7A2MZZ.js} +2 -2
  40. package/dist/esm/chunk-ZUOK3KFY.js +2 -0
  41. package/dist/esm/chunk-ZUOK3KFY.js.map +7 -0
  42. package/dist/esm/components/_internal/base-button.js +1 -1
  43. package/dist/esm/components/alert-dialog.js +1 -1
  44. package/dist/esm/components/app-bar.d.ts +49 -0
  45. package/dist/esm/components/app-bar.d.ts.map +1 -0
  46. package/dist/esm/components/app-bar.js +2 -0
  47. package/dist/esm/components/app-bar.js.map +7 -0
  48. package/dist/esm/components/button.js +1 -1
  49. package/dist/esm/components/chatbar.js +1 -1
  50. package/dist/esm/components/checkbox-cards.js +1 -1
  51. package/dist/esm/components/dialog.js +1 -1
  52. package/dist/esm/components/icon-button.js +1 -1
  53. package/dist/esm/components/index.d.ts +2 -1
  54. package/dist/esm/components/index.d.ts.map +1 -1
  55. package/dist/esm/components/index.js +1 -1
  56. package/dist/esm/components/message-scroller.js +1 -1
  57. package/dist/esm/components/notice.js +1 -1
  58. package/dist/esm/components/sheet.js +1 -1
  59. package/dist/esm/components/shell.js +1 -1
  60. package/dist/esm/components/theme-panel.js +1 -1
  61. package/dist/esm/components/toggle-button.js +1 -1
  62. package/dist/esm/components/toggle-icon-button.js +1 -1
  63. package/dist/esm/components/toolbar.d.ts +88 -36
  64. package/dist/esm/components/toolbar.d.ts.map +1 -1
  65. package/dist/esm/components/toolbar.js +1 -1
  66. package/dist/esm/components/toolbar.props.d.ts +28 -0
  67. package/dist/esm/components/toolbar.props.d.ts.map +1 -0
  68. package/dist/esm/components/toolbar.props.js +2 -0
  69. package/dist/esm/components/toolbar.props.js.map +7 -0
  70. package/dist/esm/components/user-card.js +1 -1
  71. package/dist/esm/index.js +1 -1
  72. package/dist/esm/props/index.js +1 -1
  73. package/package.json +1 -1
  74. package/src/components/app-bar.css +204 -0
  75. package/src/components/app-bar.tsx +256 -0
  76. package/src/components/index.css +2 -0
  77. package/src/components/index.tsx +13 -1
  78. package/src/components/toolbar.css +87 -160
  79. package/src/components/toolbar.props.tsx +27 -0
  80. package/src/components/toolbar.tsx +259 -193
  81. package/src/styles/tokens/color.css +19 -0
  82. package/styles.css +146 -26
  83. package/tokens/base.css +14 -0
  84. package/tokens.css +14 -0
  85. package/dist/esm/chunk-47LMOIW3.js +0 -2
  86. package/dist/esm/chunk-47LMOIW3.js.map +0 -7
  87. package/dist/esm/chunk-JKS2YXMS.js +0 -1
  88. /package/dist/esm/{chunk-73QGEY2I.js.map → chunk-3R4YLW4A.js.map} +0 -0
  89. /package/dist/esm/{chunk-ZZLZGHZQ.js.map → chunk-4LDVSTXI.js.map} +0 -0
  90. /package/dist/esm/{chunk-X3JM2565.js.map → chunk-6G3MPL4A.js.map} +0 -0
  91. /package/dist/esm/{chunk-DSJY5RI3.js.map → chunk-7JJT42J2.js.map} +0 -0
  92. /package/dist/esm/{chunk-JKS2YXMS.js.map → chunk-C7EVYSWK.js.map} +0 -0
  93. /package/dist/esm/{chunk-ERY5TH2M.js.map → chunk-CYU6BLZ5.js.map} +0 -0
  94. /package/dist/esm/{chunk-25LBWKEV.js.map → chunk-D6PHTHF2.js.map} +0 -0
  95. /package/dist/esm/{chunk-QK5RBHKV.js.map → chunk-ENLFKWYV.js.map} +0 -0
  96. /package/dist/esm/{chunk-4XGGX2V2.js.map → chunk-ISOLUTZF.js.map} +0 -0
  97. /package/dist/esm/{chunk-LXWPEDPZ.js.map → chunk-IYCPYN4Z.js.map} +0 -0
  98. /package/dist/esm/{chunk-RJP5QUXO.js.map → chunk-L5PID6BU.js.map} +0 -0
  99. /package/dist/esm/{chunk-BW5CO4PZ.js.map → chunk-METRW4HG.js.map} +0 -0
  100. /package/dist/esm/{chunk-PYHEBG5I.js.map → chunk-MJOXEUBT.js.map} +0 -0
  101. /package/dist/esm/{chunk-4D2OAD6I.js.map → chunk-OIUCV5HK.js.map} +0 -0
  102. /package/dist/esm/{chunk-65GAANJD.js.map → chunk-UYCPDGWA.js.map} +0 -0
  103. /package/dist/esm/{chunk-QWVU2TW4.js.map → chunk-ZK7A2MZZ.js.map} +0 -0
package/components.css CHANGED
@@ -21604,11 +21604,11 @@
21604
21604
  outline-style: solid;
21605
21605
  outline-color: var(--accent-9);
21606
21606
  }
21607
- .rt-Toolbar {
21607
+ .rt-AppBar {
21608
21608
  position: absolute;
21609
21609
  z-index: 1;
21610
21610
  }
21611
- .rt-ToolbarInner {
21611
+ .rt-AppBarInner {
21612
21612
  display: grid;
21613
21613
  grid-template-columns: 1fr auto 1fr;
21614
21614
  -webkit-box-align: center;
@@ -21618,112 +21618,218 @@
21618
21618
  height: 100%;
21619
21619
  gap: var(--space-2);
21620
21620
  }
21621
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarInner {
21621
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarInner {
21622
21622
  grid-template-columns: 1fr;
21623
21623
  grid-template-rows: 1fr auto 1fr;
21624
21624
  }
21625
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarLeft {
21625
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarLeft {
21626
21626
  grid-column: 1;
21627
21627
  grid-row: 1;
21628
21628
  align-self: start;
21629
21629
  justify-self: center;
21630
21630
  }
21631
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarCenter {
21631
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarCenter {
21632
21632
  grid-column: 1;
21633
21633
  grid-row: 2;
21634
21634
  align-self: center;
21635
21635
  justify-self: center;
21636
21636
  }
21637
- .rt-Toolbar:where([data-anchor='left'], [data-anchor='right']) .rt-ToolbarRight {
21637
+ .rt-AppBar:where([data-anchor='left'], [data-anchor='right']) .rt-AppBarRight {
21638
21638
  grid-column: 1;
21639
21639
  grid-row: 3;
21640
21640
  align-self: end;
21641
21641
  justify-self: center;
21642
21642
  }
21643
- .rt-Toolbar:where([data-anchor='top']) {
21643
+ .rt-AppBar:where([data-anchor='top']) {
21644
21644
  top: 0;
21645
21645
  left: 0;
21646
21646
  right: 0;
21647
21647
  }
21648
- .rt-Toolbar:where([data-anchor='bottom']) {
21648
+ .rt-AppBar:where([data-anchor='bottom']) {
21649
21649
  bottom: 0;
21650
21650
  left: 0;
21651
21651
  right: 0;
21652
21652
  }
21653
- .rt-Toolbar:where([data-anchor='left']) {
21653
+ .rt-AppBar:where([data-anchor='left']) {
21654
21654
  top: 0;
21655
21655
  bottom: 0;
21656
21656
  left: 0;
21657
21657
  }
21658
- .rt-Toolbar:where([data-anchor='right']) {
21658
+ .rt-AppBar:where([data-anchor='right']) {
21659
21659
  top: 0;
21660
21660
  bottom: 0;
21661
21661
  right: 0;
21662
21662
  }
21663
- .rt-Toolbar:where(:not([data-floating])) {
21663
+ .rt-AppBar:where(:not([data-floating])) {
21664
21664
  --base-card-border-radius: 0;
21665
21665
  border-radius: 0;
21666
21666
  }
21667
- .rt-Toolbar:where([data-anchor='top']:not([data-floating]))::after {
21667
+ .rt-AppBar:where([data-anchor='top']:not([data-floating]))::after {
21668
21668
  -webkit-box-shadow: inset 0 -1px 0 0 var(--gray-6);
21669
21669
  box-shadow: inset 0 -1px 0 0 var(--gray-6);
21670
21670
  }
21671
- :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 {
21671
+ :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 {
21672
21672
  -webkit-box-shadow: inset 0 -1px 0 0 var(--gray-a6);
21673
21673
  box-shadow: inset 0 -1px 0 0 var(--gray-a6);
21674
21674
  }
21675
- .rt-Toolbar:where([data-anchor='bottom']:not([data-floating]))::after {
21675
+ .rt-AppBar:where([data-anchor='bottom']:not([data-floating]))::after {
21676
21676
  -webkit-box-shadow: inset 0 1px 0 0 var(--gray-6);
21677
21677
  box-shadow: inset 0 1px 0 0 var(--gray-6);
21678
21678
  }
21679
- :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 {
21679
+ :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 {
21680
21680
  -webkit-box-shadow: inset 0 1px 0 0 var(--gray-a6);
21681
21681
  box-shadow: inset 0 1px 0 0 var(--gray-a6);
21682
21682
  }
21683
- .rt-Toolbar:where([data-anchor='left']:not([data-floating]))::after {
21683
+ .rt-AppBar:where([data-anchor='left']:not([data-floating]))::after {
21684
21684
  -webkit-box-shadow: inset -1px 0 0 0 var(--gray-6);
21685
21685
  box-shadow: inset -1px 0 0 0 var(--gray-6);
21686
21686
  }
21687
- :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 {
21687
+ :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 {
21688
21688
  -webkit-box-shadow: inset -1px 0 0 0 var(--gray-a6);
21689
21689
  box-shadow: inset -1px 0 0 0 var(--gray-a6);
21690
21690
  }
21691
- .rt-Toolbar:where([data-anchor='right']:not([data-floating]))::after {
21691
+ .rt-AppBar:where([data-anchor='right']:not([data-floating]))::after {
21692
21692
  -webkit-box-shadow: inset 1px 0 0 0 var(--gray-6);
21693
21693
  box-shadow: inset 1px 0 0 0 var(--gray-6);
21694
21694
  }
21695
- :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 {
21695
+ :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 {
21696
21696
  -webkit-box-shadow: inset 1px 0 0 0 var(--gray-a6);
21697
21697
  box-shadow: inset 1px 0 0 0 var(--gray-a6);
21698
21698
  }
21699
- .rt-Toolbar:where(.rt-variant-ghost:not([data-floating]))::after {
21699
+ .rt-AppBar:where(.rt-variant-ghost:not([data-floating]))::after {
21700
21700
  -webkit-box-shadow: none;
21701
21701
  box-shadow: none;
21702
21702
  }
21703
- .rt-Toolbar:where(.rt-variant-soft:not([data-floating]))::after {
21703
+ .rt-AppBar:where(.rt-variant-soft:not([data-floating]))::after {
21704
21704
  -webkit-box-shadow: none;
21705
21705
  box-shadow: none;
21706
21706
  }
21707
- .rt-ToolbarTitle {
21707
+ .rt-AppBarTitle {
21708
21708
  min-width: 0;
21709
21709
  -ms-flex-negative: 1;
21710
21710
  flex-shrink: 1;
21711
21711
  }
21712
- .rt-ToolbarSection {
21712
+ .rt-AppBarSection {
21713
21713
  min-width: 0;
21714
21714
  }
21715
- .rt-ToolbarLeft {
21715
+ .rt-AppBarLeft {
21716
21716
  grid-column: 1;
21717
21717
  justify-self: start;
21718
21718
  }
21719
- .rt-ToolbarCenter {
21719
+ .rt-AppBarCenter {
21720
21720
  grid-column: 2;
21721
21721
  justify-self: center;
21722
21722
  }
21723
- .rt-ToolbarRight {
21723
+ .rt-AppBarRight {
21724
21724
  grid-column: 3;
21725
21725
  justify-self: end;
21726
21726
  }
21727
+ .rt-Toolbar {
21728
+ --toolbar-group-inset: calc(var(--space-1) / 2);
21729
+ display: -webkit-box;
21730
+ display: -ms-flexbox;
21731
+ display: flex;
21732
+ -webkit-box-align: center;
21733
+ -ms-flex-align: center;
21734
+ align-items: center;
21735
+ -webkit-box-pack: justify;
21736
+ -ms-flex-pack: justify;
21737
+ justify-content: space-between;
21738
+ gap: var(--toolbar-gap);
21739
+ min-width: 0;
21740
+ min-height: var(--toolbar-control-height);
21741
+ -webkit-box-sizing: border-box;
21742
+ box-sizing: border-box;
21743
+ }
21744
+ .rt-Toolbar:where([data-orientation='vertical']) {
21745
+ -webkit-box-orient: vertical;
21746
+ -webkit-box-direction: normal;
21747
+ -ms-flex-direction: column;
21748
+ flex-direction: column;
21749
+ -webkit-box-pack: start;
21750
+ -ms-flex-pack: start;
21751
+ justify-content: flex-start;
21752
+ min-height: 0;
21753
+ min-width: var(--toolbar-control-height);
21754
+ }
21755
+ .rt-Toolbar:where(.rt-r-size-1) {
21756
+ --toolbar-control-height: var(--space-5);
21757
+ --toolbar-radius: max(var(--radius-1), var(--radius-full));
21758
+ --toolbar-gap: var(--space-1);
21759
+ --toolbar-title-gap: var(--space-2);
21760
+ }
21761
+ .rt-Toolbar:where(.rt-r-size-2) {
21762
+ --toolbar-control-height: var(--space-6);
21763
+ --toolbar-radius: max(var(--radius-2), var(--radius-full));
21764
+ --toolbar-gap: var(--space-2);
21765
+ --toolbar-title-gap: var(--space-3);
21766
+ }
21767
+ .rt-Toolbar:where(.rt-r-size-3) {
21768
+ --toolbar-control-height: var(--space-7);
21769
+ --toolbar-radius: max(var(--radius-3), var(--radius-full));
21770
+ --toolbar-gap: var(--space-2);
21771
+ --toolbar-title-gap: var(--space-4);
21772
+ }
21773
+ .rt-Toolbar:where(.rt-r-size-4) {
21774
+ --toolbar-control-height: var(--space-8);
21775
+ --toolbar-radius: max(var(--radius-4), var(--radius-full));
21776
+ --toolbar-gap: var(--space-3);
21777
+ --toolbar-title-gap: var(--space-5);
21778
+ }
21779
+ .rt-ToolbarGroup {
21780
+ display: -webkit-inline-box;
21781
+ display: -ms-inline-flexbox;
21782
+ display: inline-flex;
21783
+ -webkit-box-align: center;
21784
+ -ms-flex-align: center;
21785
+ align-items: center;
21786
+ -ms-flex-negative: 0;
21787
+ flex-shrink: 0;
21788
+ -webkit-box-sizing: border-box;
21789
+ box-sizing: border-box;
21790
+ height: var(--toolbar-control-height);
21791
+ padding: var(--toolbar-group-inset);
21792
+ border-radius: var(--toolbar-radius);
21793
+ background-color: var(--gray-a3);
21794
+ }
21795
+ .rt-ToolbarGroup:where([data-orientation='vertical']) {
21796
+ -webkit-box-orient: vertical;
21797
+ -webkit-box-direction: normal;
21798
+ -ms-flex-direction: column;
21799
+ flex-direction: column;
21800
+ height: auto;
21801
+ width: var(--toolbar-control-height);
21802
+ }
21803
+ .rt-ToolbarGroup > :where(.rt-BaseButton) {
21804
+ --base-button-height: calc(var(--toolbar-control-height) - 2 * var(--toolbar-group-inset));
21805
+ border-radius: max(0px, calc(var(--toolbar-radius) - var(--toolbar-group-inset)));
21806
+ }
21807
+ .rt-ToolbarSeparator {
21808
+ -ms-flex-negative: 0;
21809
+ flex-shrink: 0;
21810
+ background-color: var(--gray-a5);
21811
+ }
21812
+ .rt-ToolbarSeparator:where([data-orientation='vertical']) {
21813
+ width: var(--border-width-standard);
21814
+ height: calc(var(--toolbar-control-height) / 2);
21815
+ }
21816
+ .rt-ToolbarSeparator:where([data-orientation='horizontal']) {
21817
+ height: var(--border-width-standard);
21818
+ width: calc(var(--toolbar-control-height) / 2);
21819
+ }
21820
+ .rt-ToolbarTitle {
21821
+ min-width: 0;
21822
+ -ms-flex-negative: 1;
21823
+ flex-shrink: 1;
21824
+ }
21825
+ :where(.rt-Toolbar) .rt-ToolbarTitle:where(:not(:first-child)) {
21826
+ -webkit-margin-start: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
21827
+ margin-inline-start: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
21828
+ }
21829
+ :where(.rt-Toolbar) .rt-ToolbarTitle:where(:not(:last-child)) {
21830
+ -webkit-margin-end: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
21831
+ margin-inline-end: calc(var(--toolbar-title-gap) - var(--toolbar-gap));
21832
+ }
21727
21833
  .rt-TooltipContent {
21728
21834
  -webkit-box-sizing: border-box;
21729
21835
  box-sizing: border-box;
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import { Heading } from './heading.js';
3
+ import type { CardProps } from './card.js';
4
+ import type { FlexProps } from './flex.js';
5
+ type Anchor = 'top' | 'bottom' | 'left' | 'right';
6
+ type SpaceScale = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
7
+ interface AppBarRootProps extends Omit<CardProps, 'asChild'> {
8
+ /**
9
+ * Which edge to anchor to. Sets position: sticky and the appropriate edge.
10
+ * @default "top"
11
+ */
12
+ anchor?: Anchor;
13
+ /**
14
+ * Floating mode adds margin from edges for a detached look with absolute positioning.
15
+ * When false (default), uses inset mode with negative margins to go edge-to-edge inside Cards.
16
+ * @default false
17
+ */
18
+ floating?: boolean;
19
+ /**
20
+ * Margin offset from edges when floating. Uses space scale values.
21
+ * @default "2"
22
+ */
23
+ offset?: SpaceScale;
24
+ }
25
+ /**
26
+ * An app bar: the band anchored to one edge of a pane, with left, center and right sections
27
+ * and a title. It publishes its height (or width) to its parent as `--rt-app-bar-height`
28
+ * (`--rt-app-bar-width`) so content can pad itself clear of it.
29
+ *
30
+ * This component was called `Toolbar` until 0.11.0. It is not a `role="toolbar"`: for a row of
31
+ * controls with one tab stop and arrow-key navigation, use `Toolbar`.
32
+ */
33
+ declare const AppBarRoot: React.ForwardRefExoticComponent<AppBarRootProps & React.RefAttributes<HTMLDivElement>>;
34
+ type AppBarSectionProps = FlexProps;
35
+ declare const AppBarLeft: React.ForwardRefExoticComponent<FlexProps & React.RefAttributes<HTMLDivElement>>;
36
+ declare const AppBarCenter: React.ForwardRefExoticComponent<FlexProps & React.RefAttributes<HTMLDivElement>>;
37
+ declare const AppBarRight: React.ForwardRefExoticComponent<FlexProps & React.RefAttributes<HTMLDivElement>>;
38
+ type AppBarTitleProps = React.ComponentPropsWithoutRef<typeof Heading>;
39
+ declare const AppBarTitle: React.ForwardRefExoticComponent<AppBarTitleProps & React.RefAttributes<HTMLHeadingElement>>;
40
+ declare const AppBar: typeof AppBarRoot & {
41
+ Root: typeof AppBarRoot;
42
+ Left: typeof AppBarLeft;
43
+ Center: typeof AppBarCenter;
44
+ Right: typeof AppBarRight;
45
+ Title: typeof AppBarTitle;
46
+ };
47
+ export { AppBar, AppBarRoot as Root, AppBarLeft as Left, AppBarCenter as Center, AppBarRight as Right, AppBarTitle as Title, };
48
+ export type { AppBarRootProps as RootProps, AppBarSectionProps as LeftProps, AppBarSectionProps as CenterProps, AppBarSectionProps as RightProps, AppBarTitleProps as TitleProps, };
49
+ //# sourceMappingURL=app-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-bar.d.ts","sourceRoot":"","sources":["../../../src/components/app-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAO3C,KAAK,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAClD,KAAK,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEtE,UAAU,eAAgB,SAAQ,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;IAC1D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,UAAU,wFA0Ff,CAAC;AAQF,KAAK,kBAAkB,GAAG,SAAS,CAAC;AAEpC,QAAA,MAAM,UAAU,kFAYf,CAAC;AAOF,QAAA,MAAM,YAAY,kFAajB,CAAC;AAOF,QAAA,MAAM,WAAW,kFAahB,CAAC;AAQF,KAAK,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvE,QAAA,MAAM,WAAW,6FAahB,CAAC;AAOF,QAAA,MAAM,MAAM,EAAiB,OAAO,UAAU,GAAG;IAC/C,IAAI,EAAE,OAAO,UAAU,CAAC;IACxB,IAAI,EAAE,OAAO,UAAU,CAAC;IACxB,MAAM,EAAE,OAAO,YAAY,CAAC;IAC5B,KAAK,EAAE,OAAO,WAAW,CAAC;IAC1B,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B,CAAC;AAQF,OAAO,EACL,MAAM,EACN,UAAU,IAAI,IAAI,EAClB,UAAU,IAAI,IAAI,EAClB,YAAY,IAAI,MAAM,EACtB,WAAW,IAAI,KAAK,EACpB,WAAW,IAAI,KAAK,GACrB,CAAC;AACF,YAAY,EACV,eAAe,IAAI,SAAS,EAC5B,kBAAkB,IAAI,SAAS,EAC/B,kBAAkB,IAAI,WAAW,EACjC,kBAAkB,IAAI,UAAU,EAChC,gBAAgB,IAAI,UAAU,GAC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";var Ce=Object.create;var T=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var Te=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var Ae=(t,e)=>{for(var r in e)T(t,r,{get:e[r],enumerable:!0})},_=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ve(e))!Be.call(t,n)&&n!==r&&T(t,n,{get:()=>e[n],enumerable:!(s=we(e,n))||s.enumerable});return t};var d=(t,e,r)=>(r=t!=null?Ce(Te(t)):{},_(e||!t||!t.__esModule?T(r,"default",{value:t,enumerable:!0}):r,t)),je=t=>_(T({},"__esModule",{value:!0}),t);var ct={};Ae(ct,{AppBar:()=>N,Center:()=>K,Left:()=>L,Right:()=>U,Root:()=>E,Title:()=>q});module.exports=je(ct);var m=d(require("react")),x=d(require("classnames"));var A=d(require("react")),re=d(require("classnames")),se=require("radix-ui");var h={asChild:{type:"boolean"}};var He=["1","2","3","4","5"],Ee=["surface","outline","classic","ghost","soft"],ke=["solid","translucent"],Oe=["solid","translucent"],J={...h,size:{type:"enum",className:"rt-r-size",values:He,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Ee,default:"outline"},panelBackground:{type:"enum",values:ke,default:void 0},material:{type:"enum",values:Oe,default:void 0},flush:{type:"boolean",default:!1},inset:{type:"boolean",default:!1}};var te=d(require("classnames"));var Ge=[],We=new Set;function Fe(t){let e=Object.assign({},...t),r=[],s=[],n=new Set;for(let i in e){let p=e[i],l=p.values??Ge,a={key:i,type:p.type,default:p.default,hasDefault:p.default!==void 0,responsive:"responsive"in p,className:p.className,customProperties:p.customProperties,parseValue:p.parseValue,values:l,valueSet:l.length>0?new Set(l):We,enumValueSet:p.type==="enum"?new Set([p.default,...l]):void 0};p.className?(r.push(a),n.add(i)):(a.hasDefault||p.type==="enum")&&s.push(a)}return{styling:r,passthrough:s,stylingKeys:n}}var $e={children:new WeakMap};function Q(t){let e=$e;for(let r=0;r<t.length;r++){let s=t[r],n=e.children.get(s);n===void 0&&(n={children:new WeakMap},e.children.set(s,n)),e=n}return e.compiled??(e.compiled=Fe(t))}var Me=["initial","xs","sm","md","lg","xl"],k=new Set(Me);function O(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var ze=new Set(["initial","xs","sm","md","lg","xl"]);function y(t){if(typeof t!="object"||t===null)return!1;for(let e in t)if(ze.has(e))return!0;return!1}function B(t,e,r){return e!==void 0?e.has(r):t.includes(r)}function ee({className:t,customProperties:e,...r}){let s=G({allowArbitraryValues:!0,className:t,...r}),n=Le({customProperties:e,...r});return[s,n]}function G({allowArbitraryValues:t,value:e,className:r,propValues:s,propValueSet:n,parseValue:i=p=>p}){if(e){if(typeof e=="string")return B(s,n,e)?Z(r,e,i):t?r:void 0;if(y(e)){let p=e,l=[];for(let a in p){if(!O(p,a)||!k.has(a))continue;let o=p[a];if(o!==void 0){if(B(s,n,o)){let f=Z(r,o,i),u=a==="initial"?f:`${a}:${f}`;l.push(u)}else if(t){let f=a==="initial"?r:`${a}:${r}`;l.push(f)}}}return l.length>0?l.join(" "):""}if(t)return r}}function Z(t,e,r){let s=t?"-":"",n=r(e),i=n?.startsWith("-"),p=i?"-":"",l=i?n?.substring(1):n;return`${p}${t}${s}${l}`}function Le({customProperties:t,value:e,propValues:r,propValueSet:s,parseValue:n=i=>i}){if(!e||typeof e=="string"&&B(r,s,e))return;let i;if(typeof e=="string"){let p=n(e);i={};for(let l of t)i[l]=p;return i}if(y(e)){let p=e;for(let l in p){if(!O(p,l)||!k.has(l))continue;let a=p[l];if(a===void 0||B(r,s,a))continue;let o=n(a);i??(i={});for(let f of t){let u=l==="initial"?f:`${f}-${l}`;i[u]=o}}}return i??{}}function W(...t){let e;for(let r of t)r&&(e===void 0&&(e={}),Object.assign(e,r));return e}function Ke(t,e){let r=t.initial,s=!1;return e.hasDefault&&r===void 0&&(r=e.default,s=!0),e.enumValueSet!==void 0&&!e.enumValueSet.has(r)&&(r=e.default,s=!0),s?{...t,initial:r}:t}function R(t,...e){let{styling:r,passthrough:s,stylingKeys:n}=Q(e),i={};for(let a in t)n.has(a)||(i[a]=t[a]);for(let a=0;a<s.length;a++){let o=s[a],f=i[o.key];if(f===void 0){o.hasDefault&&(i[o.key]=o.default);continue}o.enumValueSet!==void 0&&!o.enumValueSet.has(f)&&!y(f)&&(i[o.key]=o.default)}let p,l=[];for(let a=0;a<r.length;a++){let o=r[a],f=t[o.key];if(f===void 0&&o.hasDefault&&(f=o.default),o.enumValueSet!==void 0&&!o.enumValueSet.has(f)&&!y(f)&&(f=o.default),!!f){if(y(f)){if(!o.responsive)continue;f=Ke(f,o)}if(o.type==="enum"){let u=G({allowArbitraryValues:!1,value:f,className:o.className,propValues:o.values,propValueSet:o.valueSet,parseValue:o.parseValue});u&&l.push(u);continue}if(o.type==="string"||o.type==="enum | string"){let[u,v]=ee({className:o.className,customProperties:o.customProperties,propValues:o.type==="string"?[]:o.values,propValueSet:o.type==="string"?void 0:o.valueSet,parseValue:o.parseValue,value:f});v&&(p=W(p,v)),u&&l.push(u);continue}if(o.type==="boolean"){l.push(o.className);continue}}}return i.className=(0,te.default)(l.length>0?l.join(" "):void 0,t.className),i.style=W(p,t.style),i}var g=["0","1","2","3","4","5","6","7","8","9","10","11","12","-1","-2","-3","-4","-5","-6","-7","-8","-9","-10","-11","-12"],b={m:{type:"enum | string",values:g,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:g,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:g,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}};var F=A.forwardRef((t,e)=>{let{asChild:r,className:s,panelBackground:n,material:i,flush:p,inset:l,...a}=R(t,J,b),o=i||n,f=r?se.Slot.Root:"div";return A.createElement(f,{ref:e,...a,"data-panel-background":o,"data-material":o,"data-flush":p?"true":void 0,"data-inset":l?"true":void 0,className:(0,re.default)("rt-reset","rt-BaseCard","rt-Card",s)})});F.displayName="Card";var H=d(require("react")),me=d(require("classnames"));var P=["0","1","2","3","4","5","6","7","8","9","10","11","12"],oe={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:P,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:P,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:P,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:P,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:P,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:P,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:P,responsive:!0}};var pe={height:{type:"string",className:"rt-r-h",customProperties:["--height"],responsive:!0},minHeight:{type:"string",className:"rt-r-min-h",customProperties:["--min-height"],responsive:!0},maxHeight:{type:"string",className:"rt-r-max-h",customProperties:["--max-height"],responsive:!0}};var ne={width:{type:"string",className:"rt-r-w",customProperties:["--width"],responsive:!0},minWidth:{type:"string",className:"rt-r-min-w",customProperties:["--min-width"],responsive:!0},maxWidth:{type:"string",className:"rt-r-max-w",customProperties:["--max-width"],responsive:!0}};var $=["visible","hidden","clip","scroll","auto"],Ue=["static","relative","absolute","fixed","sticky"],w=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],qe=["0","1"],Ye=["0","1"],Ie=["start","center","end","baseline","stretch"],Xe=["start","center","end","baseline","stretch"],ie={...oe,...ne,...pe,position:{type:"enum",className:"rt-r-position",values:Ue,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:w,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:w,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:w,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:w,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:w,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:$,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:$,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:$,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:qe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:Ye,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0},alignSelf:{type:"enum",className:"rt-r-as",values:Ie,responsive:!0},justifySelf:{type:"enum",className:"rt-r-js",values:Xe,responsive:!0}};var j=require("radix-ui"),Kt=j.Slot.Root,ae=j.Slot.Root,Ut=j.Slot.Slottable;var M=["0","1","2","3","4","5","6","7","8","9","10","11","12"],le={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:M,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:M,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:M,responsive:!0}};var _e=["div","span"],Je=["none","inline-flex","flex"],Qe=["row","column","row-reverse","column-reverse"],Ze=["start","center","end","baseline","stretch"],et=["start","center","end","between"],tt=["nowrap","wrap","wrap-reverse"],fe={as:{type:"enum",values:_e,default:"div"},...h,display:{type:"enum",className:"rt-r-display",values:Je,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:Qe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:Ze,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:et,parseValue:rt,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:tt,responsive:!0},...le};function rt(t){return t==="between"?"space-between":t}var V=H.forwardRef((t,e)=>{let{className:r,asChild:s,as:n="div",...i}=R(t,fe,ie,b);return H.createElement(s?ae:n,{...i,ref:e,className:(0,me.default)("rt-Flex",r)})});V.displayName="Flex";var D=d(require("react")),Re=require("radix-ui");var st=["gray","gold","bronze","brown","yellow","amber","orange","tomato","red","ruby","crimson","pink","plum","purple","violet","iris","indigo","blue","cyan","teal","jade","green","grass","lime","mint","sky"];var ue={color:{type:"enum",values:st,default:void 0}};var ot=["loud","medium","quiet"],ce={emphasis:{type:"enum",className:"rt-emphasis",values:ot,default:void 0}};var pt=["normal","start","end","both"],de={trim:{type:"enum",className:"rt-r-lt",values:pt,responsive:!0}};var nt=["left","center","right"],ye={align:{type:"enum",className:"rt-r-ta",values:nt,responsive:!0}};var it=["wrap","nowrap","pretty","balance"],ge={wrap:{type:"enum",className:"rt-r-tw",values:it,responsive:!0}};var Pe={truncate:{type:"boolean",className:"rt-truncate"}};var at=["sans","mono","serif"],De={font:{type:"enum",className:"rt-r-ff",values:at}};var lt=["thin","extralight","light","regular","medium","semibold","bold","extrabold"],ve={weight:{type:"enum",className:"rt-r-weight",values:lt,responsive:!0}};var ft=["h1","h2","h3","h4","h5","h6"],mt=["0","1","2","3","4","5","6","7","8","9","10","11","12"],he={as:{type:"enum",values:ft,default:"h1"},...h,size:{type:"enum",className:"rt-r-size",values:mt,default:"6",responsive:!0},...De,...ve,...ye,...de,...Pe,...ge,...ue,...ce};var ut={...he,...b},z=D.memo(D.forwardRef((t,e)=>{let{children:r,className:s,asChild:n,as:i="h1",color:p,...l}=R(t,ut),a=s?`rt-Heading ${s}`:"rt-Heading";return n?D.createElement(Re.Slot.Root,{"data-accent-color":p,...l,ref:e,className:a},r):D.createElement(i,{"data-accent-color":p,...l,ref:e,className:a},r)}));z.displayName="Heading";var E=m.forwardRef((t,e)=>{let{anchor:r="top",floating:s=!1,offset:n="2",size:i="1",variant:p="ghost",material:l,className:a,style:o,children:f,...u}=t,v=r==="top"||r==="bottom",Y=m.useRef(null),be=m.useCallback(c=>{Y.current=c,typeof e=="function"?e(c):e&&(e.current=c)},[e]);m.useEffect(()=>{let c=Y.current;if(!c)return;let S=c.parentElement;if(!S)return;let I=()=>{let C=v?c.offsetHeight:c.offsetWidth;if(s){let Ne=getComputedStyle(c),Se=parseFloat(Ne.marginTop)||0;C+=Se*2}v?(S.style.setProperty("--rt-app-bar-height",`${C}px`),S.style.setProperty("--rt-toolbar-height",`${C}px`)):(S.style.setProperty("--rt-app-bar-width",`${C}px`),S.style.setProperty("--rt-toolbar-width",`${C}px`))};I();let X=new ResizeObserver(I);return X.observe(c),()=>X.disconnect()},[v,s]);let xe=s?{margin:`var(--space-${n})`,...o}:o;return m.createElement(F,{ref:be,size:i,variant:p,material:l,"data-anchor":r,"data-floating":s||void 0,className:(0,x.default)("rt-AppBar",a),style:xe,...u},m.createElement("div",{className:"rt-AppBarInner"},f))});E.displayName="AppBar.Root";var L=m.forwardRef(({gap:t="2",align:e="center",className:r,children:s,...n},i)=>m.createElement(V,{ref:i,align:e,gap:t,className:(0,x.default)("rt-AppBarSection","rt-AppBarLeft",r),...n},s));L.displayName="AppBar.Left";var K=m.forwardRef(({gap:t="2",align:e="center",justify:r="center",className:s,children:n,...i},p)=>m.createElement(V,{ref:p,align:e,justify:r,gap:t,className:(0,x.default)("rt-AppBarSection","rt-AppBarCenter",s),...i},n));K.displayName="AppBar.Center";var U=m.forwardRef(({gap:t="2",align:e="center",justify:r="end",className:s,children:n,...i},p)=>m.createElement(V,{ref:p,align:e,justify:r,gap:t,className:(0,x.default)("rt-AppBarSection","rt-AppBarRight",s),...i},n));U.displayName="AppBar.Right";var q=m.forwardRef(({className:t,size:e="2",weight:r="medium",truncate:s=!0,children:n,...i},p)=>m.createElement(z,{ref:p,size:e,weight:r,truncate:s,className:(0,x.default)("rt-AppBarTitle",t),...i},n));q.displayName="AppBar.Title";var N=E;N.Root=E;N.Left=L;N.Center=K;N.Right=U;N.Title=q;
2
+ //# sourceMappingURL=app-bar.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/app-bar.tsx", "../../../src/components/card.tsx", "../../../src/props/as-child.prop.ts", "../../../src/components/card.props.tsx", "../../../src/helpers/extract-props.ts", "../../../src/helpers/compile-prop-defs.ts", "../../../src/props/prop-def.ts", "../../../src/helpers/has-own-property.ts", "../../../src/helpers/is-responsive-object.ts", "../../../src/helpers/get-responsive-styles.ts", "../../../src/helpers/merge-styles.ts", "../../../src/props/margin.props.ts", "../../../src/components/flex.tsx", "../../../src/props/padding.props.ts", "../../../src/props/height.props.ts", "../../../src/props/width.props.ts", "../../../src/props/layout.props.ts", "../../../src/components/slot.tsx", "../../../src/props/gap.props.ts", "../../../src/components/flex.props.tsx", "../../../src/components/heading.tsx", "../../../src/props/color.prop.ts", "../../../src/props/emphasis.prop.ts", "../../../src/props/leading-trim.prop.ts", "../../../src/props/text-align.prop.ts", "../../../src/props/text-wrap.prop.ts", "../../../src/props/truncate.prop.ts", "../../../src/props/font-family.prop.ts", "../../../src/props/weight.prop.ts", "../../../src/components/heading.props.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// AppBar Root\n// ============================================================================\n\ntype AppBarRootElement = React.ElementRef<'div'>;\ntype Anchor = 'top' | 'bottom' | 'left' | 'right';\ntype SpaceScale = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\ninterface AppBarRootProps 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\n/**\n * An app bar: the band anchored to one edge of a pane, with left, center and right sections\n * and a title. It publishes its height (or width) to its parent as `--rt-app-bar-height`\n * (`--rt-app-bar-width`) so content can pad itself clear of it.\n *\n * This component was called `Toolbar` until 0.11.0. It is not a `role=\"toolbar\"`: for a row of\n * controls with one tab stop and arrow-key navigation, use `Toolbar`.\n */\nconst AppBarRoot = React.forwardRef<AppBarRootElement, AppBarRootProps>(\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 // `--rt-toolbar-*` are the names this bar published while it was called Toolbar.\n // They are still written so existing layouts keep their offset; prefer `--rt-app-bar-*`.\n if (isHorizontal) {\n parent.style.setProperty('--rt-app-bar-height', `${dimension}px`);\n parent.style.setProperty('--rt-toolbar-height', `${dimension}px`);\n } else {\n parent.style.setProperty('--rt-app-bar-width', `${dimension}px`);\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-AppBar', className)}\n style={computedStyle}\n {...restProps}\n >\n <div className=\"rt-AppBarInner\">\n {children}\n </div>\n </Card>\n );\n },\n);\nAppBarRoot.displayName = 'AppBar.Root';\n\n// ============================================================================\n// AppBar Left (for horizontal) / Start (alias)\n// ============================================================================\n\ntype AppBarSectionElement = React.ElementRef<'div'>;\ntype AppBarSectionProps = FlexProps;\n\nconst AppBarLeft = React.forwardRef<AppBarSectionElement, AppBarSectionProps>(\n ({ gap = '2', align = 'center', className, children, ...props }, forwardedRef) => (\n <Flex\n ref={forwardedRef}\n align={align}\n gap={gap}\n className={classNames('rt-AppBarSection', 'rt-AppBarLeft', className)}\n {...props}\n >\n {children}\n </Flex>\n ),\n);\nAppBarLeft.displayName = 'AppBar.Left';\n\n// ============================================================================\n// AppBar Center\n// ============================================================================\n\nconst AppBarCenter = React.forwardRef<AppBarSectionElement, AppBarSectionProps>(\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-AppBarSection', 'rt-AppBarCenter', className)}\n {...props}\n >\n {children}\n </Flex>\n ),\n);\nAppBarCenter.displayName = 'AppBar.Center';\n\n// ============================================================================\n// AppBar Right (for horizontal) / End (alias)\n// ============================================================================\n\nconst AppBarRight = React.forwardRef<AppBarSectionElement, AppBarSectionProps>(\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-AppBarSection', 'rt-AppBarRight', className)}\n {...props}\n >\n {children}\n </Flex>\n ),\n);\nAppBarRight.displayName = 'AppBar.Right';\n\n// ============================================================================\n// AppBar Title\n// ============================================================================\n\ntype AppBarTitleElement = React.ElementRef<typeof Heading>;\ntype AppBarTitleProps = React.ComponentPropsWithoutRef<typeof Heading>;\n\nconst AppBarTitle = React.forwardRef<AppBarTitleElement, AppBarTitleProps>(\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-AppBarTitle', className)}\n {...props}\n >\n {children}\n </Heading>\n ),\n);\nAppBarTitle.displayName = 'AppBar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst AppBar = AppBarRoot as typeof AppBarRoot & {\n Root: typeof AppBarRoot;\n Left: typeof AppBarLeft;\n Center: typeof AppBarCenter;\n Right: typeof AppBarRight;\n Title: typeof AppBarTitle;\n};\n\nAppBar.Root = AppBarRoot;\nAppBar.Left = AppBarLeft;\nAppBar.Center = AppBarCenter;\nAppBar.Right = AppBarRight;\nAppBar.Title = AppBarTitle;\n\nexport {\n AppBar,\n AppBarRoot as Root,\n AppBarLeft as Left,\n AppBarCenter as Center,\n AppBarRight as Right,\n AppBarTitle as Title,\n};\nexport type {\n AppBarRootProps as RootProps,\n AppBarSectionProps as LeftProps,\n AppBarSectionProps as CenterProps,\n AppBarSectionProps as RightProps,\n AppBarTitleProps as TitleProps,\n};\n", "import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\n\nimport { cardPropDefs } from './card.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype CardElement = React.ElementRef<'div'>;\ntype CardOwnProps = GetPropDefTypes<typeof cardPropDefs>;\ninterface CardProps extends ComponentPropsWithout<'div', RemovedProps>, MarginProps, CardOwnProps {}\nconst Card = React.forwardRef<CardElement, CardProps>((props, forwardedRef) => {\n const { asChild, className, panelBackground, material, flush, inset, ...cardProps } = extractProps(\n props,\n cardPropDefs,\n marginPropDefs,\n );\n const effectiveMaterial = material || panelBackground;\n const Comp = asChild ? Slot.Root : 'div';\n return (\n <Comp\n ref={forwardedRef}\n {...cardProps}\n data-panel-background={effectiveMaterial}\n data-material={effectiveMaterial}\n data-flush={flush ? 'true' : undefined}\n data-inset={inset ? 'true' : undefined}\n className={classNames('rt-reset', 'rt-BaseCard', 'rt-Card', className)}\n />\n );\n});\nCard.displayName = 'Card';\n\nexport { Card };\nexport type { CardProps };\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5'] as const;\nconst variants = ['surface', 'outline', 'classic', 'ghost', 'soft'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst cardPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '1', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'outline' },\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n material: { type: 'enum', values: materials, default: undefined },\n flush: { type: 'boolean', default: false },\n inset: { type: 'boolean', default: false },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n material: PropDef<(typeof materials)[number] | undefined>;\n flush: PropDef<boolean>;\n inset: PropDef<boolean>;\n};\n\nexport { cardPropDefs };\n", "import classNames from 'classnames';\n\nimport { getCompiledPropDefs } from './compile-prop-defs.js';\nimport { getResponsiveClassNames, getResponsiveStyles } from './get-responsive-styles.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\nimport { mergeStyles } from './merge-styles.js';\n\nimport type { CompiledPropDef } from './compile-prop-defs.js';\nimport type * as React from 'react';\nimport type { PropDef } from '../props/prop-def.js';\n\ntype PropDefsWithClassName<T> = T extends Record<string, PropDef> ? { [K in keyof T]: T[K] extends { className: string } ? K : never }[keyof T] : never;\n\ntype ResponsiveValue = Record<string, string | undefined>;\n\n/**\n * Fills in the `initial` breakpoint of a responsive value from the prop def's\n * default, and coerces an invalid `initial` enum value back to that default.\n *\n * Returns the value untouched when nothing needs changing, and a copy otherwise\n * \u2014 callers routinely hoist responsive objects to module scope, so mutating the\n * caller's object would corrupt it for every later render.\n */\nfunction normalizeResponsiveValue(value: ResponsiveValue, propDef: CompiledPropDef) {\n let initial = value.initial;\n let changed = false;\n\n if (propDef.hasDefault && initial === undefined) {\n initial = propDef.default as string | undefined;\n changed = true;\n }\n\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(initial)) {\n initial = propDef.default as string | undefined;\n changed = true;\n }\n\n return changed ? { ...value, initial } : value;\n}\n\n/**\n * Takes props, checks them against prop defs that have a `className` on them,\n * adds necessary CSS classes and inline styles, and returns the props without\n * the corresponding prop defs that were used to formulate the new `className`\n * and `style` values. Also applies prop def defaults to every prop.\n */\nfunction extractProps<P extends { className?: string; style?: React.CSSProperties; [key: string]: any }, T extends Record<string, PropDef>[]>(\n props: P,\n ...propDefs: T\n): Omit<P & { className?: string; style?: React.CSSProperties }, PropDefsWithClassName<T[number]>> {\n const { styling, passthrough, stylingKeys } = getCompiledPropDefs(propDefs);\n\n // Copy the props that survive to the element rather than spreading and then\n // deleting the styling keys. Deleting off a spread demotes the object to\n // dictionary mode in V8, and this object is on the render path of every\n // component in the library.\n const extractedProps: Record<string, any> = {};\n for (const key in props) {\n if (stylingKeys.has(key)) continue;\n extractedProps[key] = props[key];\n }\n\n for (let i = 0; i < passthrough.length; i++) {\n const propDef = passthrough[i];\n const value = extractedProps[propDef.key];\n\n if (value === undefined) {\n if (propDef.hasDefault) extractedProps[propDef.key] = propDef.default;\n continue;\n }\n\n // Fall back to the default when the value is not a valid enum value\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(value) && !isResponsiveObject(value)) {\n extractedProps[propDef.key] = propDef.default;\n }\n }\n\n let style: ReturnType<typeof mergeStyles>;\n const classes: string[] = [];\n\n for (let i = 0; i < styling.length; i++) {\n const propDef = styling[i];\n let value = props[propDef.key];\n\n // Apply prop def defaults\n if (value === undefined && propDef.hasDefault) {\n value = propDef.default;\n }\n\n // Apply the default value if the value is not a valid enum value\n if (propDef.enumValueSet !== undefined && !propDef.enumValueSet.has(value) && !isResponsiveObject(value)) {\n value = propDef.default;\n }\n\n if (!value) continue;\n\n if (isResponsiveObject(value)) {\n // Make sure we are not threading through responsive values for non-responsive prop defs\n if (!propDef.responsive) continue;\n value = normalizeResponsiveValue(value, propDef);\n }\n\n if (propDef.type === 'enum') {\n const propClassName = getResponsiveClassNames({\n allowArbitraryValues: false,\n value,\n className: propDef.className!,\n propValues: propDef.values,\n propValueSet: propDef.valueSet,\n parseValue: propDef.parseValue,\n });\n\n if (propClassName) classes.push(propClassName);\n continue;\n }\n\n if (propDef.type === 'string' || propDef.type === 'enum | string') {\n const [propClassNames, propCustomProperties] = getResponsiveStyles({\n className: propDef.className!,\n customProperties: propDef.customProperties!,\n // `string` prop defs have no enum values, so every value is arbitrary\n propValues: propDef.type === 'string' ? [] : propDef.values,\n propValueSet: propDef.type === 'string' ? undefined : propDef.valueSet,\n parseValue: propDef.parseValue,\n value,\n });\n\n if (propCustomProperties) style = mergeStyles(style, propCustomProperties);\n if (propClassNames) classes.push(propClassNames);\n continue;\n }\n\n if (propDef.type === 'boolean') {\n // TODO handle responsive boolean props\n classes.push(propDef.className!);\n continue;\n }\n }\n\n extractedProps.className = classNames(classes.length > 0 ? classes.join(' ') : undefined, props.className);\n extractedProps.style = mergeStyles(style, props.style);\n return extractedProps as ReturnType<typeof extractProps<P, T>>;\n}\n\nexport { extractProps };\n", "import type { PropDef } from '../props/prop-def.js';\n\n/**\n * A prop def pre-processed into the exact shape `extractProps` needs at render\n * time. Everything that can be derived from the static prop def \u2014 enum\n * membership sets, whether the def is responsive, whether it carries a default\n * \u2014 is computed once here instead of on every render.\n */\ninterface CompiledPropDef {\n key: string;\n type: PropDef['type'];\n default: unknown;\n hasDefault: boolean;\n responsive: boolean;\n className?: string;\n customProperties?: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n /** The prop def's own enum values, kept for the responsive class name helpers. */\n values: readonly string[];\n /** O(1) membership for `values`. */\n valueSet: ReadonlySet<string>;\n /**\n * `values` plus the default, used to coerce invalid enum values back to the\n * default. Only present for `type: 'enum'` \u2014 `'enum | string'` props accept\n * arbitrary strings and must not be coerced.\n */\n enumValueSet?: ReadonlySet<unknown>;\n}\n\ninterface CompiledPropDefs {\n /** Defs that contribute a class name and/or custom properties. */\n styling: CompiledPropDef[];\n /**\n * Defs that pass through to the element but still need a default applied or\n * an invalid enum value coerced. Defs that can do neither are omitted\n * entirely \u2014 they are already correct as passed.\n */\n passthrough: CompiledPropDef[];\n /** Keys consumed by `styling`, so they can be skipped when copying props. */\n stylingKeys: ReadonlySet<string>;\n}\n\nconst EMPTY_VALUES: readonly string[] = [];\nconst EMPTY_SET: ReadonlySet<string> = new Set();\n\nfunction compile(propDefs: readonly Record<string, PropDef>[]): CompiledPropDefs {\n const merged: Record<string, PropDef> = Object.assign({}, ...propDefs);\n const styling: CompiledPropDef[] = [];\n const passthrough: CompiledPropDef[] = [];\n const stylingKeys = new Set<string>();\n\n for (const key in merged) {\n // The PropDef union is narrowed per-field below; reading the optional\n // members off the union directly is what the runtime actually needs.\n const def = merged[key] as PropDef & {\n default?: unknown;\n values?: readonly string[];\n className?: string;\n customProperties?: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n responsive?: true;\n };\n\n const values = def.values ?? EMPTY_VALUES;\n const compiled: CompiledPropDef = {\n key,\n type: def.type,\n default: def.default,\n hasDefault: def.default !== undefined,\n responsive: 'responsive' in def,\n className: def.className,\n customProperties: def.customProperties,\n parseValue: def.parseValue,\n values,\n valueSet: values.length > 0 ? new Set(values) : EMPTY_SET,\n enumValueSet: def.type === 'enum' ? new Set<unknown>([def.default, ...values]) : undefined,\n };\n\n if (def.className) {\n styling.push(compiled);\n stylingKeys.add(key);\n } else if (compiled.hasDefault || def.type === 'enum') {\n // Anything else is copied through untouched, so there is nothing to do.\n passthrough.push(compiled);\n }\n }\n\n return { styling, passthrough, stylingKeys };\n}\n\ninterface CacheNode {\n children: WeakMap<object, CacheNode>;\n compiled?: CompiledPropDefs;\n}\n\nconst cacheRoot: CacheNode = { children: new WeakMap() };\n\n/**\n * Compiles a set of prop defs, memoized on the identity of the prop def objects\n * themselves. Components always pass the same module-level constants, so after\n * the first render of a given component this is a couple of WeakMap lookups\n * instead of merging 50-odd prop defs into a fresh object.\n */\nfunction getCompiledPropDefs(propDefs: readonly Record<string, PropDef>[]): CompiledPropDefs {\n let node = cacheRoot;\n\n for (let i = 0; i < propDefs.length; i++) {\n const propDef = propDefs[i];\n let child = node.children.get(propDef);\n if (child === undefined) {\n child = { children: new WeakMap() };\n node.children.set(propDef, child);\n }\n node = child;\n }\n\n return (node.compiled ??= compile(propDefs));\n}\n\nexport { getCompiledPropDefs };\nexport type { CompiledPropDef, CompiledPropDefs };\n", "import type React from 'react';\n\n// Creates a union type of string literals with strings, but retains intellisense for the literals.\n// Union<string, 'foo' | 'bar'> => string | Omit<string, 'foo' | 'bar'>\ntype Union<S = string, T extends string | number = string> = T | Omit<S, T>;\n\nconst breakpoints = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as const;\nconst breakpointSet: Set<string> = new Set(breakpoints);\ntype Breakpoint = (typeof breakpoints)[number];\ntype Responsive<T> = T | Partial<Record<Breakpoint, T>>;\n\ntype BooleanPropDef = {\n type: 'boolean';\n default?: boolean;\n required?: boolean;\n className?: string;\n};\ntype StringPropDef = {\n type: 'string';\n default?: string;\n required?: boolean;\n};\ntype ReactNodePropDef = {\n type: 'ReactNode';\n default?: React.ReactNode;\n required?: boolean;\n};\ntype EnumPropDef<T> = {\n type: 'enum';\n values: readonly T[];\n default?: T;\n required?: boolean;\n};\ntype EnumOrStringPropDef<T> = {\n type: 'enum | string';\n values: readonly T[];\n default?: T | string;\n required?: boolean;\n};\n\ntype NonStylingPropDef = {\n className?: never;\n customProperties?: never;\n parseValue?: never;\n};\n\ntype StylingPropDef = {\n className: string;\n parseValue?: (value: string) => string | undefined;\n};\n\ntype ArbitraryStylingPropDef = {\n className: string;\n customProperties: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n};\n\ntype RegularPropDef<T> =\n | ReactNodePropDef\n | BooleanPropDef\n | (StringPropDef & ArbitraryStylingPropDef)\n | (StringPropDef & NonStylingPropDef)\n | (EnumPropDef<T> & StylingPropDef)\n | (EnumPropDef<T> & NonStylingPropDef)\n | (EnumOrStringPropDef<T> & ArbitraryStylingPropDef)\n | (EnumOrStringPropDef<T> & NonStylingPropDef);\ntype ResponsivePropDef<T = any> = RegularPropDef<T> & { responsive: true };\ntype PropDef<T = any> = RegularPropDef<T> | ResponsivePropDef<T>;\n\n// prettier-ignore\ntype GetPropDefType<Def> =\n Def extends BooleanPropDef ? (Def extends ResponsivePropDef ? Responsive<boolean> : boolean)\n : Def extends StringPropDef ? (Def extends ResponsivePropDef ? Responsive<string> : string)\n : Def extends ReactNodePropDef ? (Def extends ResponsivePropDef ? Responsive<React.ReactNode> : React.ReactNode)\n : Def extends EnumOrStringPropDef<infer Type> ?\n Def extends ResponsivePropDef<infer Type extends string> ? Responsive<Union<string, Type>> : Type\n : Def extends EnumPropDef<infer Type> ? (Def extends ResponsivePropDef<infer Type> ? Responsive<Type> : Type)\n : never;\n\ntype GetPropDefTypes<P> = {\n [K in keyof P]?: GetPropDefType<P[K]>;\n};\n\nexport { breakpoints, breakpointSet };\nexport type {\n PropDef,\n GetPropDefTypes,\n ResponsivePropDef,\n //\n Breakpoint,\n Responsive,\n Union,\n};\n", "/** A util to check whether the object has a key, while inferring the correct key type */\nfunction hasOwnProperty<K extends string | number | symbol>(\n obj: Record<K, unknown>,\n key: string | number | symbol\n): key is K {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport { hasOwnProperty };\n", "import type { Responsive, Breakpoint } from '../props/prop-def.js';\n\n// Use a Set for O(1) lookup instead of array.includes() which is O(n)\nconst breakpointSet = new Set<string>(['initial', 'xs', 'sm', 'md', 'lg', 'xl']);\n\nexport function isResponsiveObject<Value extends string>(\n obj: Responsive<Value | Omit<string, Value>> | undefined\n): obj is Record<Breakpoint, string> {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n // Use for...in to avoid Object.keys() array allocation\n for (const key in obj) {\n if (breakpointSet.has(key)) {\n return true;\n }\n }\n return false;\n}\n", "import { breakpointSet } from '../props/prop-def.js';\nimport { hasOwnProperty } from './has-own-property.js';\nimport { isResponsiveObject } from './is-responsive-object.js';\n\nimport type { Responsive, Union } from '../props/prop-def.js';\n\n/**\n * Membership test against a prop def's enum values. Callers that already hold a\n * compiled prop def pass `propValueSet` for an O(1) lookup; the handful of call\n * sites that build options inline fall back to scanning the array.\n */\nfunction includesValue(propValues: string[] | readonly string[], propValueSet: ReadonlySet<string> | undefined, value: string): boolean {\n return propValueSet !== undefined ? propValueSet.has(value) : propValues.includes(value);\n}\n\ninterface GetResponsiveStylesOptions {\n className: string;\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveStyles({ className, customProperties, ...args }: GetResponsiveStylesOptions) {\n const responsiveClassNames = getResponsiveClassNames({\n allowArbitraryValues: true,\n className,\n ...args,\n });\n\n const responsiveCustomProperties = getResponsiveCustomProperties({ customProperties, ...args });\n return [responsiveClassNames, responsiveCustomProperties] as const;\n}\n\ninterface GetResponsiveClassNamesOptions {\n allowArbitraryValues?: boolean;\n className: string;\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveClassNames({ allowArbitraryValues, value, className, propValues, propValueSet, parseValue = (value) => value }: GetResponsiveClassNamesOptions): string | undefined {\n if (!value) {\n return undefined;\n }\n\n if (typeof value === 'string') {\n if (includesValue(propValues, propValueSet, value)) {\n return getBaseClassName(className, value, parseValue);\n }\n return allowArbitraryValues ? className : undefined;\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n const classNames: string[] = [];\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n if (value !== undefined) {\n if (includesValue(propValues, propValueSet, value)) {\n const baseClassName = getBaseClassName(className, value, parseValue);\n const bpClassName = bp === 'initial' ? baseClassName : `${bp}:${baseClassName}`;\n classNames.push(bpClassName);\n } else if (allowArbitraryValues) {\n const bpClassName = bp === 'initial' ? className : `${bp}:${className}`;\n classNames.push(bpClassName);\n }\n }\n }\n\n return classNames.length > 0 ? classNames.join(' ') : '';\n }\n\n if (allowArbitraryValues) {\n return className;\n }\n}\n\nfunction getBaseClassName(className: string, value: string, parseValue: (value: string) => string | undefined): string {\n const delimiter = className ? '-' : '';\n const matchedValue = parseValue(value);\n const isNegative = matchedValue?.startsWith('-');\n const minus = isNegative ? '-' : '';\n const absoluteValue = isNegative ? matchedValue?.substring(1) : matchedValue;\n return `${minus}${className}${delimiter}${absoluteValue}`;\n}\n\ninterface GetResponsiveCustomPropertiesOptions {\n customProperties: `--${string}`[];\n value: Responsive<Union> | Responsive<string> | undefined;\n propValues: string[] | readonly string[];\n propValueSet?: ReadonlySet<string>;\n parseValue?: (value: string) => string | undefined;\n}\n\nfunction getResponsiveCustomProperties({ customProperties, value, propValues, propValueSet, parseValue = (value) => value }: GetResponsiveCustomPropertiesOptions) {\n // Don't generate custom properties if the value is not arbitrary\n if (!value || (typeof value === 'string' && includesValue(propValues, propValueSet, value))) {\n return undefined;\n }\n\n let styles: Record<string, string | undefined> | undefined;\n\n if (typeof value === 'string') {\n const parsed = parseValue(value);\n styles = {};\n for (const customProperty of customProperties) {\n styles[customProperty] = parsed;\n }\n return styles;\n }\n\n if (isResponsiveObject(value)) {\n const object = value;\n\n for (const bp in object) {\n // Make sure we are not iterating over keys that aren't breakpoints\n if (!hasOwnProperty(object, bp) || !breakpointSet.has(bp)) {\n continue;\n }\n\n const value = object[bp];\n\n // Don't generate a custom property if the value is not arbitrary\n if (value === undefined || includesValue(propValues, propValueSet, value)) {\n continue;\n }\n\n const parsed = parseValue(value);\n styles ??= {};\n for (const customProperty of customProperties) {\n const bpProperty = bp === 'initial' ? customProperty : `${customProperty}-${bp}`;\n styles[bpProperty] = parsed;\n }\n }\n }\n\n return styles ?? {};\n}\n\nexport { getResponsiveStyles, getResponsiveCustomProperties, getResponsiveClassNames };\n", "type InlineStyle =\n | React.CSSProperties\n | Record<string, string | number | null | undefined>\n | undefined;\n\n// Merges CSS styles like `classNames` merges CSS classes\n// Optimized to avoid object spread in loop - uses Object.assign for in-place mutation\nexport function mergeStyles(...styles: Array<InlineStyle>): InlineStyle {\n let result: Record<string, string | number | null | undefined> | undefined;\n\n for (const style of styles) {\n if (style) {\n if (result === undefined) {\n // First non-empty style - create result object\n result = {};\n }\n Object.assign(result, style);\n }\n }\n\n return result;\n}\n", "import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\n// prettier-ignore\nconst marginValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9', '-10', '-11', '-12'] as const;\n\nconst marginPropDefs = {\n /**\n * Sets the CSS **margin** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * m=\"4\"\n * m=\"100px\"\n * m={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin\n */\n m: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-m',\n customProperties: ['--m'],\n },\n /**\n * Sets the CSS **margin-left** and **margin-right** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mx=\"4\"\n * mx=\"100px\"\n * mx={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\n */\n mx: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mx',\n customProperties: ['--ml', '--mr'],\n },\n /**\n * Sets the CSS **margin-top** and **margin-bottom** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * my=\"4\"\n * my=\"100px\"\n * my={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\n */\n my: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-my',\n customProperties: ['--mt', '--mb'],\n },\n /**\n * Sets the CSS **margin-top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mt=\"4\"\n * mt=\"100px\"\n * mt={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top\n */\n mt: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mt',\n customProperties: ['--mt'],\n },\n /**\n * Sets the CSS **margin-right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mr=\"4\"\n * mr=\"100px\"\n * mr={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right\n */\n mr: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mr',\n customProperties: ['--mr'],\n },\n /**\n * Sets the CSS **margin-bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * mb=\"4\"\n * mb=\"100px\"\n * mb={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom\n */\n mb: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-mb',\n customProperties: ['--mb'],\n },\n /**\n * Sets the CSS **margin-left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * ml=\"4\"\n * ml=\"100px\"\n * ml={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left\n */\n ml: {\n type: 'enum | string',\n values: marginValues,\n responsive: true,\n className: 'rt-r-ml',\n customProperties: ['--ml'],\n },\n} satisfies {\n m: PropDef<(typeof marginValues)[number]>;\n mx: PropDef<(typeof marginValues)[number]>;\n my: PropDef<(typeof marginValues)[number]>;\n mt: PropDef<(typeof marginValues)[number]>;\n mr: PropDef<(typeof marginValues)[number]>;\n mb: PropDef<(typeof marginValues)[number]>;\n ml: PropDef<(typeof marginValues)[number]>;\n};\n\ntype MarginProps = GetPropDefTypes<typeof marginPropDefs>;\n\nexport { marginPropDefs };\nexport type { MarginProps };\n", "import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\nimport { Slot } from './slot.js';\nimport { flexPropDefs } from './flex.props.js';\n\nimport type { FlexOwnProps } from './flex.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { MarginProps } from '../props/margin.props.js';\n\ntype FlexElement = React.ElementRef<'div'>;\ninterface CommonFlexProps extends MarginProps, LayoutProps, FlexOwnProps {}\ntype FlexDivProps = { as?: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\ntype FlexSpanProps = { as: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\ntype FlexProps = CommonFlexProps & (FlexSpanProps | FlexDivProps);\n\nconst Flex = React.forwardRef<FlexElement, FlexProps>((props, forwardedRef) => {\n const {\n className,\n asChild,\n as: Tag = 'div',\n ...flexProps\n } = extractProps(props, flexPropDefs, layoutPropDefs, marginPropDefs);\n const Comp = asChild ? Slot : Tag;\n return <Comp {...flexProps} ref={forwardedRef} className={classNames('rt-Flex', className)} />;\n});\nFlex.displayName = 'Flex';\n\nexport { Flex };\nexport type { FlexProps };\n", "import type { GetPropDefTypes, PropDef } from './prop-def.js';\n\nconst paddingValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst paddingPropDefs = {\n /**\n * Sets the CSS **padding** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * p=\"4\"\n * p=\"100px\"\n * p={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding\n */\n p: {\n type: 'enum | string',\n className: 'rt-r-p',\n customProperties: ['--p'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-left** and **padding-right** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * px=\"4\"\n * px=\"100px\"\n * px={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right\n */\n px: {\n type: 'enum | string',\n className: 'rt-r-px',\n customProperties: ['--pl', '--pr'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-top** and **padding-bottom** properties.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * py=\"4\"\n * py=\"100px\"\n * py={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom\n */\n py: {\n type: 'enum | string',\n className: 'rt-r-py',\n customProperties: ['--pt', '--pb'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pt=\"4\"\n * pt=\"100px\"\n * pt={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top\n */\n pt: {\n type: 'enum | string',\n className: 'rt-r-pt',\n customProperties: ['--pt'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pr=\"4\"\n * pr=\"100px\"\n * pr={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-right\n */\n pr: {\n type: 'enum | string',\n className: 'rt-r-pr',\n customProperties: ['--pr'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pb=\"4\"\n * pb=\"100px\"\n * pb={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom\n */\n pb: {\n type: 'enum | string',\n className: 'rt-r-pb',\n customProperties: ['--pb'],\n values: paddingValues,\n responsive: true,\n },\n /**\n * Sets the CSS **padding-left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * pl=\"4\"\n * pl=\"100px\"\n * pl={{ sm: '6', lg: '9' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left\n */\n pl: {\n type: 'enum | string',\n className: 'rt-r-pl',\n customProperties: ['--pl'],\n values: paddingValues,\n responsive: true,\n },\n} satisfies {\n p: PropDef<(typeof paddingValues)[number]>;\n px: PropDef<(typeof paddingValues)[number]>;\n py: PropDef<(typeof paddingValues)[number]>;\n pt: PropDef<(typeof paddingValues)[number]>;\n pr: PropDef<(typeof paddingValues)[number]>;\n pb: PropDef<(typeof paddingValues)[number]>;\n pl: PropDef<(typeof paddingValues)[number]>;\n};\n\ntype PaddingProps = GetPropDefTypes<typeof paddingPropDefs>;\n\nexport { paddingPropDefs };\nexport type { PaddingProps };\n", "import type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst heightPropDefs = {\n /**\n * Sets the CSS **height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * height=\"100px\"\n * height={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/height\n */\n height: {\n type: 'string',\n className: 'rt-r-h',\n customProperties: ['--height'],\n responsive: true,\n },\n /**\n * Sets the CSS **min-height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * minHeight=\"100px\"\n * minHeight={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/min-height\n */\n minHeight: {\n type: 'string',\n className: 'rt-r-min-h',\n customProperties: ['--min-height'],\n responsive: true,\n },\n /**\n * Sets the CSS **max-height** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * maxHeight=\"100px\"\n * maxHeight={{ md: '100vh', xl: '600px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/max-height\n */\n maxHeight: {\n type: 'string',\n className: 'rt-r-max-h',\n customProperties: ['--max-height'],\n responsive: true,\n },\n} satisfies {\n height: PropDef<string>;\n minHeight: PropDef<string>;\n maxHeight: PropDef<string>;\n};\n\ntype HeightProps = GetPropDefTypes<typeof heightPropDefs>;\n\nexport { heightPropDefs };\nexport type { HeightProps };\n", "import type { GetPropDefTypes, PropDef } from './prop-def.js';\n\nconst widthPropDefs = {\n /**\n * Sets the CSS **width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * width=\"100px\"\n * width={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/width\n */\n width: {\n type: 'string',\n className: 'rt-r-w',\n customProperties: ['--width'],\n responsive: true,\n },\n /**\n * Sets the CSS **min-width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * minWidth=\"100px\"\n * minWidth={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/min-width\n */\n minWidth: {\n type: 'string',\n className: 'rt-r-min-w',\n customProperties: ['--min-width'],\n responsive: true,\n },\n /**\n * Sets the CSS **max-width** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * maxWidth=\"100px\"\n * maxWidth={{ md: '100vw', xl: '1400px' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\n */\n maxWidth: {\n type: 'string',\n className: 'rt-r-max-w',\n customProperties: ['--max-width'],\n responsive: true,\n },\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n};\n\ntype WidthProps = GetPropDefTypes<typeof widthPropDefs>;\n\nexport { widthPropDefs };\nexport type { WidthProps };\n", "import { paddingPropDefs } from './padding.props.js';\nimport { heightPropDefs } from './height.props.js';\nimport { widthPropDefs } from './width.props.js';\n\nimport type { PropDef, GetPropDefTypes } from './prop-def.js';\n\nconst overflowValues = ['visible', 'hidden', 'clip', 'scroll', 'auto'] as const;\nconst positionValues = ['static', 'relative', 'absolute', 'fixed', 'sticky'] as const;\n// prettier-ignore\nconst positionEdgeValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-1', '-2', '-3', '-4', '-5', '-6', '-7', '-8', '-9'] as const;\nconst flexShrinkValues = ['0', '1'] as const;\nconst flexGrowValues = ['0', '1'] as const;\nconst alignSelfValues = ['start', 'center', 'end', 'baseline', 'stretch'] as const;\nconst justifySelfValues = ['start', 'center', 'end', 'baseline', 'stretch'] as const;\n\nconst layoutPropDefs = {\n ...paddingPropDefs,\n ...widthPropDefs,\n ...heightPropDefs,\n /**\n * Sets the CSS **position** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * position=\"absolute\"\n * position={{ sm: 'absolute', lg: 'sticky' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/position\n */\n position: {\n type: 'enum',\n className: 'rt-r-position',\n values: positionValues,\n responsive: true,\n },\n /**\n * Sets the CSS **inset** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * inset=\"4\"\n * inset=\"100px\"\n * inset={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/inset\n */\n inset: {\n type: 'enum | string',\n className: 'rt-r-inset',\n customProperties: ['--inset'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **top** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * top=\"4\"\n * top=\"100px\"\n * top={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/top\n */\n top: {\n type: 'enum | string',\n className: 'rt-r-top',\n customProperties: ['--top'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **right** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * right=\"4\"\n * right=\"100px\"\n * right={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/right\n */\n right: {\n type: 'enum | string',\n className: 'rt-r-right',\n customProperties: ['--right'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **bottom** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * bottom=\"4\"\n * bottom=\"100px\"\n * bottom={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/bottom\n */\n bottom: {\n type: 'enum | string',\n className: 'rt-r-bottom',\n customProperties: ['--bottom'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **left** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * left=\"4\"\n * left=\"100px\"\n * left={{ sm: '0', lg: '50%' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/left\n */\n left: {\n type: 'enum | string',\n className: 'rt-r-left',\n customProperties: ['--left'],\n values: positionEdgeValues,\n responsive: true,\n },\n /**\n * Sets the CSS **overflow** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * overflow=\"hidden\"\n * overflow={{ sm: 'hidden', lg: 'visible' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n */\n overflow: {\n type: 'enum',\n className: 'rt-r-overflow',\n values: overflowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **overflow-x** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * overflowX=\"hidden\"\n * overflowX={{ sm: 'hidden', md: 'visible' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n */\n overflowX: {\n type: 'enum',\n className: 'rt-r-ox',\n values: overflowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **overflow-y** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * overflowY=\"hidden\"\n * overflowY={{ sm: 'hidden', md: 'visible' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n */\n overflowY: {\n type: 'enum',\n className: 'rt-r-oy',\n values: overflowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-basis** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * flexBasis=\"0\"\n * flexBasis=\"100%\"\n * flexBasis={{ sm: '200px', lg: 'auto' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis\n */\n flexBasis: {\n type: 'string',\n className: 'rt-r-fb',\n customProperties: ['--flex-basis'],\n responsive: true,\n },\n /**\n * Sets the CSS **flex-shrink** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * flexShrink=\"0\"\n * flexShrink=\"1\"\n * flexShrink={{ sm: '0', lg: '1' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink\n */\n flexShrink: {\n type: 'enum | string',\n className: 'rt-r-fs',\n customProperties: ['--flex-shrink'],\n values: flexShrinkValues,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-grow** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * flexGrow=\"0\"\n * flexGrow=\"1\"\n * flexGrow={{ sm: '0', lg: '1' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow\n */\n flexGrow: {\n type: 'enum | string',\n className: 'rt-r-fg',\n customProperties: ['--flex-grow'],\n values: flexGrowValues,\n responsive: true,\n },\n /**\n * Sets the CSS **grid-area** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridArea=\"header\"\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-area\n */\n gridArea: {\n type: 'string',\n className: 'rt-r-ga',\n customProperties: ['--grid-area'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-column** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridColumn=\"1\"\n * gridColumn=\"1 / -1\"\n * gridColumn={{ sm: '1 / 3', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column\n */\n gridColumn: {\n type: 'string',\n className: 'rt-r-gc',\n customProperties: ['--grid-column'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-column-start** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridColumnStart=\"1\"\n * gridColumnStart=\"auto\"\n * gridColumnStart={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-start\n */\n gridColumnStart: {\n type: 'string',\n className: 'rt-r-gcs',\n customProperties: ['--grid-column-start'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-column-end** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridColumnEnd=\"1\"\n * gridColumnEnd=\"auto\"\n * gridColumnEnd={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column-end\n */\n gridColumnEnd: {\n type: 'string',\n className: 'rt-r-gce',\n customProperties: ['--grid-column-end'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-row** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridRow=\"1\"\n * gridRow=\"auto\"\n * gridRow={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row\n */\n gridRow: {\n type: 'string',\n className: 'rt-r-gr',\n customProperties: ['--grid-row'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-row-start** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridRowStart=\"1\"\n * gridRowStart=\"auto\"\n * gridRowStart={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-start\n */\n gridRowStart: {\n type: 'string',\n className: 'rt-r-grs',\n customProperties: ['--grid-row-start'],\n responsive: true,\n },\n /**\n * Sets the CSS **grid-row-end** property.\n * Supports CSS strings and responsive objects.\n *\n * @example\n * gridRowEnd=\"1\"\n * gridRowEnd=\"auto\"\n * gridRowEnd={{ sm: '2', lg: 'span 3' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row-end\n */\n gridRowEnd: {\n type: 'string',\n className: 'rt-r-gre',\n customProperties: ['--grid-row-end'],\n responsive: true,\n },\n /**\n * Sets the CSS **align-self** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * alignSelf=\"center\"\n * alignSelf={{ sm: 'start', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/align-self\n */\n alignSelf: {\n type: 'enum',\n className: 'rt-r-as',\n values: alignSelfValues,\n responsive: true,\n },\n /**\n * Sets the CSS **justify-self** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * justifySelf=\"center\"\n * justifySelf={{ sm: 'start', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/justify-self\n */\n justifySelf: {\n type: 'enum',\n className: 'rt-r-js',\n values: justifySelfValues,\n responsive: true,\n },\n} satisfies {\n position: PropDef<(typeof positionValues)[number]>;\n inset: PropDef<(typeof positionEdgeValues)[number]>;\n top: PropDef<(typeof positionEdgeValues)[number]>;\n right: PropDef<(typeof positionEdgeValues)[number]>;\n bottom: PropDef<(typeof positionEdgeValues)[number]>;\n left: PropDef<(typeof positionEdgeValues)[number]>;\n overflow: PropDef<(typeof overflowValues)[number]>;\n overflowX: PropDef<(typeof overflowValues)[number]>;\n overflowY: PropDef<(typeof overflowValues)[number]>;\n flexBasis: PropDef<string>;\n flexShrink: PropDef<(typeof flexShrinkValues)[number]>;\n flexGrow: PropDef<(typeof flexGrowValues)[number]>;\n gridColumn: PropDef<string>;\n gridColumnStart: PropDef<string>;\n gridColumnEnd: PropDef<string>;\n gridRow: PropDef<string>;\n gridRowStart: PropDef<string>;\n gridRowEnd: PropDef<string>;\n gridArea: PropDef<string>;\n alignSelf: PropDef<(typeof alignSelfValues)[number]>;\n justifySelf: PropDef<(typeof justifySelfValues)[number]>;\n};\n\n// Use all of the imported prop defs to ensure that JSDoc works\ntype LayoutProps = GetPropDefTypes<\n typeof paddingPropDefs & typeof widthPropDefs & typeof heightPropDefs & typeof layoutPropDefs\n>;\n\nexport { layoutPropDefs };\nexport type { LayoutProps };\n", "import { Slot as SlotPrimitive } from 'radix-ui';\nexport const Root = SlotPrimitive.Root;\nexport const Slot = SlotPrimitive.Root;\nexport const Slottable: typeof SlotPrimitive.Slottable = SlotPrimitive.Slottable;\n", "import type { PropDef } from './prop-def.js';\n\nconst gapValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst gapPropDefs = {\n /**\n * Sets the CSS **gap** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * gap=\"4\"\n * gap=\"20px\"\n * gap={{ sm: '2', lg: '3em' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/gap\n */\n gap: {\n type: 'enum | string',\n className: 'rt-r-gap',\n customProperties: ['--gap'],\n values: gapValues,\n responsive: true,\n },\n /**\n * Sets the CSS **row-gap** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * gapX=\"4\"\n * gapX=\"20px\"\n * gapX={{ sm: '2', lg: '3em' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap\n */\n gapX: {\n type: 'enum | string',\n className: 'rt-r-cg',\n customProperties: ['--column-gap'],\n values: gapValues,\n responsive: true,\n },\n /**\n * Sets the CSS **column-gap** property.\n * Supports space scale values, CSS strings, and responsive objects.\n *\n * @example\n * gapY=\"4\"\n * gapY=\"20px\"\n * gapY={{ sm: '2', lg: '3em' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap\n */\n gapY: {\n type: 'enum | string',\n className: 'rt-r-rg',\n customProperties: ['--row-gap'],\n values: gapValues,\n responsive: true,\n },\n} satisfies {\n gap: PropDef<(typeof gapValues)[number]>;\n gapX: PropDef<(typeof gapValues)[number]>;\n gapY: PropDef<(typeof gapValues)[number]>;\n};\n\nexport { gapPropDefs };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { gapPropDefs } from '../props/gap.props.js';\n\nimport type { PropDef, GetPropDefTypes } from '../props/prop-def.js';\n\nconst as = ['div', 'span'] as const;\nconst displayValues = ['none', 'inline-flex', 'flex'] as const;\nconst directionValues = ['row', 'column', 'row-reverse', 'column-reverse'] as const;\nconst alignValues = ['start', 'center', 'end', 'baseline', 'stretch'] as const;\nconst justifyValues = ['start', 'center', 'end', 'between'] as const;\nconst wrapValues = ['nowrap', 'wrap', 'wrap-reverse'] as const;\n\nconst flexPropDefs = {\n /**\n * Controls whether to render **div** or **span**\n *\n * @example\n * as=\"div\"\n * as=\"span\"\n */\n as: { type: 'enum', values: as, default: 'div' },\n ...asChildPropDef,\n /**\n * Sets the CSS **display** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * display=\"inline-flex\"\n * display={{ sm: 'none', lg: 'flex' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/display\n */\n display: {\n type: 'enum',\n className: 'rt-r-display',\n values: displayValues,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-direction** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * direction=\"column\"\n * direction={{ sm: 'column', lg: 'row' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction\n */\n direction: {\n type: 'enum',\n className: 'rt-r-fd',\n values: directionValues,\n responsive: true,\n },\n /**\n * Sets the CSS **align-items** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * align=\"center\"\n * align={{ sm: 'baseline', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/align-items\n */\n align: {\n type: 'enum',\n className: 'rt-r-ai',\n values: alignValues,\n responsive: true,\n },\n /**\n * Sets the CSS **justify-content** property.\n * Supports a subset of the corresponding CSS values and responsive objects.\n *\n * @example\n * justify=\"between\"\n * justify={{ sm: 'start', lg: 'center' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content\n */\n justify: {\n type: 'enum',\n className: 'rt-r-jc',\n values: justifyValues,\n parseValue: parseJustifyValue,\n responsive: true,\n },\n /**\n * Sets the CSS **flex-wrap** property.\n * Supports the corresponding CSS values and responsive objects.\n *\n * @example\n * wrap=\"wrap\"\n * wrap={{ sm: 'wrap', lg: 'nowrap' }}\n *\n * @link\n * https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap\n */\n wrap: {\n type: 'enum',\n className: 'rt-r-fw',\n values: wrapValues,\n responsive: true,\n },\n ...gapPropDefs,\n} satisfies {\n as: PropDef<(typeof as)[number]>;\n display: PropDef<(typeof displayValues)[number]>;\n direction: PropDef<(typeof directionValues)[number]>;\n align: PropDef<(typeof alignValues)[number]>;\n justify: PropDef<(typeof justifyValues)[number]>;\n wrap: PropDef<(typeof wrapValues)[number]>;\n};\n\nfunction parseJustifyValue(value: string) {\n return value === 'between' ? 'space-between' : value;\n}\n\n// Use all of the imported prop defs to ensure that JSDoc works\ntype FlexOwnProps = GetPropDefTypes<\n typeof flexPropDefs & typeof gapPropDefs & typeof asChildPropDef\n>;\n\nexport { flexPropDefs };\nexport type { FlexOwnProps };\n", "import * as React from 'react';\nimport { Slot } from 'radix-ui';\n\nimport { headingPropDefs } from './heading.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { marginPropDefs } from '../props/margin.props.js';\n\nimport type { MarginProps } from '../props/margin.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype HeadingElement = React.ElementRef<'h1'>;\ntype HeadingOwnProps = GetPropDefTypes<typeof headingPropDefs>;\ninterface CommonHeadingProps extends MarginProps, HeadingOwnProps {}\ntype HeadingH1Props = { as?: 'h1' } & ComponentPropsWithout<'h1', RemovedProps>;\ntype HeadingH2Props = { as: 'h2' } & ComponentPropsWithout<'h2', RemovedProps>;\ntype HeadingH3Props = { as: 'h3' } & ComponentPropsWithout<'h3', RemovedProps>;\ntype HeadingH4Props = { as: 'h4' } & ComponentPropsWithout<'h4', RemovedProps>;\ntype HeadingH5Props = { as: 'h5' } & ComponentPropsWithout<'h5', RemovedProps>;\ntype HeadingH6Props = { as: 'h6' } & ComponentPropsWithout<'h6', RemovedProps>;\ntype HeadingProps = CommonHeadingProps &\n (HeadingH1Props | HeadingH2Props | HeadingH3Props | HeadingH4Props | HeadingH5Props | HeadingH6Props);\n\n// Pre-merge prop definitions at module level to avoid per-render allocation\nconst mergedPropDefs = { ...headingPropDefs, ...marginPropDefs };\n\nconst Heading = React.memo(\n React.forwardRef<HeadingElement, HeadingProps>((props, forwardedRef) => {\n const {\n children,\n className,\n asChild,\n as: Tag = 'h1',\n color,\n ...headingProps\n } = extractProps(props, mergedPropDefs);\n\n const combinedClassName = className ? `rt-Heading ${className}` : 'rt-Heading';\n\n if (asChild) {\n return (\n <Slot.Root\n data-accent-color={color}\n {...headingProps}\n ref={forwardedRef}\n className={combinedClassName}\n >\n {children}\n </Slot.Root>\n );\n }\n\n return (\n <Tag\n data-accent-color={color}\n {...(headingProps as React.HTMLAttributes<HTMLHeadingElement>)}\n ref={forwardedRef as any}\n className={combinedClassName}\n >\n {children}\n </Tag>\n );\n })\n);\nHeading.displayName = 'Heading';\n\nexport { Heading };\nexport type { HeadingProps };\n", "import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Re-declares the accent role tokens (`--accent-ink`, `--accent-solid`, ...) that descendants read.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\nexport {\n accentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst emphases = ['loud', 'medium', 'quiet'] as const;\n\n// Text-first components only (Text, Heading, Blockquote, Code, DataList.Label).\n// No colour + emphasis reads the gray ink ladder; colour + emphasis reads the accent ink ladder.\n// Components that need a different default (DataList.Label: 'medium') spread this def and override `default`.\nconst emphasisPropDef = {\n emphasis: {\n type: 'enum',\n className: 'rt-emphasis',\n values: emphases,\n default: undefined,\n },\n} satisfies {\n emphasis: PropDef<(typeof emphases)[number]>;\n};\n\nexport { emphasisPropDef, emphases };\n", "import type { PropDef } from './prop-def.js';\n\nconst leadingTrimValues = ['normal', 'start', 'end', 'both'] as const;\n\nconst leadingTrimPropDef = {\n trim: {\n type: 'enum',\n className: 'rt-r-lt',\n values: leadingTrimValues,\n responsive: true,\n },\n} satisfies {\n trim: PropDef<(typeof leadingTrimValues)[number]>;\n};\n\nexport { leadingTrimPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst textAlignValues = ['left', 'center', 'right'] as const;\n\nconst textAlignPropDef = {\n align: {\n type: 'enum',\n className: 'rt-r-ta',\n values: textAlignValues,\n responsive: true,\n },\n} satisfies {\n align: PropDef<(typeof textAlignValues)[number]>;\n};\n\nexport { textAlignPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst textWrapValues = ['wrap', 'nowrap', 'pretty', 'balance'] as const;\n\nconst textWrapPropDef = {\n wrap: {\n type: 'enum',\n className: 'rt-r-tw',\n values: textWrapValues,\n responsive: true,\n },\n} satisfies {\n wrap: PropDef<(typeof textWrapValues)[number]>;\n};\n\nexport { textWrapPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst truncatePropDef = {\n truncate: {\n type: 'boolean',\n className: 'rt-truncate',\n },\n} satisfies {\n truncate: PropDef<boolean>;\n};\n\nexport { truncatePropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\n\nconst fontFamilyPropDef = {\n font: {\n type: 'enum',\n className: 'rt-r-ff',\n values: fontFamilies,\n },\n} satisfies {\n font: PropDef<(typeof fontFamilies)[number]>;\n};\n\nexport { fontFamilyPropDef };\n", "import type { PropDef } from './prop-def.js';\n\nconst weights = ['thin', 'extralight', 'light', 'regular', 'medium', 'semibold', 'bold', 'extrabold'] as const;\n\nconst weightPropDef = {\n weight: {\n type: 'enum',\n className: 'rt-r-weight',\n values: weights,\n responsive: true,\n },\n} satisfies {\n weight: PropDef<(typeof weights)[number]>;\n};\n\nexport { weightPropDef };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { emphasisPropDef } from '../props/emphasis.prop.js';\nimport { leadingTrimPropDef } from '../props/leading-trim.prop.js';\nimport { textAlignPropDef } from '../props/text-align.prop.js';\nimport { textWrapPropDef } from '../props/text-wrap.prop.js';\nimport { truncatePropDef } from '../props/truncate.prop.js';\nimport { fontFamilyPropDef } from '../props/font-family.prop.js';\nimport { weightPropDef } from '../props/weight.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst as = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const;\nconst sizes = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\n\nconst headingPropDefs = {\n as: { type: 'enum', values: as, default: 'h1' },\n ...asChildPropDef,\n size: {\n type: 'enum',\n className: 'rt-r-size',\n values: sizes,\n default: '6',\n responsive: true,\n },\n ...fontFamilyPropDef,\n ...weightPropDef,\n ...textAlignPropDef,\n ...leadingTrimPropDef,\n ...truncatePropDef,\n ...textWrapPropDef,\n ...colorPropDef,\n ...emphasisPropDef,\n} satisfies {\n as: PropDef<(typeof as)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { headingPropDefs };\n"],
5
+ "mappings": "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",
6
+ "names": ["app_bar_exports", "__export", "AppBar", "AppBarCenter", "AppBarLeft", "AppBarRight", "AppBarRoot", "AppBarTitle", "__toCommonJS", "React", "import_classnames", "React", "import_classnames", "import_radix_ui", "asChildPropDef", "sizes", "variants", "panelBackgrounds", "materials", "cardPropDefs", "asChildPropDef", "import_classnames", "EMPTY_VALUES", "EMPTY_SET", "compile", "propDefs", "merged", "styling", "passthrough", "stylingKeys", "key", "def", "values", "compiled", "cacheRoot", "getCompiledPropDefs", "node", "i", "propDef", "child", "breakpoints", "breakpointSet", "hasOwnProperty", "obj", "key", "breakpointSet", "isResponsiveObject", "obj", "key", "includesValue", "propValues", "propValueSet", "value", "getResponsiveStyles", "className", "customProperties", "args", "responsiveClassNames", "getResponsiveClassNames", "responsiveCustomProperties", "getResponsiveCustomProperties", "allowArbitraryValues", "parseValue", "getBaseClassName", "isResponsiveObject", "object", "classNames", "bp", "hasOwnProperty", "breakpointSet", "baseClassName", "bpClassName", "delimiter", "matchedValue", "isNegative", "minus", "absoluteValue", "styles", "parsed", "customProperty", "bpProperty", "mergeStyles", "styles", "result", "style", "normalizeResponsiveValue", "value", "propDef", "initial", "changed", "extractProps", "props", "propDefs", "styling", "passthrough", "stylingKeys", "getCompiledPropDefs", "extractedProps", "key", "i", "isResponsiveObject", "style", "classes", "propClassName", "getResponsiveClassNames", "propClassNames", "propCustomProperties", "getResponsiveStyles", "mergeStyles", "classNames", "marginValues", "marginPropDefs", "Card", "props", "forwardedRef", "asChild", "className", "panelBackground", "material", "flush", "inset", "cardProps", "extractProps", "cardPropDefs", "marginPropDefs", "effectiveMaterial", "Comp", "classNames", "React", "import_classnames", "paddingValues", "paddingPropDefs", "heightPropDefs", "widthPropDefs", "overflowValues", "positionValues", "positionEdgeValues", "flexShrinkValues", "flexGrowValues", "alignSelfValues", "justifySelfValues", "layoutPropDefs", "paddingPropDefs", "widthPropDefs", "heightPropDefs", "import_radix_ui", "Root", "SlotPrimitive", "Slot", "Slottable", "gapValues", "gapPropDefs", "as", "displayValues", "directionValues", "alignValues", "justifyValues", "wrapValues", "flexPropDefs", "asChildPropDef", "parseJustifyValue", "gapPropDefs", "value", "Flex", "props", "forwardedRef", "className", "asChild", "Tag", "flexProps", "extractProps", "flexPropDefs", "layoutPropDefs", "marginPropDefs", "Slot", "classNames", "React", "import_radix_ui", "accentColors", "colorPropDef", "accentColors", "emphases", "emphasisPropDef", "leadingTrimValues", "leadingTrimPropDef", "textAlignValues", "textAlignPropDef", "textWrapValues", "textWrapPropDef", "truncatePropDef", "fontFamilies", "fontFamilyPropDef", "weights", "weightPropDef", "as", "sizes", "headingPropDefs", "asChildPropDef", "fontFamilyPropDef", "weightPropDef", "textAlignPropDef", "leadingTrimPropDef", "truncatePropDef", "textWrapPropDef", "colorPropDef", "emphasisPropDef", "mergedPropDefs", "headingPropDefs", "marginPropDefs", "Heading", "props", "forwardedRef", "children", "className", "asChild", "Tag", "color", "headingProps", "extractProps", "combinedClassName", "AppBarRoot", "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", "AppBarLeft", "gap", "align", "Flex", "AppBarCenter", "justify", "AppBarRight", "AppBarTitle", "weight", "truncate", "Heading", "AppBar"]
7
+ }