@moldable-ai/ui 0.2.20 → 0.2.21

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 (159) hide show
  1. package/dist/catalog/catalog-coverage.d.ts +15 -0
  2. package/dist/catalog/catalog-coverage.d.ts.map +1 -0
  3. package/dist/catalog/catalog-coverage.js +44 -0
  4. package/dist/catalog/catalog-manifest.d.ts.map +1 -1
  5. package/dist/catalog/catalog-manifest.js +35 -23
  6. package/dist/catalog/catalog-types.d.ts +10 -0
  7. package/dist/catalog/catalog-types.d.ts.map +1 -1
  8. package/dist/catalog/catalog-types.js +6 -0
  9. package/dist/catalog/component-catalog.d.ts.map +1 -1
  10. package/dist/catalog/component-catalog.js +16 -6
  11. package/dist/catalog/core-catalog-exclusions.d.ts +8 -0
  12. package/dist/catalog/core-catalog-exclusions.d.ts.map +1 -0
  13. package/dist/catalog/core-catalog-exclusions.js +151 -0
  14. package/dist/catalog/core-catalog.d.ts +0 -4
  15. package/dist/catalog/core-catalog.d.ts.map +1 -1
  16. package/dist/catalog/core-catalog.js +12 -98
  17. package/dist/catalog/core-collection-stories.d.ts +3 -0
  18. package/dist/catalog/core-collection-stories.d.ts.map +1 -0
  19. package/dist/catalog/core-collection-stories.js +42 -0
  20. package/dist/catalog/core-control-stories.d.ts +3 -0
  21. package/dist/catalog/core-control-stories.d.ts.map +1 -0
  22. package/dist/catalog/core-control-stories.js +94 -0
  23. package/dist/catalog/core-feedback-stories.d.ts +3 -0
  24. package/dist/catalog/core-feedback-stories.d.ts.map +1 -0
  25. package/dist/catalog/core-feedback-stories.js +50 -0
  26. package/dist/catalog/core-foundation-stories.d.ts +3 -0
  27. package/dist/catalog/core-foundation-stories.d.ts.map +1 -0
  28. package/dist/catalog/core-foundation-stories.js +53 -0
  29. package/dist/catalog/core-navigation-stories.d.ts +3 -0
  30. package/dist/catalog/core-navigation-stories.d.ts.map +1 -0
  31. package/dist/catalog/core-navigation-stories.js +25 -0
  32. package/dist/catalog/core-overlay-stories.d.ts +3 -0
  33. package/dist/catalog/core-overlay-stories.d.ts.map +1 -0
  34. package/dist/catalog/core-overlay-stories.js +20 -0
  35. package/dist/catalog/index.d.ts +3 -1
  36. package/dist/catalog/index.d.ts.map +1 -1
  37. package/dist/catalog/index.js +3 -1
  38. package/dist/components/chat/chat-panel.d.ts +0 -1
  39. package/dist/components/chat/chat-panel.d.ts.map +1 -1
  40. package/dist/components/chat/chat-panel.js +7 -11
  41. package/dist/components/ui/alert-dialog.d.ts +7 -3
  42. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  43. package/dist/components/ui/alert-dialog.js +9 -5
  44. package/dist/components/ui/alert.d.ts +19 -3
  45. package/dist/components/ui/alert.d.ts.map +1 -1
  46. package/dist/components/ui/alert.js +25 -8
  47. package/dist/components/ui/app-frame.d.ts +9 -3
  48. package/dist/components/ui/app-frame.d.ts.map +1 -1
  49. package/dist/components/ui/app-frame.js +45 -6
  50. package/dist/components/ui/collapsible.d.ts +9 -1
  51. package/dist/components/ui/collapsible.d.ts.map +1 -1
  52. package/dist/components/ui/collapsible.js +13 -2
  53. package/dist/components/ui/collection-navigation.d.ts +8 -0
  54. package/dist/components/ui/collection-navigation.d.ts.map +1 -0
  55. package/dist/components/ui/collection-navigation.js +19 -0
  56. package/dist/components/ui/command.d.ts +5 -1
  57. package/dist/components/ui/command.d.ts.map +1 -1
  58. package/dist/components/ui/command.js +13 -1
  59. package/dist/components/ui/confirm-dialog.d.ts +19 -0
  60. package/dist/components/ui/confirm-dialog.d.ts.map +1 -0
  61. package/dist/components/ui/confirm-dialog.js +45 -0
  62. package/dist/components/ui/date-picker.d.ts +24 -0
  63. package/dist/components/ui/date-picker.d.ts.map +1 -0
  64. package/dist/components/ui/date-picker.js +92 -0
  65. package/dist/components/ui/dialog.d.ts +4 -2
  66. package/dist/components/ui/dialog.d.ts.map +1 -1
  67. package/dist/components/ui/dialog.js +8 -5
  68. package/dist/components/ui/empty.d.ts +7 -2
  69. package/dist/components/ui/empty.d.ts.map +1 -1
  70. package/dist/components/ui/empty.js +20 -7
  71. package/dist/components/ui/grid.d.ts.map +1 -1
  72. package/dist/components/ui/grid.js +70 -46
  73. package/dist/components/ui/index.d.ts +4 -0
  74. package/dist/components/ui/index.d.ts.map +1 -1
  75. package/dist/components/ui/index.js +4 -0
  76. package/dist/components/ui/list.d.ts +5 -1
  77. package/dist/components/ui/list.d.ts.map +1 -1
  78. package/dist/components/ui/list.js +27 -16
  79. package/dist/components/ui/material.d.ts +34 -0
  80. package/dist/components/ui/material.d.ts.map +1 -0
  81. package/dist/components/ui/material.js +34 -0
  82. package/dist/components/ui/message-scroller-controller.d.ts +162 -0
  83. package/dist/components/ui/message-scroller-controller.d.ts.map +1 -0
  84. package/dist/components/ui/message-scroller-controller.js +888 -0
  85. package/dist/components/ui/message-scroller-policy.d.ts +74 -0
  86. package/dist/components/ui/message-scroller-policy.d.ts.map +1 -0
  87. package/dist/components/ui/message-scroller-policy.js +129 -0
  88. package/dist/components/ui/message-scroller-primitive.d.ts +55 -0
  89. package/dist/components/ui/message-scroller-primitive.d.ts.map +1 -0
  90. package/dist/components/ui/message-scroller-primitive.js +226 -0
  91. package/dist/components/ui/message-scroller.d.ts +2 -2
  92. package/dist/components/ui/message-scroller.d.ts.map +1 -1
  93. package/dist/components/ui/message-scroller.js +3 -15
  94. package/dist/components/ui/navigation-button-group.d.ts +16 -0
  95. package/dist/components/ui/navigation-button-group.d.ts.map +1 -0
  96. package/dist/components/ui/navigation-button-group.js +9 -0
  97. package/dist/components/ui/popover.d.ts +9 -2
  98. package/dist/components/ui/popover.d.ts.map +1 -1
  99. package/dist/components/ui/popover.js +13 -3
  100. package/dist/components/ui/scroll-area.d.ts +8 -2
  101. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  102. package/dist/components/ui/scroll-area.js +6 -3
  103. package/dist/components/ui/search-field.d.ts.map +1 -1
  104. package/dist/components/ui/segmented-control.d.ts.map +1 -1
  105. package/dist/components/ui/segmented-control.js +6 -5
  106. package/dist/components/ui/sheet.d.ts +4 -2
  107. package/dist/components/ui/sheet.d.ts.map +1 -1
  108. package/dist/components/ui/sheet.js +12 -9
  109. package/dist/components/ui/sonner.d.ts +1 -1
  110. package/dist/components/ui/sonner.d.ts.map +1 -1
  111. package/dist/components/ui/table.d.ts.map +1 -1
  112. package/dist/components/ui/table.js +7 -2
  113. package/dist/components/ui/toggle.d.ts +12 -4
  114. package/dist/components/ui/toggle.d.ts.map +1 -1
  115. package/dist/components/ui/toggle.js +13 -2
  116. package/dist/components/ui/toolbar.d.ts +9 -2
  117. package/dist/components/ui/toolbar.d.ts.map +1 -1
  118. package/dist/components/ui/toolbar.js +23 -4
  119. package/dist/components/ui/tooltip.d.ts +8 -3
  120. package/dist/components/ui/tooltip.d.ts.map +1 -1
  121. package/dist/components/ui/tooltip.js +11 -6
  122. package/dist/lib/frame-lifecycle.d.ts +1 -0
  123. package/dist/lib/frame-lifecycle.d.ts.map +1 -1
  124. package/dist/lib/frame-lifecycle.js +3 -2
  125. package/dist/lib/theme.d.ts.map +1 -1
  126. package/dist/lib/theme.js +2 -1
  127. package/docs/README.md +3 -1
  128. package/docs/adaptive-materials.md +79 -0
  129. package/docs/app-anatomy.md +3 -1
  130. package/docs/component-catalog.md +26 -3
  131. package/docs/design-tokens.md +17 -4
  132. package/docs/foundations.md +5 -3
  133. package/docs/standalone-app-windows.md +8 -0
  134. package/package.json +1 -2
  135. package/src/components/ui/alert-dialog.md +31 -0
  136. package/src/components/ui/alert.md +28 -6
  137. package/src/components/ui/app-frame.md +5 -0
  138. package/src/components/ui/collapsible.md +52 -0
  139. package/src/components/ui/combobox.md +0 -1
  140. package/src/components/ui/command.md +54 -0
  141. package/src/components/ui/date-field.md +1 -1
  142. package/src/components/ui/date-picker.md +55 -0
  143. package/src/components/ui/dialog.md +40 -0
  144. package/src/components/ui/empty.md +8 -3
  145. package/src/components/ui/grid.md +8 -4
  146. package/src/components/ui/icon-button.md +2 -2
  147. package/src/components/ui/list.md +35 -2
  148. package/src/components/ui/material.md +51 -0
  149. package/src/components/ui/navigation-button-group.md +46 -0
  150. package/src/components/ui/popover.md +31 -0
  151. package/src/components/ui/scroll-area.md +11 -7
  152. package/src/components/ui/search-field.md +1 -1
  153. package/src/components/ui/segmented-control.md +2 -5
  154. package/src/components/ui/sheet.md +30 -0
  155. package/src/components/ui/table.md +4 -2
  156. package/src/components/ui/toggle-button.md +48 -0
  157. package/src/components/ui/toolbar.md +5 -0
  158. package/src/components/ui/tooltip.md +31 -0
  159. package/src/styles/index.css +213 -0
