@fragments-sdk/ui 0.9.4 → 0.9.5

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 (99) hide show
  1. package/dist/assets/ui.css +247 -48
  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 +7 -3
  5. package/dist/codeblock.cjs.map +1 -1
  6. package/dist/codeblock.js +7 -3
  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/index.d.ts +5 -1
  17. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  18. package/dist/components/DataTable/DataTable.module.scss.cjs +84 -0
  19. package/dist/components/DataTable/DataTable.module.scss.cjs.map +1 -0
  20. package/dist/components/DataTable/DataTable.module.scss.js +84 -0
  21. package/dist/components/DataTable/DataTable.module.scss.js.map +1 -0
  22. package/dist/components/DataTable/index.cjs +383 -0
  23. package/dist/components/DataTable/index.cjs.map +1 -0
  24. package/dist/components/DataTable/index.d.ts +78 -0
  25. package/dist/components/DataTable/index.d.ts.map +1 -0
  26. package/dist/components/DataTable/index.js +366 -0
  27. package/dist/components/DataTable/index.js.map +1 -0
  28. package/dist/components/Drawer/Drawer.module.scss.cjs +9 -0
  29. package/dist/components/Drawer/Drawer.module.scss.cjs.map +1 -1
  30. package/dist/components/Drawer/Drawer.module.scss.js +9 -0
  31. package/dist/components/Drawer/Drawer.module.scss.js.map +1 -1
  32. package/dist/components/Image/Image.module.scss.cjs +12 -0
  33. package/dist/components/Image/Image.module.scss.cjs.map +1 -1
  34. package/dist/components/Image/Image.module.scss.js +12 -0
  35. package/dist/components/Image/Image.module.scss.js.map +1 -1
  36. package/dist/components/Link/Link.module.scss.cjs +3 -0
  37. package/dist/components/Link/Link.module.scss.cjs.map +1 -1
  38. package/dist/components/Link/Link.module.scss.js +3 -0
  39. package/dist/components/Link/Link.module.scss.js.map +1 -1
  40. package/dist/components/List/List.module.scss.cjs +5 -0
  41. package/dist/components/List/List.module.scss.cjs.map +1 -1
  42. package/dist/components/List/List.module.scss.js +5 -0
  43. package/dist/components/List/List.module.scss.js.map +1 -1
  44. package/dist/components/Loading/Loading.module.scss.cjs +5 -0
  45. package/dist/components/Loading/Loading.module.scss.cjs.map +1 -1
  46. package/dist/components/Loading/Loading.module.scss.js +5 -0
  47. package/dist/components/Loading/Loading.module.scss.js.map +1 -1
  48. package/dist/components/Skeleton/Skeleton.module.scss.cjs +14 -0
  49. package/dist/components/Skeleton/Skeleton.module.scss.cjs.map +1 -1
  50. package/dist/components/Skeleton/Skeleton.module.scss.js +14 -0
  51. package/dist/components/Skeleton/Skeleton.module.scss.js.map +1 -1
  52. package/dist/components/Stack/Stack.module.scss.cjs +14 -0
  53. package/dist/components/Stack/Stack.module.scss.cjs.map +1 -1
  54. package/dist/components/Stack/Stack.module.scss.js +14 -0
  55. package/dist/components/Stack/Stack.module.scss.js.map +1 -1
  56. package/dist/components/Table/Table.module.scss.cjs +21 -36
  57. package/dist/components/Table/Table.module.scss.cjs.map +1 -1
  58. package/dist/components/Table/Table.module.scss.js +21 -36
  59. package/dist/components/Table/Table.module.scss.js.map +1 -1
  60. package/dist/components/Table/index.d.ts +35 -55
  61. package/dist/components/Table/index.d.ts.map +1 -1
  62. package/dist/components/Text/Text.module.scss.cjs +14 -0
  63. package/dist/components/Text/Text.module.scss.cjs.map +1 -1
  64. package/dist/components/Text/Text.module.scss.js +14 -0
  65. package/dist/components/Text/Text.module.scss.js.map +1 -1
  66. package/dist/components/Textarea/Textarea.module.scss.cjs +4 -0
  67. package/dist/components/Textarea/Textarea.module.scss.cjs.map +1 -1
  68. package/dist/components/Textarea/Textarea.module.scss.js +4 -0
  69. package/dist/components/Textarea/Textarea.module.scss.js.map +1 -1
  70. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +5 -0
  71. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs.map +1 -1
  72. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +5 -0
  73. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js.map +1 -1
  74. package/dist/index.cjs +119 -117
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.d.ts +2 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +3 -1
  79. package/dist/index.js.map +1 -1
  80. package/dist/table.cjs +44 -262
  81. package/dist/table.cjs.map +1 -1
  82. package/dist/table.js +47 -248
  83. package/dist/table.js.map +1 -1
  84. package/fragments.json +1 -1
  85. package/package.json +110 -118
  86. package/src/blocks/components/index.ts +0 -3
  87. package/src/components/CodeBlock/index.tsx +9 -1
  88. package/src/components/DataTable/DataTable.fragment.tsx +754 -0
  89. package/src/components/DataTable/DataTable.module.scss +300 -0
  90. package/src/components/DataTable/DataTable.test.tsx +224 -0
  91. package/src/components/DataTable/index.tsx +533 -0
  92. package/src/components/Table/Table.fragment.tsx +190 -175
  93. package/src/components/Table/Table.module.scss +15 -88
  94. package/src/components/Table/Table.test.tsx +184 -94
  95. package/src/components/Table/index.tsx +105 -374
  96. package/src/index.ts +15 -4
  97. package/dist/blocks/components/DataTable.d.ts +0 -19
  98. package/dist/blocks/components/DataTable.d.ts.map +0 -1
  99. package/src/blocks/components/DataTable.tsx +0 -124
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fragments-sdk/ui",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "license": "MIT",
5
5
  "description": "Customizable UI components built on Base UI headless primitives",
