@fragments-sdk/ui 0.9.4 → 0.9.6

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 (126) hide show
  1. package/dist/assets/ui.css +443 -247
  2. package/dist/blocks/components/index.d.ts +0 -2
  3. package/dist/blocks/components/index.d.ts.map +1 -1
  4. package/dist/codeblock.cjs +187 -184
  5. package/dist/codeblock.cjs.map +1 -1
  6. package/dist/codeblock.js +183 -180
  7. package/dist/codeblock.js.map +1 -1
  8. package/dist/components/Box/Box.module.scss.cjs +73 -0
  9. package/dist/components/Box/Box.module.scss.cjs.map +1 -1
  10. package/dist/components/Box/Box.module.scss.js +73 -0
  11. package/dist/components/Box/Box.module.scss.js.map +1 -1
  12. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +6 -0
  13. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs.map +1 -1
  14. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +6 -0
  15. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js.map +1 -1
  16. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -23
  17. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs.map +1 -1
  18. package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -23
  19. package/dist/components/CodeBlock/CodeBlock.module.scss.js.map +1 -1
  20. package/dist/components/CodeBlock/index.d.ts +11 -7
  21. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  22. package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
  23. package/dist/components/Combobox/Combobox.module.scss.js +15 -15
  24. package/dist/components/DataTable/DataTable.module.scss.cjs +84 -0
  25. package/dist/components/DataTable/DataTable.module.scss.cjs.map +1 -0
  26. package/dist/components/DataTable/DataTable.module.scss.js +84 -0
  27. package/dist/components/DataTable/DataTable.module.scss.js.map +1 -0
  28. package/dist/components/DataTable/index.cjs +383 -0
  29. package/dist/components/DataTable/index.cjs.map +1 -0
  30. package/dist/components/DataTable/index.d.ts +78 -0
  31. package/dist/components/DataTable/index.d.ts.map +1 -0
  32. package/dist/components/DataTable/index.js +366 -0
  33. package/dist/components/DataTable/index.js.map +1 -0
  34. package/dist/components/Drawer/Drawer.module.scss.cjs +9 -0
  35. package/dist/components/Drawer/Drawer.module.scss.cjs.map +1 -1
  36. package/dist/components/Drawer/Drawer.module.scss.js +9 -0
  37. package/dist/components/Drawer/Drawer.module.scss.js.map +1 -1
  38. package/dist/components/Image/Image.module.scss.cjs +12 -0
  39. package/dist/components/Image/Image.module.scss.cjs.map +1 -1
  40. package/dist/components/Image/Image.module.scss.js +12 -0
  41. package/dist/components/Image/Image.module.scss.js.map +1 -1
  42. package/dist/components/Link/Link.module.scss.cjs +3 -0
  43. package/dist/components/Link/Link.module.scss.cjs.map +1 -1
  44. package/dist/components/Link/Link.module.scss.js +3 -0
  45. package/dist/components/Link/Link.module.scss.js.map +1 -1
  46. package/dist/components/List/List.module.scss.cjs +5 -0
  47. package/dist/components/List/List.module.scss.cjs.map +1 -1
  48. package/dist/components/List/List.module.scss.js +5 -0
  49. package/dist/components/List/List.module.scss.js.map +1 -1
  50. package/dist/components/Loading/Loading.module.scss.cjs +5 -0
  51. package/dist/components/Loading/Loading.module.scss.cjs.map +1 -1
  52. package/dist/components/Loading/Loading.module.scss.js +5 -0
  53. package/dist/components/Loading/Loading.module.scss.js.map +1 -1
  54. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  55. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  56. package/dist/components/Message/Message.module.scss.cjs +22 -16
  57. package/dist/components/Message/Message.module.scss.cjs.map +1 -1
  58. package/dist/components/Message/Message.module.scss.js +22 -16
  59. package/dist/components/Message/Message.module.scss.js.map +1 -1
  60. package/dist/components/Message/index.cjs +5 -3
  61. package/dist/components/Message/index.cjs.map +1 -1
  62. package/dist/components/Message/index.d.ts +5 -1
  63. package/dist/components/Message/index.d.ts.map +1 -1
  64. package/dist/components/Message/index.js +5 -3
  65. package/dist/components/Message/index.js.map +1 -1
  66. package/dist/components/Skeleton/Skeleton.module.scss.cjs +14 -0
  67. package/dist/components/Skeleton/Skeleton.module.scss.cjs.map +1 -1
  68. package/dist/components/Skeleton/Skeleton.module.scss.js +14 -0
  69. package/dist/components/Skeleton/Skeleton.module.scss.js.map +1 -1
  70. package/dist/components/Stack/Stack.module.scss.cjs +14 -0
  71. package/dist/components/Stack/Stack.module.scss.cjs.map +1 -1
  72. package/dist/components/Stack/Stack.module.scss.js +14 -0
  73. package/dist/components/Stack/Stack.module.scss.js.map +1 -1
  74. package/dist/components/Table/Table.module.scss.cjs +21 -36
  75. package/dist/components/Table/Table.module.scss.cjs.map +1 -1
  76. package/dist/components/Table/Table.module.scss.js +21 -36
  77. package/dist/components/Table/Table.module.scss.js.map +1 -1
  78. package/dist/components/Table/index.d.ts +35 -55
  79. package/dist/components/Table/index.d.ts.map +1 -1
  80. package/dist/components/Text/Text.module.scss.cjs +14 -0
  81. package/dist/components/Text/Text.module.scss.cjs.map +1 -1
  82. package/dist/components/Text/Text.module.scss.js +14 -0
  83. package/dist/components/Text/Text.module.scss.js.map +1 -1
  84. package/dist/components/Textarea/Textarea.module.scss.cjs +4 -0
  85. package/dist/components/Textarea/Textarea.module.scss.cjs.map +1 -1
  86. package/dist/components/Textarea/Textarea.module.scss.js +4 -0
  87. package/dist/components/Textarea/Textarea.module.scss.js.map +1 -1
  88. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +5 -0
  89. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs.map +1 -1
  90. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +5 -0
  91. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js.map +1 -1
  92. package/dist/index.cjs +119 -117
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.d.ts +2 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +3 -1
  97. package/dist/index.js.map +1 -1
  98. package/dist/table.cjs +44 -262
  99. package/dist/table.cjs.map +1 -1
  100. package/dist/table.js +47 -248
  101. package/dist/table.js.map +1 -1
  102. package/fragments.json +1 -1
  103. package/package.json +110 -118
  104. package/src/blocks/components/index.ts +0 -3
  105. package/src/components/CodeBlock/CodeBlock.module.scss +16 -34
  106. package/src/components/CodeBlock/index.tsx +351 -345
  107. package/src/components/Combobox/Combobox.module.scss +13 -9
  108. package/src/components/ConversationList/ConversationList.fragment.tsx +96 -129
  109. package/src/components/DataTable/DataTable.fragment.tsx +754 -0
  110. package/src/components/DataTable/DataTable.module.scss +300 -0
  111. package/src/components/DataTable/DataTable.test.tsx +224 -0
  112. package/src/components/DataTable/index.tsx +533 -0
  113. package/src/components/Message/Message.fragment.tsx +34 -0
  114. package/src/components/Message/Message.module.scss +11 -0
  115. package/src/components/Message/index.tsx +12 -3
  116. package/src/components/Table/Table.fragment.tsx +190 -175
  117. package/src/components/Table/Table.module.scss +15 -88
  118. package/src/components/Table/Table.test.tsx +184 -94
  119. package/src/components/Table/index.tsx +105 -374
  120. package/src/index.ts +15 -4
  121. package/src/tokens/_computed.scss +7 -6
  122. package/src/tokens/_density.scss +87 -47
  123. package/src/tokens/_variables.scss +46 -31
  124. package/dist/blocks/components/DataTable.d.ts +0 -19
  125. package/dist/blocks/components/DataTable.d.ts.map +0 -1
  126. package/src/blocks/components/DataTable.tsx +0 -124
