@casinogate/ui 1.11.9 → 1.11.10

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.
@@ -1,12 +1,17 @@
1
1
  <script lang="ts">
2
2
  import { cn } from '../../../internal/utils/common.js';
3
3
  import { Pagination as PaginationPrimitive } from 'bits-ui';
4
- import { PaginationContext, paginationItemStyles } from '../styles.js';
4
+ import { paginationItemStyles } from '../styles.js';
5
5
  import type { PaginationItemProps } from '../types.js';
6
+ import { PaginationRootContext } from './state.svelte.js';
6
7
 
7
- let { page, class: className, ...props }: PaginationItemProps = $props();
8
+ let { page, class: className, size, ...props }: PaginationItemProps = $props();
8
9
 
9
- const ctx = PaginationContext.get();
10
+ const rootCtx$ = PaginationRootContext.get();
10
11
  </script>
11
12
 
12
- <PaginationPrimitive.Page {page} class={cn(paginationItemStyles({ size: ctx.current.size }), className)} {...props} />
13
+ <PaginationPrimitive.Page
14
+ {page}
15
+ class={cn(paginationItemStyles({ size: size ?? rootCtx$.opts.size.current }), className)}
16
+ {...props}
17
+ />
@@ -1,4 +1,4 @@
1
- import { Pagination as PaginationPrimitive } from 'bits-ui';
2
- declare const Pagination: import("svelte").Component<PaginationPrimitive.PageProps, {}, "">;
1
+ import type { PaginationItemProps } from '../types.js';
2
+ declare const Pagination: import("svelte").Component<PaginationItemProps, {}, "">;
3
3
  type Pagination = ReturnType<typeof Pagination>;
4
4
  export default Pagination;
@@ -6,11 +6,9 @@
6
6
  import type { PaginationNextButtonProps } from '../types.js';
7
7
 
8
8
  let { class: className, children, ref = $bindable(null), ...props }: PaginationNextButtonProps = $props();
9
-
10
- const classNames = $derived(cn(paginationButtonStyles(), className));
11
9
  </script>
12
10
 
13
- <PaginationPrimitive.NextButton bind:ref class={classNames} {...props}>
11
+ <PaginationPrimitive.NextButton bind:ref class={cn(paginationButtonStyles(), className)} {...props}>
14
12
  {#if children}
15
13
  {@render children?.()}
16
14
  {:else}
@@ -1,20 +1,31 @@
1
1
  <script lang="ts">
2
2
  import { cn } from '../../../internal/utils/common.js';
3
3
  import { Pagination as PaginationPrimitive } from 'bits-ui';
4
- import { box } from 'svelte-toolbelt';
5
- import { PaginationContext, paginationRootStyles } from '../styles.js';
4
+ import { boxWith } from 'svelte-toolbelt';
5
+ import { paginationRootStyles } from '../styles.js';
6
6
  import type { PaginationRootProps } from '../types.js';
7
+ import { PaginationRootState } from './state.svelte.js';
7
8
 
8
9
  let {
9
10
  page = $bindable(1),
10
11
  orientation = 'horizontal',
11
12
  size = 'md',
12
13
  centered = false,
14
+ ref = $bindable(null),
13
15
  class: className,
14
16
  ...restProps
15
17
  }: PaginationRootProps = $props();
16
18
 
17
- PaginationContext.set(box.with(() => ({ size })));
19
+ PaginationRootState.create({
20
+ size: boxWith(() => size),
21
+ orientation: boxWith(() => orientation),
22
+ centered: boxWith(() => centered),
23
+ });
18
24
  </script>
19
25
 
20
- <PaginationPrimitive.Root bind:page class={cn(paginationRootStyles({ orientation, centered }), className)} {...restProps} />
26
+ <PaginationPrimitive.Root
27
+ bind:page
28
+ bind:ref
29
+ class={cn(paginationRootStyles({ size, orientation, centered }), className)}
30
+ {...restProps}
31
+ />
@@ -1,4 +1,4 @@
1
1
  import type { PaginationRootProps } from '../types.js';
2
- declare const Pagination: import("svelte").Component<PaginationRootProps, {}, "page">;
2
+ declare const Pagination: import("svelte").Component<PaginationRootProps, {}, "ref" | "page">;
3
3
  type Pagination = ReturnType<typeof Pagination>;
4
4
  export default Pagination;
@@ -0,0 +1,15 @@
1
+ import { Context } from 'runed';
2
+ import type { ReadableBoxedValues } from 'svelte-toolbelt';
3
+ import type { PaginationRootProps } from '../types.js';
4
+ export declare const PaginationRootContext: Context<PaginationRootState>;
5
+ type PaginationRootStateOpts = ReadableBoxedValues<{
6
+ size: PaginationRootProps['size'];
7
+ orientation: PaginationRootProps['orientation'];
8
+ centered: PaginationRootProps['centered'];
9
+ }>;
10
+ export declare class PaginationRootState {
11
+ static create(opts: PaginationRootStateOpts): PaginationRootState;
12
+ readonly opts: PaginationRootStateOpts;
13
+ constructor(opts: PaginationRootStateOpts);
14
+ }
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Context } from 'runed';
2
+ export const PaginationRootContext = new Context('pagination-root');
3
+ export class PaginationRootState {
4
+ static create(opts) {
5
+ return PaginationRootContext.set(new PaginationRootState(opts));
6
+ }
7
+ opts;
8
+ constructor(opts) {
9
+ this.opts = opts;
10
+ }
11
+ }
@@ -1,23 +1,29 @@
1
1
  <script lang="ts">
