@floegence/floe-webapp-core 0.86.60 → 0.86.62

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/dist/components/chat/blocks/BlockRenderer.js +1 -1
  2. package/dist/components/chat/blocks/CodeDiffBlock.js +56 -56
  3. package/dist/components/chat/blocks/ImageBlock.js +1 -1
  4. package/dist/components/chat/blocks/ToolCallBlock.js +57 -57
  5. package/dist/components/chat/status/ConnectionStatus.js +10 -10
  6. package/dist/components/deck/DeckCell.js +25 -25
  7. package/dist/components/deck/DeckContextMenu.js +20 -20
  8. package/dist/components/deck/DeckGrid.js +1 -1
  9. package/dist/components/deck/DeckTopBar.js +42 -42
  10. package/dist/components/deck/DropZonePreview.js +6 -6
  11. package/dist/components/deck/LayoutSelector.js +53 -53
  12. package/dist/components/deck/WidgetFrame.js +28 -28
  13. package/dist/components/deck/WidgetPalette.js +31 -31
  14. package/dist/components/deck/WidgetTypeSwitcher.js +31 -31
  15. package/dist/components/file-browser/Breadcrumb.js +27 -27
  16. package/dist/components/file-browser/DirectoryTree.js +15 -15
  17. package/dist/components/file-browser/DragPreview.js +58 -58
  18. package/dist/components/file-browser/FileBrowser.js +17 -17
  19. package/dist/components/file-browser/FileBrowserStatusBar.js +18 -18
  20. package/dist/components/file-browser/FileBrowserToolbar.js +27 -27
  21. package/dist/components/file-browser/FileContextMenu.js +47 -47
  22. package/dist/components/file-browser/FileGridView.js +53 -51
  23. package/dist/components/file-browser/FileItemDecorations.js +30 -27
  24. package/dist/components/file-browser/FileListView.js +114 -114
  25. package/dist/components/icons/index.js +1357 -1357
  26. package/dist/components/launchpad/Launchpad.js +14 -14
  27. package/dist/components/launchpad/LaunchpadGrid.js +7 -7
  28. package/dist/components/launchpad/LaunchpadItem.js +11 -11
  29. package/dist/components/launchpad/LaunchpadPagination.js +16 -16
  30. package/dist/components/launchpad/LaunchpadSearch.js +9 -9
  31. package/dist/components/layout/ActivityBar.js +52 -55
  32. package/dist/components/layout/BottomBar.js +17 -17
  33. package/dist/components/layout/MobileNavigationPanel.js +36 -36
  34. package/dist/components/layout/MobileTabBar.js +39 -39
  35. package/dist/components/layout/Panel.js +16 -16
  36. package/dist/components/layout/ResizeHandle.js +19 -19
  37. package/dist/components/layout/Shell.js +50 -50
  38. package/dist/components/layout/Sidebar.js +37 -36
  39. package/dist/components/layout/SidebarPane.js +19 -19
  40. package/dist/components/layout/TopBar.js +16 -16
  41. package/dist/components/layout/TopBarIconButton.js +15 -15
  42. package/dist/components/loading/LoadingOverlay.js +9 -9
  43. package/dist/components/loading/Skeleton.js +11 -11
  44. package/dist/components/ui/Button.js +36 -36
  45. package/dist/components/ui/Card.d.ts +11 -62
  46. package/dist/components/ui/Card.js +64 -237
  47. package/dist/components/ui/Checkbox.js +79 -79
  48. package/dist/components/ui/CommandPalette.js +56 -55
  49. package/dist/components/ui/Dialog.js +91 -93
  50. package/dist/components/ui/DirectoryInput.js +22 -22
  51. package/dist/components/ui/DirectoryPicker.js +8 -8
  52. package/dist/components/ui/Dropdown.js +89 -87
  53. package/dist/components/ui/FeedbackIndicator.js +57 -57
  54. package/dist/components/ui/FileOpenPicker.js +37 -37
  55. package/dist/components/ui/FileSavePicker.js +41 -41
  56. package/dist/components/ui/FloatingWindow.js +213 -205
  57. package/dist/components/ui/Form.js +76 -76
  58. package/dist/components/ui/HighlightBlock.js +14 -14
  59. package/dist/components/ui/Input.js +106 -109
  60. package/dist/components/ui/Pagination.js +86 -86
  61. package/dist/components/ui/Popover.d.ts +33 -0
  62. package/dist/components/ui/Popover.js +133 -0
  63. package/dist/components/ui/ProcessingIndicator.js +344 -345
  64. package/dist/components/ui/Progress.js +94 -97
  65. package/dist/components/ui/QuoteBlock.js +25 -25
  66. package/dist/components/ui/Radio.js +91 -91
  67. package/dist/components/ui/SegmentedControl.js +24 -24
  68. package/dist/components/ui/Stepper.js +68 -60
  69. package/dist/components/ui/Switch.js +25 -25
  70. package/dist/components/ui/Tabs.js +99 -87
  71. package/dist/components/ui/Tag.js +12 -9
  72. package/dist/components/ui/Tooltip.js +30 -30
  73. package/dist/components/ui/floatingPresence.d.ts +7 -0
  74. package/dist/components/ui/floatingPresence.js +80 -39
  75. package/dist/components/ui/index.d.ts +2 -1
  76. package/dist/components/ui/picker/DirectoryFavorites.js +27 -27
  77. package/dist/components/ui/picker/PickerBase.js +107 -107
  78. package/dist/context/NotificationContext.js +4 -4
  79. package/dist/context/ThemeContext.js +71 -70
  80. package/dist/floe.css +205 -43
  81. package/dist/full.js +650 -652
  82. package/dist/language.css +320 -0
  83. package/dist/primitives.css +23 -17
  84. package/dist/standalone.css +1 -0
  85. package/dist/styles/themes/classicSemanticTokens.d.ts +122 -122
  86. package/dist/styles/themes/classicSemanticTokens.js +140 -138
  87. package/dist/styles/themes/index.d.ts +3 -1
  88. package/dist/styles/themes/index.js +10 -10
  89. package/dist/styles/themes/presets.d.ts +2 -2
  90. package/dist/styles/themes/presets.js +34 -34
  91. package/dist/styles/tokens.d.ts +152 -68
  92. package/dist/styles/tokens.js +87 -49
  93. package/dist/styles.css +1 -1
  94. package/dist/surface.css +161 -116
  95. package/dist/themes/dark.css +64 -64
  96. package/dist/themes/light.css +64 -64
  97. package/dist/ui.css +171 -255
  98. package/dist/ui.js +176 -178
  99. package/dist/utils/hotInteraction.d.ts +7 -0
  100. package/dist/utils/hotInteraction.js +12 -12
  101. package/dist/widgets/TerminalWidget.js +28 -28
  102. package/dist/workbench-composition.css +15 -15
  103. package/package.json +1 -1