6
6
  "author": "Conan McNicholl",
@@ -10,25 +10,110 @@
10
10
  "url": "https://github.com/ConanMcN/fragments"
11
11
  },
12
12
  "type": "module",
13
- "main": "src/index.ts",
14
- "types": "src/index.ts",
13
+ "main": "dist/index.cjs",
14
+ "types": "dist/index.d.ts",
15
15
  "fragments": "fragments.json",
16
16
  "sideEffects": [
17
17
  "**/*.scss",
18
18
  "**/*.css"
19
19
  ],
20
20
  "exports": {
21
- ".": "./src/index.ts",
22
- "./datepicker": "./src/components/DatePicker/index.tsx",
23
- "./chart": "./src/components/Chart/index.tsx",
24
- "./markdown": "./src/components/Markdown/index.tsx",
25
- "./codeblock": "./src/components/CodeBlock/index.tsx",
26
- "./colorpicker": "./src/components/ColorPicker/index.tsx",
27
- "./table": "./src/components/Table/index.tsx",
28
- "./styles": "./src/styles/globals.scss",
21
+ ".": {
22
+ "import": {
23
+ "types": "./dist/index.d.ts",
24
+ "default": "./dist/index.js"
25
+ },
26
+ "require": {
27
+ "types": "./dist/index.d.ts",
28
+ "default": "./dist/index.cjs"
29
+ }
30
+ },
31
+ "./datepicker": {
32
+ "import": {
33
+ "types": "./dist/components/DatePicker/index.d.ts",
34
+ "default": "./dist/datepicker.js"
35
+ },
36
+ "require": {
37
+ "types": "./dist/components/DatePicker/index.d.ts",
38
+ "default": "./dist/datepicker.cjs"
39
+ }
40
+ },
41
+ "./chart": {
42
+ "import": {
43
+ "types": "./dist/components/Chart/index.d.ts",
44
+ "default": "./dist/chart.js"
45
+ },
46
+ "require": {
47
+ "types": "./dist/components/Chart/index.d.ts",
48
+ "default": "./dist/chart.cjs"
49
+ }
50
+ },
51
+ "./markdown": {
52
+ "import": {
53
+ "types": "./dist/components/Markdown/index.d.ts",
54
+ "default": "./dist/markdown.js"
55
+ },
56
+ "require": {
57
+ "types": "./dist/components/Markdown/index.d.ts",
58
+ "default": "./dist/markdown.cjs"
59
+ }
60
+ },
61
+ "./codeblock": {
62
+ "import": {
63
+ "types": "./dist/components/CodeBlock/index.d.ts",
64
+ "default": "./dist/codeblock.js"
65
+ },
66
+ "require": {
67
+ "types": "./dist/components/CodeBlock/index.d.ts",
68
+ "default": "./dist/codeblock.cjs"
69
+ }
70
+ },
71
+ "./colorpicker": {
72
+ "import": {
73
+ "types": "./dist/components/ColorPicker/index.d.ts",
74
+ "default": "./dist/colorpicker.js"
75
+ },
76
+ "require": {
77
+ "types": "./dist/components/ColorPicker/index.d.ts",
78
+ "default": "./dist/colorpicker.cjs"
79
+ }
80
+ },
81
+ "./table": {
82
+ "import": {
83
+ "types": "./dist/components/Table/index.d.ts",
84
+ "default": "./dist/table.js"
85
+ },
86
+ "require": {
87
+ "types": "./dist/components/Table/index.d.ts",
88
+ "default": "./dist/table.cjs"
89
+ }
90
+ },
91
+ "./data-table": {
92
+ "import": {
93
+ "types": "./dist/components/DataTable/index.d.ts",
94
+ "default": "./dist/data-table.js"
95
+ },
96
+ "require": {
97
+ "types": "./dist/components/DataTable/index.d.ts",
98
+ "default": "./dist/data-table.cjs"
99
+ }
100
+ },
101
+ "./styles": {
102
+ "sass": "./src/styles/globals.scss",
103
+ "default": "./dist/assets/ui.css"
104
+ },
29
105
  "./tokens": "./src/tokens/_variables.scss",
30
106
  "./mixins": "./src/tokens/_mixins.scss",
31
- "./brand": "./src/brand.ts",
107
+ "./brand": {
108
+ "import": {
109
+ "types": "./dist/brand.d.ts",
110
+ "default": "./dist/brand.js"
111
+ },
112
+ "require": {
113
+ "types": "./dist/brand.d.ts",
114
+ "default": "./dist/brand.cjs"
115
+ }
116
+ },
32
117
  "./fragments.json": "./fragments.json",
33
118
  "./assets/*": "./src/assets/*",
34
119
  "./package.json": "./package.json"
@@ -47,108 +132,7 @@
47
132
  "react-components"
48
133
  ],
