@invopop/popui 0.1.3 → 0.1.4-beta.2

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 (180) hide show
  1. package/dist/AlertDialog.svelte +10 -11
  2. package/dist/BaseButton.svelte +29 -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 +81 -22
  33. package/dist/DropdownSelectGroup.svelte +15 -0
  34. package/dist/DropdownSelectGroup.svelte.d.ts +7 -0
  35. package/dist/EmptyState.svelte +42 -0
  36. package/dist/EmptyState.svelte.d.ts +4 -0
  37. package/dist/FeedEvents.svelte +9 -5
  38. package/dist/FeedIconEvent.svelte +2 -2
  39. package/dist/FeedIconStatus.svelte +4 -4
  40. package/dist/FeedItem.svelte +10 -11
  41. package/dist/FeedItemDetail.svelte +32 -6
  42. package/dist/FeedViewer.svelte +1 -1
  43. package/dist/GlobalSearch.svelte +13 -12
  44. package/dist/InputCheckbox.svelte +2 -5
  45. package/dist/InputError.svelte +4 -9
  46. package/dist/InputLabel.svelte +3 -1
  47. package/dist/InputRadio.svelte +29 -13
  48. package/dist/InputRadio.svelte.d.ts +1 -1
  49. package/dist/InputSearch.svelte +8 -8
  50. package/dist/InputSelect.svelte +32 -31
  51. package/dist/InputText.svelte +32 -24
  52. package/dist/InputTextarea.svelte +25 -19
  53. package/dist/InputToggle.svelte +24 -18
  54. package/dist/MenuItem.svelte +16 -11
  55. package/dist/MenuItemCollapsible.svelte +7 -7
  56. package/dist/Notification.svelte +60 -25
  57. package/dist/ProfileAvatar.svelte +43 -14
  58. package/dist/ProgressBar.svelte +42 -0
  59. package/dist/ProgressBar.svelte.d.ts +4 -0
  60. package/dist/ProgressBarCircle.svelte +46 -0
  61. package/dist/ProgressBarCircle.svelte.d.ts +4 -0
  62. package/dist/SeparatorHorizontal.svelte +2 -2
  63. package/dist/ShortcutWrapper.svelte +14 -5
  64. package/dist/StatusLabel.svelte +4 -5
  65. package/dist/StepIconList.svelte +11 -9
  66. package/dist/TagBeta.svelte +26 -14
  67. package/dist/TagProgress.svelte +28 -0
  68. package/dist/TagProgress.svelte.d.ts +4 -0
  69. package/dist/TagSearch.svelte +4 -4
  70. package/dist/TagStatus.svelte +32 -34
  71. package/dist/TitleMain.svelte +1 -1
  72. package/dist/TitleSection.svelte +1 -1
  73. package/dist/UuidCopy.svelte +4 -4
  74. package/dist/alert-dialog/alert-dialog-action.svelte +8 -4
  75. package/dist/alert-dialog/alert-dialog-cancel.svelte +7 -3
  76. package/dist/alert-dialog/alert-dialog-content.svelte +1 -1
  77. package/dist/alert-dialog/alert-dialog-description.svelte +1 -1
  78. package/dist/alert-dialog/alert-dialog-footer.svelte +1 -1
  79. package/dist/alert-dialog/alert-dialog-header.svelte +1 -1
  80. package/dist/alert-dialog/alert-dialog-overlay.svelte +1 -1
  81. package/dist/alert-dialog/alert-dialog-title.svelte +1 -1
  82. package/dist/alert-dialog/alert-dialog-trigger.svelte +4 -2
  83. package/dist/button/button.svelte +224 -24
  84. package/dist/button/button.svelte.d.ts +77 -26
  85. package/dist/clickOutside.d.ts +5 -2
  86. package/dist/clickOutside.js +9 -3
  87. package/dist/data-table/cells/boolean-cell.svelte +16 -0
  88. package/dist/data-table/cells/boolean-cell.svelte.d.ts +8 -0
  89. package/dist/data-table/cells/currency-cell.svelte +10 -0
  90. package/dist/data-table/cells/currency-cell.svelte.d.ts +8 -0
  91. package/dist/data-table/cells/date-cell.svelte +10 -0
  92. package/dist/data-table/cells/date-cell.svelte.d.ts +8 -0
  93. package/dist/data-table/cells/tag-cell.svelte +12 -0
  94. package/dist/data-table/cells/tag-cell.svelte.d.ts +8 -0
  95. package/dist/data-table/cells/text-cell.svelte +10 -0
  96. package/dist/data-table/cells/text-cell.svelte.d.ts +8 -0
  97. package/dist/data-table/column-definitions.d.ts +12 -0
  98. package/dist/data-table/column-definitions.js +42 -0
  99. package/dist/data-table/column-sizing-helpers.d.ts +6 -0
  100. package/dist/data-table/column-sizing-helpers.js +24 -0
  101. package/dist/data-table/create-columns.d.ts +3 -0
  102. package/dist/data-table/create-columns.js +50 -0
  103. package/dist/data-table/data-table-pagination.svelte +173 -0
  104. package/dist/data-table/data-table-pagination.svelte.d.ts +4 -0
  105. package/dist/data-table/data-table-svelte.svelte.d.ts +40 -0
  106. package/dist/data-table/data-table-svelte.svelte.js +111 -0
  107. package/dist/data-table/data-table-toolbar.svelte +16 -0
  108. package/dist/data-table/data-table-toolbar.svelte.d.ts +29 -0
  109. package/dist/data-table/data-table-types.d.ts +75 -0
  110. package/dist/data-table/data-table-types.js +1 -0
  111. package/dist/data-table/data-table-view-options.svelte +88 -0
  112. package/dist/data-table/data-table-view-options.svelte.d.ts +27 -0
  113. package/dist/data-table/data-table.svelte +323 -0
  114. package/dist/data-table/data-table.svelte.d.ts +25 -0
  115. package/dist/data-table/flex-render.svelte +40 -0
  116. package/dist/data-table/flex-render.svelte.d.ts +33 -0
  117. package/dist/data-table/index.d.ts +13 -0
  118. package/dist/data-table/index.js +13 -0
  119. package/dist/data-table/render-helpers.d.ts +90 -0
  120. package/dist/data-table/render-helpers.js +99 -0
  121. package/dist/data-table/table-setup.d.ts +36 -0
  122. package/dist/data-table/table-setup.js +130 -0
  123. package/dist/data-table/table-styles.d.ts +17 -0
  124. package/dist/data-table/table-styles.js +49 -0
  125. package/dist/helpers.d.ts +1 -0
  126. package/dist/helpers.js +3 -0
  127. package/dist/index.d.ts +16 -7
  128. package/dist/index.js +33 -14
  129. package/dist/range-calendar/range-calendar-cell.svelte +1 -1
  130. package/dist/range-calendar/range-calendar-day.svelte +11 -12
  131. package/dist/range-calendar/range-calendar-head-cell.svelte +1 -1
  132. package/dist/range-calendar/range-calendar-header.svelte +1 -1
  133. package/dist/range-calendar/range-calendar-month-select.svelte +1 -1
  134. package/dist/range-calendar/range-calendar-next-button.svelte +3 -3
  135. package/dist/range-calendar/range-calendar-prev-button.svelte +3 -3
  136. package/dist/range-calendar/range-calendar.svelte +1 -1
  137. package/dist/sonner/index.d.ts +1 -0
  138. package/dist/sonner/index.js +1 -0
  139. package/dist/sonner/sonner.svelte +44 -0
  140. package/dist/sonner/sonner.svelte.d.ts +4 -0
  141. package/dist/svg/CheckBadge.svelte +18 -0
  142. package/dist/svg/CheckBadge.svelte.d.ts +26 -0
  143. package/dist/svg/IconDelivery.svelte +86 -0
  144. package/dist/svg/IconDelivery.svelte.d.ts +20 -0
  145. package/dist/svg/IconEmpty.svelte +113 -121
  146. package/dist/svg/IconOrder.svelte +81 -0
  147. package/dist/svg/IconOrder.svelte.d.ts +20 -0
  148. package/dist/svg/IconPayment.svelte +86 -0
  149. package/dist/svg/IconPayment.svelte.d.ts +20 -0
  150. package/dist/table/table-body.svelte +5 -1
  151. package/dist/table/table-cell.svelte +4 -2
  152. package/dist/table/table-footer.svelte +1 -1
  153. package/dist/table/table-head.svelte +4 -2
  154. package/dist/table/table-header.svelte +1 -1
  155. package/dist/table/table-row.svelte +4 -2
  156. package/dist/table/table.svelte +2 -2
  157. package/dist/tabs/tabs-list.svelte +8 -2
  158. package/dist/tabs/tabs-list.svelte.d.ts +4 -1
  159. package/dist/tabs/tabs-trigger.svelte +5 -3
  160. package/dist/tabs/tabs-trigger.svelte.d.ts +4 -1
  161. package/dist/tailwind.theme.css +998 -0
  162. package/dist/tooltip/tooltip-content.svelte +2 -2
  163. package/dist/types.d.ts +76 -50
  164. package/package.json +20 -10
  165. package/dist/CounterWorkflow.svelte +0 -19
  166. package/dist/CounterWorkflow.svelte.d.ts +0 -4
  167. package/dist/DrawerContextWorkspace.svelte +0 -126
  168. package/dist/DrawerContextWorkspace.svelte.d.ts +0 -4
  169. package/dist/EmptyStateIcon.svelte +0 -52
  170. package/dist/EmptyStateIcon.svelte.d.ts +0 -4
  171. package/dist/EmptyStateIllustration.svelte +0 -66
  172. package/dist/EmptyStateIllustration.svelte.d.ts +0 -4
  173. package/dist/FormLayoutModal.svelte +0 -14
  174. package/dist/FormLayoutModal.svelte.d.ts +0 -4
  175. package/dist/ProfileSelector.svelte +0 -41
  176. package/dist/ProfileSelector.svelte.d.ts +0 -4
  177. package/dist/SectionLayout.svelte +0 -13
  178. package/dist/SectionLayout.svelte.d.ts +0 -4
  179. package/dist/tw.theme.d.ts +0 -171
  180. package/dist/tw.theme.js +0 -188
