@invopop/popui 0.1.2 → 0.1.3-6.beta.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 (178) hide show
  1. package/dist/AlertDialog.svelte +10 -11
  2. package/dist/BaseButton.svelte +25 -104
  3. package/dist/BaseCard.svelte +35 -30
  4. package/dist/BaseCounter.svelte +11 -8
  5. package/dist/BaseDropdown.svelte +5 -5
  6. package/dist/BaseFlag.svelte +5 -3
  7. package/dist/BaseFlag.svelte.d.ts +1 -0
  8. package/dist/BaseTable.svelte +16 -16
  9. package/dist/BaseTable.svelte.d.ts +1 -1
  10. package/dist/BaseTableActions.svelte +4 -6
  11. package/dist/BaseTableCellContent.svelte +9 -21
  12. package/dist/BaseTableCheckbox.svelte +9 -11
  13. package/dist/BaseTableHeaderContent.svelte +4 -4
  14. package/dist/BaseTableHeaderOrderBy.svelte +23 -12
  15. package/dist/BaseTableRow.svelte +12 -10
  16. package/dist/Breadcrumb.svelte +40 -0
  17. package/dist/Breadcrumb.svelte.d.ts +4 -0
  18. package/dist/Breadcrumbs.svelte +5 -30
  19. package/dist/ButtonFile.svelte +40 -30
  20. package/dist/ButtonUuidCopy.svelte +6 -3
  21. package/dist/CardCheckbox.svelte +45 -32
  22. package/dist/CardCheckbox.svelte.d.ts +1 -1
  23. package/dist/CardRelation.svelte +12 -13
  24. package/dist/CompanySelector.svelte +35 -7
  25. package/dist/CounterWidget.svelte +52 -0
  26. package/dist/CounterWidget.svelte.d.ts +4 -0
  27. package/dist/DataListItem.svelte +14 -10
  28. package/dist/DatePicker.svelte +20 -17
  29. package/dist/DrawerContext.svelte +207 -15
  30. package/dist/DrawerContextItem.svelte +50 -50
  31. package/dist/DrawerContextSeparator.svelte +1 -1
  32. package/dist/DropdownSelect.svelte +46 -18
  33. package/dist/EmptyState.svelte +42 -0
  34. package/dist/EmptyState.svelte.d.ts +4 -0
  35. package/dist/FeedEvents.svelte +9 -5
  36. package/dist/FeedIconEvent.svelte +2 -2
  37. package/dist/FeedIconStatus.svelte +4 -4
  38. package/dist/FeedItem.svelte +10 -11
  39. package/dist/FeedItemDetail.svelte +32 -6
  40. package/dist/FeedViewer.svelte +1 -1
  41. package/dist/GlobalSearch.svelte +13 -12
  42. package/dist/InputCheckbox.svelte +2 -5
  43. package/dist/InputError.svelte +4 -9
  44. package/dist/InputLabel.svelte +3 -1
  45. package/dist/InputRadio.svelte +29 -13
  46. package/dist/InputRadio.svelte.d.ts +1 -1
  47. package/dist/InputSearch.svelte +8 -8
  48. package/dist/InputSelect.svelte +32 -31
  49. package/dist/InputText.svelte +32 -24
  50. package/dist/InputTextarea.svelte +25 -19
  51. package/dist/InputToggle.svelte +24 -18
  52. package/dist/MenuItem.svelte +16 -11
  53. package/dist/MenuItemCollapsible.svelte +7 -7
  54. package/dist/Notification.svelte +60 -25
  55. package/dist/ProfileAvatar.svelte +43 -14
  56. package/dist/ProgressBar.svelte +42 -0
  57. package/dist/ProgressBar.svelte.d.ts +4 -0
  58. package/dist/ProgressBarCircle.svelte +46 -0
  59. package/dist/ProgressBarCircle.svelte.d.ts +4 -0
  60. package/dist/SeparatorHorizontal.svelte +2 -2
  61. package/dist/ShortcutWrapper.svelte +14 -5
  62. package/dist/StatusLabel.svelte +4 -5
  63. package/dist/StepIconList.svelte +11 -9
  64. package/dist/TagBeta.svelte +26 -14
  65. package/dist/TagProgress.svelte +28 -0
  66. package/dist/TagProgress.svelte.d.ts +4 -0
  67. package/dist/TagSearch.svelte +4 -4
  68. package/dist/TagStatus.svelte +32 -34
  69. package/dist/TitleMain.svelte +1 -1
  70. package/dist/TitleSection.svelte +1 -1
  71. package/dist/UuidCopy.svelte +4 -4
  72. package/dist/alert-dialog/alert-dialog-action.svelte +8 -4
  73. package/dist/alert-dialog/alert-dialog-cancel.svelte +7 -3
  74. package/dist/alert-dialog/alert-dialog-content.svelte +1 -1
  75. package/dist/alert-dialog/alert-dialog-description.svelte +1 -1
  76. package/dist/alert-dialog/alert-dialog-footer.svelte +1 -1
  77. package/dist/alert-dialog/alert-dialog-header.svelte +1 -1
  78. package/dist/alert-dialog/alert-dialog-overlay.svelte +1 -1
  79. package/dist/alert-dialog/alert-dialog-title.svelte +1 -1
  80. package/dist/alert-dialog/alert-dialog-trigger.svelte +4 -2
  81. package/dist/button/button.svelte +200 -24
  82. package/dist/button/button.svelte.d.ts +51 -26
  83. package/dist/clickOutside.d.ts +5 -2
  84. package/dist/clickOutside.js +9 -3
  85. package/dist/data-table/cells/boolean-cell.svelte +16 -0
  86. package/dist/data-table/cells/boolean-cell.svelte.d.ts +8 -0
  87. package/dist/data-table/cells/currency-cell.svelte +10 -0
  88. package/dist/data-table/cells/currency-cell.svelte.d.ts +8 -0
  89. package/dist/data-table/cells/date-cell.svelte +10 -0
  90. package/dist/data-table/cells/date-cell.svelte.d.ts +8 -0
  91. package/dist/data-table/cells/tag-cell.svelte +12 -0
  92. package/dist/data-table/cells/tag-cell.svelte.d.ts +8 -0
  93. package/dist/data-table/cells/text-cell.svelte +10 -0
  94. package/dist/data-table/cells/text-cell.svelte.d.ts +8 -0
  95. package/dist/data-table/column-definitions.d.ts +12 -0
  96. package/dist/data-table/column-definitions.js +40 -0
  97. package/dist/data-table/column-sizing-helpers.d.ts +6 -0
  98. package/dist/data-table/column-sizing-helpers.js +24 -0
  99. package/dist/data-table/create-columns.d.ts +3 -0
  100. package/dist/data-table/create-columns.js +50 -0
  101. package/dist/data-table/data-table-pagination.svelte +144 -0
  102. package/dist/data-table/data-table-pagination.svelte.d.ts +4 -0
  103. package/dist/data-table/data-table-svelte.svelte.d.ts +40 -0
  104. package/dist/data-table/data-table-svelte.svelte.js +111 -0
  105. package/dist/data-table/data-table-toolbar.svelte +16 -0
  106. package/dist/data-table/data-table-toolbar.svelte.d.ts +29 -0
  107. package/dist/data-table/data-table-types.d.ts +66 -0
  108. package/dist/data-table/data-table-types.js +1 -0
  109. package/dist/data-table/data-table-view-options.svelte +88 -0
  110. package/dist/data-table/data-table-view-options.svelte.d.ts +27 -0
  111. package/dist/data-table/data-table.svelte +303 -0
  112. package/dist/data-table/data-table.svelte.d.ts +25 -0
  113. package/dist/data-table/flex-render.svelte +40 -0
  114. package/dist/data-table/flex-render.svelte.d.ts +33 -0
  115. package/dist/data-table/index.d.ts +13 -0
  116. package/dist/data-table/index.js +13 -0
  117. package/dist/data-table/render-helpers.d.ts +90 -0
  118. package/dist/data-table/render-helpers.js +99 -0
  119. package/dist/data-table/table-setup.d.ts +36 -0
  120. package/dist/data-table/table-setup.js +130 -0
  121. package/dist/data-table/table-styles.d.ts +17 -0
  122. package/dist/data-table/table-styles.js +48 -0
  123. package/dist/helpers.d.ts +1 -0
  124. package/dist/helpers.js +3 -0
  125. package/dist/index.d.ts +15 -7
  126. package/dist/index.js +31 -14
  127. package/dist/range-calendar/range-calendar-cell.svelte +1 -1
  128. package/dist/range-calendar/range-calendar-day.svelte +11 -12
  129. package/dist/range-calendar/range-calendar-head-cell.svelte +1 -1
  130. package/dist/range-calendar/range-calendar-header.svelte +1 -1
  131. package/dist/range-calendar/range-calendar-month-select.svelte +1 -1
  132. package/dist/range-calendar/range-calendar-next-button.svelte +3 -3
  133. package/dist/range-calendar/range-calendar-prev-button.svelte +3 -3
  134. package/dist/range-calendar/range-calendar.svelte +1 -1
  135. package/dist/sonner/index.d.ts +1 -0
  136. package/dist/sonner/index.js +1 -0
  137. package/dist/sonner/sonner.svelte +44 -0
  138. package/dist/sonner/sonner.svelte.d.ts +4 -0
  139. package/dist/svg/CheckBadge.svelte +18 -0
  140. package/dist/svg/CheckBadge.svelte.d.ts +26 -0
  141. package/dist/svg/IconDelivery.svelte +86 -0
  142. package/dist/svg/IconDelivery.svelte.d.ts +20 -0
  143. package/dist/svg/IconEmpty.svelte +113 -121
  144. package/dist/svg/IconOrder.svelte +81 -0
  145. package/dist/svg/IconOrder.svelte.d.ts +20 -0
  146. package/dist/svg/IconPayment.svelte +86 -0
  147. package/dist/svg/IconPayment.svelte.d.ts +20 -0
  148. package/dist/table/table-body.svelte +5 -1
  149. package/dist/table/table-cell.svelte +4 -2
  150. package/dist/table/table-footer.svelte +1 -1
  151. package/dist/table/table-head.svelte +4 -2
  152. package/dist/table/table-header.svelte +1 -1
  153. package/dist/table/table-row.svelte +4 -2
  154. package/dist/table/table.svelte +2 -2
  155. package/dist/tabs/tabs-list.svelte +8 -2
  156. package/dist/tabs/tabs-list.svelte.d.ts +4 -1
  157. package/dist/tabs/tabs-trigger.svelte +5 -3
  158. package/dist/tabs/tabs-trigger.svelte.d.ts +4 -1
  159. package/dist/tailwind.theme.css +998 -0
  160. package/dist/tooltip/tooltip-content.svelte +2 -2
  161. package/dist/types.d.ts +71 -50
  162. package/package.json +20 -10
  163. package/dist/CounterWorkflow.svelte +0 -19
  164. package/dist/CounterWorkflow.svelte.d.ts +0 -4
  165. package/dist/DrawerContextWorkspace.svelte +0 -126
  166. package/dist/DrawerContextWorkspace.svelte.d.ts +0 -4
  167. package/dist/EmptyStateIcon.svelte +0 -52
  168. package/dist/EmptyStateIcon.svelte.d.ts +0 -4
  169. package/dist/EmptyStateIllustration.svelte +0 -66
  170. package/dist/EmptyStateIllustration.svelte.d.ts +0 -4
  171. package/dist/FormLayoutModal.svelte +0 -14
  172. package/dist/FormLayoutModal.svelte.d.ts +0 -4
  173. package/dist/ProfileSelector.svelte +0 -41
  174. package/dist/ProfileSelector.svelte.d.ts +0 -4
  175. package/dist/SectionLayout.svelte +0 -13
  176. package/dist/SectionLayout.svelte.d.ts +0 -4
  177. package/dist/tw.theme.d.ts +0 -142
  178. package/dist/tw.theme.js +0 -158