49
134
  "publishConfig": {
50
- "access": "public",
51
- "main": "dist/index.cjs",
52
- "module": "dist/index.js",
53
- "types": "dist/index.d.ts",
54
- "exports": {
55
- ".": {
56
- "import": {
57
- "types": "./dist/index.d.ts",
58
- "default": "./dist/index.js"
59
- },
60
- "require": {
61
- "types": "./dist/index.d.ts",
62
- "default": "./dist/index.cjs"
63
- }
64
- },
65
- "./datepicker": {
66
- "import": {
67
- "types": "./dist/components/DatePicker/index.d.ts",
68
- "default": "./dist/datepicker.js"
69
- },
70
- "require": {
71
- "types": "./dist/components/DatePicker/index.d.ts",
72
- "default": "./dist/datepicker.cjs"
73
- }
74
- },
75
- "./chart": {
76
- "import": {
77
- "types": "./dist/components/Chart/index.d.ts",
78
- "default": "./dist/chart.js"
79
- },
80
- "require": {
81
- "types": "./dist/components/Chart/index.d.ts",
82
- "default": "./dist/chart.cjs"
83
- }
84
- },
85
- "./markdown": {
86
- "import": {
87
- "types": "./dist/components/Markdown/index.d.ts",
88
- "default": "./dist/markdown.js"
89
- },
90
- "require": {
91
- "types": "./dist/components/Markdown/index.d.ts",
92
- "default": "./dist/markdown.cjs"
93
- }
94
- },
95
- "./codeblock": {
96
- "import": {
97
- "types": "./dist/components/CodeBlock/index.d.ts",
98
- "default": "./dist/codeblock.js"
99
- },
100
- "require": {
101
- "types": "./dist/components/CodeBlock/index.d.ts",
102
- "default": "./dist/codeblock.cjs"
103
- }
104
- },
105
- "./colorpicker": {
106
- "import": {
107
- "types": "./dist/components/ColorPicker/index.d.ts",
108
- "default": "./dist/colorpicker.js"
109
- },
110
- "require": {
111
- "types": "./dist/components/ColorPicker/index.d.ts",
112
- "default": "./dist/colorpicker.cjs"
113
- }
114
- },
115
- "./table": {
116
- "import": {
117
- "types": "./dist/components/Table/index.d.ts",
118
- "default": "./dist/table.js"
119
- },
120
- "require": {
121
- "types": "./dist/components/Table/index.d.ts",
122
- "default": "./dist/table.cjs"
123
- }
124
- },
125
- "./styles": {
126
- "sass": "./src/styles/globals.scss",
127
- "default": "./dist/assets/ui.css"
128
- },
129
- "./tokens": "./src/tokens/_variables.scss",
130
- "./mixins": "./src/tokens/_mixins.scss",
131
- "./brand": {
132
- "import": {
133
- "types": "./dist/brand.d.ts",
134
- "default": "./dist/brand.js"
135
- },
136
- "require": {
137
- "types": "./dist/brand.d.ts",
138
- "default": "./dist/brand.cjs"
139
- }
140
- },
141
- "./fragments.json": "./fragments.json",
142
- "./assets/*": "./src/assets/*",
143
- "./package.json": "./package.json"
144
- }
145
- },
146
- "scripts": {
147
- "dev": "node ../../packages/cli/dist/bin.js dev",
148
- "build": "node ../../packages/cli/dist/bin.js build && vite build && tsc -p tsconfig.build.json",
149
- "lint": "eslint src",
150
- "validate": "node ../../packages/cli/dist/bin.js validate",
151
- "test": "vitest run"
135
+ "access": "public"
152
136
  },