@@ -0,0 +1,25 @@
1
+ import type { DataTableProps } from './data-table-types.js';
2
+ declare function $$render<TData>(): {
3
+ props: DataTableProps<TData>;
4
+ exports: {};
5
+ bindings: "";
6
+ slots: {};
7
+ events: {};
8
+ };
9
+ declare class __sveltets_Render<TData> {
10
+ props(): ReturnType<typeof $$render<TData>>['props'];
11
+ events(): ReturnType<typeof $$render<TData>>['events'];
12
+ slots(): ReturnType<typeof $$render<TData>>['slots'];
13
+ bindings(): "";
14
+ exports(): {};
15
+ }
16
+ interface $$IsomorphicComponent {
17
+ new <TData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<TData>['exports']>;
20
+ <TData>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
+ }
23
+ declare const DataTable: $$IsomorphicComponent;
24
+ type DataTable<TData> = InstanceType<typeof DataTable<TData>>;
25
+ export default DataTable;
@@ -0,0 +1,40 @@
1
+ <script
2
+ lang="ts"
3
+ generics="TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>"
4
+ >
5
+ import type { CellContext, ColumnDefTemplate, HeaderContext } from '@tanstack/table-core'
6
+ import { RenderComponentConfig, RenderSnippetConfig } from './render-helpers.js'
7
+ import type { Attachment } from 'svelte/attachments'
8
+ type Props = {
9
+ /** The cell or header field of the current cell's column definition. */
10
+ content?: TContext extends HeaderContext<TData, TValue>
11
+ ? ColumnDefTemplate<HeaderContext<TData, TValue>>
12
+ : TContext extends CellContext<TData, TValue>
13
+ ? ColumnDefTemplate<CellContext<TData, TValue>>
14
+ : never
15
+ /** The result of the `getContext()` function of the header or cell */
16
+ context: TContext
17
+
18
+ /** Used to pass attachments that can't be gotten through context */
19
+ attach?: Attachment
20
+ }
21
+
22
+ let { content, context, attach }: Props = $props()
23
+ </script>
24
+
25
+ {#if typeof content === 'string'}
26
+ {content}
27
+ {:else if content instanceof Function}
28
+ <!-- It's unlikely that a CellContext will be passed to a Header -->
29
+ <!-- eslint-disable-next-line @typescript-eslint/no-explicit-any -->
30
+ {@const result = content(context as any)}
31
+ {#if result instanceof RenderComponentConfig}
32
+ {@const { component: Component, props } = result}
33
+ <Component {...props} {attach} />
34
+ {:else if result instanceof RenderSnippetConfig}
35
+ {@const { snippet, params } = result}
36
+ {@render snippet({ ...params, attach })}
37
+ {:else}
38
+ {result}
39
+ {/if}
40
+ {/if}
@@ -0,0 +1,33 @@
1
+ import type { CellContext, ColumnDefTemplate, HeaderContext } from '@tanstack/table-core';
2
+ import type { Attachment } from 'svelte/attachments';
3
+ declare function $$render<TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>>(): {
4
+ props: {
5
+ /** The cell or header field of the current cell's column definition. */
6
+ content?: TContext extends HeaderContext<TData, TValue> ? ColumnDefTemplate<HeaderContext<TData, TValue>> : TContext extends CellContext<TData, TValue> ? ColumnDefTemplate<CellContext<TData, TValue>> : never;
7
+ /** The result of the `getContext()` function of the header or cell */
8
+ context: TContext;
9
+ /** Used to pass attachments that can't be gotten through context */
10
+ attach?: Attachment;
11
+ };
12
+ exports: {};
13
+ bindings: "";
14
+ slots: {};
15
+ events: {};
16
+ };
17
+ declare class __sveltets_Render<TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>> {
18
+ props(): ReturnType<typeof $$render<TData, TValue, TContext>>['props'];
19
+ events(): ReturnType<typeof $$render<TData, TValue, TContext>>['events'];
20
+ slots(): ReturnType<typeof $$render<TData, TValue, TContext>>['slots'];
21
+ bindings(): "";
22
+ exports(): {};
23
+ }
24
+ interface $$IsomorphicComponent {
25
+ new <TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData, TValue, TContext>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData, TValue, TContext>['props']>, ReturnType<__sveltets_Render<TData, TValue, TContext>['events']>, ReturnType<__sveltets_Render<TData, TValue, TContext>['slots']>> & {
26
+ $$bindings?: ReturnType<__sveltets_Render<TData, TValue, TContext>['bindings']>;
27
+ } & ReturnType<__sveltets_Render<TData, TValue, TContext>['exports']>;
28
+ <TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>>(internal: unknown, props: ReturnType<__sveltets_Render<TData, TValue, TContext>['props']> & {}): ReturnType<__sveltets_Render<TData, TValue, TContext>['exports']>;
29
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
30
+ }
31
+ declare const FlexRender: $$IsomorphicComponent;
32
+ type FlexRender<TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>> = InstanceType<typeof FlexRender<TData, TValue, TContext>>;
33
+ export default FlexRender;
@@ -0,0 +1,13 @@
1
+ export { default as DataTable } from "./data-table.svelte";
2
+ export { default as DataTableToolbar } from "./data-table-toolbar.svelte";
3
+ export { default as DataTableViewOptions } from "./data-table-view-options.svelte";
4
+ export { default as FlexRender } from "./flex-render.svelte";
5
+ export { createSvelteTable } from "./data-table-svelte.svelte.js";
6
+ export { renderComponent, renderSnippet } from "./render-helpers.js";
7
+ export { createColumns } from "./create-columns.js";
8
+ export { default as TextCell } from "./cells/text-cell.svelte";
9
+ export { default as BooleanCell } from "./cells/boolean-cell.svelte";
10
+ export { default as TagCell } from "./cells/tag-cell.svelte";
11
+ export { default as DateCell } from "./cells/date-cell.svelte";
12
+ export { default as CurrencyCell } from "./cells/currency-cell.svelte";
13
+ export type { DataTableColumn, DataTableProps, CellType, TextCellConfig, BooleanCellConfig, TagCellConfig, DateCellConfig, CurrencyCellConfig, CellConfig } from "./data-table-types.js";
@@ -0,0 +1,13 @@
1
+ export { default as DataTable } from "./data-table.svelte";
2
+ export { default as DataTableToolbar } from "./data-table-toolbar.svelte";
3
+ export { default as DataTableViewOptions } from "./data-table-view-options.svelte";
4
+ export { default as FlexRender } from "./flex-render.svelte";
5
+ export { createSvelteTable } from "./data-table-svelte.svelte.js";
6
+ export { renderComponent, renderSnippet } from "./render-helpers.js";
7
+ export { createColumns } from "./create-columns.js";
8
+ // Re-export cell components
9
+ export { default as TextCell } from "./cells/text-cell.svelte";
10
+ export { default as BooleanCell } from "./cells/boolean-cell.svelte";
11
+ export { default as TagCell } from "./cells/tag-cell.svelte";
12
+ export { default as DateCell } from "./cells/date-cell.svelte";
13
+ export { default as CurrencyCell } from "./cells/currency-cell.svelte";
@@ -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, isFirstDataColumn?: boolean): string;
@@ -0,0 +1,49 @@
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-background pl-3 pr-6': header.id === 'actions',
21
+ 'sticky left-0 bg-background z-10 pl-6 pr-3': 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, isFirstDataColumn = false) {
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
+ 'font-medium': isFirstDataColumn
48
+ });
49
+ }
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,15 @@ 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 DropdownSelectGroup from './DropdownSelectGroup.svelte';
24
+ import EmptyState from './EmptyState.svelte';
25
25
  import FeedEvents from './FeedEvents.svelte';