@@ -0,0 +1,90 @@
1
+ import type { Component, ComponentProps, Snippet } from "svelte";
2
+ /**
3
+ * A helper class to make it easy to identify Svelte components in
4
+ * `columnDef.cell` and `columnDef.header` properties.
5
+ *
6
+ * > NOTE: This class should only be used internally by the adapter. If you're
7
+ * reading this and you don't know what this is for, you probably don't need it.
8
+ *
9
+ * @example
10
+ * ```svelte
11
+ * {@const result = content(context as any)}
12
+ * {#if result instanceof RenderComponentConfig}
13
+ * {@const { component: Component, props } = result}
14
+ * <Component {...props} />
15
+ * {/if}
16
+ * ```
17
+ */
18
+ export declare class RenderComponentConfig<TComponent extends Component> {
19
+ component: TComponent;
20
+ props: ComponentProps<TComponent> | Record<string, never>;
21
+ constructor(component: TComponent, props?: ComponentProps<TComponent> | Record<string, never>);
22
+ }
23
+ /**
24
+ * A helper class to make it easy to identify Svelte Snippets in `columnDef.cell` and `columnDef.header` properties.
25
+ *
26
+ * > NOTE: This class should only be used internally by the adapter. If you're
27
+ * reading this and you don't know what this is for, you probably don't need it.
28
+ *
29
+ * @example
30
+ * ```svelte
31
+ * {@const result = content(context as any)}
32
+ * {#if result instanceof RenderSnippetConfig}
33
+ * {@const { snippet, params } = result}
34
+ * {@render snippet(params)}
35
+ * {/if}
36
+ * ```
37
+ */
38
+ export declare class RenderSnippetConfig<TProps> {
39
+ snippet: Snippet<[TProps]>;
40
+ params: TProps;
41
+ constructor(snippet: Snippet<[TProps]>, params: TProps);
42
+ }
43
+ /**
44
+ * A helper function to help create cells from Svelte components through ColumnDef's `cell` and `header` properties.
45
+ *
46
+ * This is only to be used with Svelte Components - use `renderSnippet` for Svelte Snippets.
47
+ *
48
+ * @param component A Svelte component
49
+ * @param props The props to pass to `component`
50
+ * @returns A `RenderComponentConfig` object that helps svelte-table know how to render the header/cell component.
51
+ * @example
52
+ * ```ts
53
+ * // +page.svelte
54
+ * const defaultColumns = [
55
+ * columnHelper.accessor('name', {
56
+ * header: header => renderComponent(SortHeader, { label: 'Name', header }),
57
+ * }),
58
+ * columnHelper.accessor('state', {
59
+ * header: header => renderComponent(SortHeader, { label: 'State', header }),
60
+ * }),
61
+ * ]
62
+ * ```
63
+ * @see {@link https://tanstack.com/table/latest/docs/guide/column-defs}
64
+ */
65
+ export declare function renderComponent<T extends Component<any>, Props extends ComponentProps<T>>(component: T, props?: Props): RenderComponentConfig<T>;
66
+ /**
67
+ * A helper function to help create cells from Svelte Snippets through ColumnDef's `cell` and `header` properties.
68
+ *
69
+ * The snippet must only take one parameter.
70
+ *
71
+ * This is only to be used with Snippets - use `renderComponent` for Svelte Components.
72
+ *
73
+ * @param snippet
74
+ * @param params
75
+ * @returns - A `RenderSnippetConfig` object that helps svelte-table know how to render the header/cell snippet.
76
+ * @example
77
+ * ```ts
78
+ * // +page.svelte
79
+ * const defaultColumns = [
80
+ * columnHelper.accessor('name', {
81
+ * cell: cell => renderSnippet(nameSnippet, { name: cell.row.name }),
82
+ * }),
83
+ * columnHelper.accessor('state', {
84
+ * cell: cell => renderSnippet(stateSnippet, { state: cell.row.state }),
85
+ * }),
86
+ * ]
87
+ * ```
88
+ * @see {@link https://tanstack.com/table/latest/docs/guide/column-defs}
89
+ */
90
+ export declare function renderSnippet<TProps>(snippet: Snippet<[TProps]>, params?: TProps): RenderSnippetConfig<TProps>;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * A helper class to make it easy to identify Svelte components in
3
+ * `columnDef.cell` and `columnDef.header` properties.
4
+ *
5
+ * > NOTE: This class should only be used internally by the adapter. If you're
6
+ * reading this and you don't know what this is for, you probably don't need it.
7
+ *
8
+ * @example
9
+ * ```svelte
10
+ * {@const result = content(context as any)}
11
+ * {#if result instanceof RenderComponentConfig}
12
+ * {@const { component: Component, props } = result}
13
+ * <Component {...props} />
14
+ * {/if}
15
+ * ```
16
+ */
17
+ export class RenderComponentConfig {
18
+ component;
19
+ props;
20
+ constructor(component, props = {}) {
21
+ this.component = component;
22
+ this.props = props;
23
+ }
24
+ }
25
+ /**
26
+ * A helper class to make it easy to identify Svelte Snippets in `columnDef.cell` and `columnDef.header` properties.
27
+ *
28
+ * > NOTE: This class should only be used internally by the adapter. If you're
29
+ * reading this and you don't know what this is for, you probably don't need it.
30
+ *
31
+ * @example
32
+ * ```svelte
33
+ * {@const result = content(context as any)}
34
+ * {#if result instanceof RenderSnippetConfig}
35
+ * {@const { snippet, params } = result}
36
+ * {@render snippet(params)}
37
+ * {/if}
38
+ * ```
39
+ */
40
+ export class RenderSnippetConfig {
41
+ snippet;
42
+ params;
43
+ constructor(snippet, params) {
44
+ this.snippet = snippet;
45
+ this.params = params;
46
+ }
47
+ }
48
+ /**
49
+ * A helper function to help create cells from Svelte components through ColumnDef's `cell` and `header` properties.
50
+ *
51
+ * This is only to be used with Svelte Components - use `renderSnippet` for Svelte Snippets.
52
+ *
53
+ * @param component A Svelte component
54
+ * @param props The props to pass to `component`
55
+ * @returns A `RenderComponentConfig` object that helps svelte-table know how to render the header/cell component.
56
+ * @example
57
+ * ```ts
58
+ * // +page.svelte
59
+ * const defaultColumns = [
60
+ * columnHelper.accessor('name', {
61
+ * header: header => renderComponent(SortHeader, { label: 'Name', header }),
62
+ * }),
63
+ * columnHelper.accessor('state', {
64
+ * header: header => renderComponent(SortHeader, { label: 'State', header }),
65
+ * }),
66
+ * ]
67
+ * ```
68
+ * @see {@link https://tanstack.com/table/latest/docs/guide/column-defs}
69
+ */
70
+ export function renderComponent(component, props = {}) {
71
+ return new RenderComponentConfig(component, props);
72
+ }
73
+ /**
74
+ * A helper function to help create cells from Svelte Snippets through ColumnDef's `cell` and `header` properties.
75
+ *
76
+ * The snippet must only take one parameter.
77
+ *
78
+ * This is only to be used with Snippets - use `renderComponent` for Svelte Components.
79
+ *
80
+ * @param snippet
81
+ * @param params
82
+ * @returns - A `RenderSnippetConfig` object that helps svelte-table know how to render the header/cell snippet.
83
+ * @example
84
+ * ```ts
85
+ * // +page.svelte
86
+ * const defaultColumns = [
87
+ * columnHelper.accessor('name', {
88
+ * cell: cell => renderSnippet(nameSnippet, { name: cell.row.name }),
89
+ * }),
90
+ * columnHelper.accessor('state', {
91
+ * cell: cell => renderSnippet(stateSnippet, { state: cell.row.state }),
92
+ * }),
93
+ * ]
94
+ * ```
95
+ * @see {@link https://tanstack.com/table/latest/docs/guide/column-defs}
96
+ */
97
+ export function renderSnippet(snippet, params = {}) {
98
+ return new RenderSnippetConfig(snippet, params);
99
+ }
@@ -0,0 +1,36 @@
1
+ import type { ColumnSizingState, ColumnSizingInfoState, ColumnOrderState, PaginationState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/table-core';
2
+ import type { DataTableColumn } from './data-table-types.js';
3
+ import type { Snippet } from 'svelte';
4
+ import type { Row } from '@tanstack/table-core';
5
+ /**
6
+ * Build TanStack columns from configuration
7
+ */
8
+ export declare function buildColumns<TData>(columnConfig: DataTableColumn<TData>[], enableSelection: boolean, rowActionsSnippet: Snippet<[{
9
+ row: Row<TData>;
10
+ }]> | null, hasRowActions: boolean): any[];
11
+ interface TableSetupOptions<TData> {
12
+ enableSelection: boolean;
13
+ enablePagination: boolean;
14
+ getRowSelection: () => RowSelectionState;
15
+ getColumnVisibility: () => VisibilityState;
16
+ getSorting: () => SortingState;
17
+ getPagination: () => PaginationState;
18
+ getColumnSizing: () => ColumnSizingState;
19
+ getColumnSizingInfo: () => ColumnSizingInfoState;
20
+ getColumnOrder: () => ColumnOrderState;
21
+ setRowSelection: (value: RowSelectionState) => void;
22
+ setColumnVisibility: (value: VisibilityState) => void;
23
+ setSorting: (value: SortingState) => void;
24
+ setPagination: (value: PaginationState) => void;
25
+ setColumnSizing: (value: ColumnSizingState) => void;
26
+ setColumnSizingInfo: (value: ColumnSizingInfoState) => void;
27
+ setColumnOrder: (value: ColumnOrderState) => void;
28
+ }
29
+ /**
30
+ * Create the TanStack table instance with all configuration
31
+ */
32
+ export declare function setupTable<TData>(options: TableSetupOptions<TData> & {
33
+ data?: TData[];
34
+ columns?: any[];
35
+ }): import("@tanstack/table-core").Table<unknown>;
36
+ export {};
@@ -0,0 +1,130 @@
1
+ import { getCoreRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/table-core';
2
+ import { createSvelteTable } from './data-table-svelte.svelte.js';
3
+ import { createColumns } from './create-columns.js';
4
+ import { createSelectionColumn, createActionsColumn } from './column-definitions.js';
5
+ /**
6
+ * Build TanStack columns from configuration
7
+ */
8
+ export function buildColumns(columnConfig, enableSelection, rowActionsSnippet, hasRowActions) {
9
+ const cols = [];
10
+ // Add selection column if enabled
11
+ if (enableSelection) {
12
+ cols.push(createSelectionColumn());
13
+ }
14
+ // Add user-defined columns
15
+ cols.push(...createColumns(columnConfig));
16
+ // Add actions column if row actions are defined
17
+ if (hasRowActions && rowActionsSnippet) {
18
+ cols.push(createActionsColumn(rowActionsSnippet));
19
+ }
20
+ return cols;
21
+ }
22
+ /**
23
+ * Create state updater function
24
+ */
25
+ function createStateUpdater(setState) {
26
+ return (updater) => {
27
+ setState(typeof updater === 'function' ? updater(undefined) : updater);
28
+ };
29
+ }
30
+ /**
31
+ * Create the TanStack table instance with all configuration
32
+ */
33
+ export function setupTable(options) {
34
+ const tableOptions = {
35
+ state: {
36
+ get sorting() {
37
+ return options.getSorting();
38
+ },
39
+ get columnVisibility() {
40
+ return options.getColumnVisibility();
41
+ },
42
+ get rowSelection() {
43
+ return options.getRowSelection();
44
+ },
45
+ get pagination() {
46
+ return options.getPagination();
47
+ },
48
+ get columnSizing() {
49
+ return options.getColumnSizing();
50
+ },
51
+ get columnSizingInfo() {
52
+ return options.getColumnSizingInfo();
53
+ },
54
+ get columnOrder() {
55
+ return options.getColumnOrder();
56
+ }
57
+ },
58
+ enableRowSelection: options.enableSelection,
59
+ enableColumnResizing: true,
60
+ columnResizeMode: 'onChange',
61
+ columnResizeDirection: 'ltr',
62
+ onRowSelectionChange: (updater) => {
63
+ if (typeof updater === 'function') {
64
+ options.setRowSelection(updater(options.getRowSelection()));
65
+ }
66
+ else {
67
+ options.setRowSelection(updater);
68
+ }
69
+ },
70
+ onSortingChange: (updater) => {
71
+ if (typeof updater === 'function') {
72
+ options.setSorting(updater(options.getSorting()));
73
+ }
74
+ else {
75
+ options.setSorting(updater);
76
+ }
77
+ },
78
+ onColumnVisibilityChange: (updater) => {
79
+ if (typeof updater === 'function') {
80
+ options.setColumnVisibility(updater(options.getColumnVisibility()));
81
+ }
82
+ else {
83
+ options.setColumnVisibility(updater);
84
+ }
85
+ },
86
+ onPaginationChange: (updater) => {
87
+ if (typeof updater === 'function') {
88
+ options.setPagination(updater(options.getPagination()));
89
+ }
90
+ else {
91
+ options.setPagination(updater);
92
+ }
93
+ },
94
+ onColumnSizingChange: (updater) => {
95
+ if (typeof updater === 'function') {
96
+ options.setColumnSizing(updater(options.getColumnSizing()));
97
+ }
98
+ else {
99
+ options.setColumnSizing(updater);
100
+ }
101
+ },
102
+ onColumnSizingInfoChange: (updater) => {
103
+ if (typeof updater === 'function') {
104
+ options.setColumnSizingInfo(updater(options.getColumnSizingInfo()));
105
+ }
106
+ else {
107
+ options.setColumnSizingInfo(updater);
108
+ }
109
+ },
110
+ onColumnOrderChange: (updater) => {
111
+ if (typeof updater === 'function') {
112
+ options.setColumnOrder(updater(options.getColumnOrder()));
113
+ }
114
+ else {
115
+ options.setColumnOrder(updater);
116
+ }
117
+ },
118
+ getCoreRowModel: getCoreRowModel(),
119
+ getPaginationRowModel: options.enablePagination ? getPaginationRowModel() : undefined,
120
+ getSortedRowModel: getSortedRowModel()
121
+ };
122
+ // Add data and columns as getters if provided
123
+ if (options.data !== undefined) {
124
+ tableOptions.data = options.data;
125
+ }
126
+ if (options.columns !== undefined) {
127
+ tableOptions.columns = options.columns;
128
+ }
129
+ return createSvelteTable(tableOptions);
130
+ }
@@ -0,0 +1,17 @@
1
+ import type { Header, Cell } from '@tanstack/table-core';
2
+ /**
3
+ * Calculate inline styles for table headers
4
+ */
5
+ export declare function getHeaderStyle<TData>(header: Header<TData, unknown>, isLastScrollable: boolean): string;
6
+ /**
7
+ * Calculate CSS classes for table headers
8
+ */
9
+ export declare function getHeaderClasses<TData>(header: Header<TData, unknown>, isLastScrollable: boolean): string;
10
+ /**
11
+ * Calculate inline styles for table cells
12
+ */
13
+ export declare function getCellStyle<TData>(cell: Cell<TData, unknown>, isLastScrollable: boolean): string;
14
+ /**
15
+ * Calculate CSS classes for table cells
16
+ */
17
+ export declare function getCellClasses<TData>(cell: Cell<TData, unknown>, isLastScrollable: boolean): string;
@@ -0,0 +1,48 @@
1
+ import clsx from 'clsx';
2
+ /**
3
+ * Calculate inline styles for table headers
4
+ */
5
+ export function getHeaderStyle(header, isLastScrollable) {
6
+ const size = header.getSize();
7
+ if (header.id === 'actions' || header.id === 'select') {
8
+ return `width: ${size}px; min-width: ${size}px; max-width: ${size}px;`;
9
+ }
10
+ if (isLastScrollable) {
11
+ return `min-width: ${size}px;`;
12
+ }
13
+ return `min-width: ${size}px; max-width: ${size}px;`;
14
+ }
15
+ /**
16
+ * Calculate CSS classes for table headers
17
+ */
18
+ export function getHeaderClasses(header, isLastScrollable) {
19
+ return clsx('relative whitespace-nowrap overflow-hidden', {
20
+ 'sticky right-0 text-right bg-white': header.id === 'actions',
21
+ 'sticky left-0 bg-white z-10': header.id === 'select',
22
+ 'w-full': isLastScrollable,
23
+ 'hover:!bg-transparent': !header.column.getCanSort()
24
+ });
25
+ }
26
+ /**
27
+ * Calculate inline styles for table cells
28
+ */
29
+ export function getCellStyle(cell, isLastScrollable) {
30
+ const size = cell.column.getSize();
31
+ if (cell.column.id === 'actions' || cell.column.id === 'select') {
32
+ return `width: ${size}px; min-width: ${size}px; max-width: ${size}px;`;
33
+ }
34
+ if (isLastScrollable) {
35
+ return `min-width: ${size}px;`;
36
+ }
37
+ return `min-width: ${size}px; max-width: ${size}px;`;
38
+ }
39
+ /**
40
+ * Calculate CSS classes for table cells
41
+ */
42
+ export function getCellClasses(cell, isLastScrollable) {
43
+ return clsx('whitespace-nowrap overflow-hidden', {
44
+ 'sticky right-0 text-right !p-0': cell.column.id === 'actions',
45
+ 'sticky left-0 !p-0 z-10': cell.column.id === 'select',
46
+ 'w-full': isLastScrollable
47
+ });
48
+ }
package/dist/helpers.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { IconSource } from '@steeze-ui/svelte-icon';
2
2
  import type { DatesFromToday, FeedItemStatus } from './types.js';
3
3
  import { type DateValue } from '@internationalized/date';
4
4
  export declare function toPascalCase(text: string): string;
5
+ export declare function capitalize(text: string): string;
5
6
  export declare function resolveIcon(icon?: IconSource | string | undefined): Promise<IconSource | undefined>;
6
7
  export declare function getCountryName(code: string): string | undefined;
7
8
  export declare function getStatusType(status: string): FeedItemStatus;
package/dist/helpers.js CHANGED
@@ -3,6 +3,9 @@ import { startOfWeek, endOfWeek, subWeeks, endOfMonth, startOfMonth, subMonths,
3
3
  export function toPascalCase(text) {
4
4
  return text.replace(/(^\w|-\w)/g, (text) => text.replace(/-/, '').toUpperCase());
5
5
  }
6
+ export function capitalize(text) {
7
+ return text.charAt(0).toUpperCase() + text.slice(1);
8
+ }
6
9
  export async function resolveIcon(icon = undefined) {
7
10
  if (!icon)
8
11
  return undefined;
package/dist/index.d.ts CHANGED
@@ -13,15 +13,14 @@ import ButtonUuidCopy from './ButtonUuidCopy.svelte';
13
13
  import CardCheckbox from './CardCheckbox.svelte';
14
14
  import CardRelation from './CardRelation.svelte';
15
15
  import CompanySelector from './CompanySelector.svelte';
16
- import CounterWorkflow from './CounterWorkflow.svelte';
16
+ import CounterWidget from './CounterWidget.svelte';
17
17
  import DataListItem from './DataListItem.svelte';
18
18
  import DatePicker from './DatePicker.svelte';
19
19
  import DrawerContext from './DrawerContext.svelte';
20
20
  import DrawerContextItem from './DrawerContextItem.svelte';
21
21
  import DrawerContextSeparator from './DrawerContextSeparator.svelte';
22
22
  import DropdownSelect from './DropdownSelect.svelte';
23
- import EmptyStateIcon from './EmptyStateIcon.svelte';
24
- import EmptyStateIllustration from './EmptyStateIllustration.svelte';
23
+ import EmptyState from './EmptyState.svelte';
25
24
  import FeedEvents from './FeedEvents.svelte';
26
25
  import FeedIconEvent from './FeedIconEvent.svelte';
27
26
  import FeedIconStatus from './FeedIconStatus.svelte';
@@ -42,8 +41,8 @@ import MenuItem from './MenuItem.svelte';
42
41
  import MenuItemCollapsible from './MenuItemCollapsible.svelte';
43
42
  import Notification from './Notification.svelte';
44
43
  import ProfileAvatar from './ProfileAvatar.svelte';
45
- import ProfileSelector from './ProfileSelector.svelte';
46
- import SectionLayout from './SectionLayout.svelte';
44
+ import ProgressBar from './ProgressBar.svelte';
45
+ import ProgressBarCircle from './ProgressBarCircle.svelte';
47
46
  import SeparatorHorizontal from './SeparatorHorizontal.svelte';
48
47
  import ShortcutWrapper from './ShortcutWrapper.svelte';
49
48
  import StatusLabel from './StatusLabel.svelte';
@@ -61,16 +60,25 @@ import { TabsContent } from './tabs';
61
60
  import { TabsList } from './tabs';
62
61
  import { TabsTrigger } from './tabs';
63
62
  import TagBeta from './TagBeta.svelte';
63
+ import TagProgress from './TagProgress.svelte';
64
64
  import TagSearch from './TagSearch.svelte';
65
65
  import TagStatus from './TagStatus.svelte';
66
66
  import TitleMain from './TitleMain.svelte';
67
67
  import TitleSection from './TitleSection.svelte';
68
+ import { Toaster } from './sonner';
68
69
  import { Tooltip } from './tooltip';
69
70
  import { TooltipContent } from './tooltip';
70
71
  import { TooltipTrigger } from './tooltip';
71
72
  import UuidCopy from './UuidCopy.svelte';
72
- import twTheme from './tw.theme.js';
73
73
  import { resolveIcon } from './helpers.js';
74
74
  import { getCountryName } from './helpers.js';
75
75
  import { getStatusType } from './helpers.js';
76
- export { AlertDialog, BaseButton, BaseCard, BaseCounter, BaseDropdown, BaseFlag, BaseTable, BaseTableActions, BaseTableHeaderContent, Breadcrumbs, ButtonFile, ButtonUuidCopy, CardCheckbox, CardRelation, CompanySelector, CounterWorkflow, DataListItem, DatePicker, DrawerContext, DrawerContextItem, DrawerContextSeparator, DropdownSelect, EmptyStateIcon, EmptyStateIllustration, FeedEvents, FeedIconEvent, FeedIconStatus, FeedItem, FeedItemDetail, FeedViewer, GlobalSearch, InputCheckbox, InputError, InputLabel, InputRadio, InputSearch, InputSelect, InputText, InputTextarea, InputToggle, MenuItem, MenuItemCollapsible, Notification, ProfileAvatar, ProfileSelector, SectionLayout, SeparatorHorizontal, ShortcutWrapper, StatusLabel, StepIconList, Table, TableBody, TableCaption, TableFooter, TableHeader, TableRow, TableHead, TableCell, Tabs, TabsContent, TabsList, TabsTrigger, TagBeta, TagSearch, TagStatus, TitleMain, TitleSection, Tooltip, TooltipContent, TooltipTrigger, UuidCopy, twTheme, resolveIcon, getCountryName, getStatusType };
76
+ import { buttonVariants } from './button/button.svelte';
77
+ import { DataTable } from './data-table';
78
+ import { DataTableToolbar } from './data-table';
79
+ import { DataTableViewOptions } from './data-table';
80
+ import { FlexRender } from './data-table';
81
+ import { createSvelteTable } from './data-table';
82
+ import { renderComponent } from './data-table';
83
+ import { renderSnippet } from './data-table';
84
+ export { AlertDialog, BaseButton, BaseCard, BaseCounter, BaseDropdown, BaseFlag, BaseTable, BaseTableActions, BaseTableHeaderContent, Breadcrumbs, ButtonFile, ButtonUuidCopy, CardCheckbox, CardRelation, CompanySelector, CounterWidget, DataListItem, DatePicker, DrawerContext, DrawerContextItem, DrawerContextSeparator, DropdownSelect, EmptyState, FeedEvents, FeedIconEvent, FeedIconStatus, FeedItem, FeedItemDetail, FeedViewer, GlobalSearch, InputCheckbox, InputError, InputLabel, InputRadio, InputSearch, InputSelect, InputText, InputTextarea, InputToggle, MenuItem, MenuItemCollapsible, Notification, ProfileAvatar, ProgressBar, ProgressBarCircle, SeparatorHorizontal, ShortcutWrapper, StatusLabel, StepIconList, Table, TableBody, TableCaption, TableFooter, TableHeader, TableRow, TableHead, TableCell, Tabs, TabsContent, TabsList, TabsTrigger, TagBeta, TagProgress, TagSearch, TagStatus, TitleMain, TitleSection, Toaster, Tooltip, TooltipContent, TooltipTrigger, UuidCopy, resolveIcon, getCountryName, getStatusType, buttonVariants, DataTable, DataTableToolbar, DataTableViewOptions, FlexRender, createSvelteTable, renderComponent, renderSnippet };
package/dist/index.js CHANGED
@@ -13,15 +13,14 @@ import ButtonUuidCopy from './ButtonUuidCopy.svelte'
13
13
  import CardCheckbox from './CardCheckbox.svelte'
14
14
  import CardRelation from './CardRelation.svelte'
15
15
  import CompanySelector from './CompanySelector.svelte'
16
- import CounterWorkflow from './CounterWorkflow.svelte'
16
+ import CounterWidget from './CounterWidget.svelte'
17
17
  import DataListItem from './DataListItem.svelte'
18
18
  import DatePicker from './DatePicker.svelte'
19
19
  import DrawerContext from './DrawerContext.svelte'
20
20
  import DrawerContextItem from './DrawerContextItem.svelte'
21
21
  import DrawerContextSeparator from './DrawerContextSeparator.svelte'
22
22
  import DropdownSelect from './DropdownSelect.svelte'
23
- import EmptyStateIcon from './EmptyStateIcon.svelte'
24
- import EmptyStateIllustration from './EmptyStateIllustration.svelte'
23
+ import EmptyState from './EmptyState.svelte'
25
24
  import FeedEvents from './FeedEvents.svelte'
26
25
  import FeedIconEvent from './FeedIconEvent.svelte'
27
26
  import FeedIconStatus from './FeedIconStatus.svelte'
@@ -42,8 +41,8 @@ import MenuItem from './MenuItem.svelte'
42
41
  import MenuItemCollapsible from './MenuItemCollapsible.svelte'
43
42
  import Notification from './Notification.svelte'
44
43
  import ProfileAvatar from './ProfileAvatar.svelte'
45
- import ProfileSelector from './ProfileSelector.svelte'
46
- import SectionLayout from './SectionLayout.svelte'
44
+ import ProgressBar from './ProgressBar.svelte'
45
+ import ProgressBarCircle from './ProgressBarCircle.svelte'
47
46
  import SeparatorHorizontal from './SeparatorHorizontal.svelte'
48
47
  import ShortcutWrapper from './ShortcutWrapper.svelte'
49
48
  import StatusLabel from './StatusLabel.svelte'
@@ -60,15 +59,25 @@ import {
60
59
  } from './table'
61
60
  import { Tabs, TabsContent, TabsList, TabsTrigger } from './tabs'
62
61
  import TagBeta from './TagBeta.svelte'
62
+ import TagProgress from './TagProgress.svelte'
63
63
  import TagSearch from './TagSearch.svelte'
64
64
  import TagStatus from './TagStatus.svelte'
65
65
  import TitleMain from './TitleMain.svelte'
66
66
  import TitleSection from './TitleSection.svelte'
67
+ import { Toaster } from './sonner'
67
68
  import { Tooltip, TooltipContent, TooltipTrigger } from './tooltip'
68
-
69
69
  import UuidCopy from './UuidCopy.svelte'
70
- import twTheme from './tw.theme.js'
71
70
  import { resolveIcon, getCountryName, getStatusType } from './helpers.js'
71
+ import { buttonVariants } from './button/button.svelte' // Ensure button styles are included
72
+ import {
73
+ DataTable,
74
+ DataTableToolbar,
75
+ DataTableViewOptions,
76
+ FlexRender,
77
+ createSvelteTable,
78
+ renderComponent,
79
+ renderSnippet
80
+ } from './data-table'
72
81
 
73
82
  export {
74
83
  AlertDialog,
@@ -86,15 +95,14 @@ export {
86
95
  CardCheckbox,
87
96
  CardRelation,
88
97
  CompanySelector,
89
- CounterWorkflow,
98
+ CounterWidget,
90
99
  DataListItem,
91
100
  DatePicker,
92
101
  DrawerContext,
93
102
  DrawerContextItem,
94
103
  DrawerContextSeparator,
95
104
  DropdownSelect,
96
- EmptyStateIcon,
97
- EmptyStateIllustration,
105
+ EmptyState,
98
106
  FeedEvents,
99
107
  FeedIconEvent,
100
108
  FeedIconStatus,
@@ -115,8 +123,8 @@ export {
115
123
  MenuItemCollapsible,
116
124
  Notification,
117
125
  ProfileAvatar,
118
- ProfileSelector,
119
- SectionLayout,
126
+ ProgressBar,
127
+ ProgressBarCircle,
120
128
  SeparatorHorizontal,
121
129
  ShortcutWrapper,
122
130
  StatusLabel,
@@ -134,16 +142,25 @@ export {
134
142
  TabsList,
135
143
  TabsTrigger,
136
144
  TagBeta,
145
+ TagProgress,
137
146
  TagSearch,
138
147
  TagStatus,
139
148
  TitleMain,
140
149
  TitleSection,
150
+ Toaster,
141
151
  Tooltip,
142
152
  TooltipContent,
143
153
  TooltipTrigger,
144
154
  UuidCopy,
145
- twTheme,
146
155
  resolveIcon,
147
156
  getCountryName,
148
- getStatusType
157
+ getStatusType,
158
+ buttonVariants,
159
+ DataTable,
160
+ DataTableToolbar,
161
+ DataTableViewOptions,
162
+ FlexRender,
163
+ createSvelteTable,
164
+ renderComponent,
165
+ renderSnippet
149
166
  }
@@ -11,7 +11,7 @@
11
11
  <RangeCalendarPrimitive.Cell
12
12
  bind:ref
13
13
  class={cn(
14
- 'size-(--cell-size) dark:[&:has([data-range-start])]:hover:bg-accent dark:[&:has([data-range-end])]:hover:bg-accent [&:has([data-range-middle])]:bg-accent dark:[&:has([data-range-middle])]:hover:bg-accent/50 [&:has([data-selected])]:bg-accent relative p-0 text-center text-sm focus-within:z-20 data-[range-middle]:rounded-r-md [&:first-child[data-selected]_[data-bits-day]]:rounded-l-md [&:has([data-range-end])]:rounded-r-md [&:has([data-range-middle])]:rounded-none first:[&:has([data-range-middle])]:rounded-l-md last:[&:has([data-range-middle])]:rounded-r-md [&:has([data-range-start])]:rounded-l-md [&:last-child[data-selected]_[data-bits-day]]:rounded-r-md',
14
+ 'size-(--cell-size) [&:has([data-range-middle]:not([data-outside-month]))]:bg-background-default-secondary [&:has([data-selected]:not([data-outside-month]))]:bg-background-default-secondary relative p-0 text-center text-sm focus-within:z-20 data-[range-middle]:rounded-r-md [&:first-child[data-selected]_[data-bits-day]]:rounded-l-md [&:has([data-range-end])]:rounded-r-md [&:has([data-range-middle])]:rounded-none first:[&:has([data-range-middle])]:rounded-l-md last:[&:has([data-range-middle])]:rounded-r-md [&:has([data-range-start])]:rounded-l-md [&:last-child[data-selected]_[data-bits-day]]:rounded-r-md',
15
15
  className
16
16
  )}
17
17
  {...restProps}
@@ -13,28 +13,27 @@
13
13
  bind:ref
14
14
  class={cn(
15
15
  buttonVariants({ variant: 'ghost' }),
16
- 'size-(--cell-size) flex select-none flex-col items-center justify-center gap-1 whitespace-nowrap p-0 font-normal leading-none',
16
+ 'size-(--cell-size) flex select-none flex-col items-center justify-center gap-1 whitespace-nowrap p-0 font-medium leading-none rounded-lg text-foreground!',
17
17
  // today
18
- '[&[data-today]:not([data-selected])]:border-b [&[data-today]:not([data-selected])]:border-workspace-accent [&[data-today]:not([data-selected])]:rounded-none',
18
+ '[&[data-today]:not([data-selected]):not([data-outside-month])]:border-b [&[data-today]:not([data-selected]):not([data-outside-month])]:border-background-accent [&[data-today]:not([data-selected]):not([data-outside-month])]:rounded-none',
19
19
  // range Start
20
- 'data-[range-start]:bg-workspace-accent data-[range-start]:text-white data-[range-start]:font-semibold data-[range-start]:shadow-active',
20
+ 'data-[range-start]:bg-background-accent data-[range-start]:text-foreground-inverse! data-[range-start]:font-semibold data-[range-start]:shadow-[0px_0px_0px_2px_rgba(22,153,88,0.12)]',
21
21
  // range middle
22
- 'data-[range-middle]:rounded-none data-[range-middle]:bg-neutral-100',
22
+ 'data-[range-middle]:rounded-none data-[range-middle]:bg-background-default-secondary',
23
23
  // range End
24
- 'data-[range-end]:bg-workspace-accent data-[range-end]:text-white data-[range-end]:font-semibold data-[range-end]:shadow-active',
25
- // Outside months
26
- '[&[data-outside-month]]:text-transparent [&[data-outside-month]]:bg-transparent [&[data-outside-month]]:shadow-none [&[data-outside-month]:not([data-selected])]:pointer-events-none',
24
+ 'data-[range-end]:bg-background-accent data-[range-end]:text-foreground-inverse! data-[range-end]:font-semibold data-[range-end]:shadow-[0px_0px_0px_2px_rgba(22,153,88,0.12)]',
25
+ // Outside months - must come after range styles to override
26
+ '[&[data-outside-month]]:!text-transparent [&[data-outside-month]]:!bg-transparent [&[data-outside-month]]:!shadow-none [&[data-outside-month]:not([data-selected])]:pointer-events-none',
27
27
  // Disabled
28
- 'data-[disabled]:text-muted-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
28
+ 'data-[disabled]:text-foreground-default-tertiary data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
29
29
  // Unavailable
30
30
  'data-[unavailable]:line-through',
31
- 'dark:data-[range-middle]:hover:bg-accent/0',
32
- // hover
33
- 'dark:hover:text-accent-foreground',
34
31
  // focus
35
32
  'focus:border-ring focus:ring-ring/50 focus:relative',
33
+ // Default text color
34
+ 'text-foreground-default-primary',
36
35
  // inner spans
37
- '[&>span]:text-xs [&>span]:opacity-70',
36
+ '[&>span]:text-sm [&>span]:opacity-70',
38
37
  className
39
38
  )}
40
39
  {...restProps}