@casinogate/ui 1.4.0 → 1.5.0

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 (121) hide show
  1. package/README.md +4 -9
  2. package/dist/assets/css/root.css +403 -21
  3. package/dist/assets/css/theme.css +38 -0
  4. package/dist/components/badge/badge.stories.svelte +81 -0
  5. package/dist/components/badge/badge.stories.svelte.d.ts +19 -0
  6. package/dist/components/badge/badge.svelte +30 -0
  7. package/dist/components/badge/badge.svelte.d.ts +4 -0
  8. package/dist/components/badge/exports.d.ts +1 -0
  9. package/dist/components/badge/exports.js +1 -0
  10. package/dist/components/badge/index.d.ts +2 -0
  11. package/dist/components/badge/index.js +1 -0
  12. package/dist/components/badge/styles.d.ts +99 -0
  13. package/dist/components/badge/styles.js +126 -0
  14. package/dist/components/badge/types.d.ts +8 -0
  15. package/dist/components/badge/types.js +1 -0
  16. package/dist/components/breadcrumb/breadcrumb.stories.svelte +60 -0
  17. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +19 -0
  18. package/dist/components/breadcrumb/breadcrumb.svelte +32 -0
  19. package/dist/components/breadcrumb/breadcrumb.svelte.d.ts +4 -0
  20. package/dist/components/breadcrumb/components/breadcrumb.item.svelte +16 -0
  21. package/dist/components/breadcrumb/components/breadcrumb.item.svelte.d.ts +4 -0
  22. package/dist/components/breadcrumb/components/breadcrumb.link.svelte +29 -0
  23. package/dist/components/breadcrumb/components/breadcrumb.link.svelte.d.ts +4 -0
  24. package/dist/components/breadcrumb/components/breadcrumb.list.svelte +16 -0
  25. package/dist/components/breadcrumb/components/breadcrumb.list.svelte.d.ts +4 -0
  26. package/dist/components/breadcrumb/components/breadcrumb.page.svelte +19 -0
  27. package/dist/components/breadcrumb/components/breadcrumb.page.svelte.d.ts +4 -0
  28. package/dist/components/breadcrumb/components/breadcrumb.root.svelte +22 -0
  29. package/dist/components/breadcrumb/components/breadcrumb.root.svelte.d.ts +4 -0
  30. package/dist/components/breadcrumb/components/breadcrumb.separator.svelte +24 -0
  31. package/dist/components/breadcrumb/components/breadcrumb.separator.svelte.d.ts +4 -0
  32. package/dist/components/breadcrumb/exports-primitive.d.ts +6 -0
  33. package/dist/components/breadcrumb/exports-primitive.js +6 -0
  34. package/dist/components/breadcrumb/exports.d.ts +1 -0
  35. package/dist/components/breadcrumb/exports.js +1 -0
  36. package/dist/components/breadcrumb/index.d.ts +3 -0
  37. package/dist/components/breadcrumb/index.js +2 -0
  38. package/dist/components/breadcrumb/styles.d.ts +62 -0
  39. package/dist/components/breadcrumb/styles.js +18 -0
  40. package/dist/components/breadcrumb/types.d.ts +19 -0
  41. package/dist/components/breadcrumb/types.js +1 -0
  42. package/dist/components/icons/caret-down.svelte +3 -3
  43. package/dist/components/icons/caret-up.svelte +3 -3
  44. package/dist/components/icons/check.svelte +3 -3
  45. package/dist/components/icons/checkmark.svelte +12 -0
  46. package/dist/components/icons/checkmark.svelte.d.ts +3 -0
  47. package/dist/components/icons/chevron-down.svelte +3 -3
  48. package/dist/components/icons/chevron-left.svelte +3 -3
  49. package/dist/components/icons/chevron-right.svelte +3 -3
  50. package/dist/components/icons/chevron-small-down.svelte +3 -3
  51. package/dist/components/icons/chevron-small-left.svelte +3 -3
  52. package/dist/components/icons/chevron-small-right.svelte +3 -3
  53. package/dist/components/icons/chevron-small-up.svelte +3 -3
  54. package/dist/components/icons/chevron-up.svelte +3 -3
  55. package/dist/components/icons/dots.svelte +5 -5
  56. package/dist/components/icons/error.svelte +3 -3
  57. package/dist/components/icons/exports.d.ts +2 -0
  58. package/dist/components/icons/exports.js +2 -0
  59. package/dist/components/icons/eye-crossed.svelte +3 -3
  60. package/dist/components/icons/eye.svelte +3 -3
  61. package/dist/components/icons/info.svelte +3 -3
  62. package/dist/components/icons/minus.svelte +3 -3
  63. package/dist/components/icons/sidebar-toggle.svelte +4 -4
  64. package/dist/components/icons/slash.svelte +9 -0
  65. package/dist/components/icons/slash.svelte.d.ts +3 -0
  66. package/dist/components/icons/sort.svelte +4 -4
  67. package/dist/components/icons/spinner.svelte +3 -3
  68. package/dist/components/icons/success.svelte +3 -3
  69. package/dist/components/icons/warning.svelte +3 -3
  70. package/dist/components/index.d.ts +2 -0
  71. package/dist/components/index.js +2 -0
  72. package/dist/components/navigation/components/navigation.content.svelte +2 -2
  73. package/dist/components/navigation/components/navigation.root.svelte +2 -0
  74. package/dist/components/navigation/components/navigation.sub-content.svelte +12 -5
  75. package/dist/components/navigation/components/navigation.svelte.d.ts +2 -0
  76. package/dist/components/navigation/navigation.stories.svelte +5 -5
  77. package/dist/components/navigation/styles.js +1 -2
  78. package/dist/components/navigation/types.d.ts +7 -1
  79. package/dist/components/popover/styles.d.ts +3 -3
  80. package/dist/components/popover/styles.js +1 -1
  81. package/dist/components/select/components/select.content.svelte +31 -0
  82. package/dist/components/select/components/select.content.svelte.d.ts +3 -25
  83. package/dist/components/select/components/select.group-heading.svelte +19 -0
  84. package/dist/components/select/components/select.group-heading.svelte.d.ts +4 -0
  85. package/dist/components/select/components/select.group.svelte +8 -0
  86. package/dist/components/select/components/select.group.svelte.d.ts +4 -0
  87. package/dist/components/select/components/select.item.svelte +38 -0
  88. package/dist/components/select/components/select.item.svelte.d.ts +3 -25
  89. package/dist/components/select/components/select.portal.svelte +10 -0
  90. package/dist/components/select/components/select.portal.svelte.d.ts +3 -0
  91. package/dist/components/select/components/select.trigger.svelte +28 -27
  92. package/dist/components/select/components/select.viewport.svelte +24 -0
  93. package/dist/components/select/components/select.viewport.svelte.d.ts +3 -25
  94. package/dist/components/select/exports-primitive.d.ts +6 -0
  95. package/dist/components/select/exports-primitive.js +6 -0
  96. package/dist/components/select/exports.d.ts +1 -0
  97. package/dist/components/select/exports.js +1 -0
  98. package/dist/components/select/index.d.ts +2 -1
  99. package/dist/components/select/index.js +1 -0
  100. package/dist/components/select/select.stories.svelte +178 -15
  101. package/dist/components/select/select.stories.svelte.d.ts +3 -17
  102. package/dist/components/select/select.svelte +141 -0
  103. package/dist/components/select/select.svelte.d.ts +4 -0
  104. package/dist/components/select/styles.d.ts +15 -3
  105. package/dist/components/select/styles.js +24 -8
  106. package/dist/components/select/types.d.ts +42 -4
  107. package/dist/components/textarea/exports.d.ts +1 -0
  108. package/dist/components/textarea/exports.js +1 -0
  109. package/dist/components/textarea/index.d.ts +2 -0
  110. package/dist/components/textarea/index.js +1 -0
  111. package/dist/components/textarea/styles.d.ts +54 -0
  112. package/dist/components/textarea/styles.js +39 -0
  113. package/dist/components/textarea/textarea.stories.svelte +36 -0
  114. package/dist/components/textarea/textarea.stories.svelte.d.ts +19 -0
  115. package/dist/components/textarea/textarea.svelte +22 -0
  116. package/dist/components/textarea/textarea.svelte.d.ts +4 -0
  117. package/dist/components/textarea/types.d.ts +6 -0
  118. package/dist/components/textarea/types.js +1 -0
  119. package/dist/internal/types/html-attributes.d.ts +2 -1
  120. package/dist/internal/utils/tailwindcss.js +16 -0
  121. package/package.json +2 -1