@@ -44,27 +44,44 @@ export interface FloeMotionToken {
44
44
  description: string;
45
45
  }
46
46
  export declare const floeSharedCssVariables: {
47
- readonly '--radius': "0.375rem";
48
- readonly '--font-sans': "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
49
- readonly '--font-mono': "'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
47
+ readonly '--radius': "0.625rem";
48
+ readonly '--font-sans': "'Inter', 'InterVariable', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif";
49
+ readonly '--font-mono': "'JetBrains Mono', 'SFMono-Regular', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
50
50
  readonly '--floe-type-caption': "0.6875rem";
51
51
  readonly '--floe-type-supporting': "0.75rem";
52
- readonly '--floe-type-control': "0.75rem";
53
- readonly '--floe-type-body': "0.75rem";
52
+ readonly '--floe-type-control': "0.8125rem";
53
+ readonly '--floe-type-body': "0.8125rem";
54
54
  readonly '--floe-type-heading': "1rem";
55
- readonly '--floe-line-control': "1.125rem";
56
- readonly '--floe-line-body': "1.25rem";
55
+ readonly '--floe-line-control': "1.25rem";
56
+ readonly '--floe-line-body': "1.375rem";
57
57
  readonly '--floe-control-height-sm': "1.75rem";
58
58
  readonly '--floe-control-height-md': "2rem";
59
- readonly '--floe-row-height': "1.75rem";
59
+ readonly '--floe-row-height': "1.875rem";
60
60
  readonly '--floe-space-1': "0.25rem";
61
61
  readonly '--floe-space-2': "0.5rem";
62
62
  readonly '--floe-space-3': "0.75rem";
63
63
  readonly '--floe-space-4': "1rem";
64
64
  readonly '--floe-space-6': "1.5rem";
65
- readonly '--floe-radius-control': "0.375rem";
66
- readonly '--floe-radius-group': "0.5rem";
67
- readonly '--floe-radius-floating': "12px";
65
+ readonly '--floe-radius-xs': "0.25rem";
66
+ readonly '--floe-radius-sm': "0.375rem";
67
+ readonly '--floe-radius-md': "0.5rem";
68
+ readonly '--floe-radius-control': "0.625rem";
69
+ readonly '--floe-radius-group': "0.75rem";
70
+ readonly '--floe-radius-card': "1rem";
71
+ readonly '--floe-radius-panel': "1.25rem";
72
+ readonly '--floe-radius-floating': "1.25rem";
73
+ readonly '--floe-tracking-tight': "-0.02em";
74
+ readonly '--floe-tracking-normal': "-0.011em";
75
+ readonly '--floe-tracking-caps': "0.06em";
76
+ readonly '--floe-ease-out': "cubic-bezier(0.16, 1, 0.3, 1)";
77
+ readonly '--floe-ease-in-out': "cubic-bezier(0.65, 0, 0.35, 1)";
78
+ readonly '--floe-ease-spring': "cubic-bezier(0.34, 1.35, 0.64, 1)";
79
+ readonly '--floe-duration-instant': "90ms";
80
+ readonly '--floe-duration-fast': "140ms";
81
+ readonly '--floe-duration-base': "200ms";
82
+ readonly '--floe-duration-slow': "280ms";
83
+ readonly '--floe-hover-lift': "-1px";
84
+ readonly '--floe-hover-lift-strong': "-2px";
68
85
  };
