@pathscale/ui 1.1.13 → 1.1.15

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 (36) hide show
  1. package/dist/components/colorpicker/ColorWheelFlower.js +287 -62
  2. package/dist/components/glass-panel/GlassPanel.js +5 -3
  3. package/dist/components/select/Select.css +244 -0
  4. package/dist/components/select/Select.d.ts +44 -13
  5. package/dist/components/select/Select.js +618 -41
  6. package/dist/components/select/index.d.ts +2 -1
  7. package/dist/components/table/EnhancedTable.js +79 -160
  8. package/dist/components/table/Table.css +50 -9
  9. package/dist/components/table/Table.d.ts +19 -1
  10. package/dist/components/table/Table.js +100 -18
  11. package/dist/components/table/hooks/helpers.d.ts +7 -0
  12. package/dist/components/table/hooks/helpers.js +26 -0
  13. package/dist/components/table/hooks/index.d.ts +9 -0
  14. package/dist/components/table/hooks/index.js +18 -0
  15. package/dist/components/table/hooks/useAnchoredOverlayPosition.d.ts +16 -0
  16. package/dist/components/table/hooks/useAnchoredOverlayPosition.js +61 -0
  17. package/dist/components/table/hooks/useTableExpansion.d.ts +13 -0
  18. package/dist/components/table/hooks/useTableExpansion.js +17 -0
  19. package/dist/components/table/hooks/useTableFiltering.d.ts +30 -0
  20. package/dist/components/table/hooks/useTableFiltering.js +67 -0
  21. package/dist/components/table/hooks/useTableModel.d.ts +27 -0
  22. package/dist/components/table/hooks/useTableModel.js +56 -0
  23. package/dist/components/table/hooks/useTablePagination.d.ts +20 -0
  24. package/dist/components/table/hooks/useTablePagination.js +48 -0
  25. package/dist/components/table/hooks/useTableSelection.d.ts +14 -0
  26. package/dist/components/table/hooks/useTableSelection.js +17 -0
  27. package/dist/components/table/hooks/useTableSorting.d.ts +19 -0
  28. package/dist/components/table/hooks/useTableSorting.js +21 -0
  29. package/dist/components/table/index.d.ts +4 -2
  30. package/dist/components/table/index.js +13 -1
  31. package/dist/components/theme-color-picker/ThemeColorPicker.d.ts +4 -0
  32. package/dist/components/theme-color-picker/ThemeColorPicker.js +3 -0
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.js +10 -1
  35. package/package.json +2 -1
  36. package/dist/components/select/select.css +0 -351
@@ -2,7 +2,7 @@ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web
2
2
  import "./Table.css";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
4
4
  import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
5
- var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-scroll-container>"), _tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<table data-slot=table-content>"), _tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<thead data-slot=table-header>"), _tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<th data-slot=table-column>"), _tmpl$6 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tbody data-slot=table-body>"), _tmpl$7 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tr data-slot=table-row>"), _tmpl$8 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<td data-slot=table-cell>"), _tmpl$9 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-footer>"), _tmpl$0 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-resizable-container>"), _tmpl$1 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-column-resizer>"), _tmpl$10 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tr data-slot=table-load-more>"), _tmpl$11 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-load-more-content>");
5
+ var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-scroll-container>"), _tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<table data-slot=table-content>"), _tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<thead data-slot=table-header>"), _tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<th data-slot=table-column>"), _tmpl$6 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tbody data-slot=table-body>"), _tmpl$7 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tr data-slot=table-row>"), _tmpl$8 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<td data-slot=table-cell>"), _tmpl$9 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-footer>"), _tmpl$0 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<label data-slot=table-page-size><span class=table__page-size-label data-slot=table-page-size-label></span><select>"), _tmpl$1 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<option>"), _tmpl$10 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-resizable-container>"), _tmpl$11 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-column-resizer>"), _tmpl$12 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tr data-slot=table-load-more>"), _tmpl$13 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div data-slot=table-load-more-content>");
6
6
  const TABLE_VARIANT_CLASS_MAP = {
7
7
  primary: "table-root--primary",
8
8
  secondary: "table-root--secondary"
@@ -276,6 +276,44 @@ const TableCell = (props)=>{
276
276
  return _el$8;
277
277
  })();
278
278
  };