@@ -0,0 +1,9 @@
1
+ <script lang="ts">
2
+ import type { IconProps } from './types.js';
3
+
4
+ let { width = 24, height = 24, color = 'currentColor', ...props }: IconProps = $props();
5
+ </script>
6
+
7
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {width} {height} {...props}>
8
+ <path fill={color} d="m7 21l7.9-18H17L9.1 21z" />
9
+ </svg>
@@ -0,0 +1,3 @@
1
+ declare const Slash: import("svelte").Component<import("../../internal/types/html-attributes.js").PrimitiveSVGAttributes, {}, "">;
2
+ type Slash = ReturnType<typeof Slash>;
3
+ export default Slash;
@@ -1,16 +1,16 @@
1
1
  <script lang="ts">
2
2
  import type { IconProps } from './types.js';
3
3
 
4
- let props: IconProps = $props();
4
+ let { width = 17, height = 16, color = 'currentColor', ...props }: IconProps = $props();
5
5
  </script>
6
6
 
7
- <svg viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
7
+ <svg viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg" width={width} height={height} {...props}>
8
8
  <path
9
9
  d="M11.1452 5.90609L9.92195 4.11401L9.17504 3.01419C8.85875 2.55082 8.34429 2.55082 8.028 3.01419L6.05402 5.90609C5.79489 6.28572 5.98161 6.93333 6.34364 6.93333H10.8556C11.2214 6.93333 11.4043 6.28572 11.1452 5.90609Z"