69
86
  export declare const floeColorTokenCategories: readonly [{
70
87
  readonly name: "Base Colors";
@@ -519,12 +536,12 @@ export declare const floeTypographyTokens: readonly [{
519
536
  export declare const floeFontFamilyTokens: readonly [{
520
537
  readonly name: "Sans";
521
538
  readonly variable: "--font-sans";
522
- readonly value: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
539
+ readonly value: "'Inter', 'InterVariable', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif";
523
540
  readonly description: "Default UI font family for application chrome and content.";
524
541
  }, {
525
542
  readonly name: "Mono";
526
543
  readonly variable: "--font-mono";
527
- readonly value: "'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
544
+ readonly value: "'JetBrains Mono', 'SFMono-Regular', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
528
545
  readonly description: "Monospace font family for code, terminal, and diagnostics.";
529
546
  }];
530
547
  export declare const floeSpacingTokens: readonly [{
@@ -584,35 +601,45 @@ export declare const floeRadiusTokens: readonly [{
584
601
  readonly variable: "-";
585
602
  readonly className: "rounded-none";
586
603
  }, {
587
- readonly name: "SM";
588
- readonly value: "0.125rem";
589
- readonly variable: "-";
590
- readonly className: "rounded-sm";
604
+ readonly name: "XS";
605
+ readonly value: "0.25rem";
606
+ readonly variable: "--floe-radius-xs";
607
+ readonly className: "rounded-xs";
591
608
  }, {
592
- readonly name: "Default";
609
+ readonly name: "SM";
593
610
  readonly value: "0.375rem";
594
- readonly variable: "--radius";
595
- readonly className: "rounded";
611
+ readonly variable: "--floe-radius-sm";
612
+ readonly className: "rounded-sm";
596
613
  }, {
597
614
  readonly name: "MD";
598
615
  readonly value: "0.5rem";
599
- readonly variable: "-";
616
+ readonly variable: "--floe-radius-md";
600
617
  readonly className: "rounded-md";
601
618
  }, {
602
- readonly name: "LG";
619
+ readonly name: "Control";
620
+ readonly value: "0.625rem";
621
+ readonly variable: "--floe-radius-control";
622
+ readonly className: "rounded-control";
623
+ }, {
624
+ readonly name: "Group";
603
625
  readonly value: "0.75rem";
604
- readonly variable: "-";
605
- readonly className: "rounded-lg";
626
+ readonly variable: "--floe-radius-group";
627
+ readonly className: "rounded-group";
606
628
  }, {
607
- readonly name: "XL";
629
+ readonly name: "Card";
608
630
  readonly value: "1rem";
609
- readonly variable: "-";
610
- readonly className: "rounded-xl";
631
+ readonly variable: "--floe-radius-card";
632
+ readonly className: "rounded-card";
611
633
  }, {
612
- readonly name: "2XL";
613
- readonly value: "1.5rem";
614
- readonly variable: "-";
615
- readonly className: "rounded-2xl";
634
+ readonly name: "Panel";
635
+ readonly value: "1.25rem";
636
+ readonly variable: "--floe-radius-panel";
637
+ readonly className: "rounded-panel";
638
+ }, {
639
+ readonly name: "Floating";
640
+ readonly value: "1.25rem";
641
+ readonly variable: "--floe-radius-floating";
642
+ readonly className: "rounded-panel";
616
643
  }, {
617
644
  readonly name: "Full";
618
645
  readonly value: "9999px";
@@ -649,6 +676,21 @@ export declare const floeMotionTokens: readonly [{
649
676
  readonly keyframes: "glow-pulse";
650
677
  readonly usage: "Neon and emphasis effects";
651
678
  readonly description: "Pulsing glow animation for elevated emphasis.";
679
+ }, {
680
+ readonly name: "Hover Lift";
681
+ readonly keyframes: "transition-transform";
682
+ readonly usage: "floe-hover-lift / hover:-translate-y-px";
683
+ readonly description: "One-pixel rise with an eased return on pointer hover. Transform only, so control geometry never changes.";
684
+ }, {
685
+ readonly name: "Hover Surface";
686
+ readonly keyframes: "transition-colors";
687
+ readonly usage: "floe-hover-surface";
688
+ readonly description: "Tint-shift hover feedback for rows and chips that must not move, such as menu items and list rows.";
689
+ }, {
690
+ readonly name: "Press Settle";
691
+ readonly keyframes: "transition-transform";
692
+ readonly usage: "active:translate-y-0 active:scale-[0.985]";
693
+ readonly description: "A small inward settle on press that returns instantly, keeping hit targets and neighbor geometry stable.";
652
694
  }];
653
695
  export declare const floeThemeColorVariables: {
654
696
  readonly light: Record<`--${string}`, string>;
@@ -660,15 +702,15 @@ export declare function getFloeColorTokenValue(variable: FloeCssVariableName, th
660
702
  export declare const floeSurfaceTokens: readonly [{
661
703
  readonly variable: "--floe-surface-shadow-raised";
662
704
  readonly role: "raised";
663
- readonly fallback: "0 1px 3px -2px var(--floe-surface-shade), inset 0 1px 1px var(--floe-surface-highlight)";
705
+ readonly fallback: "var(--floe-elevation-raised)";
664
706
  }, {
665
707
  readonly variable: "--floe-surface-shadow-inset";
666
708
  readonly role: "inset";
667
- readonly fallback: "inset 0 1px 1px var(--floe-surface-shade), inset 0 -1px 1px var(--floe-surface-highlight)";
709
+ readonly fallback: "0 0 transparent";
668
710
  }, {
669
711
  readonly variable: "--floe-surface-shadow-floating";
670
712
  readonly role: "floating";
671
- readonly fallback: "var(--floe-window-shadow)";
713
+ readonly fallback: "var(--floe-elevation-float)";
672
714
  }, {
673
715
  readonly variable: "--floe-surface-shadow-interacting";
674
716
  readonly role: "interacting";
@@ -1128,12 +1170,12 @@ export declare const floeDesignTokens: {
1128
1170
  readonly fonts: readonly [{
1129
1171
  readonly name: "Sans";
1130
1172
  readonly variable: "--font-sans";
1131
- readonly value: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
1173
+ readonly value: "'Inter', 'InterVariable', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif";
1132
1174
  readonly description: "Default UI font family for application chrome and content.";
1133
1175
  }, {
1134
1176
  readonly name: "Mono";
1135
1177
  readonly variable: "--font-mono";
1136
- readonly value: "'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
1178
+ readonly value: "'JetBrains Mono', 'SFMono-Regular', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
1137
1179
  readonly description: "Monospace font family for code, terminal, and diagnostics.";
1138
1180
  }];
1139
1181
  readonly spacing: readonly [{
@@ -1193,35 +1235,45 @@ export declare const floeDesignTokens: {
1193
1235
  readonly variable: "-";
1194
1236
  readonly className: "rounded-none";
1195
1237
  }, {
1196
- readonly name: "SM";
1197
- readonly value: "0.125rem";
1198
- readonly variable: "-";
1199
- readonly className: "rounded-sm";
1238
+ readonly name: "XS";
1239
+ readonly value: "0.25rem";
1240
+ readonly variable: "--floe-radius-xs";
1241
+ readonly className: "rounded-xs";
1200
1242
  }, {
1201
- readonly name: "Default";
1243
+ readonly name: "SM";
1202
1244
  readonly value: "0.375rem";
1203
- readonly variable: "--radius";
1204
- readonly className: "rounded";
1245
+ readonly variable: "--floe-radius-sm";
1246
+ readonly className: "rounded-sm";
1205
1247
  }, {
1206
1248
  readonly name: "MD";
1207
1249
  readonly value: "0.5rem";
1208
- readonly variable: "-";
1250
+ readonly variable: "--floe-radius-md";
1209
1251
  readonly className: "rounded-md";
1210
1252
  }, {
1211
- readonly name: "LG";
1253
+ readonly name: "Control";
1254
+ readonly value: "0.625rem";
1255
+ readonly variable: "--floe-radius-control";
1256
+ readonly className: "rounded-control";
1257
+ }, {
1258
+ readonly name: "Group";
1212
1259
  readonly value: "0.75rem";
1213
- readonly variable: "-";
1214
- readonly className: "rounded-lg";
1260
+ readonly variable: "--floe-radius-group";
1261
+ readonly className: "rounded-group";
1215
1262
  }, {
1216
- readonly name: "XL";
1263
+ readonly name: "Card";
1217
1264
  readonly value: "1rem";
1218
- readonly variable: "-";
1219
- readonly className: "rounded-xl";
1265
+ readonly variable: "--floe-radius-card";
1266
+ readonly className: "rounded-card";
1220
1267
  }, {
1221
- readonly name: "2XL";
1222
- readonly value: "1.5rem";
1223
- readonly variable: "-";
1224
- readonly className: "rounded-2xl";
1268
+ readonly name: "Panel";
1269
+ readonly value: "1.25rem";
1270
+ readonly variable: "--floe-radius-panel";
1271
+ readonly className: "rounded-panel";
1272
+ }, {
1273
+ readonly name: "Floating";
1274
+ readonly value: "1.25rem";
1275
+ readonly variable: "--floe-radius-floating";
1276
+ readonly className: "rounded-panel";
1225
1277
  }, {
1226
1278
  readonly name: "Full";
1227
1279
  readonly value: "9999px";
@@ -1258,42 +1310,74 @@ export declare const floeDesignTokens: {
1258
1310
  readonly keyframes: "glow-pulse";
1259
1311
  readonly usage: "Neon and emphasis effects";
1260
1312
  readonly description: "Pulsing glow animation for elevated emphasis.";
1313
+ }, {
1314
+ readonly name: "Hover Lift";
1315
+ readonly keyframes: "transition-transform";
1316
+ readonly usage: "floe-hover-lift / hover:-translate-y-px";
1317
+ readonly description: "One-pixel rise with an eased return on pointer hover. Transform only, so control geometry never changes.";
1318
+ }, {
1319
+ readonly name: "Hover Surface";
1320
+ readonly keyframes: "transition-colors";
1321
+ readonly usage: "floe-hover-surface";
1322
+ readonly description: "Tint-shift hover feedback for rows and chips that must not move, such as menu items and list rows.";
1323
+ }, {
1324
+ readonly name: "Press Settle";
1325
+ readonly keyframes: "transition-transform";
1326
+ readonly usage: "active:translate-y-0 active:scale-[0.985]";
1327
+ readonly description: "A small inward settle on press that returns instantly, keeping hit targets and neighbor geometry stable.";
1261
1328
  }];
1262
1329
  readonly shared: {
1263
- readonly '--radius': "0.375rem";
1264
- readonly '--font-sans': "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
1265
- readonly '--font-mono': "'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
1330
+ readonly '--radius': "0.625rem";
1331
+ readonly '--font-sans': "'Inter', 'InterVariable', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif";
1332
+ readonly '--font-mono': "'JetBrains Mono', 'SFMono-Regular', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace";
1266
1333
  readonly '--floe-type-caption': "0.6875rem";
1267
1334
  readonly '--floe-type-supporting': "0.75rem";
1268
- readonly '--floe-type-control': "0.75rem";
1269
- readonly '--floe-type-body': "0.75rem";
1335
+ readonly '--floe-type-control': "0.8125rem";
1336
+ readonly '--floe-type-body': "0.8125rem";
1270
1337
  readonly '--floe-type-heading': "1rem";
1271
- readonly '--floe-line-control': "1.125rem";
1272
- readonly '--floe-line-body': "1.25rem";
1338
+ readonly '--floe-line-control': "1.25rem";
1339
+ readonly '--floe-line-body': "1.375rem";
1273
1340
  readonly '--floe-control-height-sm': "1.75rem";
1274
1341
  readonly '--floe-control-height-md': "2rem";
1275
- readonly '--floe-row-height': "1.75rem";
1342
+ readonly '--floe-row-height': "1.875rem";
1276
1343
  readonly '--floe-space-1': "0.25rem";
1277
1344
  readonly '--floe-space-2': "0.5rem";
1278
1345
  readonly '--floe-space-3': "0.75rem";
1279
1346
  readonly '--floe-space-4': "1rem";
1280
1347
  readonly '--floe-space-6': "1.5rem";
1281
- readonly '--floe-radius-control': "0.375rem";
1282
- readonly '--floe-radius-group': "0.5rem";
1283
- readonly '--floe-radius-floating': "12px";
1348
+ readonly '--floe-radius-xs': "0.25rem";
1349
+ readonly '--floe-radius-sm': "0.375rem";
1350
+ readonly '--floe-radius-md': "0.5rem";
1351
+ readonly '--floe-radius-control': "0.625rem";
1352
+ readonly '--floe-radius-group': "0.75rem";
1353
+ readonly '--floe-radius-card': "1rem";
1354
+ readonly '--floe-radius-panel': "1.25rem";
1355
+ readonly '--floe-radius-floating': "1.25rem";
1356
+ readonly '--floe-tracking-tight': "-0.02em";
1357
+ readonly '--floe-tracking-normal': "-0.011em";
1358
+ readonly '--floe-tracking-caps': "0.06em";
1359
+ readonly '--floe-ease-out': "cubic-bezier(0.16, 1, 0.3, 1)";
1360
+ readonly '--floe-ease-in-out': "cubic-bezier(0.65, 0, 0.35, 1)";
1361
+ readonly '--floe-ease-spring': "cubic-bezier(0.34, 1.35, 0.64, 1)";
1362
+ readonly '--floe-duration-instant': "90ms";
1363
+ readonly '--floe-duration-fast': "140ms";
1364
+ readonly '--floe-duration-base': "200ms";
1365
+ readonly '--floe-duration-slow': "280ms";
1366
+ readonly '--floe-hover-lift': "-1px";
1367
+ readonly '--floe-hover-lift-strong': "-2px";
1284
1368
  };
1285
1369
  readonly surface: readonly [{
1286
1370
  readonly variable: "--floe-surface-shadow-raised";
1287
1371
  readonly role: "raised";
1288
- readonly fallback: "0 1px 3px -2px var(--floe-surface-shade), inset 0 1px 1px var(--floe-surface-highlight)";
1372
+ readonly fallback: "var(--floe-elevation-raised)";
1289
1373
  }, {
1290
1374
  readonly variable: "--floe-surface-shadow-inset";
1291
1375
  readonly role: "inset";
1292
- readonly fallback: "inset 0 1px 1px var(--floe-surface-shade), inset 0 -1px 1px var(--floe-surface-highlight)";
1376
+ readonly fallback: "0 0 transparent";
1293
1377
  }, {
1294
1378
  readonly variable: "--floe-surface-shadow-floating";
1295
1379
  readonly role: "floating";
1296
- readonly fallback: "var(--floe-window-shadow)";
1380
+ readonly fallback: "var(--floe-elevation-float)";
1297
1381
  }, {
1298
1382
  readonly variable: "--floe-surface-shadow-interacting";
1299
1383
  readonly role: "interacting";
@@ -1,26 +1,43 @@
1
1
  import { CLASSIC_DARK_SEMANTIC_TOKENS as e, CLASSIC_LIGHT_SEMANTIC_TOKENS as a } from "./themes/classicSemanticTokens.js";
2
- const i = {
3
- "--radius": "0.375rem",
4
- "--font-sans": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
5
- "--font-mono": "'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace",
2
+ const r = {
3
+ "--radius": "0.625rem",
4
+ "--font-sans": "'Inter', 'InterVariable', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif",
5
+ "--font-mono": "'JetBrains Mono', 'SFMono-Regular', 'Fira Code', 'SF Mono', Menlo, Monaco, Consolas, monospace",
6
6
  "--floe-type-caption": "0.6875rem",
7
7
  "--floe-type-supporting": "0.75rem",
8
- "--floe-type-control": "0.75rem",
9
- "--floe-type-body": "0.75rem",
8
+ "--floe-type-control": "0.8125rem",
9
+ "--floe-type-body": "0.8125rem",
10
10
  "--floe-type-heading": "1rem",
11
- "--floe-line-control": "1.125rem",
12
- "--floe-line-body": "1.25rem",
11
+ "--floe-line-control": "1.25rem",
12
+ "--floe-line-body": "1.375rem",
13
13
  "--floe-control-height-sm": "1.75rem",
14
14
  "--floe-control-height-md": "2rem",
15
- "--floe-row-height": "1.75rem",
15
+ "--floe-row-height": "1.875rem",
16
16
  "--floe-space-1": "0.25rem",
17
17
  "--floe-space-2": "0.5rem",
18
18
  "--floe-space-3": "0.75rem",
19
19
  "--floe-space-4": "1rem",
20
20
  "--floe-space-6": "1.5rem",
21
- "--floe-radius-control": "0.375rem",
22
- "--floe-radius-group": "0.5rem",
23
- "--floe-radius-floating": "12px"
21
+ "--floe-radius-xs": "0.25rem",
22
+ "--floe-radius-sm": "0.375rem",
23
+ "--floe-radius-md": "0.5rem",
24
+ "--floe-radius-control": "0.625rem",
25
+ "--floe-radius-group": "0.75rem",
26
+ "--floe-radius-card": "1rem",
27
+ "--floe-radius-panel": "1.25rem",
28
+ "--floe-radius-floating": "1.25rem",
29
+ "--floe-tracking-tight": "-0.02em",
30
+ "--floe-tracking-normal": "-0.011em",
31
+ "--floe-tracking-caps": "0.06em",
32
+ "--floe-ease-out": "cubic-bezier(0.16, 1, 0.3, 1)",
33
+ "--floe-ease-in-out": "cubic-bezier(0.65, 0, 0.35, 1)",
34
+ "--floe-ease-spring": "cubic-bezier(0.34, 1.35, 0.64, 1)",
35
+ "--floe-duration-instant": "90ms",
36
+ "--floe-duration-fast": "140ms",
37
+ "--floe-duration-base": "200ms",
38
+ "--floe-duration-slow": "280ms",
39
+ "--floe-hover-lift": "-1px",
40
+ "--floe-hover-lift-strong": "-2px"
24
41
  }, t = [
25
42
  {
26
43
  name: "Base Colors",
@@ -559,20 +576,20 @@ const i = {
559
576
  className: "text-xl",
560
577
  description: "Page titles."
561
578
  }
562
- ], c = [
579
+ ], s = [
563
580
  {
564
581
  name: "Sans",
565
582
  variable: "--font-sans",
566
- value: i["--font-sans"],
583
+ value: r["--font-sans"],
567
584
  description: "Default UI font family for application chrome and content."
568
585
  },
569
586
  {
570
587
  name: "Mono",
571
588
  variable: "--font-mono",
572
- value: i["--font-mono"],
589
+ value: r["--font-mono"],
573
590
  description: "Monospace font family for code, terminal, and diagnostics."
574
591
  }
575
- ], s = [
592
+ ], c = [
576
593
  { name: "0.5", value: "0.125rem", pixels: "2px", className: "gap-0.5, p-0.5" },
577
594
  { name: "1", value: "0.25rem", pixels: "4px", className: "gap-1, p-1" },
578
595
  { name: "1.5", value: "0.375rem", pixels: "6px", className: "gap-1.5, p-1.5" },
@@ -584,18 +601,21 @@ const i = {
584
601
  { name: "6", value: "1.5rem", pixels: "24px", className: "gap-6, p-6" },
585
602
  { name: "8", value: "2rem", pixels: "32px", className: "gap-8, p-8" }
586
603
  ], d = [
604
+ /* The ladder is named by what a surface is, not by how large it is, and the
605
+ * steps are concentric: a control inside a card with matching padding lands
606
+ * on the rung between them. The Tailwind numeric names this table used to
607
+ * list (`rounded-sm` 4px, `rounded-md` 12px, `rounded-lg` 16px) were a second,
608
+ * incompatible scale — `rounded-sm` here is 6px and `rounded-lg` no longer
609
+ * exists, so anything reading this table to build UI got the wrong radius. */
587
610
  { name: "None", value: "0", variable: "-", className: "rounded-none" },
588
- { name: "SM", value: "0.125rem", variable: "-", className: "rounded-sm" },
589
- {
590
- name: "Default",
591
- value: i["--radius"],
592
- variable: "--radius",
593
- className: "rounded"
594
- },
595
- { name: "MD", value: "0.5rem", variable: "-", className: "rounded-md" },
596
- { name: "LG", value: "0.75rem", variable: "-", className: "rounded-lg" },
597
- { name: "XL", value: "1rem", variable: "-", className: "rounded-xl" },
598
- { name: "2XL", value: "1.5rem", variable: "-", className: "rounded-2xl" },
611
+ { name: "XS", value: r["--floe-radius-xs"], variable: "--floe-radius-xs", className: "rounded-xs" },
612
+ { name: "SM", value: r["--floe-radius-sm"], variable: "--floe-radius-sm", className: "rounded-sm" },
613
+ { name: "MD", value: r["--floe-radius-md"], variable: "--floe-radius-md", className: "rounded-md" },
614
+ { name: "Control", value: r["--floe-radius-control"], variable: "--floe-radius-control", className: "rounded-control" },
615
+ { name: "Group", value: r["--floe-radius-group"], variable: "--floe-radius-group", className: "rounded-group" },
616
+ { name: "Card", value: r["--floe-radius-card"], variable: "--floe-radius-card", className: "rounded-card" },
617
+ { name: "Panel", value: r["--floe-radius-panel"], variable: "--floe-radius-panel", className: "rounded-panel" },
618
+ { name: "Floating", value: r["--floe-radius-floating"], variable: "--floe-radius-floating", className: "rounded-panel" },
599
619
  { name: "Full", value: "9999px", variable: "-", className: "rounded-full" }
600
620
  ], u = [
601
621
  {
@@ -633,13 +653,31 @@ const i = {
633
653
  keyframes: "glow-pulse",
634
654
  usage: "Neon and emphasis effects",
635
655
  description: "Pulsing glow animation for elevated emphasis."
656
+ },
657
+ {
658
+ name: "Hover Lift",
659
+ keyframes: "transition-transform",
660
+ usage: "floe-hover-lift / hover:-translate-y-px",
661
+ description: "One-pixel rise with an eased return on pointer hover. Transform only, so control geometry never changes."
662
+ },
663
+ {
664
+ name: "Hover Surface",
665
+ keyframes: "transition-colors",
666
+ usage: "floe-hover-surface",
667
+ description: "Tint-shift hover feedback for rows and chips that must not move, such as menu items and list rows."
668
+ },
669
+ {
670
+ name: "Press Settle",
671
+ keyframes: "transition-transform",
672
+ usage: "active:translate-y-0 active:scale-[0.985]",
673
+ description: "A small inward settle on press that returns instantly, keeping hit targets and neighbor geometry stable."
636
674
  }
637
- ], g = t.reduce((o, r) => (o.push(...r.tokens), o), []);
638
- function n(o) {
675
+ ], g = t.reduce((i, o) => (i.push(...o.tokens), i), []);
676
+ function n(i) {
639
677
  return Object.fromEntries(
640
- g.map((r) => [
641
- r.variable,
642
- o === "light" ? r.lightValue : r.darkValue
678
+ g.map((o) => [
679
+ o.variable,
680
+ i === "light" ? o.lightValue : o.darkValue
643
681
  ])
644
682
  );
645
683
  }
@@ -647,34 +685,34 @@ const m = {
647
685
  light: n("light"),
648
686
  dark: n("dark")
649
687
  };
650
- function h(o, r) {
651
- return m[r][o];
688
+ function p(i, o) {
689
+ return m[o][i];
652
690
  }
653
- const b = [
654
- { variable: "--floe-surface-shadow-raised", role: "raised", fallback: "0 1px 3px -2px var(--floe-surface-shade), inset 0 1px 1px var(--floe-surface-highlight)" },
655
- { variable: "--floe-surface-shadow-inset", role: "inset", fallback: "inset 0 1px 1px var(--floe-surface-shade), inset 0 -1px 1px var(--floe-surface-highlight)" },
656
- { variable: "--floe-surface-shadow-floating", role: "floating", fallback: "var(--floe-window-shadow)" },
691
+ const f = [
692
+ { variable: "--floe-surface-shadow-raised", role: "raised", fallback: "var(--floe-elevation-raised)" },
693
+ { variable: "--floe-surface-shadow-inset", role: "inset", fallback: "0 0 transparent" },
694
+ { variable: "--floe-surface-shadow-floating", role: "floating", fallback: "var(--floe-elevation-float)" },
657
695
  { variable: "--floe-surface-shadow-interacting", role: "interacting", fallback: "0 1px 2px var(--floe-surface-shade)" }
658
- ], f = {
696
+ ], h = {
659
697
  colors: t,
660
698
  typography: l,
661
- fonts: c,
662
- spacing: s,
699
+ fonts: s,
700
+ spacing: c,
663
701
  radius: d,
664
702
  motion: u,
665
- shared: i,
666
- surface: b
703
+ shared: r,
704
+ surface: f
667
705
  };
668
706
  export {
669
707
  t as floeColorTokenCategories,
670
- f as floeDesignTokens,
671
- c as floeFontFamilyTokens,
708
+ h as floeDesignTokens,
709
+ s as floeFontFamilyTokens,
672
710
  u as floeMotionTokens,
673
711
  d as floeRadiusTokens,
674
- i as floeSharedCssVariables,
675
- s as floeSpacingTokens,
676
- b as floeSurfaceTokens,
712
+ r as floeSharedCssVariables,
713
+ c as floeSpacingTokens,
714
+ f as floeSurfaceTokens,
677
715
  m as floeThemeColorVariables,
678
716
  l as floeTypographyTokens,
679
- h as getFloeColorTokenValue
717
+ p as getFloeColorTokenValue
680
718
  };