279
+ const TableExpandedRow = (props)=>{
280
+ const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
281
+ "children",
282
+ "class",
283
+ "className",
284
+ "dataTheme",
285
+ "colSpan",
286
+ "cellClass",
287
+ "cellClassName",
288
+ "cellDataTheme"
289
+ ]);
290
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(TableRow, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
291
+ get ["class"] () {
292
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__expanded-row", local.class, local.className);
293
+ },
294
+ get ["data-theme"] () {
295
+ return local.dataTheme;
296
+ },
297
+ "data-slot": "table-expanded-row"
298
+ }, rest, {
299
+ get children () {
300
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(TableCell, {
301
+ get colSpan () {
302
+ return local.colSpan;
303
+ },
304
+ get ["class"] () {
305
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__expanded-cell", local.cellClass, local.cellClassName);
306
+ },
307
+ get dataTheme () {
308
+ return local.cellDataTheme ?? local.dataTheme;
309
+ },
310
+ get children () {
311
+ return local.children;
312
+ }
313
+ });
314
+ }
315
+ }));
316
+ };
279
317
  const TableFooter = (props)=>{
280
318
  const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
281
319
  "children",
@@ -297,6 +335,48 @@ const TableFooter = (props)=>{
297
335
  return _el$9;
298
336
  })();
299
337
  };
338
+ const TablePageSize = (props)=>{
339
+ const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
340
+ "class",
341
+ "className",
342
+ "dataTheme",
343
+ "value",
344
+ "options",
345
+ "onChange",
346
+ "label",
347
+ "selectClass",
348
+ "selectClassName"
349
+ ]);
350
+ return (()=>{
351
+ var _el$0 = _tmpl$0(), _el$1 = _el$0.firstChild, _el$10 = _el$1.nextSibling;
352
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$1, ()=>local.label ?? "Rows");
353
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$10, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(rest, {
354
+ get ["class"] () {
355
+ return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__page-size-select", local.selectClass, local.selectClassName);
356
+ },
357
+ get value () {
358
+ return local.value;
359
+ },
360
+ onChange: (event)=>local.onChange(Number(event.currentTarget.value))
361
+ }), false, true);
362
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$10, ()=>local.options.map((option)=>(()=>{
363
+ var _el$11 = _tmpl$1();
364
+ _el$11.value = option;
365
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$11, option);
366
+ return _el$11;
367
+ })()));
368
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)((_p$)=>{
369
+ var _v$ = (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__page-size", local.class, local.className), _v$2 = local.dataTheme;
370
+ _v$ !== _p$.e && (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$0, _p$.e = _v$);
371
+ _v$2 !== _p$.t && (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$0, "data-theme", _p$.t = _v$2);
372
+ return _p$;
373
+ }, {
374
+ e: void 0,
375
+ t: void 0
376
+ });
377
+ return _el$0;
378
+ })();
379
+ };
300
380
  const TableResizableContainer = (props)=>{
301
381
  const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
302
382
  "children",
@@ -305,8 +385,8 @@ const TableResizableContainer = (props)=>{
305
385
  "dataTheme"
306
386
  ]);
307
387
  return (()=>{
308
- var _el$0 = _tmpl$0();
309
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$0, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
388
+ var _el$12 = _tmpl$10();
389
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$12, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
310
390
  get ["class"] () {
311
391
  return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__resizable-container", local.class, local.className);
312
392
  },
@@ -314,8 +394,8 @@ const TableResizableContainer = (props)=>{
314
394
  return local.dataTheme;
315
395
  }
316
396
  }, rest), false, true);
317
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$0, ()=>local.children);
318
- return _el$0;
397
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$12, ()=>local.children);
398
+ return _el$12;
319
399
  })();
320
400
  };
321
401
  const TableColumnResizer = (props)=>{
@@ -328,8 +408,8 @@ const TableColumnResizer = (props)=>{
328
408
  "aria-orientation"
329
409
  ]);
330
410
  return (()=>{
331
- var _el$1 = _tmpl$1();
332
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$1, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
411
+ var _el$13 = _tmpl$11();
412
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$13, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
333
413
  get role () {
334
414
  return local.role ?? "separator";
335
415
  },
@@ -343,8 +423,8 @@ const TableColumnResizer = (props)=>{
343
423
  return local.dataTheme;
344
424
  }
345
425
  }, rest), false, true);