@@ -823,6 +823,42 @@
823
823
  --material-blur-toolbar: 16px;
824
824
  --material-blur-overlay: 20px;
825
825
  --material-saturation: 1.12;
826
+ --material-regular-fill: color-mix(
827
+ in oklch,
828
+ var(--background) 76%,
829
+ transparent
830
+ );
831
+ --material-regular-fallback: color-mix(
832
+ in oklch,
833
+ var(--background) 94%,
834
+ var(--foreground) 6%
835
+ );
836
+ --material-regular-border: color-mix(
837
+ in oklch,
838
+ var(--foreground) 10%,
839
+ transparent
840
+ );
841
+ --material-regular-highlight: oklch(1 0 0 / 42%);
842
+ --material-regular-blur: 20px;
843
+ --material-regular-saturation: 1.18;
844
+ --material-clear-fill: color-mix(
845
+ in oklch,
846
+ var(--background) 24%,
847
+ transparent
848
+ );
849
+ --material-clear-fallback: color-mix(
850
+ in oklch,
851
+ var(--background) 88%,
852
+ var(--foreground) 12%
853
+ );
854
+ --material-clear-border: color-mix(
855
+ in oklch,
856
+ var(--foreground) 14%,
857
+ transparent
858
+ );
859
+ --material-clear-highlight: oklch(1 0 0 / 28%);
860
+ --material-clear-blur: 12px;
861
+ --material-clear-saturation: 1.24;
826
862
  --material-shadow-panel:
