@peteai/presentation-editor 0.0.7 → 0.0.9

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 (80) hide show
  1. package/dist/components/editor/active-layers.svelte +24 -9
  2. package/dist/components/editor/active-layers.svelte.d.ts +6 -1
  3. package/dist/components/editor/editor.svelte +15 -17
  4. package/dist/components/editor/editor.svelte.js +10 -8
  5. package/dist/components/editor/header.svelte +25 -21
  6. package/dist/components/editor/hotkeys.svelte +7 -0
  7. package/dist/components/editor/layers/active-layer-border.svelte +1 -1
  8. package/dist/components/editor/layers/buttons/border-button/border-button-colors.svelte +1 -1
  9. package/dist/components/editor/layers/buttons/opacity-button/opacity-button.svelte +1 -6
  10. package/dist/components/editor/layers/controls/corner-scale-control/corner-scale-control.svelte +1 -1
  11. package/dist/components/editor/layers/controls/group-resize-control/group-resize-control.svelte +11 -11
  12. package/dist/components/editor/layers/controls/rotate-control/rotate-control.svelte +12 -6
  13. package/dist/components/editor/layers/controls/rotate-control/rotate-control.svelte.d.ts +4 -1
  14. package/dist/components/editor/layers/controls/side-resize-control/side-resize-control.svelte +13 -13
  15. package/dist/components/editor/layers/controls/side-scale-control/side-scale-control.svelte +1 -1
  16. package/dist/components/editor/layers/index.d.ts +2 -2
  17. package/dist/components/editor/layers/index.js +2 -2
  18. package/dist/components/editor/layers/layer-button.svelte +1 -1
  19. package/dist/components/editor/layers/types/background/background-content-image.svelte +15 -20
  20. package/dist/components/editor/layers/types/background/background-layer-buttons.svelte +1 -1
  21. package/dist/components/editor/layers/types/background/background-layer.svelte +2 -2
  22. package/dist/components/editor/layers/types/image/controls/image-rotate-control/image-rotate-control.svelte +120 -0
  23. package/dist/components/editor/layers/types/image/controls/image-rotate-control/image-rotate-control.svelte.d.ts +8 -0
  24. package/dist/components/editor/layers/types/image/controls/image-rotate-control/index.d.ts +2 -0
  25. package/dist/components/editor/layers/types/image/controls/image-rotate-control/index.js +4 -0
  26. package/dist/components/editor/layers/types/image/controls/image-scale-control/image-scale-control.svelte +154 -0
  27. package/dist/components/editor/layers/types/image/controls/image-scale-control/image-scale-control.svelte.d.ts +91 -0
  28. package/dist/components/editor/layers/types/image/controls/image-scale-control/index.d.ts +2 -0
  29. package/dist/components/editor/layers/types/image/controls/image-scale-control/index.js +4 -0
  30. package/dist/components/editor/layers/types/image/image-layer-content.svelte +3 -3
  31. package/dist/components/editor/layers/types/image/image-layer-crop.svelte +182 -0
  32. package/dist/components/editor/layers/types/image/image-layer-crop.svelte.d.ts +10 -0
  33. package/dist/components/editor/layers/types/image/image-layer.svelte +16 -0
  34. package/dist/components/editor/layers/types/image/index.d.ts +2 -1
  35. package/dist/components/editor/layers/types/image/index.js +2 -1
  36. package/dist/components/editor/layers/types/text/extensions/list-item/list-item.js +0 -2
  37. package/dist/components/editor/layers/utils.d.ts +24 -9
  38. package/dist/components/editor/layers/utils.js +107 -54
  39. package/dist/components/editor/page-editor.svelte +6 -2
  40. package/dist/components/editor/sidebar/color-sidebar/color-sidebar-color.svelte +2 -2
  41. package/dist/components/editor/sidebar/color-sidebar/color-sidebar-gradient-picker.svelte +5 -5
  42. package/dist/components/editor/sidebar/color-sidebar/color-sidebar.svelte +4 -4
  43. package/dist/components/editor/sidebar/font-sidebar/font-sidebar.svelte +1 -1
  44. package/dist/components/editor/sidebar/image-crop-sidebar.svelte +112 -0
  45. package/dist/components/editor/sidebar/image-crop-sidebar.svelte.d.ts +7 -0
  46. package/dist/components/editor/sidebar/position-sidebar.svelte +0 -2
  47. package/dist/components/editor/sidebar/sidebar-uploads-tab.svelte +3 -3
  48. package/dist/components/editor/sidebar/sidebar.svelte +7 -4
  49. package/dist/components/editor/snapping-guides.svelte +3 -3
  50. package/dist/components/editor/types.d.ts +2 -1
  51. package/dist/components/editor/utils.js +1 -0
  52. package/dist/components/ui/color-picker/color-picker-alpha-grid.svelte +2 -1
  53. package/dist/components/ui/color-picker/color-picker.svelte +6 -6
  54. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +1 -1
  55. package/dist/components/ui/context-menu/context-menu-content.svelte +3 -1
  56. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +1 -1
  57. package/dist/components/ui/context-menu/context-menu-item.svelte +1 -1
  58. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +1 -1
  59. package/dist/components/ui/context-menu/context-menu-separator.svelte +1 -1
  60. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +1 -1
  61. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +1 -1
  62. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +1 -1
  63. package/dist/components/ui/dialog/dialog-content.svelte +4 -2
  64. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +1 -1
  65. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +2 -0
  66. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
  67. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +1 -1
  68. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +1 -1
  69. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +1 -1
  70. package/dist/components/ui/input/input.svelte +1 -1
  71. package/dist/components/ui/slider/slider.svelte +3 -3
  72. package/dist/components/ui/tabs/index.d.ts +4 -4
  73. package/dist/components/ui/tabs/index.js +4 -4
  74. package/dist/components/ui/tabs/tabs-content.svelte +4 -4
  75. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +1 -1
  76. package/dist/components/ui/tabs/tabs-list.svelte +5 -9
  77. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +1 -1
  78. package/dist/components/ui/tabs/tabs-trigger.svelte +4 -4
  79. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +1 -1
  80. package/package.json +19 -19