346
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$1, ()=>local.children);
347
- return _el$1;
426
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$13, ()=>local.children);
427
+ return _el$13;
348
428
  })();
349
429
  };
350
430
  const TableLoadMore = (props)=>{
@@ -355,8 +435,8 @@ const TableLoadMore = (props)=>{
355
435
  "dataTheme"
356
436
  ]);
357
437
  return (()=>{
358
- var _el$10 = _tmpl$10();
359
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$10, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
438
+ var _el$14 = _tmpl$12();
439
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$14, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
360
440
  get ["class"] () {
361
441
  return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__load-more", local.class, local.className);
362
442
  },
@@ -364,8 +444,8 @@ const TableLoadMore = (props)=>{
364
444
  return local.dataTheme;
365
445
  }
366
446
  }, rest), false, true);
367
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$10, ()=>local.children);
368
- return _el$10;
447
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$14, ()=>local.children);
448
+ return _el$14;
369
449
  })();
370
450
  };
371
451
  const TableLoadMoreContent = (props)=>{
@@ -376,8 +456,8 @@ const TableLoadMoreContent = (props)=>{
376
456
  "dataTheme"
377
457
  ]);
378
458
  return (()=>{
379
- var _el$11 = _tmpl$11();
380
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$11, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
459
+ var _el$15 = _tmpl$13();
460
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$15, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
381
461
  get ["class"] () {
382
462
  return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("table__load-more-content", local.class, local.className);
383
463
  },
@@ -385,8 +465,8 @@ const TableLoadMoreContent = (props)=>{
385
465
  return local.dataTheme;
386
466
  }
387
467
  }, rest), false, true);
388
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$11, ()=>local.children);
389
- return _el$11;
468
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$15, ()=>local.children);
469
+ return _el$15;
390
470
  })();
391
471
  };