153
137
  "peerDependencies": {
154
138
  "@tanstack/react-table": ">=8.0.0",
@@ -197,7 +181,6 @@
197
181
  "@scarf/scarf": "^1.4.0"
198
182
  },
199
183
  "devDependencies": {
200
- "@fragments-sdk/cli": "workspace:*",
201
184
  "@tanstack/react-table": "^8.21.3",
202
185
  "@testing-library/jest-dom": "^6.6.0",
203
186
  "@testing-library/react": "^16.1.0",
@@ -217,11 +200,20 @@
217
200
  "typescript": "^5.7.0",
218
201
  "vite": "^6.0.0",
219
202
  "vitest": "^2.1.8",
220
- "vitest-axe": "^0.1.0"
203
+ "vitest-axe": "^0.1.0",
204
+ "@fragments-sdk/cli": "0.7.16"
221
205
  },
222
206
  "files": [
223
207
  "src",
224
208
  "dist",
225
209
  "fragments.json"
226
- ]
227
- }
210
+ ],
211
+ "scripts": {
212
+ "dev": "node ../../packages/cli/dist/bin.js dev",
213
+ "build": "node ../../packages/cli/dist/bin.js build && vite build && tsc -p tsconfig.build.json",
214
+ "lint": "eslint src",
215
+ "validate": "node ../../packages/cli/dist/bin.js validate",
216
+ "test": "vitest run"
217
+ },
218
+ "module": "dist/index.js"
219
+ }
@@ -9,6 +9,3 @@ export type { ActivityFeedProps, ActivityFeedItem } from './ActivityFeed';
9
9
 
10
10
  export { DashboardLayout } from './DashboardLayout';
11
11
  export type { DashboardLayoutProps } from './DashboardLayout';
12
-
13
- export { DataTable } from './DataTable';
14
- export type { DataTableProps, DataTableColumn } from './DataTable';
@@ -117,6 +117,8 @@ export interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {
117
117
  persistentCopy?: boolean;
118
118
  /** Placement of copy button when not using persistent copy */
119
119
  copyPlacement?: CodeBlockCopyPlacement;
120
+ /** Callback fired when the copy button is clicked and copy succeeds */
121
+ onCopy?: () => void;
120
122
  }
121
123
 
122
124
  function CopyIcon({ className }: { className?: string }) {
@@ -541,6 +543,7 @@ const CodeBlockBase = React.forwardRef<HTMLDivElement, CodeBlockProps>(
541
543
  compact = false,
542
544
  persistentCopy = false,
543
545
  copyPlacement = 'auto',
546
+ onCopy,
544
547
  className,
545
548
  ...htmlProps
546
549
  },
@@ -635,12 +638,13 @@ const CodeBlockBase = React.forwardRef<HTMLDivElement, CodeBlockProps>(
635
638
  await navigator.clipboard.writeText(trimmedCode);
636
639
  setCopied(true);
637
640
  setTimeout(() => setCopied(false), 2000);
641
+ onCopy?.();
638
642
  } catch (err) {
639
643
  if (process.env.NODE_ENV !== 'production') {
640
644
  console.error('Failed to copy:', err);
641
645
  }
642
646
  }
643
- }, [trimmedCode]);
647
+ }, [trimmedCode, onCopy]);
644
648
 
645
649
  const toggleCollapsed = useCallback(() => {
646
650
  setIsCollapsed((prev) => !prev);
@@ -783,6 +787,8 @@ export interface TabbedCodeBlockProps {
783
787
  maxHeight?: number;
784
788
  /** Additional class name */
785
789
  className?: string;
790
+ /** Callback fired when a tab's copy button is clicked. Receives the tab label. */
791
+ onCopy?: (tabLabel: string) => void;
786
792
  }
787
793
 
788
794
  function TabbedCodeBlock({
@@ -796,6 +802,7 @@ function TabbedCodeBlock({
796
802
  wordWrap,
797
803
  maxHeight,
798
804
  className,
805
+ onCopy,
799
806
  }: TabbedCodeBlockProps) {
800
807
  const defaultValue = defaultTab || tabs[0]?.label || '';
801
808
 
@@ -820,6 +827,7 @@ function TabbedCodeBlock({
820
827
  showLineNumbers={showLineNumbers}
821
828
  wordWrap={wordWrap}
822
829
  maxHeight={maxHeight}
830
+ onCopy={onCopy ? () => onCopy(tab.label) : undefined}
823
831
  />
824
832
  </TabsPanel>
825
833
  ))}