10
- fill="currentColor"
10
+ fill={color}
11
11
  />
12
12
  <path
13
13
  d="M10.8546 9.06666H6.34429C5.97859 9.06666 5.79575 9.71427 6.05478 10.0939L8.02802 12.9858C8.3442 13.4492 8.85846 13.4492 9.17464 12.9858L11.1479 10.0939C11.4031 9.71427 11.2203 9.06666 10.8546 9.06666Z"
14
- fill="currentColor"
14
+ fill={color}
15
15
  />
16
16
  </svg>
@@ -1,9 +1,9 @@
1
1
  <script lang="ts">
2
2
  import type { IconProps } from './types.js';
3
3
 
4
- let props: IconProps = $props();
4
+ let { width = 16, height = 16, color = 'currentColor', ...props }: IconProps = $props();
5
5
  </script>
6
6
 
7
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" {...props}>
8
- <path fill="currentColor" d="M2 8a6 6 0 1 1 6 6a.5.5 0 0 0 0 1a7 7 0 1 0-7-7a.5.5 0 0 0 1 0" />
7
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" {width} {height} {...props}>
8
+ <path fill={color} d="M2 8a6 6 0 1 1 6 6a.5.5 0 0 0 0 1a7 7 0 1 0-7-7a.5.5 0 0 0 1 0" />
9
9
  </svg>
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
2
  import type { IconProps } from './types.js';
3
3
 
4
- let props: IconProps = $props();
4
+ let { width = 24, height = 24, color = 'currentColor', ...props }: IconProps = $props();
5
5
  </script>
6
6
 
7
- <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
7
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {width} {height} {...props}>
8
8
  <path
9
9
  d="M12 3.5C7.041 3.5 3 7.541 3 12.5C3 17.459 7.041 21.5 12 21.5C16.959 21.5 21 17.459 21 12.5C21 7.541 16.959 3.5 12 3.5ZM16.302 10.43L11.199 15.533C11.073 15.659 10.902 15.731 10.722 15.731C10.542 15.731 10.371 15.659 10.245 15.533L7.698 12.986C7.437 12.725 7.437 12.293 7.698 12.032C7.959 11.771 8.391 11.771 8.652 12.032L10.722 14.102L15.348 9.476C15.609 9.215 16.041 9.215 16.302 9.476C16.563 9.737 16.563 10.16 16.302 10.43Z"
10
- fill="currentColor"
10
+ fill={color}
11
11
  />
12
12
  </svg>
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
2
  import type { IconProps } from './types.js';
3
3
 
4
- let props: IconProps = $props();
4
+ let { width = 24, height = 24, color = 'currentColor', ...props }: IconProps = $props();
5
5
  </script>
6
6
 
7
- <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
7
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {width} {height} {...props}>
8
8
  <path
9
9
  d="M21.3487 15.7641L15.2184 5.20071C14.3947 3.77942 13.2548 3 12 3C10.7452 3 9.60535 3.77942 8.78159 5.20071L2.65127 15.7641C1.8754 17.1121 1.78919 18.405 2.4118 19.4228C3.03441 20.4407 4.26048 21 5.86968 21H18.1303C19.7395 21 20.9656 20.4407 21.5882 19.4228C22.2108 18.405 22.1246 17.1029 21.3487 15.7641ZM11.2816 9.41875C11.2816 9.04279 11.6073 8.73102 12 8.73102C12.3927 8.73102 12.7184 9.04279 12.7184 9.41875V14.0036C12.7184 14.3795 12.3927 14.6913 12 14.6913C11.6073 14.6913 11.2816 14.3795 11.2816 14.0036V9.41875ZM12.6801 17.4055C12.6322 17.4422 12.5843 17.4789 12.5364 17.5155C12.4789 17.5522 12.4215 17.5797 12.364 17.5981C12.3065 17.6256 12.249 17.6439 12.182 17.6531C12.1245 17.6623 12.0575 17.6714 12 17.6714C11.9425 17.6714 11.8755 17.6623 11.8084 17.6531C11.751 17.6439 11.6935 17.6256 11.636 17.5981C11.5785 17.5797 11.5211 17.5522 11.4636 17.5155C11.4157 17.4789 11.3678 17.4422 11.3199 17.4055C11.1475 17.2313 11.0421 16.9929 11.0421 16.7545C11.0421 16.516 11.1475 16.2776 11.3199 16.1034C11.3678 16.0667 11.4157 16.0301 11.4636 15.9934C11.5211 15.9567 11.5785 15.9292 11.636 15.9109C11.6935 15.8833 11.751 15.865 11.8084 15.8558C11.933 15.8283 12.067 15.8283 12.182 15.8558C12.249 15.865 12.3065 15.8833 12.364 15.9109C12.4215 15.9292 12.4789 15.9567 12.5364 15.9934C12.5843 16.0301 12.6322 16.0667 12.6801 16.1034C12.8525 16.2776 12.9579 16.516 12.9579 16.7545C12.9579 16.9929 12.8525 17.2313 12.6801 17.4055Z"