@@ -7,8 +7,8 @@
7
7
  //
8
8
  // ============================================
9
9
 
10
- @use 'sass:math';
11
- @use 'sass:map';
10
+ @use "sass:math";
11
+ @use "sass:map";
12
12
 
13
13
  // --------------------------------------------
14
14
  // Density Definitions
@@ -21,51 +21,69 @@ $density-compact: (
21
21
  base-unit: 6px,
22
22
  base-font-size: 14px,
23
23
  // Button heights (more compact)
24
- button-height-sm: 24px, // ~4 units
25
- button-height-md: 30px, // 5 units
26
- button-height-lg: 36px, // 6 units
24
+ button-height-sm: 24px,
25
+ // ~4 units
26
+ button-height-md: 30px,
27
+ // 5 units
28
+ button-height-lg: 36px,
29
+ // 6 units
27
30
  // Input height
28
- input-height: 32px, // ~5.3 units
29
- input-height-sm: 24px, // 4 units
30
- input-height-lg: 36px, // 6 units
31
+ input-height: 32px,
32
+ // ~5.3 units
33
+ input-height-sm: 24px,
34
+ // 4 units
35
+ input-height-lg: 36px,
36
+ // 6 units
31
37
  // Touch targets (minimum for accessibility)
32
38
  touch-sm: 24px,
33
39
  touch-md: 30px,
34
- touch-lg: 36px
40
+ touch-lg: 36px,
35
41
  );
