@kayord/ui 2.0.3 → 2.0.4

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 (84) hide show
  1. package/dist/components/ui/button-group/button-group-separator.svelte +7 -1
  2. package/dist/components/ui/button-group/button-group-separator.svelte.d.ts +1 -1
  3. package/dist/components/ui/button-group/button-group-text.svelte +8 -11
  4. package/dist/components/ui/button-group/button-group-text.svelte.d.ts +3 -2
  5. package/dist/components/ui/button-group/button-group.svelte +5 -3
  6. package/dist/components/ui/button-group/button-group.svelte.d.ts +4 -3
  7. package/dist/components/ui/empty/empty-content.svelte +8 -2
  8. package/dist/components/ui/empty/empty-content.svelte.d.ts +2 -1
  9. package/dist/components/ui/empty/empty-description.svelte +8 -2
  10. package/dist/components/ui/empty/empty-description.svelte.d.ts +2 -1
  11. package/dist/components/ui/empty/empty-header.svelte +8 -2
  12. package/dist/components/ui/empty/empty-header.svelte.d.ts +2 -1
  13. package/dist/components/ui/empty/empty-media.svelte +4 -2
  14. package/dist/components/ui/empty/empty-media.svelte.d.ts +3 -2
  15. package/dist/components/ui/empty/empty-title.svelte +8 -3
  16. package/dist/components/ui/empty/empty-title.svelte.d.ts +2 -1
  17. package/dist/components/ui/empty/empty.svelte +8 -2
  18. package/dist/components/ui/empty/empty.svelte.d.ts +2 -1
  19. package/dist/components/ui/field/field-content.svelte +8 -2
  20. package/dist/components/ui/field/field-content.svelte.d.ts +2 -1
  21. package/dist/components/ui/field/field-description.svelte +8 -2
  22. package/dist/components/ui/field/field-description.svelte.d.ts +2 -1
  23. package/dist/components/ui/field/field-error.svelte +4 -2
  24. package/dist/components/ui/field/field-error.svelte.d.ts +3 -2
  25. package/dist/components/ui/field/field-group.svelte +8 -2
  26. package/dist/components/ui/field/field-group.svelte.d.ts +2 -1
  27. package/dist/components/ui/field/field-legend.svelte +4 -2
  28. package/dist/components/ui/field/field-legend.svelte.d.ts +3 -2
  29. package/dist/components/ui/field/field-separator.svelte +4 -2
  30. package/dist/components/ui/field/field-separator.svelte.d.ts +3 -2
  31. package/dist/components/ui/field/field-set.svelte +8 -2
  32. package/dist/components/ui/field/field-set.svelte.d.ts +2 -1
  33. package/dist/components/ui/field/field-title.svelte +8 -2
  34. package/dist/components/ui/field/field-title.svelte.d.ts +2 -1
  35. package/dist/components/ui/field/field.svelte +5 -3
  36. package/dist/components/ui/field/field.svelte.d.ts +4 -3
  37. package/dist/components/ui/input-group/input-group-addon.svelte +5 -3
  38. package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +4 -3
  39. package/dist/components/ui/input-group/input-group-button.svelte +9 -1
  40. package/dist/components/ui/input-group/input-group-button.svelte.d.ts +1 -1
  41. package/dist/components/ui/input-group/input-group-input.svelte +7 -1
  42. package/dist/components/ui/input-group/input-group-input.svelte.d.ts +1 -1
  43. package/dist/components/ui/input-group/input-group-text.svelte +8 -2
  44. package/dist/components/ui/input-group/input-group-text.svelte.d.ts +2 -1
  45. package/dist/components/ui/input-group/input-group-textarea.svelte +7 -1
  46. package/dist/components/ui/input-group/input-group-textarea.svelte.d.ts +1 -1
  47. package/dist/components/ui/input-group/input-group.svelte +8 -2
  48. package/dist/components/ui/input-group/input-group.svelte.d.ts +2 -1
  49. package/dist/components/ui/item/item-actions.svelte +8 -3
  50. package/dist/components/ui/item/item-actions.svelte.d.ts +2 -1
  51. package/dist/components/ui/item/item-content.svelte +8 -2
  52. package/dist/components/ui/item/item-content.svelte.d.ts +2 -1
  53. package/dist/components/ui/item/item-description.svelte +8 -2
  54. package/dist/components/ui/item/item-description.svelte.d.ts +2 -1
  55. package/dist/components/ui/item/item-footer.svelte +13 -3
  56. package/dist/components/ui/item/item-footer.svelte.d.ts +2 -1
  57. package/dist/components/ui/item/item-group.svelte +14 -3
  58. package/dist/components/ui/item/item-group.svelte.d.ts +2 -1
  59. package/dist/components/ui/item/item-header.svelte +13 -3
  60. package/dist/components/ui/item/item-header.svelte.d.ts +2 -1
  61. package/dist/components/ui/item/item-media.svelte +11 -4
  62. package/dist/components/ui/item/item-media.svelte.d.ts +4 -3
  63. package/dist/components/ui/item/item-separator.svelte +2 -2
  64. package/dist/components/ui/item/item-separator.svelte.d.ts +1 -1
  65. package/dist/components/ui/item/item-title.svelte +8 -2
  66. package/dist/components/ui/item/item-title.svelte.d.ts +2 -1
  67. package/dist/components/ui/item/item.svelte +6 -7
  68. package/dist/components/ui/item/item.svelte.d.ts +4 -3
  69. package/dist/components/ui/kbd/kbd-group.svelte +8 -3
  70. package/dist/components/ui/kbd/kbd-group.svelte.d.ts +2 -1
  71. package/dist/components/ui/kbd/kbd.svelte +8 -2
  72. package/dist/components/ui/kbd/kbd.svelte.d.ts +2 -1
  73. package/dist/components/ui/native-select/index.d.ts +4 -0
  74. package/dist/components/ui/native-select/index.js +4 -0
  75. package/dist/components/ui/native-select/native-select-opt-group.svelte +10 -0
  76. package/dist/components/ui/native-select/native-select-opt-group.svelte.d.ts +5 -0
  77. package/dist/components/ui/native-select/native-select-option.svelte +10 -0
  78. package/dist/components/ui/native-select/native-select-option.svelte.d.ts +5 -0
  79. package/dist/components/ui/native-select/native-select.svelte +35 -0
  80. package/dist/components/ui/native-select/native-select.svelte.d.ts +5 -0
  81. package/dist/components/ui/scroll-area/scroll-area.svelte +3 -0
  82. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +2 -1
  83. package/dist/components/ui/spinner/spinner.svelte +1 -3
  84. package/package.json +17 -17
