@entropix/data 1.0.0 → 1.0.1

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 (49) hide show
  1. package/dist/area-chart.cjs +14 -0
  2. package/dist/area-chart.css +144 -0
  3. package/dist/area-chart.d.cts +19 -0
  4. package/dist/area-chart.d.ts +19 -0
  5. package/dist/area-chart.js +5 -0
  6. package/dist/bar-chart.cjs +14 -0
  7. package/dist/bar-chart.css +144 -0
  8. package/dist/bar-chart.d.cts +18 -0
  9. package/dist/bar-chart.d.ts +18 -0
  10. package/dist/bar-chart.js +5 -0
  11. package/dist/chunk-42HKJHUY.js +96 -0
  12. package/dist/chunk-4WXLJDQU.js +74 -0
  13. package/dist/chunk-6YAOO76S.cjs +142 -0
  14. package/dist/chunk-CMAQ7DZD.js +135 -0
  15. package/dist/chunk-FQACLZYR.js +137 -0
  16. package/dist/chunk-GCZSXJAA.cjs +77 -0
  17. package/dist/chunk-K6ZRQYSZ.cjs +131 -0
  18. package/dist/chunk-QBI5NOHT.cjs +126 -0
  19. package/dist/chunk-SDCNTA7E.cjs +275 -0
  20. package/dist/chunk-VCSKHJLZ.js +124 -0
  21. package/dist/chunk-VGT2QF7D.cjs +98 -0
  22. package/dist/chunk-WOVSQALY.cjs +137 -0
  23. package/dist/chunk-X7GZD7KZ.js +129 -0
  24. package/dist/chunk-YINCJQN6.js +271 -0
  25. package/dist/data-table.cjs +20 -0
  26. package/dist/data-table.css +227 -0
  27. package/dist/data-table.d.cts +20 -0
  28. package/dist/data-table.d.ts +20 -0
  29. package/dist/data-table.js +3 -0
  30. package/dist/index.cjs +35 -913
  31. package/dist/index.d.cts +7 -75
  32. package/dist/index.d.ts +7 -75
  33. package/dist/index.js +7 -910
  34. package/dist/line-chart.cjs +14 -0
  35. package/dist/line-chart.css +144 -0
  36. package/dist/line-chart.d.cts +19 -0
  37. package/dist/line-chart.d.ts +19 -0
  38. package/dist/line-chart.js +5 -0
  39. package/dist/pie-chart.cjs +13 -0
  40. package/dist/pie-chart.css +144 -0
  41. package/dist/pie-chart.d.cts +15 -0
  42. package/dist/pie-chart.d.ts +15 -0
  43. package/dist/pie-chart.js +4 -0
  44. package/dist/styles/chart.css +1 -193
  45. package/dist/styles/data-table.css +1 -304
  46. package/package.json +54 -3
  47. package/dist/index.cjs.map +0 -1
  48. package/dist/index.css.map +0 -1
  49. package/dist/index.js.map +0 -1