36
42
 
37
43
  $density-default: (
38
44
  base-unit: 7px,
39
45
  base-font-size: 14px,
40
46
  // Button heights (current values)
41
- button-height-sm: 28px, // 4 units
42
- button-height-md: 36px, // ~5 units
43
- button-height-lg: 44px, // ~6 units
47
+ button-height-sm: 28px,
48
+ // 4 units
49
+ button-height-md: 36px,
50
+ // ~5 units
51
+ button-height-lg: 44px,
52
+ // ~6 units
44
53
  // Input height
45
- input-height: 40px, // ~6 units
46
- input-height-sm: 28px, // 4 units
47
- input-height-lg: 44px, // ~6 units
54
+ input-height: 40px,
55
+ // ~6 units
56
+ input-height-sm: 28px,
57
+ // 4 units
58
+ input-height-lg: 44px,
59
+ // ~6 units
48
60
  // Touch targets
49
61
  touch-sm: 24px,
50
62
  touch-md: 32px,
51
- touch-lg: 44px
63
+ touch-lg: 44px,
52
64
  );
53
65
 
54
66
  $density-relaxed: (
55
67
  base-unit: 8px,
56
68
  base-font-size: 14px,
57
69
  // Button heights (more spacious)
58
- button-height-sm: 32px, // 4 units
59
- button-height-md: 40px, // 5 units
60
- button-height-lg: 48px, // 6 units
70
+ button-height-sm: 32px,
71
+ // 4 units
72
+ button-height-md: 40px,
73
+ // 5 units
74
+ button-height-lg: 48px,
75
+ // 6 units
61
76
  // Input height
62
- input-height: 44px, // ~5.5 units
63
- input-height-sm: 32px, // 4 units
64
- input-height-lg: 48px, // 6 units
77
+ input-height: 44px,
78
+ // ~5.5 units
79
+ input-height-sm: 32px,
80
+ // 4 units
81
+ input-height-lg: 48px,
82
+ // 6 units
65
83
  // Touch targets
66
84
  touch-sm: 32px,
67
85
  touch-md: 40px,
68
- touch-lg: 48px
86
+ touch-lg: 48px,
69
87
  );
70
88
 
71
89
  // --------------------------------------------