26
26
  import FeedIconEvent from './FeedIconEvent.svelte';
27
27
  import FeedIconStatus from './FeedIconStatus.svelte';
@@ -42,8 +42,8 @@ import MenuItem from './MenuItem.svelte';
42
42
  import MenuItemCollapsible from './MenuItemCollapsible.svelte';
43
43
  import Notification from './Notification.svelte';
44
44
  import ProfileAvatar from './ProfileAvatar.svelte';
45
- import ProfileSelector from './ProfileSelector.svelte';
46
- import SectionLayout from './SectionLayout.svelte';
45
+ import ProgressBar from './ProgressBar.svelte';
46
+ import ProgressBarCircle from './ProgressBarCircle.svelte';
47
47
  import SeparatorHorizontal from './SeparatorHorizontal.svelte';
48
48
  import ShortcutWrapper from './ShortcutWrapper.svelte';
49
49
  import StatusLabel from './StatusLabel.svelte';
@@ -61,16 +61,25 @@ import { TabsContent } from './tabs';
61
61
  import { TabsList } from './tabs';
62
62
  import { TabsTrigger } from './tabs';
63
63
  import TagBeta from './TagBeta.svelte';
64
+ import TagProgress from './TagProgress.svelte';
64
65
  import TagSearch from './TagSearch.svelte';
