@ims360/svelte-ivory 0.1.15 → 0.2.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.
Files changed (175) hide show
  1. package/README.md +0 -5
  2. package/dist/components/ai/AiMessage.svelte +2 -3
  3. package/dist/components/ai/AiMessage.svelte.d.ts.map +1 -1
  4. package/dist/components/ai/Chat.svelte +2 -3
  5. package/dist/components/ai/Chat.svelte.d.ts.map +1 -1
  6. package/dist/components/ai/Markdown.svelte +4 -7
  7. package/dist/components/ai/Markdown.svelte.d.ts.map +1 -1
  8. package/dist/components/ai/UserMessage.svelte +2 -3
  9. package/dist/components/ai/UserMessage.svelte.d.ts.map +1 -1
  10. package/dist/components/basic/checkbox/Checkbox.svelte +13 -11
  11. package/dist/components/basic/checkbox/Checkbox.svelte.d.ts.map +1 -1
  12. package/dist/components/basic/toggle/Toggle.svelte +5 -8
  13. package/dist/components/basic/toggle/Toggle.svelte.d.ts.map +1 -1
  14. package/dist/components/inputs/CheckboxInput.svelte +39 -0
  15. package/dist/components/inputs/CheckboxInput.svelte.d.ts +12 -0
  16. package/dist/components/inputs/CheckboxInput.svelte.d.ts.map +1 -0
  17. package/dist/components/inputs/ColorInput.svelte +25 -0
  18. package/dist/components/inputs/ColorInput.svelte.d.ts +5 -0
  19. package/dist/components/inputs/ColorInput.svelte.d.ts.map +1 -0
  20. package/dist/components/inputs/DateInput.svelte +11 -0
  21. package/dist/components/inputs/DateInput.svelte.d.ts +5 -0
  22. package/dist/components/inputs/DateInput.svelte.d.ts.map +1 -0
  23. package/dist/components/inputs/EmailInput.svelte +16 -0
  24. package/dist/components/inputs/EmailInput.svelte.d.ts +5 -0
  25. package/dist/components/inputs/EmailInput.svelte.d.ts.map +1 -0
  26. package/dist/components/inputs/FileInput.svelte +131 -0
  27. package/dist/components/inputs/FileInput.svelte.d.ts +11 -0
  28. package/dist/components/inputs/FileInput.svelte.d.ts.map +1 -0
  29. package/dist/components/inputs/Input.svelte +101 -0
  30. package/dist/components/inputs/Input.svelte.d.ts +48 -0
  31. package/dist/components/inputs/Input.svelte.d.ts.map +1 -0
  32. package/dist/components/inputs/NumberInput.svelte +17 -0
  33. package/dist/components/inputs/NumberInput.svelte.d.ts +10 -0
  34. package/dist/components/inputs/NumberInput.svelte.d.ts.map +1 -0
  35. package/dist/components/inputs/PasswordCreateInput.svelte +60 -0
  36. package/dist/components/inputs/PasswordCreateInput.svelte.d.ts +12 -0
  37. package/dist/components/inputs/PasswordCreateInput.svelte.d.ts.map +1 -0
  38. package/dist/components/inputs/PasswordInput.svelte +27 -0
  39. package/dist/components/inputs/PasswordInput.svelte.d.ts +10 -0
  40. package/dist/components/inputs/PasswordInput.svelte.d.ts.map +1 -0
  41. package/dist/components/inputs/TextInput.svelte +16 -0
  42. package/dist/components/inputs/TextInput.svelte.d.ts +7 -0
  43. package/dist/components/inputs/TextInput.svelte.d.ts.map +1 -0
  44. package/dist/components/inputs/ToggleInput.svelte +24 -0
  45. package/dist/components/inputs/ToggleInput.svelte.d.ts +5 -0
  46. package/dist/components/inputs/ToggleInput.svelte.d.ts.map +1 -0
  47. package/dist/components/inputs/index.d.ts +13 -0
  48. package/dist/components/inputs/index.d.ts.map +1 -1
  49. package/dist/components/inputs/index.js +13 -0
  50. package/dist/components/inputs/issues/FormIssues.svelte +35 -0
  51. package/dist/components/inputs/issues/FormIssues.svelte.d.ts +10 -0
  52. package/dist/components/inputs/issues/FormIssues.svelte.d.ts.map +1 -0
  53. package/dist/components/inputs/select/Select.svelte +69 -0
  54. package/dist/components/inputs/select/Select.svelte.d.ts +15 -0
  55. package/dist/components/inputs/select/Select.svelte.d.ts.map +1 -0
  56. package/dist/components/inputs/select/SelectOption.svelte +34 -0
  57. package/dist/components/inputs/select/SelectOption.svelte.d.ts +11 -0
  58. package/dist/components/inputs/select/SelectOption.svelte.d.ts.map +1 -0
  59. package/dist/components/layout/Heading.svelte +5 -4
  60. package/dist/components/layout/Heading.svelte.d.ts.map +1 -1
  61. package/dist/components/layout/dialog/Dialog.svelte +5 -8
  62. package/dist/components/layout/dialog/Dialog.svelte.d.ts.map +1 -1
  63. package/dist/components/layout/drawer/Drawer.svelte +7 -10
  64. package/dist/components/layout/drawer/Drawer.svelte.d.ts.map +1 -1
  65. package/dist/components/layout/index.d.ts +1 -2
  66. package/dist/components/layout/index.d.ts.map +1 -1
  67. package/dist/components/layout/index.js +0 -1
  68. package/dist/components/layout/modal/Modal.svelte +10 -15
  69. package/dist/components/layout/modal/Modal.svelte.d.ts.map +1 -1
  70. package/dist/components/layout/popover/Popover.svelte +10 -13
  71. package/dist/components/layout/popover/Popover.svelte.d.ts.map +1 -1
  72. package/dist/components/layout/tabs/Tab.svelte +5 -8
  73. package/dist/components/layout/tabs/Tab.svelte.d.ts.map +1 -1
  74. package/dist/components/layout/tooltip/Tooltip.svelte +4 -7
  75. package/dist/components/layout/tooltip/Tooltip.svelte.d.ts.map +1 -1
  76. package/dist/components/table/Column.svelte +7 -10
  77. package/dist/components/table/Column.svelte.d.ts.map +1 -1
  78. package/dist/components/table/ColumnHead.svelte +2 -2
  79. package/dist/components/table/Table.svelte +5 -8
  80. package/dist/components/table/Table.svelte.d.ts.map +1 -1
  81. package/dist/components/table/VirtualList.svelte +3 -8
  82. package/dist/components/table/VirtualList.svelte.d.ts.map +1 -1
  83. package/dist/theme.svelte.d.ts +18 -0
  84. package/dist/theme.svelte.d.ts.map +1 -1
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/utils/{actions → attachments}/clickOutside.d.ts +2 -4
  87. package/dist/utils/attachments/clickOutside.d.ts.map +1 -0
  88. package/dist/utils/{actions → attachments}/clickOutside.js +4 -7
  89. package/dist/utils/attachments/focusTrap.d.ts +3 -0
  90. package/dist/utils/attachments/focusTrap.d.ts.map +1 -0
  91. package/dist/utils/{actions → attachments}/focusTrap.js +5 -14
  92. package/dist/utils/{actions → attachments}/index.d.ts +0 -1
  93. package/dist/utils/attachments/index.d.ts.map +1 -0
  94. package/dist/utils/{actions → attachments}/index.js +0 -1
  95. package/dist/utils/attachments/resize.d.ts +6 -0
  96. package/dist/utils/attachments/resize.d.ts.map +1 -0
  97. package/dist/utils/{actions → attachments}/resize.js +3 -5
  98. package/dist/utils/attachments/shortcut.svelte.d.ts.map +1 -0
  99. package/dist/utils/attachments/visible.d.ts +6 -0
  100. package/dist/utils/attachments/visible.d.ts.map +1 -0
  101. package/dist/utils/attachments/visible.js +12 -0
  102. package/dist/utils/merge.d.ts +4 -0
  103. package/dist/utils/merge.d.ts.map +1 -0
  104. package/dist/utils/merge.js +6 -0
  105. package/package.json +7 -5
  106. package/src/lib/components/ai/AiMessage.svelte +2 -3
  107. package/src/lib/components/ai/Chat.svelte +2 -3
  108. package/src/lib/components/ai/Markdown.svelte +4 -7
  109. package/src/lib/components/ai/UserMessage.svelte +2 -3
  110. package/src/lib/components/basic/checkbox/Checkbox.svelte +13 -11
  111. package/src/lib/components/basic/toggle/Toggle.svelte +5 -8
  112. package/src/lib/components/inputs/CheckboxInput.svelte +39 -0
  113. package/src/lib/components/inputs/ColorInput.svelte +25 -0
  114. package/src/lib/components/inputs/DateInput.svelte +11 -0
  115. package/src/lib/components/inputs/EmailInput.svelte +16 -0
  116. package/src/lib/components/inputs/FileInput.svelte +131 -0
  117. package/src/lib/components/inputs/Input.svelte +101 -0
  118. package/src/lib/components/inputs/NumberInput.svelte +17 -0
  119. package/src/lib/components/inputs/PasswordCreateInput.svelte +60 -0
  120. package/src/lib/components/inputs/PasswordInput.svelte +27 -0
  121. package/src/lib/components/inputs/TextInput.svelte +16 -0
  122. package/src/lib/components/inputs/ToggleInput.svelte +24 -0
  123. package/src/lib/components/inputs/index.ts +17 -0
  124. package/src/lib/components/inputs/issues/FormIssues.svelte +35 -0
  125. package/src/lib/components/inputs/select/Select.svelte +69 -0
  126. package/src/lib/components/inputs/select/SelectOption.svelte +34 -0
  127. package/src/lib/components/layout/Heading.svelte +5 -4
  128. package/src/lib/components/layout/dialog/Dialog.svelte +5 -8
  129. package/src/lib/components/layout/drawer/Drawer.svelte +7 -10
  130. package/src/lib/components/layout/index.ts +1 -5
  131. package/src/lib/components/layout/modal/Modal.svelte +10 -15
  132. package/src/lib/components/layout/popover/Popover.svelte +10 -13
  133. package/src/lib/components/layout/tabs/Tab.svelte +5 -8
  134. package/src/lib/components/layout/tooltip/Tooltip.svelte +4 -7
  135. package/src/lib/components/table/Column.svelte +7 -10
  136. package/src/lib/components/table/ColumnHead.svelte +2 -2
  137. package/src/lib/components/table/Table.svelte +5 -8
  138. package/src/lib/components/table/VirtualList.svelte +3 -8
  139. package/src/lib/theme.svelte.ts +18 -0
  140. package/src/lib/types.ts +3 -2
  141. package/src/lib/utils/attachments/clickOutside.ts +36 -0
  142. package/src/lib/utils/attachments/focusTrap.ts +67 -0
  143. package/src/lib/utils/{actions → attachments}/index.ts +0 -1
  144. package/src/lib/utils/attachments/resize.ts +38 -0
  145. package/src/lib/utils/attachments/visible.ts +22 -0
  146. package/src/lib/utils/merge.ts +7 -0
  147. package/dist/components/layout/portal/Portal.svelte +0 -39
  148. package/dist/components/layout/portal/Portal.svelte.d.ts +0 -21
  149. package/dist/components/layout/portal/Portal.svelte.d.ts.map +0 -1
  150. package/dist/components/layout/portal/index.d.ts +0 -6
  151. package/dist/components/layout/portal/index.d.ts.map +0 -1
  152. package/dist/components/layout/portal/index.js +0 -5
  153. package/dist/utils/actions/clickOutside.d.ts.map +0 -1
  154. package/dist/utils/actions/focusTrap.d.ts +0 -5
  155. package/dist/utils/actions/focusTrap.d.ts.map +0 -1
  156. package/dist/utils/actions/index.d.ts.map +0 -1
  157. package/dist/utils/actions/portal.d.ts +0 -10
  158. package/dist/utils/actions/portal.d.ts.map +0 -1
  159. package/dist/utils/actions/portal.js +0 -39
  160. package/dist/utils/actions/resize.d.ts +0 -6
  161. package/dist/utils/actions/resize.d.ts.map +0 -1
  162. package/dist/utils/actions/shortcut.svelte.d.ts.map +0 -1
  163. package/dist/utils/actions/visible.d.ts +0 -6
  164. package/dist/utils/actions/visible.d.ts.map +0 -1
  165. package/dist/utils/actions/visible.js +0 -14
  166. package/src/lib/components/layout/portal/Portal.svelte +0 -39
  167. package/src/lib/components/layout/portal/index.ts +0 -7
  168. package/src/lib/utils/actions/clickOutside.ts +0 -38
  169. package/src/lib/utils/actions/focusTrap.ts +0 -65
  170. package/src/lib/utils/actions/portal.ts +0 -43
  171. package/src/lib/utils/actions/resize.ts +0 -35
  172. package/src/lib/utils/actions/visible.ts +0 -28
  173. /package/dist/utils/{actions → attachments}/shortcut.svelte.d.ts +0 -0
  174. /package/dist/utils/{actions → attachments}/shortcut.svelte.js +0 -0
  175. /package/src/lib/utils/{actions → attachments}/shortcut.svelte.ts +0 -0