@@ -74,7 +92,7 @@ $density-relaxed: (
74
92
  $densities: (
75
93
  "compact": $density-compact,
76
94
  "default": $density-default,
77
- "relaxed": $density-relaxed
95
+ "relaxed": $density-relaxed,
78
96
  );
79
97
 
80
98
  // --------------------------------------------
@@ -119,19 +137,29 @@ $densities: (
119
137
  @return (
120
138
  // Micro spacing (pixel-precise for tiny alignments)
121
139
  px: 1px,
122
- 0-5: $unit-rem * 0.3, // ~2px for 7px base
123
- 0-75: $unit-rem * 0.43, // ~3px for 7px base
140
+ 0-5: $unit-rem * 0.3,
141
+ // ~2px for 7px base
142
+ 0-75: $unit-rem * 0.43,
124
143
 
144
+ // ~3px for 7px base
125
145
  // Standard spacing scale
126
- 1: $unit-rem, // 1 unit
127
- 2: $unit-rem * 2, // 2 units
128
- 3: $unit-rem * 3, // 3 units
129
- 4: $unit-rem * 4, // 4 units
130
- 5: $unit-rem * 5, // 5 units
131
- 6: $unit-rem * 6, // 6 units
132
- 8: $unit-rem * 8, // 8 units
133
- 10: $unit-rem * 10, // 10 units
134
- 12: $unit-rem * 12 // 12 units
146
+ 1: $unit-rem,
147
+ // 1 unit
148
+ 2: $unit-rem * 2,
149
+ // 2 units
150
+ 3: $unit-rem * 3,
151
+ // 3 units
152
+ 4: $unit-rem * 4,
153
+ // 4 units
154
+ 5: $unit-rem * 5,
155
+ // 5 units
156
+ 6: $unit-rem * 6,
157
+ // 6 units
158
+ 8: $unit-rem * 8,
159
+ // 8 units
160
+ 10: $unit-rem * 10,
161
+ // 10 units
162
+ 12: $unit-rem * 12 // 12 units
135
163
  );
136
164
  }
137
165
 
@@ -145,23 +173,35 @@ $densities: (
145
173
 
146
174
  @return (
147
175
  // Container padding: Cards, Dialogs, Popovers
148
- container-sm: $unit-rem * 3, // 3 units
149
- container-md: $unit-rem * 4, // 4 units
150
- container-lg: $unit-rem * 6, // 6 units
176
+ container-sm: $unit-rem * 3,
177
+ // 3 units
178
+ container-md: $unit-rem * 4,
179
+ // 4 units
180
+ container-lg: $unit-rem * 6,
151
181
 
182
+ // 6 units
152
183
  // Inline padding: Alerts, Toasts
153
- inline-sm: $unit-rem * 2, // 2 units
154
- inline-md: $unit-rem * 3, // 3 units
155
- inline-lg: $unit-rem * 4, // 4 units
156
-
184
+ inline-xs: $unit-rem * 1,
185
+ // 1 unit
186
+ inline-sm: $unit-rem * 2,
187
+ // 2 units
188
+ inline-md: $unit-rem * 3,
189
+ // 3 units
190
+ inline-lg: $unit-rem * 4,
191
+
192
+ // 4 units
157
193
  // Container padding (extended)
158
- container-xl: $unit-rem * 8, // 8 units
194
+ container-xl: $unit-rem * 8,
159
195
 
196
+ // 8 units
160
197
  // Item padding: Accordion, Tabs, Menu items
161
- item-xs: $unit-rem * 1, // 1 unit
162
- item-sm: $unit-rem * 2, // 2 units
163
- item-md: $unit-rem * 3, // 3 units
164
- item-lg: $unit-rem * 4 // 4 units
198
+ item-xs: $unit-rem * 1,
199
+ // 1 unit
200
+ item-sm: $unit-rem * 2,
201
+ // 2 units
202
+ item-md: $unit-rem * 3,
203
+ // 3 units
204
+ item-lg: $unit-rem * 4 // 4 units
165
205
  );
166
206
  }
167
207
 
@@ -22,7 +22,7 @@
22
22
  // ============================================
23
23
 
24
24
  // Import computed values from seed system
25
- @use 'computed' as computed;
25
+ @use "computed" as computed;
26
26
 
27
27
  // --------------------------------------------
28
28
  // Base Configuration
@@ -43,17 +43,27 @@ $fui-base-unit: computed.$computed-base-unit !default;
43
43
  // --------------------------------------------
44
44
  // Typography
45
45
  // --------------------------------------------
46
- $fui-font-sans: 'Geist Sans', 'Geist', Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !default;
47
- $fui-font-mono: 'Geist Mono', 'SF Mono', SFMono-Regular, ui-monospace, 'Cascadia Code', Menlo, monospace !default;
46
+ $fui-font-sans:
47
+ "Geist Sans",
48
+ "Geist",
49
+ Inter,
50
+ system-ui,
51
+ -apple-system,
52
+ BlinkMacSystemFont,
53
+ "Segoe UI",
54
+ Roboto,
55
+ sans-serif !default;
56
+ $fui-font-mono:
57
+ "Geist Mono", "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, monospace !default;
48
58
 
49
59
  // Font sizes (rem based on 14px root)
50
- $fui-font-size-2xs: 0.714rem !default; // 10px
51
- $fui-font-size-xs: 0.857rem !default; // 12px
52
- $fui-font-size-sm: 1rem !default; // 14px (base)
60
+ $fui-font-size-2xs: 0.714rem !default; // 10px
61
+ $fui-font-size-xs: 0.857rem !default; // 12px
62
+ $fui-font-size-sm: 1rem !default; // 14px (base)
53
63
  $fui-font-size-base: 1.143rem !default; // 16px
54
- $fui-font-size-lg: 1.286rem !default; // 18px
55
- $fui-font-size-xl: 1.714rem !default; // 24px
56
- $fui-font-size-2xl: 2.143rem !default; // 30px
64
+ $fui-font-size-lg: 1.286rem !default; // 18px
65
+ $fui-font-size-xl: 1.714rem !default; // 24px
66
+ $fui-font-size-2xl: 2.143rem !default; // 30px
57
67
 
58
68
  $fui-font-weight-normal: 400 !default;
59
69
  $fui-font-weight-medium: 500 !default;
@@ -92,6 +102,7 @@ $fui-padding-container-lg: computed.$computed-padding-container-lg !default;
92
102
  $fui-padding-container-xl: computed.$computed-padding-container-xl !default;
93
103
 
94
104
  // Inline padding: Alerts, Toasts
105
+ $fui-padding-inline-xs: computed.$computed-padding-inline-xs !default;
95
106
  $fui-padding-inline-sm: computed.$computed-padding-inline-sm !default;
96
107
  $fui-padding-inline-md: computed.$computed-padding-inline-md !default;
97
108
  $fui-padding-inline-lg: computed.$computed-padding-inline-lg !default;
@@ -270,37 +281,37 @@ $fui-target-size-min: 1.714rem !default; // 24px
270
281
  $fui-target-size-comfortable: $fui-touch-md !default;
271
282
 
272
283
  // Toggle/Switch
273
- $fui-toggle-width-sm: 2.286rem !default; // 32px
274
- $fui-toggle-width-md: 2.857rem !default; // 40px
284
+ $fui-toggle-width-sm: 2.286rem !default; // 32px
285
+ $fui-toggle-width-md: 2.857rem !default; // 40px
275
286
  $fui-toggle-height-sm: $fui-target-size-min !default; // 24px
276
- $fui-toggle-height-md: 2rem !default; // 28px
277
- $fui-toggle-thumb-sm: 1rem !default; // 14px
278
- $fui-toggle-thumb-md: 1.286rem !default; // 18px
279
- $fui-toggle-thumb-offset: 2px !default; // Thumb inset from track edge
287
+ $fui-toggle-height-md: 2rem !default; // 28px
288
+ $fui-toggle-thumb-sm: 1rem !default; // 14px
289
+ $fui-toggle-thumb-md: 1.286rem !default; // 18px
290
+ $fui-toggle-thumb-offset: 2px !default; // Thumb inset from track edge
280
291
 
281
292
  // Badge
282
293
  $fui-badge-dot-sm: 5px !default;
283
294
  $fui-badge-dot-md: 6px !default;
284
295
 
285
296
  // Icon sizes (standard conventions)
286
- $fui-icon-sm: 1rem !default; // 14px (2 units)
287
- $fui-icon-md: 1.143rem !default; // 16px (standard small icon)
288
- $fui-icon-lg: 1.429rem !default; // 20px (standard medium icon)
289
- $fui-icon-xl: 1.714rem !default; // 24px (standard large icon)
297
+ $fui-icon-sm: 1rem !default; // 14px (2 units)
298
+ $fui-icon-md: 1.143rem !default; // 16px (standard small icon)
299
+ $fui-icon-lg: 1.429rem !default; // 20px (standard medium icon)
300
+ $fui-icon-xl: 1.714rem !default; // 24px (standard large icon)
290
301
 
291
302
  // Animation offsets
292
- $fui-anim-offset-sm: 4px !default; // Small slide animation
293
- $fui-anim-offset-md: 8px !default; // Medium slide animation
303
+ $fui-anim-offset-sm: 4px !default; // Small slide animation
304
+ $fui-anim-offset-md: 8px !default; // Medium slide animation
294
305
 
295
306
  // Popover/Tooltip arrow
296
307
  $fui-arrow-size: 10px !default;
297
308
 
298
309
  // Sidebar-specific
299
- $fui-sidebar-item-height: 2.5rem !default; // 35px (5 units)
310
+ $fui-sidebar-item-height: 2.5rem !default; // 35px (5 units)
300
311
  $fui-sidebar-subitem-height: 2.571rem !default; // 36px
301
312
  $fui-sidebar-indicator-width: 2px !default;
302
313
  $fui-sidebar-indicator-height: 1.143rem !default; // 16px
303
- $fui-sidebar-rail-width: 1.143rem !default; // 16px
314
+ $fui-sidebar-rail-width: 1.143rem !default; // 16px
304
315
  $fui-sidebar-rail-indicator-width: 4px !default;
305
316
  $fui-sidebar-rail-indicator-height: 2.857rem !default; // 40px
306
317
  $fui-sidebar-rail-indicator-height-hover: 4rem !default; // 56px
@@ -316,9 +327,9 @@ $fui-emptystate-width-md: 320px !default;
316
327
  $fui-emptystate-width-lg: 400px !default;
317
328
 
318
329
  // EmptyState icon sizes
319
- $fui-emptystate-icon-sm: $fui-icon-xl !default; // 24px
320
- $fui-emptystate-icon-md: 2.286rem !default; // 32px
321
- $fui-emptystate-icon-lg: 2.857rem !default; // 40px
330
+ $fui-emptystate-icon-sm: $fui-icon-xl !default; // 24px
331
+ $fui-emptystate-icon-md: 2.286rem !default; // 32px
332
+ $fui-emptystate-icon-lg: 2.857rem !default; // 40px
322
333
 
323
334
  // ColorChip/ColorPicker
324
335
  $fui-colorpicker-size: 180px !default;
@@ -345,8 +356,8 @@ $fui-theme-toggle-lg-height: 34px !default;
345
356
  $fui-theme-toggle-lg-icon: 18px !default;
346
357
 
347
358
  // CodeBlock (light mode)
348
- $fui-code-bg: #1e1e1e !default;
349
- $fui-code-header-bg: $fui-code-bg !default;
359
+ $fui-code-bg: #000000 !default;
360
+ $fui-code-header-bg: #1c1c1f !default;
350
361
  $fui-code-text: #d4d4d4 !default;
351
362
  $fui-code-text-muted: #6b7280 !default;
352
363
  $fui-code-border: rgba(255, 255, 255, 0.1) !default;
@@ -365,13 +376,15 @@ $fui-code-scrollbar-thumb-hover: rgba(255, 255, 255, 0.25) !default;
365
376
  // Tooltip (always dark bg with light text)
366
377
  $fui-tooltip-bg: #1e293b !default;
367
378
  $fui-tooltip-text: #f8fafc !default;
368
- $fui-tooltip-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -2px rgba(0, 0, 0, 0.15) !default;
379
+ $fui-tooltip-shadow:
380
+ 0 4px 6px -1px rgba(0, 0, 0, 0.2),
381
+ 0 2px 4px -2px rgba(0, 0, 0, 0.15) !default;
369
382
 
370
383
  // Hero/Marketing gradient accent
371
384
  $fui-hero-gradient-color: rgba(120, 119, 198, 0.15) !default;
372
385
 
373
386
  // CodeBlock (dark mode) - same as light, code blocks stay dark
374
- $fui-dark-code-bg: var(--fui-bg-elevated) !default;
387
+ $fui-dark-code-bg: #000000 !default;
375
388
  $fui-dark-code-header-bg: var(--fui-bg-elevated) !default;
376
389
  $fui-dark-code-text: #d4d4d4 !default;
377
390
  $fui-dark-code-text-muted: #6b7280 !default;
@@ -391,7 +404,9 @@ $fui-dark-code-scrollbar-thumb-hover: rgba(255, 255, 255, 0.25) !default;
391
404
  // Tooltip (dark mode) - same as light, tooltips stay dark
392
405
  $fui-dark-tooltip-bg: #1e293b !default;
393
406
  $fui-dark-tooltip-text: #f8fafc !default;
394
- $fui-dark-tooltip-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.25) !default;
407
+ $fui-dark-tooltip-shadow:
408
+ 0 4px 6px -1px rgba(0, 0, 0, 0.3),
409
+ 0 2px 4px -2px rgba(0, 0, 0, 0.25) !default;
395
410
 