@@ -1,11 +1,17 @@
1
1
  <script lang="ts">
2
- import { cn } from "../../../utils.js";
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
3
  import type { HTMLAttributes } from "svelte/elements";
4
4
 
5
- let { class: className, children, ...restProps }: HTMLAttributes<HTMLElement> = $props();
5
+ let {
6
+ ref = $bindable(null),
7
+ class: className,
8
+ children,
9
+ ...restProps
10
+ }: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
6
11
  </script>
7
12
 
8
13
  <kbd
14
+ bind:this={ref}
9
15
  data-slot="kbd"
10
16
  class={cn(
11
17
  "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none",
@@ -1,4 +1,5 @@
1
+ import { type WithElementRef } from "../../../utils.js";
1
2
  import type { HTMLAttributes } from "svelte/elements";
2
- declare const Kbd: import("svelte").Component<HTMLAttributes<HTMLElement>, {}, "">;
3
+ declare const Kbd: import("svelte").Component<WithElementRef<HTMLAttributes<HTMLElement>>, {}, "ref">;
3
4
  type Kbd = ReturnType<typeof Kbd>;
4
5
  export default Kbd;
@@ -0,0 +1,4 @@
1
+ import Root from "./native-select.svelte";
2
+ import Option from "./native-select-option.svelte";
3
+ import OptGroup from "./native-select-opt-group.svelte";
4
+ export { Root, Option, OptGroup, Root as NativeSelect, Option as NativeSelectOption, OptGroup as NativeSelectOptGroup };
@@ -0,0 +1,4 @@
1
+ import Root from "./native-select.svelte";
2
+ import Option from "./native-select-option.svelte";
3
+ import OptGroup from "./native-select-opt-group.svelte";
4
+ export { Root, Option, OptGroup, Root as NativeSelect, Option as NativeSelectOption, OptGroup as NativeSelectOptGroup };
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import type { HTMLOptgroupAttributes } from "svelte/elements";
3
+ import type { WithElementRef } from "../../../utils.js";
4
+
5
+ let { ref = $bindable(null), children, ...restProps }: WithElementRef<HTMLOptgroupAttributes> = $props();
6
+ </script>
7
+
8
+ <optgroup bind:this={ref} data-slot="native-select-opt-group" {...restProps}>
9
+ {@render children?.()}
10
+ </optgroup>
@@ -0,0 +1,5 @@
1
+ import type { HTMLOptgroupAttributes } from "svelte/elements";
2
+ import type { WithElementRef } from "../../../utils.js";
3
+ declare const NativeSelectOptGroup: import("svelte").Component<WithElementRef<HTMLOptgroupAttributes>, {}, "ref">;
4
+ type NativeSelectOptGroup = ReturnType<typeof NativeSelectOptGroup>;
5
+ export default NativeSelectOptGroup;
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import type { HTMLOptionAttributes } from "svelte/elements";
3
+ import type { WithElementRef } from "../../../utils.js";
4
+
5
+ let { ref = $bindable(null), children, ...restProps }: WithElementRef<HTMLOptionAttributes> = $props();
6
+ </script>
7
+
8
+ <option bind:this={ref} data-slot="native-select-option" {...restProps}>
9
+ {@render children?.()}
10
+ </option>
@@ -0,0 +1,5 @@
1
+ import type { HTMLOptionAttributes } from "svelte/elements";
2
+ import type { WithElementRef } from "../../../utils.js";
3
+ declare const NativeSelectOption: import("svelte").Component<WithElementRef<HTMLOptionAttributes>, {}, "ref">;
4
+ type NativeSelectOption = ReturnType<typeof NativeSelectOption>;
5
+ export default NativeSelectOption;
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import { cn, type WithElementRef } from "../../../utils.js";
3
+ import type { HTMLSelectAttributes } from "svelte/elements";
4
+ import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
5
+
6
+ let {
7
+ ref = $bindable(null),
8
+ value = $bindable(),
9
+ class: className,
10
+ children,
11
+ ...restProps
12
+ }: WithElementRef<HTMLSelectAttributes> = $props();
13
+ </script>
14
+
15
+ <div class="group/native-select relative w-fit has-[select:disabled]:opacity-50" data-slot="native-select-wrapper">
16
+ <select
17
+ bind:value
18
+ bind:this={ref}
19
+ data-slot="native-select"
20
+ class={cn(
21
+ "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed",
22
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
23
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
24
+ className
25
+ )}
26
+ {...restProps}
27
+ >
28
+ {@render children?.()}
29
+ </select>
30
+ <ChevronDownIcon
31
+ class="text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 opacity-50 select-none"
32
+ aria-hidden="true"
33
+ data-slot="native-select-icon"
34
+ />
35
+ </div>
@@ -0,0 +1,5 @@
1
+ import { type WithElementRef } from "../../../utils.js";
2
+ import type { HTMLSelectAttributes } from "svelte/elements";
3
+ declare const NativeSelect: import("svelte").Component<WithElementRef<HTMLSelectAttributes>, {}, "value" | "ref">;
4
+ type NativeSelect = ReturnType<typeof NativeSelect>;
5
+ export default NativeSelect;
@@ -5,6 +5,7 @@
5
5
 
6
6
  let {
7
7
  ref = $bindable(null),
8
+ viewportRef = $bindable(null),
8
9
  class: className,
9
10
  orientation = "vertical",
10
11
  scrollbarXClasses = "",
@@ -15,11 +16,13 @@
15
16
  orientation?: "vertical" | "horizontal" | "both" | undefined;
16
17
  scrollbarXClasses?: string | undefined;
17
18
  scrollbarYClasses?: string | undefined;
19
+ viewportRef?: HTMLElement | null;
18
20
  } = $props();
19
21
  </script>
20
22
 
21
23
  <ScrollAreaPrimitive.Root bind:ref data-slot="scroll-area" class={cn("relative", className)} {...restProps}>
22
24
  <ScrollAreaPrimitive.Viewport
25
+ bind:ref={viewportRef}
23
26
  data-slot="scroll-area-viewport"
24
27
  class="ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1"
25
28
  >
@@ -4,7 +4,8 @@ type $$ComponentProps = WithoutChild<ScrollAreaPrimitive.RootProps> & {
4
4
  orientation?: "vertical" | "horizontal" | "both" | undefined;
5
5
  scrollbarXClasses?: string | undefined;
6
6
  scrollbarYClasses?: string | undefined;
7
+ viewportRef?: HTMLElement | null;
7
8
  };
8
- declare const ScrollArea: import("svelte").Component<$$ComponentProps, {}, "ref">;
9
+ declare const ScrollArea: import("svelte").Component<$$ComponentProps, {}, "ref" | "viewportRef">;
9
10
  type ScrollArea = ReturnType<typeof ScrollArea>;
10
11
  export default ScrollArea;
@@ -3,9 +3,7 @@
3
3
  import Loader2Icon from "@lucide/svelte/icons/loader-2";
4
4
  import type { ComponentProps } from "svelte";
5
5
 
6
- type Props = ComponentProps<typeof Loader2Icon>;
7
-
8
- let { class: className, ...restProps }: Props = $props();
6
+ let { class: className, ...restProps }: ComponentProps<typeof Loader2Icon> = $props();
9
7
  </script>
10
8
 
11
9
  <Loader2Icon role="status" aria-label="Loading" class={cn("size-4 animate-spin", className)} {...restProps} />
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kayord/ui",
3
3
  "private": false,
4
- "version": "2.0.3",
4
+ "version": "2.0.4",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -101,52 +101,52 @@
101
101
  }
102
102
  },