2
+ import { cn } from '../../../../internal/utils/common.js';
2
3
  import * as PaginationPrimitive from '../../components/index.js';
3
4
  import type { PaginationProps } from '../../types.js';
4
5
 
5
6
  let {
6
7
  page = $bindable(1),
7
- perPage = 10,
8
+ perPage = $bindable(10),
9
+ orientation = 'horizontal',
8
10
  perPageItems = [10, 20, 50, 100],
9
11
  hidePageSize = false,
10
12
  ...restProps
11
13
  }: PaginationProps = $props();
12
14
  </script>
13
15
 
14
- <PaginationPrimitive.Root bind:page {...restProps}>
16
+ <PaginationPrimitive.Root bind:page {orientation} {...restProps}>
15
17
  {#snippet children({ pages })}
16
18
  {#if !hidePageSize}
17
19
  <PaginationPrimitive.PageSize bind:perPage {perPageItems} />
18
20
  {/if}
19
21
 
20
- <div class="cgui:flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:flex-1">
22
+ <div
23
+ class={cn('cgui:flex cgui:items-center cgui:justify-center cgui:gap-1 cgui:flex-1', {
24
+ 'cgui:flex-col': orientation === 'vertical',
25
+ })}
26
+ >
21
27
  <PaginationPrimitive.PrevButton />
22
28
 
23
29
  {#each pages as page (page.key)}
@@ -1,4 +1,4 @@
1
1
  import type { PaginationProps } from '../../types.js';
2
- declare const Pagination: import("svelte").Component<PaginationProps, {}, "page">;
2
+ declare const Pagination: import("svelte").Component<PaginationProps, {}, "page" | "perPage">;
3
3
  type Pagination = ReturnType<typeof Pagination>;
4
4
  export default Pagination;
@@ -1,10 +1,13 @@
1
- import { Context } from 'runed';
2
- import type { ReadableBox } from 'svelte-toolbelt';
3
1
  import type { VariantProps } from 'tailwind-variants';
4
2
  export declare const paginationRootStyles: import("tailwind-variants").TVReturnType<{
5
3
  centered: {
6
4
  true: string;
7
5
  };
6
+ size: {
7
+ sm: string[];
8
+ md: string[];
9
+ lg: string[];
10
+ };
8
11
  orientation: {
9
12
  horizontal: string;
10
13
  vertical: string;
@@ -13,6 +16,11 @@ export declare const paginationRootStyles: import("tailwind-variants").TVReturnT
13
16
  centered: {
14
17
  true: string;
15
18
  };
19
+ size: {
20
+ sm: string[];
21
+ md: string[];
22
+ lg: string[];
23
+ };
16
24
  orientation: {
17
25
  horizontal: string;
18
26
  vertical: string;
@@ -21,6 +29,11 @@ export declare const paginationRootStyles: import("tailwind-variants").TVReturnT
21
29
  centered: {
22
30
  true: string;
23
31
  };
32
+ size: {
33
+ sm: string[];
34
+ md: string[];
35
+ lg: string[];
36
+ };
24
37
  orientation: {
25
38
  horizontal: string;
26
39
  vertical: string;
@@ -28,21 +41,21 @@ export declare const paginationRootStyles: import("tailwind-variants").TVReturnT
28
41
  }, undefined, string[], unknown, unknown, undefined>>;
29
42
  export declare const paginationItemStyles: import("tailwind-variants").TVReturnType<{
30
43
  size: {
31
- sm: string;
32
- md: string;
33
- lg: string;
44
+ sm: string[];
45
+ md: string[];
46
+ lg: string[];
34
47
  };
35
48
  }, undefined, string[], {
36
49
  size: {
37
- sm: string;
38
- md: string;
39
- lg: string;
50
+ sm: string[];
51
+ md: string[];
52
+ lg: string[];
40
53
  };
41
54
  }, undefined, import("tailwind-variants").TVReturnType<{
42
55
  size: {
43
- sm: string;
44
- md: string;
45
- lg: string;
56
+ sm: string[];
57
+ md: string[];
58
+ lg: string[];
46
59
  };
47
60
  }, undefined, string[], unknown, unknown, undefined>>;
48
61
  export declare const paginationButtonStyles: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, string[], unknown, unknown, undefined>>;
@@ -52,8 +65,3 @@ export type PaginationItemVariants = VariantProps<typeof paginationItemStyles>;
52
65
  export type PaginationButtonVariants = VariantProps<typeof paginationButtonStyles>;
53
66
  export type PaginationEllipsisVariants = VariantProps<typeof paginationEllipsisStyles>;
54
67
  export type PaginationVariantsProps = PaginationRootVariants & PaginationItemVariants;
55
- type PaginationContextValues = ReadableBox<{
56
- size: PaginationItemVariants['size'];
57
- }>;
58
- export declare const PaginationContext: Context<PaginationContextValues>;
59
- export {};
@@ -1,12 +1,17 @@
1
- import { keyWithPrefix } from '../../internal/utils/common.js';
2
1
  import { tv } from '../../internal/utils/tailwindcss.js';
3
- import { Context } from 'runed';
2
+ const PaginationSizes = ['sm', 'md', 'lg'];
3
+ const PaginationOrientations = ['horizontal', 'vertical'];
4
4
  export const paginationRootStyles = tv({
5
5
  base: ['cgui:flex cgui:items-center cgui:gap-1'],
6
6
  variants: {
7
7
  centered: {
8
8
  true: 'cgui:justify-center',
9
9
  },
10
+ size: {
11
+ sm: [''],
12
+ md: [''],
13
+ lg: [''],
14
+ },
10
15
  orientation: {
11
16
  horizontal: 'cgui:flex-row',
12
17
  vertical: 'cgui:flex-col',
@@ -25,9 +30,9 @@ export const paginationItemStyles = tv({
25
30
  ],
26
31
  variants: {
27
32
  size: {
28
- sm: 'cgui:min-w-6 cgui:min-h-6 cgui:px-1',
29
- md: 'cgui:min-w-8 cgui:min-h-8 cgui:px-1',
30
- lg: 'cgui:min-w-10 cgui:min-h-10 cgui:px-1',
33
+ sm: ['cgui:min-w-6 cgui:min-h-6 cgui:px-1'],
34
+ md: ['cgui:min-w-8 cgui:min-h-8 cgui:px-1'],
35
+ lg: ['cgui:min-w-10 cgui:min-h-10 cgui:px-1'],
31
36
  },
32
37
  },
33
38
  });
@@ -42,4 +47,3 @@ export const paginationButtonStyles = tv({
42
47
  export const paginationEllipsisStyles = tv({
43
48
  base: ['cgui:flex cgui:items-center cgui:justify-center cgui:shrink-0 cgui:size-6 cgui:text-icon-regular'],
44
49
  });
45
- export const PaginationContext = new Context(keyWithPrefix('pagination'));
@@ -1,11 +1,12 @@
1
1
  import type { SelectContentProps } from '../select/types.js';
2
+ import type { WithVariants } from '../../internal/types/composition.js';
2
3
  import type { PrimitiveDivAttributes } from '../../internal/types/html-attributes.js';
3
4
  import { type PaginationNextButtonProps as PaginationNextButtonPropsPrimitive, type PaginationPageProps as PaginationPagePropsPrimitive, type PaginationPrevButtonProps as PaginationPrevButtonPropsPrimitive, type PaginationRootProps as PaginationRootPropsPrimitive } from 'bits-ui';
4
5
  import type { WithChild, WithElementRef } from 'svelte-toolbelt';
5
- import type { PaginationVariantsProps } from './styles.js';
6
- export type PaginationRootProps = PaginationRootPropsPrimitive & PaginationVariantsProps;
6
+ import type { PaginationItemVariants, PaginationVariantsProps } from './styles.js';
7
+ export type PaginationRootProps = WithVariants<PaginationRootPropsPrimitive, PaginationVariantsProps>;
7
8
  export type PaginationEllipsisProps = WithChild<WithElementRef<{} & PrimitiveDivAttributes>>;
8
- export type PaginationItemProps = PaginationPagePropsPrimitive;
9
+ export type PaginationItemProps = WithVariants<PaginationPagePropsPrimitive, PaginationItemVariants>;
9
10
  export type PaginationNextButtonProps = PaginationNextButtonPropsPrimitive;
10
11
  export type PaginationPrevButtonProps = PaginationPrevButtonPropsPrimitive;
11
12
  export type PaginationPageSizeProps = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casinogate/ui",
3
- "version": "1.11.9",
3
+ "version": "1.11.10",
4
4
  "svelte": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",