@@ -46,6 +46,7 @@ export type LayerBorder = {
46
46
  export interface ImageLayer extends BaseLayer, LayerBorder {
47
47
  type: 'image';
48
48
  image: Image;
49
+ imageRotate: number;
49
50
  offsetX: number;
50
51
  offsetY: number;
51
52
  cornerRadius: number;
@@ -61,7 +62,7 @@ export type Gradient = {
61
62
  type: 'linear90' | 'linear180' | 'linear135' | 'radialCenter' | 'radialTopLeft';
62
63
  colors: string[];
63
64
  };
64
- export type BackgroundImage = Pick<ImageLayer, 'rotate' | 'opacity' | 'scale' | 'image' | 'offsetX' | 'offsetY' | 'flipX' | 'flipY'>;
65
+ export type BackgroundImage = Pick<ImageLayer, 'opacity' | 'scale' | 'image' | 'imageRotate' | 'offsetX' | 'offsetY' | 'flipX' | 'flipY'>;
65
66
  export type Page = {
66
67
  id: string;
67
68
  backgroundColor: string | null;
@@ -363,6 +363,7 @@ const buildTextLayerBulletsFields = ({ bullets }) => ({
363
363
  });
364
364
  const buildImageLayerFields = (image) => ({
365
365
  image,
366
+ imageRotate: 0,
366
367
  offsetX: 0,
367
368
  offsetY: 0,
368
369
  cornerRadius: 0,
@@ -21,7 +21,8 @@
21
21
  <style>
22
22
  .alpha-grid {
23
23
  background-color: hsl(var(--background));
24
- background-image: linear-gradient(
24
+ background-image:
25
+ linear-gradient(
25
26
  -45deg,
26
27
  hsl(var(--foreground)) 25%,
27
28
  transparent 25%,
@@ -237,7 +237,7 @@
237
237
  style:background="linear-gradient(to top, rgb(0, 0, 0), rgba(0, 0, 0, 0))"
238
238
  >
239
239
  <div
240
- class="border-primary relative m-0 -translate-x-1/2 -translate-y-1/2 rounded-full p-0"
240
+ class="relative m-0 -translate-x-1/2 -translate-y-1/2 rounded-full border-primary p-0"
241
241
  style:width="16px"
242
242
  style:height="16px"
243
243
  style:border="2px solid #fffb"
@@ -275,7 +275,7 @@
275
275
  ></span>
276
276
  <Slider.Thumb
277
277
  index={0}
278
- class="border-border-input bg-background hover:border-dark-40 dark:bg-foreground dark:shadow-card block size-2 cursor-pointer rounded-full border shadow transition-colors focus-visible:outline-none active:scale-150"
278
+ class="border-border-input hover:border-dark-40 block size-2 cursor-pointer rounded-full border bg-background shadow transition-colors focus-visible:outline-none active:scale-150 dark:bg-foreground dark:shadow-card"
279
279
  />
280
280
  {/snippet}
281
281
  </Slider.Root>
@@ -294,7 +294,7 @@
294
294
  {#snippet children()}
295
295
  <AlphaGrid
296
296
  size={8}
297
- class="shadow-inner-1 relative -mx-1 h-3 w-full grow cursor-pointer overflow-hidden rounded-full"
297
+ class="relative -mx-1 h-3 w-full grow cursor-pointer overflow-hidden rounded-full shadow-inner-1"
298
298
  >
299
299
  <div
300
300
  class="h-full w-full rounded-full"
@@ -303,7 +303,7 @@
303
303
  </AlphaGrid>
304
304
  <Slider.Thumb
305
305
  index={0}
306
- class="border-border-input bg-background hover:border-dark-40 dark:bg-foreground dark:shadow-card block size-2 cursor-pointer rounded-full border shadow transition-colors focus-visible:outline-none active:scale-150"
306
+ class="border-border-input hover:border-dark-40 block size-2 cursor-pointer rounded-full border bg-background shadow transition-colors focus-visible:outline-none active:scale-150 dark:bg-foreground dark:shadow-card"
307
307
  />
308
308
  {/snippet}
309
309
  </Slider.Root>
@@ -327,9 +327,9 @@
327
327
  </AlphaGrid>
328
328
  </div>
329
329
  </div>
330
- <div class="text-muted-foreground pointer-events-none absolute left-10 text-sm">#</div>
330
+ <div class="pointer-events-none absolute left-10 text-sm text-muted-foreground">#</div>
331
331
  <Input
332
- class={cn('pl-12', invalidHex && 'ring-destructive ring-1')}
332
+ class={cn('pl-12', invalidHex && 'ring-1 ring-destructive')}
333
333
  value={hexValue.slice(0, 7).replace('#', '')}
334
334
  oninput={onHexInput}
335
335
  onchange={onHexChange}
@@ -22,7 +22,7 @@
22
22
  bind:checked
23
23
  bind:indeterminate
24
24
  class={cn(
25
- 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
25
+ 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50',
26
26
  className,
27
27
  )}
28
28
  {...restProps}
@@ -5,6 +5,7 @@
5
5
  let {
6
6
  ref = $bindable(null),
7
7
  portalProps,
8
+ preventScroll = false,
8
9
  class: className,
9
10
  ...restProps
10
11
  }: ContextMenuPrimitive.ContentProps & {
@@ -15,8 +16,9 @@
15
16
  <ContextMenuPrimitive.Portal {...portalProps}>
16
17
  <ContextMenuPrimitive.Content
17
18
  bind:ref
19
+ {preventScroll}
18
20
  class={cn(
19
- 'bg-popover text-popover-foreground z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none',
21
+ 'z-50 min-w-[8rem] rounded-md border bg-popover p-1 text-popover-foreground shadow-md focus:outline-none',
20
22
  className,
21
23
  )}
22
24
  {...restProps}
@@ -14,6 +14,6 @@
14
14
 
15
15
  <ContextMenuPrimitive.GroupHeading
16
16
  bind:ref
17
- class={cn('text-foreground px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
17
+ class={cn('px-2 py-1.5 text-sm font-semibold text-foreground', inset && 'pl-8', className)}
18
18
  {...restProps}
19
19
  />
@@ -15,7 +15,7 @@
15
15
  <ContextMenuPrimitive.Item
16
16
  bind:ref
17
17
  class={cn(
18
- 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
18
+ 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50',
19
19
  inset && 'pl-8',
20
20
  className,
21
21
  )}
@@ -14,7 +14,7 @@
14
14
  <ContextMenuPrimitive.RadioItem
15
15
  bind:ref
16
16
  class={cn(
17
- 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
17
+ 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50',
18
18
  className,
19
19
  )}
20
20
  {...restProps}
@@ -11,6 +11,6 @@
11
11
 
12
12
  <ContextMenuPrimitive.Separator
13
13
  bind:ref
14
- class={cn('bg-border -mx-1 my-1 h-px', className)}
14
+ class={cn('-mx-1 my-1 h-px bg-border', className)}
15
15
  {...restProps}
16
16
  />
@@ -14,7 +14,7 @@
14
14
  <kbd
15
15
  bind:this={ref}
16
16
  class={cn(
17
- 'bg-muted text-muted-foreground ml-auto rounded-sm px-2 py-1 font-sans text-xs tracking-widest',
17
+ 'ml-auto rounded-sm bg-muted px-2 py-1 font-sans text-xs tracking-widest text-muted-foreground',
18
18
  className,
19
19
  )}
20
20
  {...restProps}
@@ -12,7 +12,7 @@
12
12
  <ContextMenuPrimitive.SubContent
13
13
  bind:ref
14
14
  class={cn(
15
- 'bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md focus:outline-none',
15
+ 'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md focus:outline-none',
16
16
  className,
17
17
  )}
18
18
  {...restProps}
@@ -17,7 +17,7 @@
17
17
  <ContextMenuPrimitive.SubTrigger
18
18
  bind:ref
19
19
  class={cn(
20
- 'data-[highlighted]:bg-accent data-[state=open]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:text-accent-foreground flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
20
+ 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[state=open]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:text-accent-foreground data-[disabled]:opacity-50',
21
21
  inset && 'pl-8',
22
22
  className,
23
23
  )}
@@ -7,6 +7,7 @@
7
7
 
8
8
  let {
9
9
  ref = $bindable(null),
10
+ preventScroll = false,
10
11
  class: className,
11
12
  portalProps,
12
13
  children,
@@ -21,15 +22,16 @@
21
22
  <Dialog.Overlay />
22
23
  <DialogPrimitive.Content
23
24
  bind:ref
25
+ {preventScroll}
24
26
  class={cn(
25
- 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] bg-background fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg',
27
+ 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 sm:rounded-lg',
26
28
  className,
27
29
  )}
28
30
  {...restProps}
29
31
  >
30
32
  {@render children?.()}
31
33
  <DialogPrimitive.Close
32
- class="ring-offset-background focus:ring-ring absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none"
34
+ class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none"
33
35
  >
34
36
  <X class="size-4" />
35
37
  <span class="sr-only">Close</span>
@@ -22,7 +22,7 @@
22
22
  bind:checked
23
23
  bind:indeterminate
24
24
  class={cn(
25
- 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
25
+ 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50',
26
26
  className,
27
27
  )}
28
28
  {...restProps}
@@ -5,6 +5,7 @@
5
5
  let {
6
6
  ref = $bindable(null),
7
7
  sideOffset = 4,
8
+ preventScroll = false,
8
9
  class: className,
9
10
  ...restProps
10
11
  }: DropdownMenuPrimitive.ContentProps = $props();
@@ -13,6 +14,7 @@
13
14
  <DropdownMenuPrimitive.Content
14
15
  bind:ref
15
16
  {sideOffset}
17
+ {preventScroll}
16
18
  class={cn(
17
19
  'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md outline-none',
18
20
  className,
@@ -15,7 +15,7 @@
15
15
  <DropdownMenuPrimitive.Item
16
16
  bind:ref
17
17
  class={cn(
18
- 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
18
+ 'relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
19
19
  inset && 'pl-8',
20
20
  className,
21
21
  )}
@@ -14,7 +14,7 @@
14
14
  <DropdownMenuPrimitive.RadioItem
15
15
  bind:ref
16
16
  class={cn(
17
- 'data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
17
+ 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50',
18
18
  className,
19
19
  )}
20
20
  {...restProps}
@@ -14,7 +14,7 @@
14
14
  <kbd
15
15
  bind:this={ref}
16
16
  class={cn(
17
- 'bg-muted text-muted-foreground ml-auto rounded-sm px-2 py-1 font-sans text-xs tracking-widest',
17
+ 'ml-auto rounded-sm bg-muted px-2 py-1 font-sans text-xs tracking-widest text-muted-foreground',
18
18
  className,
19
19
  )}
20
20
  {...restProps}
@@ -17,7 +17,7 @@
17
17
  <DropdownMenuPrimitive.SubTrigger
18
18
  bind:ref
19
19
  class={cn(
20
- 'data-[state=open]:bg-accent data-[highlighted]:bg-accent flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
20
+ 'flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[state=open]:bg-accent data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
21
21
  inset && 'pl-8',
22
22
  className,
23
23
  )}
@@ -14,7 +14,7 @@
14
14
  <input
15
15
  bind:this={ref}
16
16
  class={cn(
17
- 'border-input bg-background placeholder:text-muted-foreground focus-visible:border-ring flex h-10 w-full rounded-md border px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',
17
+ 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:border-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',
18
18
  className,
19
19
  )}
20
20
  bind:value
@@ -28,16 +28,16 @@ get along, so we shut typescript up by casting `value` to `never`.
28
28
  {#snippet children({ thumbs })}
29
29
  <span
30
30
  data-orientation={orientation}
31
- class="bg-secondary relative grow overflow-hidden rounded-full data-[orientation='horizontal']:h-2 data-[orientation='vertical']:h-full data-[orientation='horizontal']:w-full data-[orientation='vertical']:w-2"
31
+ class="relative grow overflow-hidden rounded-full bg-secondary data-[orientation='horizontal']:h-2 data-[orientation='vertical']:h-full data-[orientation='horizontal']:w-full data-[orientation='vertical']:w-2"
32
32
  >
33
33
  <SliderPrimitive.Range
34
- class="bg-primary absolute data-[orientation='horizontal']:h-full data-[orientation='vertical']:w-full"
34
+ class="absolute bg-primary data-[orientation='horizontal']:h-full data-[orientation='vertical']:w-full"
35
35
  />
36
36
  </span>
37
37
  {#each thumbs as thumb (thumb)}
38
38
  <SliderPrimitive.Thumb
39
39
  index={thumb}
40
- class="border-primary bg-background ring-offset-background focus-visible:ring-ring block size-5 rounded-full border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
40
+ class="block size-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
41
41
  />
42
42
  {/each}
43
43
  {/snippet}
@@ -1,6 +1,6 @@
1
- import { Tabs as TabsPrimitive } from "bits-ui";
2
- import Content from "./tabs-content.svelte";
3
- import List from "./tabs-list.svelte";
4
- import Trigger from "./tabs-trigger.svelte";
1
+ import { Tabs as TabsPrimitive } from 'bits-ui';
2
+ import Content from './tabs-content.svelte';
3
+ import List from './tabs-list.svelte';
4
+ import Trigger from './tabs-trigger.svelte';
5
5
  declare const Root: import("svelte").Component<TabsPrimitive.RootProps, {}, "ref" | "value">;
6
6
  export { Root, Content, List, Trigger, Root as Tabs, Content as TabsContent, List as TabsList, Trigger as TabsTrigger, };
@@ -1,7 +1,7 @@
1
- import { Tabs as TabsPrimitive } from "bits-ui";
2
- import Content from "./tabs-content.svelte";
3
- import List from "./tabs-list.svelte";
4
- import Trigger from "./tabs-trigger.svelte";
1
+ import { Tabs as TabsPrimitive } from 'bits-ui';
2
+ import Content from './tabs-content.svelte';
3
+ import List from './tabs-list.svelte';
4
+ import Trigger from './tabs-trigger.svelte';
5
5
  const Root = TabsPrimitive.Root;
6
6
  export { Root, Content, List, Trigger,
7
7
  //
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import { Tabs as TabsPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
2
+ import { Tabs as TabsPrimitive } from 'bits-ui';
3
+ import { cn } from '../../../utils.js';
4
4
 
5
5
  let {
6
6
  ref = $bindable(null),
@@ -12,8 +12,8 @@
12
12
  <TabsPrimitive.Content
13
13
  bind:ref
14
14
  class={cn(
15
- "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
16
- className
15
+ 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',
16
+ className,
17
17
  )}
18
18
  {...restProps}
19
19
  />
@@ -1,4 +1,4 @@
1
- import { Tabs as TabsPrimitive } from "bits-ui";
1
+ import { Tabs as TabsPrimitive } from 'bits-ui';
2
2
  declare const TabsContent: import("svelte").Component<TabsPrimitive.ContentProps, {}, "ref">;
3
3
  type TabsContent = ReturnType<typeof TabsContent>;
4
4
  export default TabsContent;
@@ -1,19 +1,15 @@
1
1
  <script lang="ts">
2
- import { Tabs as TabsPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
2
+ import { Tabs as TabsPrimitive } from 'bits-ui';
3
+ import { cn } from '../../../utils.js';
4
4
 
5
- let {
6
- ref = $bindable(null),
7
- class: className,
8
- ...restProps
9
- }: TabsPrimitive.ListProps = $props();
5
+ let { ref = $bindable(null), class: className, ...restProps }: TabsPrimitive.ListProps = $props();
10
6
  </script>
11
7
 
12
8
  <TabsPrimitive.List
13
9
  bind:ref
14
10
  class={cn(
15
- "bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",
16
- className
11
+ 'inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground',
12
+ className,
17
13
  )}
18
14
  {...restProps}
19
15
  />
@@ -1,4 +1,4 @@
1
- import { Tabs as TabsPrimitive } from "bits-ui";
1
+ import { Tabs as TabsPrimitive } from 'bits-ui';
2
2
  declare const TabsList: import("svelte").Component<TabsPrimitive.ListProps, {}, "ref">;
3
3
  type TabsList = ReturnType<typeof TabsList>;
4
4
  export default TabsList;
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import { Tabs as TabsPrimitive } from "bits-ui";
3
- import { cn } from "../../../utils.js";
2
+ import { Tabs as TabsPrimitive } from 'bits-ui';
3
+ import { cn } from '../../../utils.js';
4
4
 
5
5
  let {
6
6
  ref = $bindable(null),
@@ -12,8 +12,8 @@
12
12
  <TabsPrimitive.Trigger
13
13
  bind:ref
14
14
  class={cn(
15
- "ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",
16
- className
15
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',
16
+ className,
17
17
  )}
18
18
  {...restProps}
19
19
  />
@@ -1,4 +1,4 @@
1
- import { Tabs as TabsPrimitive } from "bits-ui";
1
+ import { Tabs as TabsPrimitive } from 'bits-ui';
2
2
  declare const TabsTrigger: import("svelte").Component<TabsPrimitive.TriggerProps, {}, "ref">;
3
3
  type TabsTrigger = ReturnType<typeof TabsTrigger>;
4
4
  export default TabsTrigger;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peteai/presentation-editor",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run package",
@@ -47,35 +47,35 @@
47
47
  "svelte": "^5.19.7"
48
48
  },
49
49
  "devDependencies": {
50
- "@playwright/test": "^1.54.1",
51
- "@sveltejs/adapter-auto": "^6.0.1",
52
- "@sveltejs/kit": "^2.26.1",
53
- "@sveltejs/package": "^2.4.0",
54
- "@sveltejs/vite-plugin-svelte": "^6.1.0",
50
+ "@playwright/test": "^1.55.1",
51
+ "@sveltejs/adapter-auto": "^6.1.0",
52
+ "@sveltejs/kit": "^2.43.4",
53
+ "@sveltejs/package": "^2.5.4",
54
+ "@sveltejs/vite-plugin-svelte": "^6.2.1",
55
55
  "@types/eslint": "^9.6.1",
56
56
  "@types/uniqid": "^5.3.4",
57
57
  "@types/webfontloader": "^1.6.38",
58
58
  "autoprefixer": "^10.4.21",
59
- "eslint": "^9.32.0",
59
+ "eslint": "^9.36.0",
60
60
  "eslint-config-prettier": "^10.1.8",
61
- "eslint-plugin-svelte": "^3.11.0",
62
- "globals": "^16.3.0",
61
+ "eslint-plugin-svelte": "^3.12.4",
62
+ "globals": "^16.4.0",
63
63
  "postcss-cli": "^11.0.1",
64
64
  "prettier": "^3.6.2",
65
65
  "prettier-plugin-svelte": "^3.4.0",
66
66
  "prettier-plugin-tailwindcss": "^0.6.14",
67
- "publint": "^0.3.12",
68
- "svelte": "^5.37.1",
69
- "svelte-check": "^4.3.0",
67
+ "publint": "^0.3.13",
68
+ "svelte": "^5.39.6",
69
+ "svelte-check": "^4.3.2",
70
70
  "svelte-kit-sst": "^2.43.5",
71
71
  "tailwindcss": "^3.4.17",
72
- "typescript": "^5.8.3",
73
- "typescript-eslint": "^8.38.0",
74
- "vite": "^7.0.6",
72
+ "typescript": "^5.9.2",
73
+ "typescript-eslint": "^8.44.1",
74
+ "vite": "^7.1.7",
75
75
  "vitest": "^3.2.4"
76
76
  },
77
77
  "dependencies": {
78
- "@lucide/svelte": "^0.534.0",
78
+ "@lucide/svelte": "^0.544.0",
79
79
  "@tiptap/core": "^2.14.0",
80
80
  "@tiptap/extension-bold": "^2.14.0",
81
81
  "@tiptap/extension-bullet-list": "^2.14.0",
@@ -92,11 +92,11 @@
92
92
  "@tiptap/extension-text-style": "^2.14.0",
93
93
  "@tiptap/extension-underline": "^2.14.0",
94
94
  "@tiptap/pm": "^2.14.0",
95
- "bits-ui": "^2.8.13",
95
+ "bits-ui": "^2.11.4",
96
96
  "clsx": "^2.1.1",
97
97
  "esm-env": "^1.2.2",
98
- "svelte-dnd-action": "^0.9.64",
99
- "svelte-radix": "^2.0.1",
98
+ "svelte-dnd-action": "^0.9.65",
99
+ "svelte-radix": "^2.0.2",
100
100
  "tailwind-merge": "^3.3.1",
101
101
  "tailwind-variants": "^1.0.0",
102
102
  "tailwindcss-animate": "^1.0.7",