827
863
  0 1px 2px oklch(0.15 0.005 285 / 6%), 0 4px 12px oklch(0.15 0.005 285 / 4%);
828
864
  --material-shadow-overlay:
@@ -943,6 +979,30 @@
943
979
  --status-stopped: oklch(0.705 0.015 286.067);
944
980
  --status-pending: oklch(0.8 0.12 75);
945
981
  --status-error: oklch(0.704 0.191 22.216);
982
+ --material-regular-fill: color-mix(
983
+ in oklch,
984
+ var(--background) 68%,
985
+ transparent
986
+ );
987
+ --material-regular-fallback: color-mix(
988
+ in oklch,
989
+ var(--background) 88%,
990
+ var(--foreground) 12%
991
+ );
992
+ --material-regular-border: oklch(1 0 0 / 14%);
993
+ --material-regular-highlight: oklch(1 0 0 / 12%);
994
+ --material-clear-fill: color-mix(
995
+ in oklch,
996
+ var(--background) 20%,
997
+ transparent
998
+ );
999
+ --material-clear-fallback: color-mix(
1000
+ in oklch,
1001
+ var(--background) 78%,
1002
+ var(--foreground) 22%
1003
+ );
1004
+ --material-clear-border: oklch(1 0 0 / 18%);
1005
+ --material-clear-highlight: oklch(1 0 0 / 10%);
946
1006
  --material-shadow-panel:
