@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.
- package/dist/assets/ui.css +443 -247
- package/dist/blocks/components/index.d.ts +0 -2
- package/dist/blocks/components/index.d.ts.map +1 -1
- package/dist/codeblock.cjs +187 -184
- package/dist/codeblock.cjs.map +1 -1
- package/dist/codeblock.js +183 -180
- package/dist/codeblock.js.map +1 -1
- package/dist/components/Box/Box.module.scss.cjs +73 -0
- package/dist/components/Box/Box.module.scss.cjs.map +1 -1
- package/dist/components/Box/Box.module.scss.js +73 -0
- package/dist/components/Box/Box.module.scss.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +6 -0
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +6 -0
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -23
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -23
- package/dist/components/CodeBlock/CodeBlock.module.scss.js.map +1 -1
- package/dist/components/CodeBlock/index.d.ts +11 -7
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
- package/dist/components/Combobox/Combobox.module.scss.js +15 -15
- package/dist/components/DataTable/DataTable.module.scss.cjs +84 -0
- package/dist/components/DataTable/DataTable.module.scss.cjs.map +1 -0
- package/dist/components/DataTable/DataTable.module.scss.js +84 -0
- package/dist/components/DataTable/DataTable.module.scss.js.map +1 -0
- package/dist/components/DataTable/index.cjs +383 -0
- package/dist/components/DataTable/index.cjs.map +1 -0
- package/dist/components/DataTable/index.d.ts +78 -0
- package/dist/components/DataTable/index.d.ts.map +1 -0
- package/dist/components/DataTable/index.js +366 -0
- package/dist/components/DataTable/index.js.map +1 -0
- package/dist/components/Drawer/Drawer.module.scss.cjs +9 -0
- package/dist/components/Drawer/Drawer.module.scss.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.module.scss.js +9 -0
- package/dist/components/Drawer/Drawer.module.scss.js.map +1 -1
- package/dist/components/Image/Image.module.scss.cjs +12 -0
- package/dist/components/Image/Image.module.scss.cjs.map +1 -1
- package/dist/components/Image/Image.module.scss.js +12 -0
- package/dist/components/Image/Image.module.scss.js.map +1 -1
- package/dist/components/Link/Link.module.scss.cjs +3 -0
- package/dist/components/Link/Link.module.scss.cjs.map +1 -1
- package/dist/components/Link/Link.module.scss.js +3 -0
- package/dist/components/Link/Link.module.scss.js.map +1 -1
- package/dist/components/List/List.module.scss.cjs +5 -0
- package/dist/components/List/List.module.scss.cjs.map +1 -1
- package/dist/components/List/List.module.scss.js +5 -0
- package/dist/components/List/List.module.scss.js.map +1 -1
- package/dist/components/Loading/Loading.module.scss.cjs +5 -0
- package/dist/components/Loading/Loading.module.scss.cjs.map +1 -1
- package/dist/components/Loading/Loading.module.scss.js +5 -0
- package/dist/components/Loading/Loading.module.scss.js.map +1 -1
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Message/Message.module.scss.cjs +22 -16
- package/dist/components/Message/Message.module.scss.cjs.map +1 -1
- package/dist/components/Message/Message.module.scss.js +22 -16
- package/dist/components/Message/Message.module.scss.js.map +1 -1
- package/dist/components/Message/index.cjs +5 -3
- package/dist/components/Message/index.cjs.map +1 -1
- package/dist/components/Message/index.d.ts +5 -1
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +5 -3
- package/dist/components/Message/index.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +14 -0
- package/dist/components/Skeleton/Skeleton.module.scss.cjs.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.scss.js +14 -0
- package/dist/components/Skeleton/Skeleton.module.scss.js.map +1 -1
- package/dist/components/Stack/Stack.module.scss.cjs +14 -0
- package/dist/components/Stack/Stack.module.scss.cjs.map +1 -1
- package/dist/components/Stack/Stack.module.scss.js +14 -0
- package/dist/components/Stack/Stack.module.scss.js.map +1 -1
- package/dist/components/Table/Table.module.scss.cjs +21 -36
- package/dist/components/Table/Table.module.scss.cjs.map +1 -1
- package/dist/components/Table/Table.module.scss.js +21 -36
- package/dist/components/Table/Table.module.scss.js.map +1 -1
- package/dist/components/Table/index.d.ts +35 -55
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Text/Text.module.scss.cjs +14 -0
- package/dist/components/Text/Text.module.scss.cjs.map +1 -1
- package/dist/components/Text/Text.module.scss.js +14 -0
- package/dist/components/Text/Text.module.scss.js.map +1 -1
- package/dist/components/Textarea/Textarea.module.scss.cjs +4 -0
- package/dist/components/Textarea/Textarea.module.scss.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.module.scss.js +4 -0
- package/dist/components/Textarea/Textarea.module.scss.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +5 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +5 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js.map +1 -1
- package/dist/index.cjs +119 -117
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/table.cjs +44 -262
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +47 -248
- package/dist/table.js.map +1 -1
- package/fragments.json +1 -1
- package/package.json +110 -118
- package/src/blocks/components/index.ts +0 -3
- package/src/components/CodeBlock/CodeBlock.module.scss +16 -34
- package/src/components/CodeBlock/index.tsx +351 -345
- package/src/components/Combobox/Combobox.module.scss +13 -9
- package/src/components/ConversationList/ConversationList.fragment.tsx +96 -129
- package/src/components/DataTable/DataTable.fragment.tsx +754 -0
- package/src/components/DataTable/DataTable.module.scss +300 -0
- package/src/components/DataTable/DataTable.test.tsx +224 -0
- package/src/components/DataTable/index.tsx +533 -0
- package/src/components/Message/Message.fragment.tsx +34 -0
- package/src/components/Message/Message.module.scss +11 -0
- package/src/components/Message/index.tsx +12 -3
- package/src/components/Table/Table.fragment.tsx +190 -175
- package/src/components/Table/Table.module.scss +15 -88
- package/src/components/Table/Table.test.tsx +184 -94
- package/src/components/Table/index.tsx +105 -374
- package/src/index.ts +15 -4
- package/src/tokens/_computed.scss +7 -6
- package/src/tokens/_density.scss +87 -47
- package/src/tokens/_variables.scss +46 -31
- package/dist/blocks/components/DataTable.d.ts +0 -19
- package/dist/blocks/components/DataTable.d.ts.map +0 -1
- package/src/blocks/components/DataTable.tsx +0 -124
package/src/tokens/_density.scss
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
//
|
|
8
8
|
// ============================================
|
|
9
9
|
|
|
10
|
-
@use
|
|
11
|
-
@use
|
|
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,
|
|
25
|
-
|
|
26
|
-
button-height-
|
|
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,
|
|
29
|
-
|
|
30
|
-
input-height-
|
|
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,
|
|
42
|
-
|
|
43
|
-
button-height-
|
|
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,
|
|
46
|
-
|
|
47
|
-
input-height-
|
|
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,
|
|
59
|
-
|
|
60
|
-
button-height-
|
|
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,
|
|
63
|
-
|
|
64
|
-
input-height-
|
|
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,
|
|
123
|
-
|
|
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,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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,
|
|
149
|
-
|
|
150
|
-
container-
|
|
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-
|
|
154
|
-
|
|
155
|
-
inline-
|
|
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,
|
|
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,
|
|
162
|
-
|
|
163
|
-
item-
|
|
164
|
-
|
|
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
|
|
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:
|
|
47
|
-
|
|
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;
|
|
51
|
-
$fui-font-size-xs: 0.857rem !default;
|
|
52
|
-
$fui-font-size-sm: 1rem !default;
|
|
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;
|
|
55
|
-
$fui-font-size-xl: 1.714rem !default;
|
|
56
|
-
$fui-font-size-2xl: 2.143rem !default;
|
|
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;
|
|
274
|
-
$fui-toggle-width-md: 2.857rem !default;
|
|
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;
|
|
277
|
-
$fui-toggle-thumb-sm: 1rem !default;
|
|
278
|
-
$fui-toggle-thumb-md: 1.286rem !default;
|
|
279
|
-
$fui-toggle-thumb-offset: 2px !default;
|
|
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;
|
|
287
|
-
$fui-icon-md: 1.143rem !default;
|
|
288
|
-
$fui-icon-lg: 1.429rem !default;
|
|
289
|
-
$fui-icon-xl: 1.714rem !default;
|
|
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;
|
|
293
|
-
$fui-anim-offset-md: 8px !default;
|
|
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;
|
|
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;
|
|
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;
|
|
320
|
-
$fui-emptystate-icon-md: 2.286rem !default;
|
|
321
|
-
$fui-emptystate-icon-lg: 2.857rem !default;
|
|
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: #
|
|
349
|
-
$fui-code-header-bg:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
);
|