396
411
  // Hero/Marketing gradient accent (dark mode)
397
412
  $fui-dark-hero-gradient-color: rgba(120, 119, 198, 0.25) !default;
@@ -1,19 +0,0 @@
1
- import * as React from 'react';
2
- export interface DataTableColumn {
3
- /** Unique key matching a property in the data objects */
4
- key: string;
5
- /** Display text for the column header */
6
- header: string;
7
- /** Optional fixed width (e.g., "200px", "30%") */
8
- width?: string;
9
- }
10
- export interface DataTableProps {
11
- /** Column definitions */
12
- columns: DataTableColumn[];
13
- /** Array of row data objects; keys should match column keys */
14
- data: Array<Record<string, React.ReactNode>>;
15
- /** Additional CSS class name */
16
- className?: string;
17
- }
18
- export declare const DataTable: React.ForwardRefExoticComponent<DataTableProps & React.RefAttributes<HTMLTableElement>>;
19
- //# sourceMappingURL=DataTable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/blocks/components/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,SAAS,yFA6FrB,CAAC"}
@@ -1,124 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
-
5
- // ============================================
6
- // Types
7
- // ============================================
8
-
9
- export interface DataTableColumn {
10
- /** Unique key matching a property in the data objects */
11
- key: string;
12
- /** Display text for the column header */
13
- header: string;
14
- /** Optional fixed width (e.g., "200px", "30%") */
15
- width?: string;
16
- }
17
-
18
- export interface DataTableProps {
19
- /** Column definitions */
20
- columns: DataTableColumn[];
21
- /** Array of row data objects; keys should match column keys */
22
- data: Array<Record<string, React.ReactNode>>;
23
- /** Additional CSS class name */
24
- className?: string;
25
- }
26
-
27
- // ============================================
28
- // Component
29
- // ============================================
30
-
31
- export const DataTable = React.forwardRef<HTMLTableElement, DataTableProps>(
32
- function DataTable({ columns, data, className }, ref) {
33
- return (
34
- <div
35
- style={{
36
- width: '100%',
37
- overflowX: 'auto',
38
- borderRadius: 'var(--fui-radius-md)',
39
- border: '1px solid var(--fui-border)',
40
- }}
41
- >
42
- <table
43
- ref={ref}
44
- className={className}
45
- style={{
46
- width: '100%',
47
- borderCollapse: 'collapse',
48
- fontFamily: 'var(--fui-font-sans)',
49
- fontSize: 'var(--fui-font-size-sm)',
50
- }}
51
- >
52
- <thead>
53
- <tr>
54
- {columns.map((col) => (
55
- <th
56
- key={col.key}
57
- scope="col"
58
- style={{
59
- padding: 'var(--fui-space-2) var(--fui-space-3)',
60
- textAlign: 'left',
61
- fontWeight: 'var(--fui-font-weight-medium)' as React.CSSProperties['fontWeight'],
62
- color: 'var(--fui-text-secondary)',
63
- backgroundColor: 'var(--fui-bg-secondary)',
64
- borderBottom: '1px solid var(--fui-border)',
65
- whiteSpace: 'nowrap',
66
- width: col.width,
67
- }}
68
- >
69
- {col.header}
70
- </th>
71
- ))}
72
- </tr>
73
- </thead>
74
- <tbody>
75
- {data.map((row, rowIndex) => (
76
- <tr
77
- key={rowIndex}
78
- style={{
79
- borderBottom:
80
- rowIndex < data.length - 1
81
- ? '1px solid var(--fui-border)'
82
- : undefined,
83
- transition: 'background-color var(--fui-transition-fast)',
84
- }}
85
- onMouseEnter={(e) => {
86
- e.currentTarget.style.backgroundColor = 'var(--fui-bg-hover)';
87
- }}
88
- onMouseLeave={(e) => {
89
- e.currentTarget.style.backgroundColor = '';
90
- }}
91
- >
92
- {columns.map((col) => (
93
- <td
94
- key={col.key}
95
- style={{
96
- padding: 'var(--fui-space-2) var(--fui-space-3)',
97
- color: 'var(--fui-text-primary)',
98
- }}
99
- >
100
- {row[col.key] ?? '\u2014'}
101
- </td>
102
- ))}
103
- </tr>
104
- ))}
105
- {data.length === 0 && (
106
- <tr>
107
- <td
108
- colSpan={columns.length}
109
- style={{
110
- padding: 'var(--fui-space-6)',
111
- textAlign: 'center',
112
- color: 'var(--fui-text-tertiary)',
113
- }}
114
- >
115
- No data available
116
- </td>
117
- </tr>
118
- )}
119
- </tbody>
120
- </table>
121
- </div>
122
- );
123
- }
124
- );