103
103
  "dependencies": {
104
- "bits-ui": "2.11.6",
104
+ "bits-ui": "2.14.0",
105
105
  "clsx": "^2.1.1",
106
106
  "tailwind-merge": "^3.3.1",
107
107
  "tailwind-variants": "^3.1.1"
108
108
  },
109
109
  "devDependencies": {
110
110
  "@internationalized/date": "^3.10.0",
111
- "@lucide/svelte": "^0.545.0",
112
- "@sveltejs/adapter-auto": "^6.1.1",
113
- "@sveltejs/kit": "^2.47.0",
111
+ "@lucide/svelte": "^0.546.0",
112
+ "@sveltejs/adapter-auto": "^7.0.0",
113
+ "@sveltejs/kit": "^2.47.2",
114
114
  "@sveltejs/package": "^2.5.4",
115
115
  "@sveltejs/vite-plugin-svelte": "^6.2.1",
116
- "@tailwindcss/vite": "^4.1.14",
116
+ "@tailwindcss/vite": "^4.1.15",
117
117
  "@testing-library/jest-dom": "^6.9.1",
118
118
  "@testing-library/svelte": "^5.2.8",
119
119
  "@testing-library/user-event": "^14.6.1",
120
120
  "@types/d3-scale": "^4.0.9",
121
121
  "@types/d3-shape": "^3.1.7",
122
- "@typescript-eslint/eslint-plugin": "^8.46.1",
123
- "@typescript-eslint/parser": "^8.46.1",
122
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
123
+ "@typescript-eslint/parser": "^8.46.2",
124
124
  "@vitest/coverage-v8": "3.2.4",
125
125
  "d3-scale": "^4.0.2",
126
126
  "d3-shape": "^3.2.0",
127
127
  "embla-carousel-svelte": "^8.6.0",
128
- "eslint": "^9.37.0",
128
+ "eslint": "^9.38.0",
129
129
  "eslint-config-prettier": "^10.1.8",
130
- "eslint-plugin-svelte": "^3.12.4",
130
+ "eslint-plugin-svelte": "^3.12.5",
131
131
  "formsnap": "^2.0.1",
132
- "jsdom": "^27.0.0",
132
+ "jsdom": "^27.0.1",
133
133
  "layerchart": "2.0.0-next.40",
134
134
  "mode-watcher": "^1.1.0",
135
135
  "paneforge": "^1.0.2",
136
136
  "prettier": "^3.6.2",
137
137
  "prettier-plugin-svelte": "^3.4.0",
138
- "prettier-plugin-tailwindcss": "^0.7.0",
139
- "publint": "^0.3.14",
140
- "svelte": "5.40.1",
138
+ "prettier-plugin-tailwindcss": "^0.7.1",
139
+ "publint": "^0.3.15",
140
+ "svelte": "5.41.1",
141
141
  "svelte-check": "^4.3.3",
142
142
  "svelte-sonner": "^1.0.5",
143
- "sveltekit-superforms": "^2.27.4",
144
- "tailwindcss": "^4.1.14",
143
+ "sveltekit-superforms": "^2.28.0",
144
+ "tailwindcss": "^4.1.15",
145
145
  "tslib": "^2.8.1",
146
146
  "tw-animate-css": "1.4.0",
147
147
  "typescript": "^5.9.3",
148
148
  "vaul-svelte": "1.0.0-next.7",
149
- "vite": "^7.1.10",
149
+ "vite": "^7.1.11",
150
150
  "vitest": "^3.2.4",
151
151
  "zod": "4.1.12"
152
152
  },