392
472
  const Table = Object.assign(TableRoot, {
@@ -398,7 +478,9 @@ const Table = Object.assign(TableRoot, {
398
478
  Body: TableBody,
399
479
  Row: TableRow,
400
480
  Cell: TableCell,
481
+ ExpandedRow: TableExpandedRow,
401
482
  Footer: TableFooter,
483
+ PageSize: TablePageSize,
402
484
  ResizableContainer: TableResizableContainer,
403
485
  ColumnResizer: TableColumnResizer,
404
486
  LoadMore: TableLoadMore,
@@ -408,4 +490,4 @@ const Table = Object.assign(TableRoot, {
408
490
  "click",
409
491
  "keydown"
410
492
  ]);
411
- export { TableBody, TableCell, TableColumn, TableColumnResizer, TableContent, TableFooter, TableHeader, TableLoadMore, TableLoadMoreContent, TableResizableContainer, TableRoot, TableRow, TableScrollContainer, Table as default, useTableContentContext, useTableContext };
493
+ export { TableBody, TableCell, TableColumn, TableColumnResizer, TableContent, TableExpandedRow, TableFooter, TableHeader, TableLoadMore, TableLoadMoreContent, TablePageSize, TableResizableContainer, TableRoot, TableRow, TableScrollContainer, Table as default, useTableContentContext, useTableContext };
@@ -0,0 +1,7 @@
1
+ import type { Accessor } from "solid-js";
2
+ import type { SortingState, Updater } from "@tanstack/solid-table";
3
+ import type { HookSortDescriptor } from "./useTableSorting";
4
+ export declare const resolveUpdater: <T>(previous: T, updater: Updater<T>) => T;
5
+ export declare const asAccessor: <T>(value: Accessor<T> | T) => Accessor<T>;
6
+ export declare const toSortDescriptor: (sorting: SortingState) => HookSortDescriptor | undefined;
7
+ export declare const toSortingState: (descriptor: HookSortDescriptor | undefined) => SortingState;
@@ -0,0 +1,26 @@
1
+ const resolveUpdater = (previous, updater)=>{
2
+ if ("function" == typeof updater) return updater(previous);
3
+ return updater;
4
+ };
5
+ const asAccessor = (value)=>{
6
+ if ("function" == typeof value) return value;
7
+ return ()=>value;
8
+ };
9
+ const toSortDescriptor = (sorting)=>{
10
+ const activeSort = sorting[0];
11
+ if (!activeSort) return;
12
+ return {
13
+ column: activeSort.id,
14
+ direction: activeSort.desc ? "descending" : "ascending"
15
+ };
16
+ };
17
+ const toSortingState = (descriptor)=>{
18
+ if (!descriptor) return [];
19
+ return [
20
+ {
21
+ id: descriptor.column,
22
+ desc: "descending" === descriptor.direction
23
+ }
24
+ ];
25
+ };
26
+ export { asAccessor, resolveUpdater, toSortDescriptor, toSortingState };
@@ -0,0 +1,9 @@
1
+ export { useTableSorting, type UseTableSortingOptions, type UseTableSortingResult, type HookSortDirection, type HookSortDescriptor, } from "./useTableSorting";
2
+ export { useTablePagination, type UseTablePaginationOptions, type UseTablePaginationResult, } from "./useTablePagination";
3
+ export { useTableFiltering, type UseTableFilteringOptions, type UseTableFilteringResult, } from "./useTableFiltering";
4
+ export { useTableSelection, type UseTableSelectionOptions, type UseTableSelectionResult, type TableSelectionState, } from "./useTableSelection";
5
+ export { useTableExpansion, type UseTableExpansionOptions, type UseTableExpansionResult, } from "./useTableExpansion";
6
+ export { useTableModel, type UseTableModelOptions, } from "./useTableModel";
7
+ export { toSortDescriptor, toSortingState } from "./helpers";
8
+ export { useAnchoredOverlayPosition } from "./useAnchoredOverlayPosition";
9
+ export type { UseAnchoredOverlayPositionOptions } from "./useAnchoredOverlayPosition";
@@ -0,0 +1,18 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__useTableSorting_js_bcbcf7e7__ from "./useTableSorting.js";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__useTablePagination_js_221a602e__ from "./useTablePagination.js";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__useTableFiltering_js_c008d8f8__ from "./useTableFiltering.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE__useTableSelection_js_6791c7a2__ from "./useTableSelection.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__useTableExpansion_js_e1dc5a4d__ from "./useTableExpansion.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__useTableModel_js_1f373411__ from "./useTableModel.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__ from "./helpers.js";
8
+ import * as __WEBPACK_EXTERNAL_MODULE__useAnchoredOverlayPosition_js_ef09d6e3__ from "./useAnchoredOverlayPosition.js";
9
+ var __webpack_exports__toSortDescriptor = __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.toSortDescriptor;
10
+ var __webpack_exports__toSortingState = __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.toSortingState;
11
+ var __webpack_exports__useAnchoredOverlayPosition = __WEBPACK_EXTERNAL_MODULE__useAnchoredOverlayPosition_js_ef09d6e3__.useAnchoredOverlayPosition;
12
+ var __webpack_exports__useTableExpansion = __WEBPACK_EXTERNAL_MODULE__useTableExpansion_js_e1dc5a4d__.useTableExpansion;
13
+ var __webpack_exports__useTableFiltering = __WEBPACK_EXTERNAL_MODULE__useTableFiltering_js_c008d8f8__.useTableFiltering;
14
+ var __webpack_exports__useTableModel = __WEBPACK_EXTERNAL_MODULE__useTableModel_js_1f373411__.useTableModel;
15
+ var __webpack_exports__useTablePagination = __WEBPACK_EXTERNAL_MODULE__useTablePagination_js_221a602e__.useTablePagination;
16
+ var __webpack_exports__useTableSelection = __WEBPACK_EXTERNAL_MODULE__useTableSelection_js_6791c7a2__.useTableSelection;
17
+ var __webpack_exports__useTableSorting = __WEBPACK_EXTERNAL_MODULE__useTableSorting_js_bcbcf7e7__.useTableSorting;
18
+ export { __webpack_exports__toSortDescriptor as toSortDescriptor, __webpack_exports__toSortingState as toSortingState, __webpack_exports__useAnchoredOverlayPosition as useAnchoredOverlayPosition, __webpack_exports__useTableExpansion as useTableExpansion, __webpack_exports__useTableFiltering as useTableFiltering, __webpack_exports__useTableModel as useTableModel, __webpack_exports__useTablePagination as useTablePagination, __webpack_exports__useTableSelection as useTableSelection, __webpack_exports__useTableSorting as useTableSorting };
@@ -0,0 +1,16 @@
1
+ import { type Accessor, type JSX } from "solid-js";
2
+ export interface UseAnchoredOverlayPositionOptions {
3
+ isOpen: Accessor<boolean>;
4
+ getAnchor: Accessor<HTMLElement | undefined>;
5
+ getOverlay: Accessor<HTMLElement | undefined>;
6
+ offset?: number;
7
+ viewportPadding?: number;
8
+ align?: "start" | "end";
9
+ width?: number | Accessor<number | undefined>;
10
+ minWidth?: number | Accessor<number | undefined>;
11
+ zIndex?: number;
12
+ }
13
+ export declare const useAnchoredOverlayPosition: (options: UseAnchoredOverlayPositionOptions) => {
14
+ style: Accessor<JSX.CSSProperties>;
15
+ updatePosition: () => void;
16
+ };
@@ -0,0 +1,61 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
2
+ const resolveNumber = (value)=>{
3
+ if ("function" == typeof value) return value();
4
+ return value;
5
+ };
6
+ const useAnchoredOverlayPosition = (options)=>{
7
+ const [style, setStyle] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)({
8
+ position: "fixed",
9
+ top: "0px",
10
+ left: "0px",
11
+ "z-index": options.zIndex?.toString() ?? "1300"
12
+ });
13
+ const updatePosition = ()=>{
14
+ const anchor = options.getAnchor();
15
+ if (!anchor || "undefined" == typeof window) return;
16
+ const overlay = options.getOverlay();
17
+ const offset = options.offset ?? 6;
18
+ const viewportPadding = options.viewportPadding ?? 8;
19
+ const rect = anchor.getBoundingClientRect();
20
+ const desiredWidth = resolveNumber(options.width);
21
+ const desiredMinWidth = resolveNumber(options.minWidth);
22
+ const overlayRect = overlay?.getBoundingClientRect();
23
+ const measuredWidth = desiredWidth ?? overlayRect?.width ?? 0;
24
+ const measuredHeight = overlayRect?.height ?? 0;
25
+ const widthForBounds = desiredWidth ?? desiredMinWidth ?? measuredWidth;
26
+ let left = "start" === options.align ? rect.left : rect.right - widthForBounds;
27
+ left = Math.max(viewportPadding, Math.min(left, window.innerWidth - widthForBounds - viewportPadding));
28
+ let top = rect.bottom + offset;
29
+ if (measuredHeight > 0 && top + measuredHeight > window.innerHeight - viewportPadding) {
30
+ const above = rect.top - measuredHeight - offset;
31
+ top = above >= viewportPadding ? above : Math.max(viewportPadding, window.innerHeight - measuredHeight - viewportPadding);
32
+ }
33
+ setStyle({
34
+ position: "fixed",
35
+ top: `${top}px`,
36
+ left: `${left}px`,
37
+ width: desiredWidth ? `${desiredWidth}px` : void 0,
38
+ "min-width": desiredMinWidth ? `${desiredMinWidth}px` : void 0,
39
+ "z-index": options.zIndex?.toString() ?? "1300"
40
+ });
41
+ };
42
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
43
+ if (!options.isOpen()) return;
44
+ requestAnimationFrame(()=>{
45
+ updatePosition();
46
+ requestAnimationFrame(updatePosition);
47
+ });
48
+ const onViewportChange = ()=>updatePosition();
49
+ window.addEventListener("resize", onViewportChange);
50
+ window.addEventListener("scroll", onViewportChange, true);
51
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
52
+ window.removeEventListener("resize", onViewportChange);
53
+ window.removeEventListener("scroll", onViewportChange, true);
54
+ });
55
+ });
56
+ return {
57
+ style,
58
+ updatePosition
59
+ };
60
+ };
61
+ export { useAnchoredOverlayPosition };
@@ -0,0 +1,13 @@
1
+ import { type Accessor } from "solid-js";
2
+ import type { ExpandedState, OnChangeFn } from "@tanstack/solid-table";
3
+ export interface UseTableExpansionOptions {
4
+ expanded?: Accessor<ExpandedState>;
5
+ setExpanded?: OnChangeFn<ExpandedState>;
6
+ initialExpanded?: ExpandedState;
7
+ }
8
+ export interface UseTableExpansionResult {
9
+ expanded: Accessor<ExpandedState>;
10
+ setExpanded: OnChangeFn<ExpandedState>;
11
+ collapseAll: () => void;
12
+ }
13
+ export declare const useTableExpansion: (options?: UseTableExpansionOptions) => UseTableExpansionResult;
@@ -0,0 +1,17 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__ from "./helpers.js";
3
+ const useTableExpansion = (options = {})=>{
4
+ const [internalExpanded, setInternalExpanded] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(options.initialExpanded ?? {});
5
+ const expanded = ()=>options.expanded?.() ?? internalExpanded();
6
+ const setExpanded = (updater)=>{
7
+ if (options.setExpanded) return void options.setExpanded(updater);
8
+ setInternalExpanded((prev)=>(0, __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.resolveUpdater)(prev, updater));
9
+ };
10
+ const collapseAll = ()=>setExpanded({});
11
+ return {
12
+ expanded,
13
+ setExpanded,
14
+ collapseAll
15
+ };
16
+ };
17
+ export { useTableExpansion };
@@ -0,0 +1,30 @@
1
+ import { type Accessor, type JSX } from "solid-js";
2
+ import type { ColumnFiltersState, OnChangeFn } from "@tanstack/solid-table";
3
+ export interface UseTableFilteringOptions {
4
+ columnFilters?: Accessor<ColumnFiltersState>;
5
+ setColumnFilters?: OnChangeFn<ColumnFiltersState>;
6
+ initialColumnFilters?: ColumnFiltersState;
7
+ globalFilter?: Accessor<string>;
8
+ setGlobalFilter?: OnChangeFn<string>;
9
+ initialGlobalFilter?: string;
10
+ }
11
+ export interface UseTableFilteringResult {
12
+ columnFilters: Accessor<ColumnFiltersState>;
13
+ setColumnFilters: OnChangeFn<ColumnFiltersState>;
14
+ globalFilter: Accessor<string>;
15
+ setGlobalFilter: OnChangeFn<string>;
16
+ getColumnFilterValue: (columnId: string) => string;
17
+ setColumnFilterValue: (columnId: string, value: string) => void;
18
+ getColumnFilterProps: (columnId: string, options?: {
19
+ afterChange?: (value: string) => void;
20
+ }) => {
21
+ readonly value: string;
22
+ onInput: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement, InputEvent>;
23
+ onChange: JSX.EventHandler<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement, Event>;
24
+ };
25
+ openFilterFor: Accessor<string | null>;
26
+ closeFilter: () => void;
27
+ toggleFilter: (columnId: string) => void;
28
+ anyFilterActive: Accessor<boolean>;
29
+ }
30
+ export declare const useTableFiltering: (options?: UseTableFilteringOptions) => UseTableFilteringResult;
@@ -0,0 +1,67 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__ from "./helpers.js";
3
+ const useTableFiltering = (options = {})=>{
4
+ const [internalColumnFilters, setInternalColumnFilters] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(options.initialColumnFilters ?? []);
5
+ const [internalGlobalFilter, setInternalGlobalFilter] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(options.initialGlobalFilter ?? "");
6
+ const [openFilterFor, setOpenFilterFor] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(null);
7
+ const columnFilters = ()=>options.columnFilters?.() ?? internalColumnFilters();
8
+ const globalFilter = ()=>options.globalFilter?.() ?? internalGlobalFilter();
9
+ const setColumnFilters = (updater)=>{
10
+ if (options.setColumnFilters) return void options.setColumnFilters(updater);
11
+ setInternalColumnFilters((prev)=>(0, __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.resolveUpdater)(prev, updater));
12
+ };
13
+ const setGlobalFilter = (updater)=>{
14
+ if (options.setGlobalFilter) return void options.setGlobalFilter(updater);
15
+ setInternalGlobalFilter((prev)=>(0, __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.resolveUpdater)(prev, updater));
16
+ };
17
+ const closeFilter = ()=>setOpenFilterFor(null);
18
+ const toggleFilter = (columnId)=>{
19
+ setOpenFilterFor((current)=>current === columnId ? null : columnId);
20
+ };
21
+ const getColumnFilterValue = (columnId)=>{
22
+ const filter = columnFilters().find((entry)=>entry.id === columnId);
23
+ return "string" == typeof filter?.value ? filter.value : "";
24
+ };
25
+ const setColumnFilterValue = (columnId, value)=>{
26
+ setColumnFilters((previous)=>{
27
+ const next = previous.filter((entry)=>entry.id !== columnId);
28
+ if (value.trim().length > 0) next.push({
29
+ id: columnId,
30
+ value
31
+ });
32
+ return next;
33
+ });
34
+ };
35
+ const getColumnFilterProps = (columnId, bindingOptions)=>{
36
+ const applyValue = (value)=>{
37
+ setColumnFilterValue(columnId, value);
38
+ bindingOptions?.afterChange?.(value);
39
+ };
40
+ return {
41
+ get value () {
42
+ return getColumnFilterValue(columnId);
43
+ },
44
+ onInput: (event)=>{
45
+ applyValue(event.currentTarget.value);
46
+ },
47
+ onChange: (event)=>{
48
+ applyValue(event.currentTarget.value);
49
+ }
50
+ };
51
+ };
52
+ const anyFilterActive = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>columnFilters().length > 0);
53
+ return {
54
+ columnFilters,
55
+ setColumnFilters,
56
+ globalFilter,
57
+ setGlobalFilter,
58
+ getColumnFilterValue,
59
+ setColumnFilterValue,
60
+ getColumnFilterProps,
61
+ openFilterFor,
62
+ closeFilter,
63
+ toggleFilter,
64
+ anyFilterActive
65
+ };
66
+ };
67
+ export { useTableFiltering };
@@ -0,0 +1,27 @@
1
+ import type { Accessor } from "solid-js";
2
+ import { type ColumnDef, type ColumnFiltersState, type ExpandedState, type OnChangeFn, type PaginationState, type Row, type SortingState, type Table } from "@tanstack/solid-table";
3
+ import type { TableSelectionState } from "./useTableSelection";
4
+ export interface UseTableModelOptions<TData> {
5
+ data: Accessor<TData[]> | TData[];
6
+ columns: Accessor<ColumnDef<TData, any>[]> | ColumnDef<TData, any>[];
7
+ getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
8
+ sorting?: Accessor<SortingState>;
9
+ setSorting?: OnChangeFn<SortingState>;
10
+ columnFilters?: Accessor<ColumnFiltersState>;
11
+ setColumnFilters?: OnChangeFn<ColumnFiltersState>;
12
+ pagination?: Accessor<PaginationState>;
13
+ setPagination?: OnChangeFn<PaginationState>;
14
+ globalFilter?: Accessor<string>;
15
+ setGlobalFilter?: OnChangeFn<string>;
16
+ rowSelection?: Accessor<TableSelectionState>;
17
+ setRowSelection?: OnChangeFn<TableSelectionState>;
18
+ expanded?: Accessor<ExpandedState>;
19
+ setExpanded?: OnChangeFn<ExpandedState>;
20
+ enableSorting?: boolean;
21
+ enableFilters?: boolean;
22
+ enablePagination?: boolean;
23
+ enableRowSelection?: boolean;
24
+ enableExpanding?: boolean;
25
+ getRowCanExpand?: (row: Row<TData>) => boolean;
26
+ }
27
+ export declare const useTableModel: <TData>(options: UseTableModelOptions<TData>) => Table<TData>;
@@ -0,0 +1,56 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__ from "@tanstack/solid-table";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__ from "./helpers.js";
3
+ const useTableModel = (options)=>{
4
+ const dataAccessor = (0, __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.asAccessor)(options.data);
5
+ const columnsAccessor = (0, __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.asAccessor)(options.columns);
6
+ return (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.createSolidTable)({
7
+ get data () {
8
+ return dataAccessor();
9
+ },
10
+ get columns () {
11
+ return columnsAccessor();
12
+ },
13
+ getRowId: options.getRowId,
14
+ state: {
15
+ get sorting () {
16
+ return options.sorting?.() ?? [];
17
+ },
18
+ get columnFilters () {
19
+ return options.columnFilters?.() ?? [];
20
+ },
21
+ get pagination () {
22
+ return options.pagination?.() ?? {
23
+ pageIndex: 0,
24
+ pageSize: 10
25
+ };
26
+ },
27
+ get globalFilter () {
28
+ return options.globalFilter?.() ?? "";
29
+ },
30
+ get rowSelection () {
31
+ return options.rowSelection?.() ?? {};
32
+ },
33
+ get expanded () {
34
+ return options.expanded?.() ?? {};
35
+ }
36
+ },
37
+ onSortingChange: options.setSorting,
38
+ onColumnFiltersChange: options.setColumnFilters,
39
+ onPaginationChange: options.setPagination,
40
+ onGlobalFilterChange: options.setGlobalFilter,
41
+ onRowSelectionChange: options.setRowSelection,
42
+ onExpandedChange: options.setExpanded,
43
+ getCoreRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getCoreRowModel)(),
44
+ getSortedRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getSortedRowModel)(),
45
+ getFilteredRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getFilteredRowModel)(),
46
+ getPaginationRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getPaginationRowModel)(),
47
+ getExpandedRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getExpandedRowModel)(),
48
+ enableSorting: options.enableSorting,
49
+ enableFilters: options.enableFilters,
50
+ manualPagination: void 0 === options.enablePagination ? false : !options.enablePagination,
51
+ enableRowSelection: options.enableRowSelection,
52
+ enableExpanding: options.enableExpanding,
53
+ getRowCanExpand: options.getRowCanExpand
54
+ });
55
+ };
56
+ export { useTableModel };
@@ -0,0 +1,20 @@
1
+ import { type Accessor } from "solid-js";
2
+ import type { OnChangeFn, PaginationState } from "@tanstack/solid-table";
3
+ export interface UseTablePaginationOptions {
4
+ pagination?: Accessor<PaginationState>;
5
+ setPagination?: OnChangeFn<PaginationState>;
6
+ initialPagination?: PaginationState;
7
+ pageSizeOptions?: readonly number[];
8
+ }
9
+ export interface UseTablePaginationResult {
10
+ pagination: Accessor<PaginationState>;
11
+ setPagination: OnChangeFn<PaginationState>;
12
+ pageSizeOptions: Accessor<readonly number[]>;
13
+ setPageIndex: (index: number) => void;
14
+ setPageSize: (size: number) => void;
15
+ firstPage: () => void;
16
+ previousPage: () => void;
17
+ nextPage: (maxPageIndex: number) => void;
18
+ lastPage: (maxPageIndex: number) => void;
19
+ }
20
+ export declare const useTablePagination: (options?: UseTablePaginationOptions) => UseTablePaginationResult;
@@ -0,0 +1,48 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__ from "./helpers.js";
3
+ const DEFAULT_PAGE_SIZE_OPTIONS = [
4
+ 10,
5
+ 25,
6
+ 50,
7
+ 100
8
+ ];
9
+ const useTablePagination = (options = {})=>{
10
+ const [internalPagination, setInternalPagination] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(options.initialPagination ?? {
11
+ pageIndex: 0,
12
+ pageSize: 10
13
+ });
14
+ const pagination = ()=>options.pagination?.() ?? internalPagination();
15
+ const pageSizeOptions = ()=>options.pageSizeOptions ?? DEFAULT_PAGE_SIZE_OPTIONS;
16
+ const setPagination = (updater)=>{
17
+ if (options.setPagination) return void options.setPagination(updater);
18
+ setInternalPagination((prev)=>(0, __WEBPACK_EXTERNAL_MODULE__helpers_js_87289b43__.resolveUpdater)(prev, updater));
19
+ };
20
+ const setPageIndex = (index)=>{
21
+ setPagination((prev)=>({
22
+ ...prev,
23
+ pageIndex: Math.max(0, index)
24
+ }));
25
+ };
26
+ const setPageSize = (size)=>{
27
+ setPagination((prev)=>({
28
+ ...prev,
29
+ pageSize: size
30
+ }));
31
+ };
32
+ const firstPage = ()=>setPageIndex(0);
33
+ const previousPage = ()=>setPageIndex(pagination().pageIndex - 1);
34
+ const nextPage = (maxPageIndex)=>setPageIndex(Math.min(maxPageIndex, pagination().pageIndex + 1));
35
+ const lastPage = (maxPageIndex)=>setPageIndex(maxPageIndex);
36
+ return {
37
+ pagination,
38
+ setPagination,
39
+ pageSizeOptions,
40
+ setPageIndex,
41
+ setPageSize,
42
+ firstPage,
43
+ previousPage,
44
+ nextPage,
45
+ lastPage
46
+ };
47
+ };
48
+ export { useTablePagination };