@@ -0,0 +1,227 @@
1
+ /* src/styles/data-table.css */
2
+ :root {
3
+ --datatable-cell-padding: var(--entropix-spacing-3) var(--entropix-spacing-4);
4
+ --datatable-row-height: 48px;
5
+ --datatable-header-bg: var(--entropix-color-bg-secondary, #f9fafb);
6
+ --datatable-border-color: var(--entropix-color-border-default, #e5e7eb);
7
+ --datatable-stripe-bg: var(--entropix-color-bg-tertiary, #f3f4f6);
8
+ --datatable-hover-bg: var(--entropix-color-action-secondary-hover, #f0f0f0);
9
+ --datatable-selected-bg: var( --entropix-color-action-primary-subtle, #eff6ff );
10
+ }
11
+ .entropix-datatable {
12
+ width: 100%;
13
+ font-family: var(--entropix-font-family-sans, system-ui, sans-serif);
14
+ font-size: var(--entropix-font-size-sm, 0.875rem);
15
+ line-height: var(--entropix-line-height-normal, 1.5);
16
+ color: var(--entropix-color-text-primary, #111827);
17
+ }
18
+ .entropix-datatable__table {
19
+ width: 100%;
20
+ border-collapse: collapse;
21
+ border: 1px solid var(--datatable-border-color);
22
+ border-radius: var(--entropix-radius-md, 6px);
23
+ overflow: hidden;
24
+ }
25
+ .entropix-datatable__thead {
26
+ background: var(--datatable-header-bg);
27
+ }
28
+ .entropix-datatable__thead[data-sticky=true] {
29
+ position: sticky;
30
+ top: 0;
31
+ z-index: 10;
32
+ }
33
+ .entropix-datatable__th {
34
+ padding: var(--datatable-cell-padding);
35
+ min-height: var(--datatable-row-height);
36
+ text-align: left;
37
+ font-weight: var(--entropix-font-weight-semibold, 600);
38
+ font-size: var(--entropix-font-size-xs, 0.75rem);
39
+ text-transform: uppercase;
40
+ letter-spacing: 0.05em;
41
+ color: var(--entropix-color-text-secondary, #6b7280);
42
+ border-bottom: 2px solid var(--datatable-border-color);
43
+ white-space: nowrap;
44
+ user-select: none;
45
+ }
46
+ .entropix-datatable__th--sortable {
47
+ cursor: pointer;
48
+ transition: color var(--entropix-duration-fast, 150ms) var(--entropix-easing-default, ease);
49
+ }
50
+ .entropix-datatable__th--sortable:hover {
51
+ color: var(--entropix-color-text-primary, #111827);
52
+ }
53
+ .entropix-datatable__th--sortable:focus-visible {
54
+ outline: 2px solid var(--entropix-color-border-focus, #3b82f6);
55
+ outline-offset: -2px;
56
+ }
57
+ .entropix-datatable__th[data-sort=asc],
58
+ .entropix-datatable__th[data-sort=desc] {
59
+ color: var(--entropix-color-text-primary, #111827);
60
+ }
61
+ .entropix-datatable__th--checkbox {
62
+ width: 48px;
63
+ min-width: 48px;
64
+ max-width: 48px;
65
+ text-align: center;
66
+ padding: var(--entropix-spacing-2);
67
+ }
68
+ .entropix-datatable__th-content {
69
+ display: inline-flex;
70
+ align-items: center;
71
+ gap: var(--entropix-spacing-1, 4px);
72
+ }
73
+ .entropix-datatable__sort-icon {
74
+ display: inline-block;
75
+ font-size: var(--entropix-font-size-xs, 0.75rem);
76
+ line-height: 1;
77
+ color: var(--entropix-color-action-primary-default, #3b82f6);
78
+ }
79
+ .entropix-datatable__filter-row {
80
+ background: var(--datatable-header-bg);
81
+ }
82
+ .entropix-datatable__th--filter {
83
+ padding: var(--entropix-spacing-1) var(--entropix-spacing-4) var(--entropix-spacing-2);
84
+ border-bottom: 1px solid var(--datatable-border-color);
85
+ font-weight: var(--entropix-font-weight-normal, 400);
86
+ }
87
+ .entropix-datatable__filter {
88
+ width: 100%;
89
+ padding: var(--entropix-spacing-1) var(--entropix-spacing-2);
90
+ border: 1px solid var(--datatable-border-color);
91
+ border-radius: var(--entropix-radius-sm, 4px);
92
+ font-family: inherit;
93
+ font-size: var(--entropix-font-size-sm, 0.875rem);
94
+ color: var(--entropix-color-text-primary, #111827);
95
+ background: var(--entropix-color-bg-primary, #ffffff);
96
+ outline: none;
97
+ transition: border-color var(--entropix-duration-fast, 150ms) var(--entropix-easing-default, ease);
98
+ }
99
+ .entropix-datatable__filter::placeholder {
100
+ color: var(--entropix-color-text-muted, #9ca3af);
101
+ }
102
+ .entropix-datatable__filter:focus {
103
+ border-color: var(--entropix-color-border-focus, #3b82f6);
104
+ box-shadow: 0 0 0 1px var(--entropix-color-border-focus, #3b82f6);
105
+ }
106
+ .entropix-datatable__tbody {
107
+ background: var(--entropix-color-bg-primary, #ffffff);
108
+ }
109
+ .entropix-datatable__tr {
110
+ border-bottom: 1px solid var(--datatable-border-color);
111
+ transition: background var(--entropix-duration-fast, 150ms) var(--entropix-easing-default, ease);
112
+ }
113
+ .entropix-datatable__tr:last-child {
114
+ border-bottom: none;
115
+ }
116
+ .entropix-datatable__tbody .entropix-datatable__tr:nth-child(even) {
117
+ background: var(--datatable-stripe-bg);
118
+ }
119
+ .entropix-datatable__tbody .entropix-datatable__tr:hover {
120
+ background: var(--datatable-hover-bg);
121
+ }
122
+ .entropix-datatable__tr[data-selected=true] {
123
+ background: var(--datatable-selected-bg);
124
+ }
125
+ .entropix-datatable__tbody .entropix-datatable__tr[data-selected=true]:hover {
126
+ background: var(--datatable-selected-bg);
127
+ }
128
+ .entropix-datatable__td {
129
+ padding: var(--datatable-cell-padding);
130
+ min-height: var(--datatable-row-height);
131
+ vertical-align: middle;
132
+ color: var(--entropix-color-text-primary, #111827);
133
+ }
134
+ .entropix-datatable__td--checkbox {
135
+ width: 48px;
136
+ min-width: 48px;
137
+ max-width: 48px;
138
+ text-align: center;
139
+ padding: var(--entropix-spacing-2);
140
+ }
141
+ .entropix-datatable__checkbox {
142
+ width: 16px;
143
+ height: 16px;
144
+ cursor: pointer;
145
+ accent-color: var(--entropix-color-action-primary-default, #3b82f6);
146
+ }
147
+ .entropix-datatable__loading,
148
+ .entropix-datatable__empty {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ min-height: 120px;
153
+ color: var(--entropix-color-text-muted, #9ca3af);
154
+ font-size: var(--entropix-font-size-sm, 0.875rem);
155
+ font-style: italic;
156
+ }
157
+ .entropix-datatable__td--loading,
158
+ .entropix-datatable__td--empty {
159
+ text-align: center;
160
+ }
161
+ .entropix-datatable__pagination {
162
+ display: flex;
163
+ align-items: center;
164
+ justify-content: center;
165
+ gap: var(--entropix-spacing-2, 8px);
166
+ padding: var(--entropix-spacing-3, 12px) var(--entropix-spacing-4, 16px);
167
+ border-top: 1px solid var(--datatable-border-color);
168
+ }
169
+ .entropix-datatable__pagination-btn {
170
+ display: inline-flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+ min-width: 36px;
174
+ height: 36px;
175
+ padding: var(--entropix-spacing-1, 4px) var(--entropix-spacing-2, 8px);
176
+ border: 1px solid var(--datatable-border-color);
177
+ border-radius: var(--entropix-radius-md, 6px);
178
+ background: var(--entropix-color-bg-primary, #ffffff);
179
+ color: var(--entropix-color-text-primary, #111827);
180
+ font-family: inherit;
181
+ font-size: var(--entropix-font-size-sm, 0.875rem);
182
+ font-weight: var(--entropix-font-weight-medium, 500);
183
+ cursor: pointer;
184
+ user-select: none;
185
+ transition:
186
+ background var(--entropix-duration-fast, 150ms) var(--entropix-easing-default, ease),
187
+ border-color var(--entropix-duration-fast, 150ms) var(--entropix-easing-default, ease),
188
+ color var(--entropix-duration-fast, 150ms) var(--entropix-easing-default, ease);
189
+ }
190
+ .entropix-datatable__pagination-btn:hover:not(:disabled) {
191
+ background: var(--entropix-color-action-secondary-hover, #f0f0f0);
192
+ border-color: var(--entropix-color-border-hover, #d1d5db);
193
+ }
194
+ .entropix-datatable__pagination-btn:focus-visible {
195
+ outline: 2px solid var(--entropix-color-border-focus, #3b82f6);
196
+ outline-offset: 2px;
197
+ }
198
+ .entropix-datatable__pagination-btn:disabled {
199
+ opacity: 0.4;
200
+ cursor: not-allowed;
201
+ }
202
+ .entropix-datatable__pagination-info {
203
+ padding: 0 var(--entropix-spacing-2, 8px);
204
+ font-size: var(--entropix-font-size-sm, 0.875rem);
205
+ color: var(--entropix-color-text-secondary, #6b7280);
206
+ white-space: nowrap;
207
+ }
208
+ @media (max-width: 640px) {
209
+ .entropix-datatable__th,
210
+ .entropix-datatable__td {
211
+ padding: var(--entropix-spacing-2, 8px) var(--entropix-spacing-3, 12px);
212
+ }
213
+ .entropix-datatable__pagination {
214
+ gap: var(--entropix-spacing-1, 4px);
215
+ padding: var(--entropix-spacing-2, 8px);
216
+ }
217
+ .entropix-datatable__pagination-btn {
218
+ min-width: 32px;
219
+ height: 32px;
220
+ font-size: var(--entropix-font-size-xs, 0.75rem);
221
+ }
222
+ .entropix-datatable__filter {
223
+ padding: var(--entropix-spacing-2, 8px);
224
+ font-size: 16px;
225
+ }
226
+ }
227
+ /*# sourceMappingURL=data-table.css.map */
@@ -0,0 +1,20 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import React__default from 'react';
4
+ import { UseTableOptions, ColumnDef, UseTableReturn } from '@entropix/core';
5
+
6
+ interface DataTableProps<TData = unknown> extends UseTableOptions<TData> {
7
+ className?: string;
8
+ emptyMessage?: string;
9
+ renderCell?: (value: unknown, row: TData, column: ColumnDef<TData>) => React__default.ReactNode;
10
+ }
11
+ declare function DataTable<TData = unknown>(props: DataTableProps<TData>): react_jsx_runtime.JSX.Element;
12
+
13
+ interface DataTableContextValue<TData = unknown> extends UseTableReturn<TData> {
14
+ columns: ColumnDef<TData>[];
15
+ getRowKey: (row: TData, index: number) => string;
16
+ }
17
+ declare const DataTableContext: React.Context<DataTableContextValue<unknown> | null>;
18
+ declare function useDataTableContext<TData = unknown>(): DataTableContextValue<TData>;
19
+
20
+ export { DataTable, DataTableContext, type DataTableContextValue, type DataTableProps, useDataTableContext };
@@ -0,0 +1,20 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import React__default from 'react';
4
+ import { UseTableOptions, ColumnDef, UseTableReturn } from '@entropix/core';
5
+
6
+ interface DataTableProps<TData = unknown> extends UseTableOptions<TData> {
7
+ className?: string;
8
+ emptyMessage?: string;
9
+ renderCell?: (value: unknown, row: TData, column: ColumnDef<TData>) => React__default.ReactNode;
10
+ }
11
+ declare function DataTable<TData = unknown>(props: DataTableProps<TData>): react_jsx_runtime.JSX.Element;
12
+
13
+ interface DataTableContextValue<TData = unknown> extends UseTableReturn<TData> {
14
+ columns: ColumnDef<TData>[];
15
+ getRowKey: (row: TData, index: number) => string;
16
+ }
17
+ declare const DataTableContext: React.Context<DataTableContextValue<unknown> | null>;
18
+ declare function useDataTableContext<TData = unknown>(): DataTableContextValue<TData>;
19
+
20
+ export { DataTable, DataTableContext, type DataTableContextValue, type DataTableProps, useDataTableContext };
@@ -0,0 +1,3 @@
1
+ export { DataTable, DataTableContext, useDataTableContext } from './chunk-YINCJQN6.js';
2
+ //# sourceMappingURL=data-table.js.map
3
+ //# sourceMappingURL=data-table.js.map