@@ -3,6 +3,5 @@ export { default as Heading } from './Heading.svelte';
3
3
  export { default as HiddenBackground } from './hiddenBackground/HiddenBackground.svelte';
4
4
  export { default as Modal } from './modal/Modal.svelte';
5
5
  export { default as Popover } from './popover/Popover.svelte';
6
- export { default as Portal } from './portal';
7
6
  export { getTabContext, Tab, TabPanel, Tabs } from './tabs';
8
7
  export { default as Tooltip } from './tooltip/Tooltip.svelte';
@@ -1,12 +1,11 @@
1
1
  <script lang="ts" module>
2
2
  import { theme } from '../../../theme.svelte';
3
3
  import type { TransitionProps } from '../../../types';
4
+ import { merge } from '../../../utils/merge';
4
5
  import { X } from '@lucide/svelte';
5
- import clsx from 'clsx';
6
6
  import { type Snippet } from 'svelte';
7
7
  import type { ClassValue, MouseEventHandler } from 'svelte/elements';
8
8
  import { fade } from 'svelte/transition';
9
- import { twMerge } from 'tailwind-merge';
10
9
  import { Heading, HiddenBackground } from '..';
11
10
 
12
11
  /** Props for the modal, expose if you overwrite the defaults in a custom component */
@@ -95,13 +94,11 @@
95
94
  </div>
