@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.
- package/dist/AlertDialog.svelte +10 -11
- package/dist/BaseButton.svelte +25 -104
- package/dist/BaseCard.svelte +35 -30
- package/dist/BaseCounter.svelte +11 -8
- package/dist/BaseDropdown.svelte +5 -5
- package/dist/BaseFlag.svelte +5 -3
- package/dist/BaseFlag.svelte.d.ts +1 -0
- package/dist/BaseTable.svelte +16 -16
- package/dist/BaseTable.svelte.d.ts +1 -1
- package/dist/BaseTableActions.svelte +4 -6
- package/dist/BaseTableCellContent.svelte +9 -21
- package/dist/BaseTableCheckbox.svelte +9 -11
- package/dist/BaseTableHeaderContent.svelte +4 -4
- package/dist/BaseTableHeaderOrderBy.svelte +23 -12
- package/dist/BaseTableRow.svelte +12 -10
- package/dist/Breadcrumb.svelte +40 -0
- package/dist/Breadcrumb.svelte.d.ts +4 -0
- package/dist/Breadcrumbs.svelte +5 -30
- package/dist/ButtonFile.svelte +40 -30
- package/dist/ButtonUuidCopy.svelte +6 -3
- package/dist/CardCheckbox.svelte +45 -32
- package/dist/CardCheckbox.svelte.d.ts +1 -1
- package/dist/CardRelation.svelte +12 -13
- package/dist/CompanySelector.svelte +35 -7
- package/dist/CounterWidget.svelte +52 -0
- package/dist/CounterWidget.svelte.d.ts +4 -0
- package/dist/DataListItem.svelte +14 -10
- package/dist/DatePicker.svelte +20 -17
- package/dist/DrawerContext.svelte +207 -15
- package/dist/DrawerContextItem.svelte +50 -50
- package/dist/DrawerContextSeparator.svelte +1 -1
- package/dist/DropdownSelect.svelte +46 -18
- package/dist/EmptyState.svelte +42 -0
- package/dist/EmptyState.svelte.d.ts +4 -0
- package/dist/FeedEvents.svelte +9 -5
- package/dist/FeedIconEvent.svelte +2 -2
- package/dist/FeedIconStatus.svelte +4 -4
- package/dist/FeedItem.svelte +10 -11
- package/dist/FeedItemDetail.svelte +32 -6
- package/dist/FeedViewer.svelte +1 -1
- package/dist/GlobalSearch.svelte +13 -12
- package/dist/InputCheckbox.svelte +2 -5
- package/dist/InputError.svelte +4 -9
- package/dist/InputLabel.svelte +3 -1
- package/dist/InputRadio.svelte +29 -13
- package/dist/InputRadio.svelte.d.ts +1 -1
- package/dist/InputSearch.svelte +8 -8
- package/dist/InputSelect.svelte +32 -31
- package/dist/InputText.svelte +32 -24
- package/dist/InputTextarea.svelte +25 -19
- package/dist/InputToggle.svelte +24 -18
- package/dist/MenuItem.svelte +16 -11
- package/dist/MenuItemCollapsible.svelte +7 -7
- package/dist/Notification.svelte +60 -25
- package/dist/ProfileAvatar.svelte +43 -14
- package/dist/ProgressBar.svelte +42 -0
- package/dist/ProgressBar.svelte.d.ts +4 -0
- package/dist/ProgressBarCircle.svelte +46 -0
- package/dist/ProgressBarCircle.svelte.d.ts +4 -0
- package/dist/SeparatorHorizontal.svelte +2 -2
- package/dist/ShortcutWrapper.svelte +14 -5
- package/dist/StatusLabel.svelte +4 -5
- package/dist/StepIconList.svelte +11 -9
- package/dist/TagBeta.svelte +26 -14
- package/dist/TagProgress.svelte +28 -0
- package/dist/TagProgress.svelte.d.ts +4 -0
- package/dist/TagSearch.svelte +4 -4
- package/dist/TagStatus.svelte +32 -34
- package/dist/TitleMain.svelte +1 -1
- package/dist/TitleSection.svelte +1 -1
- package/dist/UuidCopy.svelte +4 -4
- package/dist/alert-dialog/alert-dialog-action.svelte +8 -4
- package/dist/alert-dialog/alert-dialog-cancel.svelte +7 -3
- package/dist/alert-dialog/alert-dialog-content.svelte +1 -1
- package/dist/alert-dialog/alert-dialog-description.svelte +1 -1
- package/dist/alert-dialog/alert-dialog-footer.svelte +1 -1
- package/dist/alert-dialog/alert-dialog-header.svelte +1 -1
- package/dist/alert-dialog/alert-dialog-overlay.svelte +1 -1
- package/dist/alert-dialog/alert-dialog-title.svelte +1 -1
- package/dist/alert-dialog/alert-dialog-trigger.svelte +4 -2
- package/dist/button/button.svelte +200 -24
- package/dist/button/button.svelte.d.ts +51 -26
- package/dist/clickOutside.d.ts +5 -2
- package/dist/clickOutside.js +9 -3
- package/dist/data-table/cells/boolean-cell.svelte +16 -0
- package/dist/data-table/cells/boolean-cell.svelte.d.ts +8 -0
- package/dist/data-table/cells/currency-cell.svelte +10 -0
- package/dist/data-table/cells/currency-cell.svelte.d.ts +8 -0
- package/dist/data-table/cells/date-cell.svelte +10 -0
- package/dist/data-table/cells/date-cell.svelte.d.ts +8 -0
- package/dist/data-table/cells/tag-cell.svelte +12 -0
- package/dist/data-table/cells/tag-cell.svelte.d.ts +8 -0
- package/dist/data-table/cells/text-cell.svelte +10 -0
- package/dist/data-table/cells/text-cell.svelte.d.ts +8 -0
- package/dist/data-table/column-definitions.d.ts +12 -0
- package/dist/data-table/column-definitions.js +40 -0
- package/dist/data-table/column-sizing-helpers.d.ts +6 -0
- package/dist/data-table/column-sizing-helpers.js +24 -0
- package/dist/data-table/create-columns.d.ts +3 -0
- package/dist/data-table/create-columns.js +50 -0
- package/dist/data-table/data-table-pagination.svelte +144 -0
- package/dist/data-table/data-table-pagination.svelte.d.ts +4 -0
- package/dist/data-table/data-table-svelte.svelte.d.ts +40 -0
- package/dist/data-table/data-table-svelte.svelte.js +111 -0
- package/dist/data-table/data-table-toolbar.svelte +16 -0
- package/dist/data-table/data-table-toolbar.svelte.d.ts +29 -0
- package/dist/data-table/data-table-types.d.ts +66 -0
- package/dist/data-table/data-table-types.js +1 -0
- package/dist/data-table/data-table-view-options.svelte +88 -0
- package/dist/data-table/data-table-view-options.svelte.d.ts +27 -0
- package/dist/data-table/data-table.svelte +303 -0
- package/dist/data-table/data-table.svelte.d.ts +25 -0
- package/dist/data-table/flex-render.svelte +40 -0
- package/dist/data-table/flex-render.svelte.d.ts +33 -0
- package/dist/data-table/index.d.ts +13 -0
- package/dist/data-table/index.js +13 -0
- package/dist/data-table/render-helpers.d.ts +90 -0
- package/dist/data-table/render-helpers.js +99 -0
- package/dist/data-table/table-setup.d.ts +36 -0
- package/dist/data-table/table-setup.js +130 -0
- package/dist/data-table/table-styles.d.ts +17 -0
- package/dist/data-table/table-styles.js +48 -0
- package/dist/helpers.d.ts +1 -0
- package/dist/helpers.js +3 -0
- package/dist/index.d.ts +15 -7
- package/dist/index.js +31 -14
- package/dist/range-calendar/range-calendar-cell.svelte +1 -1
- package/dist/range-calendar/range-calendar-day.svelte +11 -12
- package/dist/range-calendar/range-calendar-head-cell.svelte +1 -1
- package/dist/range-calendar/range-calendar-header.svelte +1 -1
- package/dist/range-calendar/range-calendar-month-select.svelte +1 -1
- package/dist/range-calendar/range-calendar-next-button.svelte +3 -3
- package/dist/range-calendar/range-calendar-prev-button.svelte +3 -3
- package/dist/range-calendar/range-calendar.svelte +1 -1
- package/dist/sonner/index.d.ts +1 -0
- package/dist/sonner/index.js +1 -0
- package/dist/sonner/sonner.svelte +44 -0
- package/dist/sonner/sonner.svelte.d.ts +4 -0
- package/dist/svg/CheckBadge.svelte +18 -0
- package/dist/svg/CheckBadge.svelte.d.ts +26 -0
- package/dist/svg/IconDelivery.svelte +86 -0
- package/dist/svg/IconDelivery.svelte.d.ts +20 -0
- package/dist/svg/IconEmpty.svelte +113 -121
- package/dist/svg/IconOrder.svelte +81 -0
- package/dist/svg/IconOrder.svelte.d.ts +20 -0
- package/dist/svg/IconPayment.svelte +86 -0
- package/dist/svg/IconPayment.svelte.d.ts +20 -0
- package/dist/table/table-body.svelte +5 -1
- package/dist/table/table-cell.svelte +4 -2
- package/dist/table/table-footer.svelte +1 -1
- package/dist/table/table-head.svelte +4 -2
- package/dist/table/table-header.svelte +1 -1
- package/dist/table/table-row.svelte +4 -2
- package/dist/table/table.svelte +2 -2
- package/dist/tabs/tabs-list.svelte +8 -2
- package/dist/tabs/tabs-list.svelte.d.ts +4 -1
- package/dist/tabs/tabs-trigger.svelte +5 -3
- package/dist/tabs/tabs-trigger.svelte.d.ts +4 -1
- package/dist/tailwind.theme.css +998 -0
- package/dist/tooltip/tooltip-content.svelte +2 -2
- package/dist/types.d.ts +71 -50
- package/package.json +20 -10
- package/dist/CounterWorkflow.svelte +0 -19
- package/dist/CounterWorkflow.svelte.d.ts +0 -4
- package/dist/DrawerContextWorkspace.svelte +0 -126
- package/dist/DrawerContextWorkspace.svelte.d.ts +0 -4
- package/dist/EmptyStateIcon.svelte +0 -52
- package/dist/EmptyStateIcon.svelte.d.ts +0 -4
- package/dist/EmptyStateIllustration.svelte +0 -66
- package/dist/EmptyStateIllustration.svelte.d.ts +0 -4
- package/dist/FormLayoutModal.svelte +0 -14
- package/dist/FormLayoutModal.svelte.d.ts +0 -4
- package/dist/ProfileSelector.svelte +0 -41
- package/dist/ProfileSelector.svelte.d.ts +0 -4
- package/dist/SectionLayout.svelte +0 -13
- package/dist/SectionLayout.svelte.d.ts +0 -4
- package/dist/tw.theme.d.ts +0 -142
- 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
|
|
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
|
|
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
|
|
46
|
-
import
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
46
|
-
import
|
|
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
|
-
|
|
98
|
+
CounterWidget,
|
|
90
99
|
DataListItem,
|
|
91
100
|
DatePicker,
|
|
92
101
|
DrawerContext,
|
|
93
102
|
DrawerContextItem,
|
|
94
103
|
DrawerContextSeparator,
|
|
95
104
|
DropdownSelect,
|
|
96
|
-
|
|
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
|
-
|
|
119
|
-
|
|
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)
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
22
|
+
'data-[range-middle]:rounded-none data-[range-middle]:bg-background-default-secondary',
|
|
23
23
|
// range End
|
|
24
|
-
'data-[range-end]:bg-
|
|
25
|
-
// Outside months
|
|
26
|
-
'[&[data-outside-month]]
|
|
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-
|
|
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-
|
|
36
|
+
'[&>span]:text-sm [&>span]:opacity-70',
|
|
38
37
|
className
|
|
39
38
|
)}
|
|
40
39
|
{...restProps}
|