947
1007
  0 1px 2px oklch(0 0 0 / 24%), 0 6px 16px oklch(0 0 0 / 16%);
948
1008
  --material-shadow-overlay:
@@ -976,10 +1036,52 @@
976
1036
  --separator-strong: color-mix(in oklch, var(--foreground) 54%, transparent);
977
1037
  --control-hover: color-mix(in oklch, var(--foreground) 12%, transparent);
978
1038
  --control-pressed: color-mix(in oklch, var(--foreground) 18%, transparent);
1039
+ --material-regular-fill: color-mix(
1040
+ in oklch,
1041
+ var(--material-regular-fallback) 92%,
1042
+ transparent
1043
+ );
1044
+ --material-regular-border: var(--separator-strong);
1045
+ --material-clear-fill: color-mix(
1046
+ in oklch,
1047
+ var(--material-clear-fallback) 84%,
1048
+ transparent
1049
+ );
1050
+ --material-clear-border: var(--separator-strong);
979
1051
  --window-border: var(--separator-strong);
980
1052
  }
981
1053
  }
982
1054
 
1055
+ :where([data-contrast='increased']) {
1056
+ --text-tertiary: color-mix(
1057
+ in oklch,
1058
+ var(--muted-foreground) 92%,
1059
+ var(--foreground)
1060
+ );
1061
+ --text-disabled: color-mix(
1062
+ in oklch,
1063
+ var(--muted-foreground) 72%,
1064
+ transparent
1065
+ );
1066
+ --separator: color-mix(in oklch, var(--foreground) 32%, transparent);
1067
+ --separator-strong: color-mix(in oklch, var(--foreground) 54%, transparent);
1068
+ --control-hover: color-mix(in oklch, var(--foreground) 12%, transparent);
1069
+ --control-pressed: color-mix(in oklch, var(--foreground) 18%, transparent);
1070
+ --material-regular-fill: color-mix(
1071
+ in oklch,
1072
+ var(--material-regular-fallback) 92%,
1073
+ transparent
1074
+ );
1075
+ --material-regular-border: var(--separator-strong);
1076
+ --material-clear-fill: color-mix(
1077
+ in oklch,
1078
+ var(--material-clear-fallback) 84%,
1079
+ transparent
1080
+ );
1081
+ --material-clear-border: var(--separator-strong);
1082
+ --window-border: var(--separator-strong);
1083
+ }
1084
+
983
1085
  @media (forced-colors: active) {
984
1086
  :root {
985
1087
  --text-primary: CanvasText;
@@ -1002,6 +1104,18 @@
1002
1104
  --control-disabled: transparent;
1003
1105
  --control-focus: Highlight;
1004
1106
  --control-invalid: Mark;
1107
+ --material-regular-fill: Canvas;
1108
+ --material-regular-fallback: Canvas;
1109
+ --material-regular-border: ButtonBorder;
1110
+ --material-regular-highlight: transparent;
1111
+ --material-regular-blur: 0px;
1112
+ --material-regular-saturation: 1;
1113
+ --material-clear-fill: Canvas;
1114
+ --material-clear-fallback: Canvas;
1115
+ --material-clear-border: ButtonBorder;
1116
+ --material-clear-highlight: transparent;
1117
+ --material-clear-blur: 0px;
1118
+ --material-clear-saturation: 1;
1005
1119
  --material-blur-toolbar: 0px;
1006
1120
  --material-blur-overlay: 0px;
1007
1121
  --material-saturation: 1;
@@ -1014,6 +1128,12 @@
1014
1128
  :where([data-transparency='reduced']) {
1015
1129
  --surface-toolbar: var(--background);
1016
1130
  --surface-overlay: var(--popover);
1131
+ --material-regular-fill: var(--material-regular-fallback);
1132
+ --material-regular-blur: 0px;
1133
+ --material-regular-saturation: 1;
1134
+ --material-clear-fill: var(--material-clear-fallback);
1135
+ --material-clear-blur: 0px;
1136
+ --material-clear-saturation: 1;
1017
1137
  --material-blur-toolbar: 0px;
1018
1138
  --material-blur-overlay: 0px;
1019
1139
  --material-saturation: 1;
@@ -1023,6 +1143,12 @@
1023
1143
  :root {
1024
1144
  --surface-toolbar: var(--background);
1025
1145
  --surface-overlay: var(--popover);
1146
+ --material-regular-fill: var(--material-regular-fallback);
1147
+ --material-regular-blur: 0px;
1148
+ --material-regular-saturation: 1;
1149
+ --material-clear-fill: var(--material-clear-fallback);
1150
+ --material-clear-blur: 0px;
1151
+ --material-clear-saturation: 1;
1026
1152
  --material-blur-toolbar: 0px;
1027
1153
  --material-blur-overlay: 0px;
1028
1154
  --material-saturation: 1;
@@ -1042,6 +1168,84 @@
1042
1168
  }
1043
1169
  }
1044
1170
 
1171
+ @layer components {
1172
+ /*
1173
+ * Adaptive material is reserved for navigation and control chrome. The
1174
+ * opaque background is the baseline; capable renderers opt into backdrop
1175
+ * sampling below.
1176
+ */
1177
+ .moldable-material {
1178
+ --material-active-fill: var(--material-regular-fill);
1179
+ --material-active-fallback: var(--material-regular-fallback);
1180
+ --material-active-border: var(--material-regular-border);
1181
+ --material-active-highlight: var(--material-regular-highlight);
1182
+ --material-active-blur: var(--material-regular-blur);
1183
+ --material-active-saturation: var(--material-regular-saturation);
1184
+ --material-active-shadow: none;
1185
+
1186
+ position: relative;
1187
+ isolation: isolate;
1188
+ background-color: var(--material-active-fallback);
1189
+ border-color: var(--material-active-border);
1190
+ box-shadow:
1191
+ inset 0 1px 0 var(--material-active-highlight),
1192
+ var(--material-active-shadow);
1193
+ }
1194
+
1195
+ .moldable-material[data-material='clear'] {
1196
+ --material-active-fill: var(--material-clear-fill);
1197
+ --material-active-fallback: var(--material-clear-fallback);
1198
+ --material-active-border: var(--material-clear-border);
1199
+ --material-active-highlight: var(--material-clear-highlight);
1200
+ --material-active-blur: var(--material-clear-blur);
1201
+ --material-active-saturation: var(--material-clear-saturation);
1202
+ }
1203
+
1204
+ .moldable-material[data-material-elevation='panel'] {
1205
+ --material-active-shadow: var(--material-shadow-panel);
1206
+ }
1207
+
1208
+ .moldable-material[data-material-elevation='overlay'] {
1209
+ --material-active-shadow: var(--material-shadow-overlay);
1210
+ }
1211
+
1212
+ .moldable-material[data-material-interactive='true'] {
1213
+ transition:
1214
+ transform var(--motion-duration-fast) var(--motion-ease-standard),
1215
+ background-color var(--motion-duration-fast) var(--motion-ease-standard),
1216
+ border-color var(--motion-duration-fast) var(--motion-ease-standard);
1217
+ }
1218
+
1219
+ .moldable-material[data-material-interactive='true']:hover {
1220
+ background-color: color-mix(
1221
+ in oklch,
1222
+ var(--material-active-fill),
1223
+ var(--control-hover)
1224
+ );
1225
+ }
1226
+
1227
+ .moldable-material[data-material-interactive='true']:active {
1228
+ background-color: color-mix(
1229
+ in oklch,
1230
+ var(--material-active-fill),
1231
+ var(--control-pressed)
1232
+ );
1233
+ transform: scale(0.98);
1234
+ }
1235
+
1236
+ @supports (
1237
+ (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
1238
+ ) {
1239
+ .moldable-material {
1240
+ background-color: var(--material-active-fill);
1241
+ -webkit-backdrop-filter: blur(var(--material-active-blur))
1242
+ saturate(var(--material-active-saturation));
1243
+ backdrop-filter: blur(var(--material-active-blur))
1244
+ saturate(var(--material-active-saturation));
1245
+ }
1246
+ }
1247
+ }
1248
+
1045
1249
  @layer utilities {
1046
1250
  .scrollbar-hide {
1047
1251
  &::-webkit-scrollbar {
@@ -1075,6 +1279,10 @@
1075
1279
  .model-effort-max-burst {
1076
1280
  display: none;
1077
1281
  }
1282
+
1283
+ .moldable-material[data-material-interactive='true']:active {
1284
+ transform: none;
1285
+ }
1078
1286
  }
1079
1287
 
1080
1288
  :where([data-motion='reduced']) {
@@ -1088,6 +1296,11 @@
1088
1296
  --motion-ease-spring: linear;
1089
1297
  }
1090
1298
 
1299
+ :where([data-motion='reduced'])
1300
+ .moldable-material[data-material-interactive='true']:active {
1301
+ transform: none;
1302
+ }
1303
+
1091
1304
  /* Shiki dual-theme support: override inline styles in dark mode */
1092
1305
  .dark .shiki,
1093
1306
  .dark .shiki span {