96
95
  {:else}
97
96
  <div
98
- class={twMerge(
99
- clsx([
100
- 'bg-surface-50-950 relative flex max-h-full max-w-full flex-col overflow-hidden rounded',
101
- theme.current.modal?.class,
102
- clazz
103
- ])
104
- )}
97
+ class={merge([
98
+ 'bg-surface-50-950 flex max-h-full max-w-full flex-col overflow-hidden rounded',
99
+ theme.current.modal?.class,
100
+ clazz
101
+ ])}
105
102
  {...rest}
106
103
  {onclick}
107
104
  in:inTransition|global
@@ -131,12 +128,10 @@
131
128
  </button>
132
129
  </div>
133
130
  <div
134
- class={twMerge(
135
- clsx(
136
- 'flex grow flex-col gap-4 overflow-hidden bg-inherit p-4 pt-3',
137
- theme.current.modal?.innerClass,
138
- innerClass
139
- )
131
+ class={merge(
132
+ 'flex grow flex-col gap-4 overflow-hidden bg-inherit p-4 pt-3',
133
+ theme.current.modal?.innerClass,
134
+ innerClass
140
135
  )}
141
136
  >
142
137
  {@render children?.()}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/modal/Modal.svelte.ts"],"names":[],"mappings":"AAII,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKrE,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG;IACvC,iEAAiE;IACjE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;SAIK;IACL,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpE,UAAU,KAAM,SAAQ,UAAU;IAC9B,sGAAsG;IACtG,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAoGL,oFAAoF;AACpF,QAAA,MAAM,KAAK;;;;;MAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/modal/Modal.svelte.ts"],"names":[],"mappings":"AAII,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIrE,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG;IACvC,iEAAiE;IACjE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;SAIK;IACL,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpE,UAAU,KAAM,SAAQ,UAAU;IAC9B,sGAAsG;IACtG,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAgGL,oFAAoF;AACpF,QAAA,MAAM,KAAK;;;;;MAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -2,6 +2,7 @@
2
2
  import { browser } from '$app/environment';
3
3
  import { theme } from '../../../theme.svelte';
4
4
  import type { IvoryComponent } from '../../../types';
5
+ import { clickOutside } from '../../../utils/attachments';
5
6
  import {
6
7
  autoPlacement,
7
8
  autoUpdate,
@@ -12,8 +13,6 @@
12
13
  } from '@floating-ui/dom';
13
14
  import clsx from 'clsx';
14
15
  import { twMerge } from 'tailwind-merge';
15
- import { clickOutside } from '../../../utils/actions/clickOutside';
16
- import { Dialog } from '../dialog';
17
16
 
18
17
  /** Possible placements for the popover */
19
18
  export type PopoverPlacement = ComputePositionConfig['placement'];
@@ -99,15 +98,13 @@
99
98
  A popover, positions itself relative to a target element.
100
99
  -->
101
100
  {#if currentlyOpen}
102
- <Dialog>
103
- <div
104
- class={twMerge(clsx('absolute', theme.current.popover?.class, clazz))}
105
- style={style + ' ' + externalStyle}
106
- bind:this={popover}
107
- use:clickOutside={{ callback: onClickOutside, target }}
108
- {...rest}
109
- >
110
- {@render children?.()}
111
- </div>
112
- </Dialog>
101
+ <div
102
+ class={twMerge(clsx('absolute', theme.current.popover?.class, clazz))}
103
+ style={style + ' ' + externalStyle}
104
+ bind:this={popover}
105
+ {@attach clickOutside({ callback: onClickOutside, target })}
106
+ {...rest}
107
+ >
108
+ {@render children?.()}
109
+ </div>
113
110
  {/if}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/popover/Popover.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAMH,KAAK,qBAAqB,EAC7B,MAAM,kBAAkB,CAAC;AAM1B,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAElE,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,6DAA6D;IAC7D,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAqEL,gEAAgE;AAChE,QAAA,MAAM,OAAO;;;;;MAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Popover.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/popover/Popover.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAMH,KAAK,qBAAqB,EAC7B,MAAM,kBAAkB,CAAC;AAI1B,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAElE,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,6DAA6D;IAC7D,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmEL,gEAAgE;AAChE,QAAA,MAAM,OAAO;;;;;MAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -3,10 +3,9 @@
3
3
  import { theme } from '../../../theme.svelte';
4
4
  import type { IvoryComponent } from '../../../types';
5
5
  import { pseudoRandomId } from '../../../utils/functions/index';
6
- import clsx from 'clsx';
6
+ import { merge } from '../../../utils/merge';
7
7
  import { onMount, type Snippet } from 'svelte';
8
8
  import type { ClassValue } from 'svelte/elements';
9
- import { twMerge } from 'tailwind-merge';
10
9
  import { getTabContext } from './Tabs.svelte';
11
10
 
12
11
  export interface TabProps extends Omit<IvoryComponent<HTMLElement>, 'children'> {
@@ -52,12 +51,10 @@
52
51
 
53
52
  <svelte:element
54
53
  this={href ? 'a' : 'button'}
55
- class={twMerge(
56
- clsx(
57
- 'btn flex h-fit w-fit shrink-0 items-center justify-center px-0 text-xl font-bold select-none',
58
- theme.current.tabs?.tab?.class?.(selected),
59
- typeof clazz === 'function' ? clazz(selected) : clazz
60
- )
54
+ class={merge(
55
+ 'btn flex h-fit w-fit shrink-0 items-center justify-center px-0 text-xl font-bold select-none',
56
+ theme.current.tabs?.tab?.class?.(selected),
57
+ typeof clazz === 'function' ? clazz(selected) : clazz
61
58
  )}
62
59
  onclick={href
63
60
  ? undefined
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/tabs/Tab.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC3E,KAAK,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3C,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAgDL,QAAA,MAAM,GAAG,8CAAwC,CAAC;AAClD,KAAK,GAAG,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;AAClC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Tab.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/tabs/Tab.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC3E,KAAK,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3C,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AA8CL,QAAA,MAAM,GAAG,8CAAwC,CAAC;AAClD,KAAK,GAAG,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;AAClC,eAAe,GAAG,CAAC"}
@@ -1,8 +1,7 @@
1
1
  <script lang="ts" module>
2
- import clsx from 'clsx';
2
+ import { merge } from '../../../utils/merge';
3
3
  import type { Snippet } from 'svelte';
4
4
  import type { ClassValue, MouseEventHandler } from 'svelte/elements';
5
- import { twMerge } from 'tailwind-merge';
6
5
  import Popover, { type PopoverPlacement } from '../popover/Popover.svelte';
7
6
 
8
7
  export interface TooltipProps {
@@ -84,11 +83,9 @@
84
83
  bind:this={popover}
85
84
  {target}
86
85
  {placement}
87
- class={twMerge(
88
- clsx(
89
- 'bg-surface-50-950 max-w-96 -translate-y-0.5 rounded px-4 py-1 shadow-lg',
90
- tooltipClass
91
- )
86
+ class={merge(
87
+ 'bg-surface-50-950 max-w-96 -translate-y-0.5 rounded px-4 py-1 shadow-lg',
88
+ tooltipClass
92
89
  )}
93
90
  >
94
91
  {#if typeof tooltip === 'string'}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/tooltip/Tooltip.svelte.ts"],"names":[],"mappings":"AAII,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAyDL,kEAAkE;AAClE,QAAA,MAAM,OAAO,kDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Tooltip.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/layout/tooltip/Tooltip.svelte.ts"],"names":[],"mappings":"AAII,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAuDL,kEAAkE;AAClE,QAAA,MAAM,OAAO,kDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -1,9 +1,8 @@
1
1
  <script lang="ts" module>
2
2
  import { theme } from '../../theme.svelte';
3
- import clsx from 'clsx';
3
+ import { merge } from '../../utils/merge';
4
4
  import { type Snippet } from 'svelte';
5
5
  import type { ClassValue } from 'svelte/elements';
6
- import { twMerge } from 'tailwind-merge';
7
6
  import type { ColumnConfig } from './columnController.svelte';
8
7
  import { getRowContext } from './Row.svelte';
9
8
  import { getTableContext } from './Table.svelte';
@@ -67,14 +66,12 @@
67
66
  href={!allowClicking ? rowContext.href : undefined}
68
67
  type={allowClicking ? 'button' : undefined}
69
68
  style={ignoreWidth ? '' : `width: ${widthStyle}`}
70
- class={twMerge(
71
- clsx([
72
- 'box-border flex h-full shrink-0 flex-row items-center justify-start gap-1 truncate',
73
- column.width !== 0 && 'border-r-[calc(var(--spacing)*2)] border-transparent',
74
- theme.current.table?.column?.class,
75
- clazz
76
- ])
77
- )}
69
+ class={merge([
70
+ 'box-border flex h-full shrink-0 flex-row items-center justify-start gap-1 truncate',
71
+ column.width !== 0 && 'border-r-[calc(var(--spacing)*2)] border-transparent',
72
+ theme.current.table?.column?.class,
73
+ clazz
74
+ ])}
78
75
  >
79
76
  {@render children()}
80
77
  </svelte:element>
@@ -1 +1 @@
1
- {"version":3,"file":"Column.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Column.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA2DL,QAAA,MAAM,MAAM,iDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Column.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Column.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAyDL,QAAA,MAAM,MAAM,iDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" module>
2
2
  import { getContext, setContext, type Snippet } from 'svelte';
3
- import { resize } from '../../utils/actions';
3
+ import { resize } from '../../utils/attachments';
4
4
  import type { ColumnController } from './columnController.svelte';
5
5
 
6
6
  const CONTEXT = {};
@@ -53,12 +53,12 @@
53
53
  {@render children?.()}
54
54
  {#if column.resizable}
55
55
  <button
56
+ {@attach resize({ resized: onResize, dragging: onDragging })}
56
57
  type="button"
57
58
  class={[
58
59
  'relative ml-auto h-full w-4 shrink-0 cursor-col-resize bg-inherit after:absolute after:top-0 after:right-2 after:h-full after:w-px',
59
60
  dragging ? 'after:bg-primary-400-600' : 'group-hover:after:bg-surface-300-700'
60
61
  ]}
61
- use:resize={{ resized: onResize, dragging: onDragging }}
62
62
  onmouseenter={onHoverStart}
63
63
  onmouseleave={onHoverEnd}
64
64
  onfocusin={onHoverStart}
@@ -1,10 +1,9 @@
1
1
  <script lang="ts" module>
2
+ import { merge } from '../../utils/merge';
2
3
  import { ChevronRight } from '@lucide/svelte';
3
- import clsx from 'clsx';
4
4
  import { getContext, setContext, untrack, type Snippet } from 'svelte';
5
5
  import type { ClassValue } from 'svelte/elements';
6
6
  import { SvelteSet } from 'svelte/reactivity';
7
- import { twMerge } from 'tailwind-merge';
8
7
  import ColumnComponent from './Column.svelte';
9
8
  import { ColumnController, type ColumnConfig } from './columnController.svelte';
10
9
  import ColumnHead from './ColumnHead.svelte';
@@ -200,17 +199,15 @@
200
199
  bind:this={list}
201
200
  bind:b_scrollTop
202
201
  data={results.entries}
203
- class={twMerge(clsx(['flex flex-col overflow-hidden border-transparent', clazz]))}
202
+ class={merge(['flex flex-col overflow-hidden border-transparent', clazz])}
204
203
  rowClass={['pl-2 pr-4', rowClass]}
205
204
  {rowHeight}
206
205
  >
207
206
  {#snippet header()}
208
207
  <div
209
- class={twMerge(
210
- clsx(
211
- 'flex w-fit min-w-full flex-row border-b border-inherit pr-4 pl-2',
212
- headerClass
213
- )
208
+ class={merge(
209
+ 'flex w-fit min-w-full flex-row border-b border-inherit pr-4 pl-2',
210
+ headerClass
214
211
  )}
215
212
  >
216
213
  {#if results.someHaveChildren}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"AAKI,OAAO,EAAmC,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKzD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,MAAM,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;KAChC,CAAC;IACF;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,IAAI;IAC9C,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,gBAAgB,CAAC;IACpE,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5D,CAAC;AAMF,wBAAgB,eAAe,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAExE;AAIH,iBAAS,QAAQ,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;WAyLZ,UAAU,CAAC,CAAC,CAAC;aAAwB;QAAE,eAAe,OA3HjD,MAAM,UA2HoE;QAAA,QAAQ,SAtDvF,MAAM,SAAS,MAAM,UAsDmF;KAAE;;;;EAAuF;AAC9N,cAAM,iBAAiB,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;IACzC,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;8BAjIuB,MAAM;yBAqEX,MAAM,SAAS,MAAM;;CA6DjD;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAChZ,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/I,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,KAAK,EAAE,qBAAmC,CAAC;AAC/B,KAAK,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Table.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/Table.svelte.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  <script lang="ts" generics="T extends { id: string }">
2
- import clsx from 'clsx';
2
+ import { merge } from '../../utils/merge';
3
3
  import { onMount, tick, untrack, type Snippet } from 'svelte';
4
4
  import type { ClassValue } from 'svelte/elements';
5
- import { twMerge } from 'tailwind-merge';
6
5
 
7
6
  type Props<T> = {
8
7
  class?: ClassValue;
@@ -27,7 +26,7 @@
27
26
  }: Props<T> = $props();
28
27
 
29
28
  const finalRowClass = $derived(
30
- twMerge(clsx(['flex w-full shrink-0 grow flex-row items-center overflow-hidden', rowClass]))
29
+ merge(['flex w-full shrink-0 grow flex-row items-center overflow-hidden', rowClass])
31
30
  );
32
31
 
33
32
  let viewportReactivity = $state(0);
@@ -93,11 +92,7 @@
93
92
  });
94
93
  </script>
95
94
 
96
- <div
97
- class={twMerge(
98
- clsx(['scroll relative flex grow flex-col overflow-hidden border-inherit', clazz])
99
- )}
100
- >
95
+ <div class={merge(['scroll relative flex grow flex-col overflow-hidden border-inherit', clazz])}>
101
96
  {#if header}
102
97
  <div class="h-fit w-full border-inherit">
103
98
  <div
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI9C,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAAC,iBAAS,QAAQ,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;WAkHpB,KAAK,CAAC,CAAC,CAAC;aAAwB;QAAE,QAAQ,SApF1C,MAAM,SAAS,MAAM,UAoFsC;KAAE;;;;EAA0E;AACpK,cAAM,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC5C,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;yBA1FkB,MAAM,SAAS,MAAM;;CA2FjD;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACnZ,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClJ,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,WAAW,EAAE,qBAAmC,CAAC;AACrC,KAAK,WAAW,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"VirtualList.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/table/VirtualList.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9C,KAAK,KAAK,CAAC,CAAC,IAAI;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAAC,iBAAS,QAAQ,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;WA+GpB,KAAK,CAAC,CAAC,CAAC;aAAwB;QAAE,QAAQ,SAlF1C,MAAM,SAAS,MAAM,UAkFsC;KAAE;;;;EAA0E;AACpK,cAAM,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC5C,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;yBAxFkB,MAAM,SAAS,MAAM;;CAyFjD;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACnZ,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClJ,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,WAAW,EAAE,qBAAmC,CAAC;AACrC,KAAK,WAAW,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,eAAe,WAAW,CAAC"}
@@ -1,5 +1,9 @@
1
+ import type { RemoteFormIssue } from '@sveltejs/kit';
1
2
  import type { ClassValue } from 'svelte/elements';
2
3
  export interface Theme {
4
+ checkbox?: {
5
+ class?: (checked: boolean, partial: boolean) => ClassValue;
6
+ };
3
7
  heading?: {
4
8
  class?: ClassValue;
5
9
  };
@@ -26,6 +30,20 @@ export interface Theme {
26
30
  popover?: {
27
31
  class?: ClassValue;
28
32
  };
33
+ input?: {
34
+ outerClass?: ClassValue;
35
+ class?: (value: boolean, issues?: boolean) => ClassValue;
36
+ label?: {
37
+ class?: (value: boolean, issues?: boolean) => ClassValue;
38
+ };
39
+ issues?: {
40
+ issue?: {
41
+ label?: (issue: RemoteFormIssue) => string;
42
+ class?: ClassValue;
43
+ };
44
+ class?: ClassValue;
45
+ };
46
+ };
29
47
  }
30
48
  export declare const theme: {
31
49
  setTheme(newTheme: Theme): void;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.svelte.d.ts","sourceRoot":"","sources":["../src/lib/theme.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,KAAK;IAClB,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,gBAAgB,CAAC,EAAE;QACf,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACH,GAAG,CAAC,EAAE;YACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,UAAU,CAAC;SAC3C,CAAC;KACL,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE;YACL,KAAK,CAAC,EAAE,UAAU,CAAC;SACtB,CAAC;KACL,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,UAAU,CAAC,EAAE,UAAU,CAAC;KAC3B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;CACL;AAkBD,eAAO,MAAM,KAAK;uBAZS,KAAK;aAGF,KAAK;CASD,CAAC"}
1
+ {"version":3,"file":"theme.svelte.d.ts","sourceRoot":"","sources":["../src/lib/theme.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC;KAC9D,CAAC;IACF,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,gBAAgB,CAAC,EAAE;QACf,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACH,GAAG,CAAC,EAAE;YACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,UAAU,CAAC;SAC3C,CAAC;KACL,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE;YACL,KAAK,CAAC,EAAE,UAAU,CAAC;SACtB,CAAC;KACL,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,UAAU,CAAC,EAAE,UAAU,CAAC;KAC3B,CAAC;IACF,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,UAAU,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC;QACzD,KAAK,CAAC,EAAE;YACJ,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC;SAC5D,CAAC;QACF,MAAM,CAAC,EAAE;YACL,KAAK,CAAC,EAAE;gBACJ,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;gBAC3C,KAAK,CAAC,EAAE,UAAU,CAAC;aACtB,CAAC;YACF,KAAK,CAAC,EAAE,UAAU,CAAC;SACtB,CAAC;KACL,CAAC;CACL;AAkBD,eAAO,MAAM,KAAK;uBAZS,KAAK;aAGF,KAAK;CASD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,cAAc,CAAC,WAAW,SAAS,WAAW,CAC3D,SAAQ,cAAc,CAAC,WAAW,CAAC;CAAG;AAE1C,MAAM,WAAW,eAAe;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC;CACvD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,cAAc,CAC3B,WAAW,SAAS,WAAW,CACjC,SAAQ,cAAc,CAAC,WAAW,CAAC;CAAG;AAExC,MAAM,WAAW,eAAe;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC;IACnD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC;CACvD"}
@@ -1,12 +1,10 @@
1
+ import type { Attachment } from 'svelte/attachments';
1
2
  interface ClickOutsideParams {
2
3
  /** Callback to be called when clicking outside of node */
3
4
  callback: (e: MouseEvent) => void;
4
5
  /** Callback is also not fired if the click target is inside this element */
5
6
  target?: Element;
6
7
  }
7
- /** Dispatch event on click outside of node */
8
- export declare function clickOutside(node: Element, params: ((e: MouseEvent) => void) | ClickOutsideParams): {
9
- destroy(): void;
10
- };
8
+ export declare const clickOutside: (params: ((e: MouseEvent) => void) | ClickOutsideParams) => Attachment;
11
9
  export {};
12
10
  //# sourceMappingURL=clickOutside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickOutside.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/attachments/clickOutside.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,UAAU,kBAAkB;IACxB,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,GACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,kBAAkB,KAAG,UAyBzD,CAAC"}
@@ -1,5 +1,4 @@
1
- /** Dispatch event on click outside of node */
2
- export function clickOutside(node, params) {
1
+ export const clickOutside = (params) => (node) => {
3
2
  function handleClick(event) {
4
3
  if (!(event.target instanceof Node) ||
5
4
  !node ||
@@ -15,9 +14,7 @@ export function clickOutside(node, params) {
15
14
  params.callback(event);
16
15
  }
17
16
  document.addEventListener('click', handleClick, true);
18
- return {
19
- destroy() {
20
- document.removeEventListener('click', handleClick, true);
21
- }
17
+ return () => {
18
+ document.removeEventListener('click', handleClick, true);
22
19
  };
23
- }
20
+ };
@@ -0,0 +1,3 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ export declare const focusTrap: (enabled: boolean) => Attachment;
3
+ //# sourceMappingURL=focusTrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusTrap.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/attachments/focusTrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,SAAS,GACjB,SAAS,OAAO,KAAG,UA+DnB,CAAC"}
@@ -1,4 +1,4 @@
1
- export function focusTrap(node, enabled) {
1
+ export const focusTrap = (enabled) => (node) => {
2
2
  const elementWhitelist = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])';
3
3
  let firstElement;
4
4
  let lastElement;
@@ -48,17 +48,8 @@ export function focusTrap(node, enabled) {
48
48
  const observer = new MutationObserver(onObservationChange);
49
49
  observer.observe(node, { childList: true, subtree: true });
50
50
  // Lifecycle
51
- return {
52
- update(newArgs) {
53
- enabled = newArgs;
54
- if (newArgs)
55
- scanElements(false);
56
- else
57
- cleanUp();
58
- },
59
- destroy() {
60
- cleanUp();
61
- observer.disconnect();
62
- }
51
+ return () => {
52
+ cleanUp();
53
+ observer.disconnect();
63
54
  };
64
- }
55
+ };
@@ -1,6 +1,5 @@
1
1
  export { clickOutside } from './clickOutside';
2
2
  export { focusTrap } from './focusTrap';
3
- export { portal } from './portal';
4
3
  export { resize } from './resize';
5
4
  export { shortcut } from './shortcut.svelte';
6
5
  export { onFirstVisible } from './visible';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/attachments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +1,5 @@
1
1
  export { clickOutside } from './clickOutside';
2
2
  export { focusTrap } from './focusTrap';
3
- export { portal } from './portal';
4
3
  export { resize } from './resize';
5
4
  export { shortcut } from './shortcut.svelte';
6
5
  export { onFirstVisible } from './visible';
@@ -0,0 +1,6 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ export declare const resize: ({ resized, dragging }: {
3
+ resized: (mouseX: number) => void;
4
+ dragging: (dragging: boolean) => void;
5
+ }) => Attachment;
6
+ //# sourceMappingURL=resize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/attachments/resize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,MAAM,GACd,uBAGE;IACC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC,KAAG,UA4BH,CAAC"}
@@ -1,4 +1,4 @@
1
- export const resize = (node, { resized, dragging }) => {
1
+ export const resize = ({ resized, dragging }) => (node) => {
2
2
  const onResize = (e) => {
3
3
  resized(e.clientX);
4
4
  };
@@ -17,9 +17,7 @@ export const resize = (node, { resized, dragging }) => {
17
17
  document.getElementsByTagName('html')[0].style.userSelect = 'none';
18
18
  };
19
19
  node.addEventListener('pointerdown', onResizeStart);
20
- return {
21
- destroy() {
22
- node.removeEventListener('pointerdown', onResizeStart);
23
- }
20
+ return () => {
21
+ node.removeEventListener('pointerdown', onResizeStart);
24
22
  };
25
23
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcut.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/attachments/shortcut.svelte.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AA4CD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAQ3D"}
@@ -0,0 +1,6 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ export declare const onFirstVisible: (params: {
3
+ callback: () => void;
4
+ options?: Partial<IntersectionObserverInit>;
5
+ }) => Attachment;
6
+ //# sourceMappingURL=visible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visible.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/attachments/visible.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,cAAc,GACtB,QAAQ;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAA;CAAE,KAAG,UAkBhF,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const onFirstVisible = (params) => (node) => {
2
+ const observer = new IntersectionObserver((e) => {
3
+ if (!e[0].isIntersecting) {
4
+ return;
5
+ }
6
+ params.callback();
7
+ }, { root: null, threshold: 1, ...params.options });
8
+ observer.observe(node);
9
+ return () => {
10
+ observer.disconnect();
11
+ };
12
+ };
@@ -0,0 +1,4 @@
1
+ import { type ClassArray } from 'clsx';
2
+ /** `twMerge(clsx(classes))` */
3
+ export declare const merge: (...classes: ClassArray) => string;
4
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/lib/utils/merge.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,+BAA+B;AAC/B,eAAO,MAAM,KAAK,GAAI,GAAG,SAAS,UAAU,WAE3C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import clsx, {} from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+ /** `twMerge(clsx(classes))` */
4
+ export const merge = (...classes) => {
5
+ return twMerge(clsx(classes));
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ims360/svelte-ivory",
3
- "version": "0.1.15",
3
+ "version": "0.2.1",
4
4
  "keywords": [
5
5
  "svelte"
6
6
  ],
@@ -38,9 +38,9 @@
38
38
  "types": "./dist/components/inputs/index.d.ts",
39
39
  "svelte": "./dist/components/inputs/index.js"
40
40
  },
41
- "./utils/actions": {
42
- "types": "./dist/utils/actions/index.d.ts",
43
- "svelte": "./dist/utils/actions/index.js"
41
+ "./utils/attachments": {
42
+ "types": "./dist/utils/attachments/index.d.ts",
43
+ "svelte": "./dist/utils/attachments/index.js"
44
44
  },
45
45
  "./utils/functions": {
46
46
  "types": "./dist/utils/functions/index.d.ts",
@@ -73,6 +73,7 @@
73
73
  "dependencies": {
74
74
  "@floating-ui/dom": "^1.7.4",
75
75
  "@lucide/svelte": "^0.553.0",
76
+ "@oddbird/css-anchor-positioning": "^0.8.0",
76
77
  "@tailwindcss/forms": "^0.5.10",
77
78
  "@tailwindcss/typography": "^0.5.19",
78
79
  "@tailwindcss/vite": "^4.1.17",
@@ -108,7 +109,8 @@
108
109
  "typescript": "^5.9.3",
109
110
  "typescript-eslint": "^8.46.4",
110
111
  "vite": "^7.2.2",
111
- "vitest": "^4.0.8"
112
+ "vitest": "^4.0.8",
113
+ "zod": "^4.1.13"
112
114
  },
113
115
  "peerDependencies": {
114
116
  "@skeletonlabs/skeleton": "^3.1.1",