10
- fill="currentColor"
10
+ fill={color}
11
11
  />
12
12
  </svg>
@@ -1,4 +1,5 @@
1
1
  export * from './app-shell/index.js';
2
+ export * from './breadcrumb/index.js';
2
3
  export * from './button-group/index.js';
3
4
  export * from './button/index.js';
4
5
  export * from './checkbox/index.js';
@@ -16,4 +17,5 @@ export * from './separator/index.js';
16
17
  export * from './skeleton/index.js';
17
18
  export * from './spinner/index.js';
18
19
  export * from './switch/index.js';
20
+ export * from './textarea/index.js';
19
21
  export * from './toast/index.js';
@@ -1,4 +1,5 @@
1
1
  export * from './app-shell/index.js';
2
+ export * from './breadcrumb/index.js';
2
3
  export * from './button-group/index.js';
3
4
  export * from './button/index.js';
4
5
  export * from './checkbox/index.js';
@@ -16,4 +17,5 @@ export * from './separator/index.js';
16
17
  export * from './skeleton/index.js';
17
18
  export * from './spinner/index.js';
18
19
  export * from './switch/index.js';
20
+ export * from './textarea/index.js';
19
21
  export * from './toast/index.js';
@@ -33,7 +33,7 @@
33
33
  {#if child}
34
34
  {@render child({ props: mergedProps })}
35
35
  {:else}
36
- <ul {...mergedProps}>
36
+ <ol {...mergedProps}>
37
37
  {@render children?.()}
38
- </ul>
38
+ </ol>
39
39
  {/if}
@@ -16,6 +16,7 @@
16
16
  children,
17
17
  child,
18
18
  class: className,
19
+ popoverProps,
19
20
  ...restProps
20
21
  }: NavigationRootProps = $props();
21
22
 
@@ -26,6 +27,7 @@
26
27
  ),
27
28
  id: box.with(() => id),
28
29
  compact: box.with(() => compact),
30
+ popoverProps: box.with(() => popoverProps),
29
31
  });
30
32
 
31
33
  const variants = $derived(navigationVariants({ compact }));
@@ -40,13 +40,19 @@
40
40
  {@render child({ props: mergedProps, compact: subContentState.root.isCompact })}
41
41
  {:else if subContentState.root.isCompact}
42
42
  <PopoverPrimitive.Portal>