65
66
  import TagStatus from './TagStatus.svelte';
66
67
  import TitleMain from './TitleMain.svelte';
67
68
  import TitleSection from './TitleSection.svelte';
69
+ import { Toaster } from './sonner';
68
70
  import { Tooltip } from './tooltip';
69
71
  import { TooltipContent } from './tooltip';
70
72
  import { TooltipTrigger } from './tooltip';
71
73
  import UuidCopy from './UuidCopy.svelte';
72
- import twTheme from './tw.theme.js';
73
74
  import { resolveIcon } from './helpers.js';
74
75
  import { getCountryName } from './helpers.js';
75
76
  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 };
77
+ import { buttonVariants } from './button/button.svelte';
78
+ import { DataTable } from './data-table';
79
+ import { DataTableToolbar } from './data-table';
80
+ import { DataTableViewOptions } from './data-table';
81
+ import { FlexRender } from './data-table';
82
+ import { createSvelteTable } from './data-table';
83
+ import { renderComponent } from './data-table';
84
+ import { renderSnippet } from './data-table';
85
+ export { AlertDialog, BaseButton, BaseCard, BaseCounter, BaseDropdown, BaseFlag, BaseTable, BaseTableActions, BaseTableHeaderContent, Breadcrumbs, ButtonFile, ButtonUuidCopy, CardCheckbox, CardRelation, CompanySelector, CounterWidget, DataListItem, DatePicker, DrawerContext, DrawerContextItem, DrawerContextSeparator, DropdownSelect, DropdownSelectGroup, 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 };