43
- <PopoverPrimitive.Content side="right" sideOffset={8} forceMount>
43
+ <PopoverPrimitive.Content
44
+ side={subContentState.root.opts.popoverProps.current?.side ?? 'right'}
45
+ sideOffset={subContentState.root.opts.popoverProps.current?.sideOffset ?? 8}
46
+ alignOffset={subContentState.root.opts.popoverProps.current?.alignOffset ?? 0}
47
+ forceMount
48
+ >
44
49
  {#snippet child({ props: childProps, wrapperProps, open })}
50
+ {@const popoverProps = mergeProps(childProps, mergedProps)}
45
51
  {#if open}
46
52
  <div {...wrapperProps}>
47
- <ul {...childProps} {...mergedProps} transition:fly={{ duration: 250, easing: cubicInOut, x: 10 }}>
53
+ <ol {...popoverProps} transition:fly={{ duration: 250, easing: cubicInOut, x: 10 }}>
48
54
  {@render children?.({ compact: subContentState.root.isCompact })}
49
- </ul>
55
+ </ol>
50
56
  </div>
51
57
  {/if}
52
58
  {/snippet}
@@ -55,10 +61,11 @@
55
61
  {:else}
56
62
  <CollapsiblePrimitive.Content {...mergedProps}>
57
63
  {#snippet child({ props: childProps, open })}
64
+ {@const collapsibleProps = mergeProps(childProps, mergedProps)}
58
65
  {#if open}
59
- <ul {...childProps} {...mergedProps} transition:fade={{ duration: 250, easing: cubicInOut }}>
66
+ <ol {...collapsibleProps} transition:fade={{ duration: 250, easing: cubicInOut }}>
60
67
  {@render children?.({ compact: subContentState.root.isCompact })}
61
- </ul>
68
+ </ol>
62
69
  {/if}
63
70
  {/snippet}
64
71
  </CollapsiblePrimitive.Content>
@@ -1,9 +1,11 @@
1
1
  import type { RefAttachment } from '../../../internal/types/common.js';
2
2
  import { Context } from 'runed';
3
3
  import { type ReadableBoxedValues, type WithRefProps } from 'svelte-toolbelt';
4
+ import type { NavigationRootProps } from '../types.js';
4
5
  export declare const NavigationSubContentStateCtx: Context<NavigationSubContentState>;
5
6
  type NavigationRootStateOpts = WithRefProps<ReadableBoxedValues<{
6
7
  compact: boolean;
8
+ popoverProps: NavigationRootProps['popoverProps'];
7
9
  }>>;
8
10
  export declare class NavigationRootState {
9
11
  static create(opts: NavigationRootStateOpts): NavigationRootState;
@@ -30,29 +30,29 @@
30
30
  const NAVIGATION_ITEMS: NavigationItemValue[] = [
31
31
  {
32
32
  key: 1,
33
- label: 'Item 1',
33
+ label: 'Dashboard',
34
34
  icon: Icon.Info,
35
35
  href: '#',
36
36
  },
37
37
  {
38
38
  key: 2,
39
- label: 'Item 2',
39
+ label: 'Settings',
40
40
  icon: Icon.Info,
41
41
  href: '#',
42
42
  },
43
43
  {
44
44
  key: 3,
45
- label: 'Item 3',
45
+ label: 'Users Management',
46
46
  icon: Icon.Info,
47
47
  children: [
48
48
  {
49
49
  key: 4,
50
- label: 'Sub Item 1',
50
+ label: 'Users',
51
51
  href: '#',
52
52
  },
53
53
  {
54
54
  key: 5,
55
- label: 'Sub Item 2',
55
+ label: 'Roles',
56
56
  href: '#',
57
57
  },
58
58
  ],
@@ -7,7 +7,6 @@ export const navigationVariants = tv({
7
7
  'cgui:group/navigation',
8
8
  'cgui:data-[compact=true]:w-fit cgui:min-w-px cgui:w-full',
9
9
  'cgui:transition-all cgui:duration-250 cgui:ease-in-out',
10
- 'cgui:bg-surface-darkest',
11
10
  ],
12
11
  content: ['cgui:overflow-hidden'],
13
12
  item: [],
@@ -18,7 +17,7 @@ export const navigationVariants = tv({
18
17
  ],
19
18
  trigger: [
20
19
  'cgui:flex cgui:items-center cgui:gap-2',
21
- 'cgui:overflow-hidden',
20
+ 'cgui:overflow-hidden cgui:truncate',
22
21
  'cgui:w-full cgui:px-3 cgui:py-4',
23
22
  'cgui:group-data-[compact=true]/navigation:py-3 cgui:data-[sub-content="false"]:group-data-[compact=true]/navigation:justify-center',
24
23
  'cgui:text-fg-semilight cgui:text-body',
@@ -2,7 +2,13 @@ import type { PrimitiveElementAttributes } from '../../internal/types/html-attri
2
2
  import type { Component, Snippet } from 'svelte';
3
3
  import type { WithChild, WithElementRef, Without, WithoutChildren, WithoutChildrenOrChild } from 'svelte-toolbelt';
4
4
  import type { NavigationVariantsProps } from './styles.js';
5
- type NavigationRootPropsWithoutHTML = WithElementRef<WithChild<{}, {
5
+ type NavigationRootPropsWithoutHTML = WithElementRef<WithChild<{
6
+ popoverProps?: {
7
+ sideOffset?: number;
8
+ alignOffset?: number;
9
+ side?: 'top' | 'bottom' | 'left' | 'right';
10
+ };
11
+ }, {
6
12
  compact: boolean;
7
13
  }>> & NavigationVariantsProps;
8
14
  export type NavigationRootProps = NavigationRootPropsWithoutHTML & Without<PrimitiveElementAttributes, NavigationRootPropsWithoutHTML>;
@@ -10,7 +10,7 @@ export declare const popoverVariants: import("tailwind-variants").TVReturnType<{
10
10
  }, {
11
11
  root: never[];
12
12
  trigger: string[];
13
- content: never[];
13
+ content: string[];
14
14
  }, undefined, {
15
15
  shadow: {
16
16
  true: {
@@ -20,7 +20,7 @@ export declare const popoverVariants: import("tailwind-variants").TVReturnType<{
20
20
  }, {
21
21
  root: never[];
22
22
  trigger: string[];
23
- content: never[];
23
+ content: string[];
24
24
  }, import("tailwind-variants").TVReturnType<{
25
25
  shadow: {
26
26
  true: {
@@ -30,7 +30,7 @@ export declare const popoverVariants: import("tailwind-variants").TVReturnType<{
30
30
  }, {
31
31
  root: never[];
32
32
  trigger: string[];
33
- content: never[];
33
+ content: string[];
34
34
  }, undefined, unknown, unknown, undefined>>;
35
35
  export type PopoverVariantsProps = VariantProps<typeof popoverVariants>;
36
36
  export declare const PopoverStylesContext: Context<ReadableBox<{
@@ -8,7 +8,7 @@ export const popoverVariants = tv({
8
8
  'cgui:cursor-pointer',
9
9
  'cgui:disabled:cursor-not-allowed cgui:disabled:pointer-events-none cgui:disabled:opacity-50',
10
10
  ],
11
- content: [],
11
+ content: ['cgui:z-(--cg-ui-z-index-popover)'],
12
12
  },
13
13
  variants: {
14
14
  shadow: {
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../../internal/utils/common.js';
3
+ import { Select as SelectPrimitive } from 'bits-ui';
4
+ import { SelectStylesContext } from '../styles.js';
5
+ import type { SelectContentProps } from '../types.js';
6
+
7
+ let {
8
+ ref = $bindable(null),
9
+ class: className,
10
+ sideOffset = 4,
11
+ children,
12
+ side = 'bottom',
13
+ forceMount = false,
14
+ ...restProps
15
+ }: SelectContentProps = $props();
16
+
17
+ const variants = SelectStylesContext.get();
18
+
19
+ const attrs = $derived({
20
+ 'data-slot': 'select-content',
21
+ class: cn(variants.current.content(), className),
22
+ sideOffset,
23
+ forceMount,
24
+ side,
25
+ ...restProps,
26
+ });
27
+ </script>
28
+
29
+ <SelectPrimitive.Content bind:ref {...attrs}>
30
+ {@render children?.()}
31
+ </SelectPrimitive.Content>
@@ -1,26 +1,4 @@
1
+ import { Select as SelectPrimitive } from 'bits-ui';
2
+ declare const Select: import("svelte").Component<Omit<SelectPrimitive.ContentProps, "child">, {}, "ref">;
3
+ type Select = ReturnType<typeof Select>;
1
4
  export default Select;
2
- type Select = SvelteComponent<{
3
- [x: string]: never;
4
- }, {
5
- [evt: string]: CustomEvent<any>;
6
- }, {}> & {
7
- $$bindings?: string | undefined;
8
- };
9
- declare const Select: $$__sveltets_2_IsomorphicComponent<{
10
- [x: string]: never;
11
- }, {
12
- [evt: string]: CustomEvent<any>;
13
- }, {}, {}, string>;
14
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
- $$bindings?: Bindings;
17
- } & Exports;
18
- (internal: unknown, props: {
19
- $$events?: Events;
20
- $$slots?: Slots;
21
- }): Exports & {
22
- $set?: any;
23
- $on?: any;
24
- };
25
- z_$$bindings?: Bindings;
26
- }
@@ -0,0 +1,19 @@
1
+ <script lang="ts">
2
+ import { SelectStylesContext } from '../styles.js';
3
+ import { cn } from '../../../internal/utils/common.js';
4
+ import { Select as SelectPrimitive } from 'bits-ui';
5
+ import type { SelectGroupHeadingProps } from '../types.js';
6
+
7
+ let { ref = $bindable(null), class: className, children, ...restProps }: SelectGroupHeadingProps = $props();
8
+
9
+ const variants = SelectStylesContext.get();
10
+ </script>
11
+
12
+ <SelectPrimitive.GroupHeading
13
+ bind:ref
14
+ data-slot="select-group-heading"
15
+ class={cn(variants.current.label(), className)}
16
+ {...restProps}
17
+ >
18
+ {@render children?.()}
19
+ </SelectPrimitive.GroupHeading>
@@ -0,0 +1,4 @@
1
+ import { Select as SelectPrimitive } from 'bits-ui';
2
+ declare const Select: import("svelte").Component<SelectPrimitive.GroupHeadingProps, {}, "ref">;
3
+ type Select = ReturnType<typeof Select>;
4
+ export default Select;
@@ -0,0 +1,8 @@
1
+ <script lang="ts">
2
+ import { Select as SelectPrimitive } from 'bits-ui';
3
+ import type { SelectGroupProps } from '../types.js';
4
+
5
+ let { ref = $bindable(null), ...restProps }: SelectGroupProps = $props();
6
+ </script>
7
+
8
+ <SelectPrimitive.Group data-slot="select-group" bind:ref {...restProps} />
@@ -0,0 +1,4 @@
1
+ import { Select as SelectPrimitive } from 'bits-ui';
2
+ declare const Select: import("svelte").Component<SelectPrimitive.GroupProps, {}, "ref">;
3
+ type Select = ReturnType<typeof Select>;
4
+ export default Select;
@@ -0,0 +1,38 @@
1
+ <script lang="ts">
2
+ import { Icon } from '../../icons/index.js';
3
+ import { cn } from '../../../internal/utils/common.js';
4
+ import { Select as SelectPrimitive } from 'bits-ui';
5
+ import { SelectStylesContext } from '../styles.js';
6
+ import type { SelectItemProps } from '../types.js';
7
+
8
+ let {
9
+ ref = $bindable(null),
10
+ class: className,
11
+ value,
12
+ label,
13
+ children: childrenProp,
14
+ ...restProps
15
+ }: SelectItemProps = $props();
16
+
17
+ const variants = SelectStylesContext.get();
18
+ </script>
19
+
20
+ <SelectPrimitive.Item
21
+ bind:ref
22
+ {value}
23
+ data-slot="select-item"
24
+ class={cn(variants.current.item(), className)}
25
+ {...restProps}
26
+ >
27
+ {#snippet children({ selected, highlighted })}
28
+ {#if childrenProp}
29
+ {@render childrenProp({ selected, highlighted })}
30
+ {:else}
31
+ {label || value}
32
+
33
+ {#if selected}
34
+ <Icon.Checkmark width={16} height={16} />
35
+ {/if}
36
+ {/if}
37
+ {/snippet}
38
+ </SelectPrimitive.Item>
@@ -1,26 +1,4 @@
1
+ import { Select as SelectPrimitive } from 'bits-ui';
2
+ declare const Select: import("svelte").Component<Omit<SelectPrimitive.ItemProps, "child">, {}, "ref">;
3
+ type Select = ReturnType<typeof Select>;
1
4
  export default Select;
2
- type Select = SvelteComponent<{
3
- [x: string]: never;
4
- }, {
5
- [evt: string]: CustomEvent<any>;
6
- }, {}> & {
7
- $$bindings?: string | undefined;
8
- };
9
- declare const Select: $$__sveltets_2_IsomorphicComponent<{
10
- [x: string]: never;
11
- }, {
12
- [evt: string]: CustomEvent<any>;
13
- }, {}, {}, string>;
14
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
- $$bindings?: Bindings;
17
- } & Exports;
18
- (internal: unknown, props: {
19
- $$events?: Events;
20
- $$slots?: Slots;
21
- }): Exports & {
22
- $set?: any;
23
- $on?: any;
24
- };
25
- z_$$bindings?: Bindings;
26
- }
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import { Select as SelectPrimitive } from 'bits-ui';
3
+ import type { SelectPortalProps } from '../types.js';
4
+
5
+ let { children, ...restProps }: SelectPortalProps = $props();
6
+ </script>
7
+
8
+ <SelectPrimitive.Portal {...restProps}>
9
+ {@render children?.()}
10
+ </SelectPrimitive.Portal>
@@ -0,0 +1,3 @@
1
+ declare const Select: import("svelte").Component<import("bits-ui").PortalProps, {}, "">;
2
+ type Select = ReturnType<typeof Select>;
3
+ export default Select;
@@ -1,43 +1,44 @@
1
1
  <script lang="ts">
2
- import { getDataActive } from '../../../internal/utils/attrs.js';
3
- import { cn, useId } from '../../../internal/utils/common.js';
2
+ import { Icon } from '../../icons/index.js';
3
+ import { cn } from '../../../internal/utils/common.js';
4
4
  import { Select as SelectPrimitive } from 'bits-ui';
5
5
  import { SelectStylesContext } from '../styles.js';
6
6
  import type { SelectTriggerProps } from '../types.js';
7
7
 
8
8
  let {
9
9
  ref = $bindable(null),
10
- id = useId(),
11
10
  class: className,
12
- startChevron,
13
- endChevron,
11
+ child,
14
12
  children,
13
+ hasChevron = true,
15
14
  ...restProps
16
15
  }: SelectTriggerProps = $props();
17
16
 
18
17
  const styles = SelectStylesContext.get();
19
- </script>
20
18
 
21
- <SelectPrimitive.Trigger
22
- bind:ref
23
- {id}
24
- data-slot="trigger"
25
- data-start-chevron={getDataActive(Boolean(startChevron))}
26
- data-end-chevron={getDataActive(Boolean(endChevron))}
27
- class={cn(styles.current.trigger(), className)}
28
- {...restProps}
29
- >
30
- {#if startChevron}
31
- <span data-slot="start-chevron" class={styles.current.chevron()}>
32
- {@render startChevron()}
33
- </span>
34
- {/if}
19
+ const attrs = $derived({
20
+ 'data-slot': 'trigger',
21
+ class: cn(styles.current.trigger(), className),
22
+ ...restProps,
23
+ });
24
+ </script>
35
25
 
36
- {@render children?.()}
26
+ {#if child}
27
+ {@render child({ props: attrs })}
28
+ {:else}
29
+ <SelectPrimitive.Trigger bind:ref {...attrs}>
30
+ {@render children?.()}
37
31
 
38
- {#if endChevron}
39
- <span data-slot="end-chevron" class={styles.current.chevron()}>
40
- {@render endChevron()}
41
- </span>
42
- {/if}
43
- </SelectPrimitive.Trigger>
32
+ {#if hasChevron}
33
+ <span
34
+ data-slot="chevron"
35
+ class={cn(
36
+ 'cgui:transition-transform cgui:duration-250 cgui:ease-in-out',
37
+ 'cgui:group-data-[state=open]/select-trigger:-rotate-180'
38
+ )}
39
+ >
40
+ <Icon.ChevronDown width={20} height={20} />
41
+ </span>
42
+ {/if}
43
+ </SelectPrimitive.Trigger>
44
+ {/if}
@@ -0,0 +1,24 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../../internal/utils/common.js';
3
+ import { Select as SelectPrimitive } from 'bits-ui';
4
+ import { SelectStylesContext } from '../styles.js';
5
+ import type { SelectViewportProps } from '../types.js';
6
+
7
+ let { ref = $bindable(null), class: className, children, child, ...restProps }: SelectViewportProps = $props();
8
+
9
+ const variants = SelectStylesContext.get();
10
+
11
+ const attrs = $derived({
12
+ 'data-slot': 'select-viewport',
13
+ class: cn(variants.current.viewport(), className),
14
+ ...restProps,
15
+ });
16
+ </script>
17
+
18
+ {#if child}
19
+ {@render child({ props: attrs })}
20
+ {:else}
21
+ <SelectPrimitive.Viewport bind:ref {...attrs}>
22
+ {@render children?.()}
23
+ </SelectPrimitive.Viewport>
24
+ {/if}
@@ -1,26 +1,4 @@
1
+ import { Select as SelectPrimitive } from 'bits-ui';
2
+ declare const Select: import("svelte").Component<SelectPrimitive.ViewportProps, {}, "ref">;
3
+ type Select = ReturnType<typeof Select>;
1
4
  export default Select;
2
- type Select = SvelteComponent<{
3
- [x: string]: never;
4
- }, {
5
- [evt: string]: CustomEvent<any>;
6
- }, {}> & {
7
- $$bindings?: string | undefined;
8
- };
9
- declare const Select: $$__sveltets_2_IsomorphicComponent<{
10
- [x: string]: never;
11
- }, {
12
- [evt: string]: CustomEvent<any>;
13
- }, {}, {}, string>;
14
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
- new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
- $$bindings?: Bindings;
17
- } & Exports;
18
- (internal: unknown, props: {
19
- $$events?: Events;
20
- $$slots?: Slots;
21
- }): Exports & {
22
- $set?: any;
23
- $on?: any;
24
- };
25
- z_$$bindings?: Bindings;
26
- }
@@ -1,2 +1,8 @@
1
+ export { default as Content } from './components/select.content.svelte';
2
+ export { default as GroupHeading } from './components/select.group-heading.svelte';
3
+ export { default as Group } from './components/select.group.svelte';
4
+ export { default as Item } from './components/select.item.svelte';
5
+ export { default as Portal } from './components/select.portal.svelte';
1
6
  export { default as Root } from './components/select.root.svelte';
2
7
  export { default as Trigger } from './components/select.trigger.svelte';
8
+ export { default as Viewport } from './components/select.viewport.svelte';
@@ -1,2 +1,8 @@
1
+ export { default as Content } from './components/select.content.svelte';
2
+ export { default as GroupHeading } from './components/select.group-heading.svelte';
3
+ export { default as Group } from './components/select.group.svelte';
4
+ export { default as Item } from './components/select.item.svelte';
5
+ export { default as Portal } from './components/select.portal.svelte';
1
6
  export { default as Root } from './components/select.root.svelte';
2
7
  export { default as Trigger } from './components/select.trigger.svelte';
8
+ export { default as Viewport } from './components/select.viewport.svelte';
@@ -0,0 +1 @@
1
+ export { default as Root } from './select.svelte';
@@ -0,0 +1 @@
1
+ export { default as Root } from './select.svelte';