lithesome 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/{internal/actions/clickOutside.d.ts → actions/outside.d.ts} +5 -1
  2. package/dist/{internal/actions/clickOutside.js → actions/outside.js} +8 -5
  3. package/dist/{internal/actions → actions}/portal.d.ts +2 -2
  4. package/dist/{internal/actions → actions}/portal.js +4 -3
  5. package/dist/{internal/actions/focusTrap.d.ts → actions/trap.d.ts} +1 -1
  6. package/dist/{internal/actions/focusTrap.js → actions/trap.js} +1 -1
  7. package/dist/components/Accordion/AccordionButton.svelte.d.ts +1 -12
  8. package/dist/components/Accordion/types.d.ts +6 -6
  9. package/dist/components/Checkbox/Checkbox.svelte +1 -6
  10. package/dist/components/Checkbox/Checkbox.svelte.d.ts +5 -448
  11. package/dist/components/Checkbox/types.d.ts +3 -3
  12. package/dist/components/Combobox/ComboboxContent.svelte +6 -6
  13. package/dist/components/Combobox/types.d.ts +6 -6
  14. package/dist/components/Hovercard/HovercardContent.svelte +6 -13
  15. package/dist/components/Hovercard/types.d.ts +5 -5
  16. package/dist/components/Menu/MenuContent.svelte +6 -6
  17. package/dist/components/Menu/types.d.ts +6 -6
  18. package/dist/components/Modal/ModalContent.svelte +4 -3
  19. package/dist/components/Modal/types.d.ts +6 -6
  20. package/dist/components/Pin/types.d.ts +4 -4
  21. package/dist/components/Popover/PopoverContent.svelte +8 -16
  22. package/dist/components/Popover/types.d.ts +5 -5
  23. package/dist/components/Portal/Portal.svelte +7 -6
  24. package/dist/components/Portal/index.d.ts +1 -1
  25. package/dist/components/Portal/index.js +1 -1
  26. package/dist/components/Portal/types.d.ts +2 -2
  27. package/dist/components/RadioGroup/types.d.ts +3 -3
  28. package/dist/components/Select/SelectContent.svelte +6 -6
  29. package/dist/components/Select/types.d.ts +7 -7
  30. package/dist/components/Tabs/types.d.ts +5 -5
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.js +3 -0
  33. package/dist/internal/index.d.ts +1 -4
  34. package/dist/internal/index.js +1 -4
  35. package/dist/internal/types.d.ts +3 -2
  36. package/package.json +1 -1
  37. /package/dist/internal/{actions → helpers}/action.d.ts +0 -0
  38. /package/dist/internal/{actions → helpers}/action.js +0 -0
@@ -5,10 +5,14 @@ type ExlcudeElement = HTMLElement | null | undefined;
5
5
  * @param options Object of options.
6
6
  * @param options.callback The function called when clicking outside of the element.
7
7
  * @param options.exlude The element to be excluded when calling the `options.callback` handler.
8
+ * @param options.event The event to trigger the callback function.
9
+ *
10
+ * Default = `click`
8
11
  */
9
- export declare const clickOutside: (node: HTMLElement, options: {
12
+ export declare const useOutside: (node: HTMLElement, options: {
10
13
  callback: () => void;
11
14
  exclude?: ExlcudeElement[] | ExlcudeElement;
15
+ on?: keyof DocumentEventMap;
12
16
  }) => {
13
17
  destroy: () => void;
14
18
  };
@@ -4,19 +4,22 @@
4
4
  * @param options Object of options.
5
5
  * @param options.callback The function called when clicking outside of the element.
6
6
  * @param options.exlude The element to be excluded when calling the `options.callback` handler.
7
+ * @param options.event The event to trigger the callback function.
8
+ *
9
+ * Default = `click`
7
10
  */
8
- export const clickOutside = (node, options) => {
9
- const onClick = (e) => {
10
- const { callback, exclude } = options;
11
+ export const useOutside = (node, options) => {
12
+ const { callback, exclude, on = 'click' } = options;
13
+ const event = (e) => {
11
14
  const target = e.target;
12
15
  const contains = Array.isArray(exclude) ? exclude.some((el) => el?.contains(target)) : exclude?.contains(target);
13
16
  if (node && !node.contains(target) && !e.defaultPrevented && !contains)
14
17
  callback();
15
18
  };
16
- document.addEventListener('click', onClick, true);
19
+ document.addEventListener(on, event, true);
17
20
  return {
18
21
  destroy() {
19
- document.removeEventListener('click', onClick, true);
22
+ document.removeEventListener(on, event, true);
20
23
  }
21
24
  };
22
25
  };
@@ -3,7 +3,7 @@
3
3
  * @param target The element to be portaled to.\
4
4
  * Default = `body`.
5
5
  */
6
- export declare const portal: (node: HTMLElement, target?: HTMLElement | string) => {
6
+ export declare const usePortal: (node: HTMLElement, target?: HTMLElement | string) => {
7
7
  update: (newTarget: HTMLElement | string) => Promise<void>;
8
- destroy: () => void;
8
+ destroy: () => Promise<void>;
9
9
  };
@@ -1,11 +1,11 @@
1
1
  import { tick } from 'svelte';
2
- import { log } from '../helpers/log.js';
2
+ import { log } from '../internal/helpers/log.js';
3
3
  /**
4
4
  * A svelte action to portal content from one part of the dom to another.
5
5
  * @param target The element to be portaled to.\
6
6
  * Default = `body`.
7
7
  */
8
- export const portal = (node, target = '#layers') => {
8
+ export const usePortal = (node, target = '#layers') => {
9
9
  const update = async (newTarget) => {
10
10
  let el = typeof newTarget === 'string' ? document.querySelector(newTarget) : newTarget;
11
11
  await tick();
@@ -15,7 +15,8 @@ export const portal = (node, target = '#layers') => {
15
15
  }
16
16
  el.appendChild(node);
17
17
  };
18
- const destroy = () => {
18
+ const destroy = async () => {
19
+ await tick();
19
20
  if (node)
20
21
  node.remove();
21
22
  };
@@ -2,6 +2,6 @@ import { type Options } from 'focus-trap';
2
2
  /**
3
3
  * Creates a focus trap.
4
4
  */
5
- export declare const trap: (node: HTMLElement, options?: Options) => {
5
+ export declare const useTrap: (node: HTMLElement, options?: Options) => {
6
6
  destroy(): void;
7
7
  } | undefined;
@@ -2,7 +2,7 @@ import { createFocusTrap } from 'focus-trap';
2
2
  /**
3
3
  * Creates a focus trap.
4
4
  */
5
- export const trap = (node, options = { fallbackFocus: node }) => {
5
+ export const useTrap = (node, options = { fallbackFocus: node }) => {
6
6
  let trap;
7
7
  if (trap)
8
8
  return;
@@ -1,17 +1,6 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import { type BaseProps, type Handler } from '../../internal/index.js';
3
2
  declare const __propDef: {
4
- props: BaseProps<HTMLButtonElement, {
5
- active: boolean;
6
- disabled: boolean;
7
- }> & {
8
- /**
9
- * The onclick event.
10
- *
11
- * Using the regular `onclick` will overwrite and behaviour the component requires.
12
- */
13
- onClick?: Handler<MouseEvent, HTMLButtonElement> | undefined;
14
- };
3
+ props: any;
15
4
  events: {
16
5
  [evt: string]: CustomEvent<any>;
17
6
  };
@@ -1,9 +1,9 @@
1
- import type { BaseProps, Handler, Transition } from '../../internal/index.js';
1
+ import type { Props, Handler, Transition } from '../../internal/index.js';
2
2
  interface AccordionState {
3
3
  /** True if any item is opened. */
4
4
  active: boolean;
5
5
  }
6
- export interface AccordionProps extends BaseProps<HTMLDivElement, AccordionState> {
6
+ export interface AccordionProps extends Props<HTMLDivElement, AccordionState> {
7
7
  /** Allow only a singluar `AccordionItem` to be opened at once. */
8
8
  single?: boolean;
9
9
  }
@@ -11,7 +11,7 @@ interface AccordionContentState {
11
11
  /** True if any item is opened. */
12
12
  active: boolean;
13
13
  }
14
- export interface AccordionContentProps extends BaseProps<HTMLDivElement, AccordionContentState> {
14
+ export interface AccordionContentProps extends Props<HTMLDivElement, AccordionContentState> {
15
15
  /**
16
16
  * The `svelte/transtion` you wish to use.
17
17
  *
@@ -19,7 +19,7 @@ export interface AccordionContentProps extends BaseProps<HTMLDivElement, Accordi
19
19
  */
20
20
  transition?: Transition;
21
21
  }
22
- export interface AccordionHeadingProps extends BaseProps<HTMLDivElement> {
22
+ export interface AccordionHeadingProps extends Props<HTMLDivElement> {
23
23
  /** The `aria-level` to be set. */
24
24
  level?: 1 | 2 | 3 | 4 | 5 | 6;
25
25
  }
@@ -29,7 +29,7 @@ interface AccordionButtonState {
29
29
  /** True if the item is disabled. */
30
30
  disabled: boolean;
31
31
  }
32
- export interface AccordionButtonProps extends BaseProps<HTMLButtonElement, AccordionButtonState> {
32
+ export interface AccordionButtonProps extends Props<HTMLButtonElement, AccordionButtonState> {
33
33
  onClick?: Handler<MouseEvent, HTMLButtonElement>;
34
34
  }
35
35
  interface AccordionItemState {
@@ -38,7 +38,7 @@ interface AccordionItemState {
38
38
  /** True if the item is disabled. */
39
39
  disabled: boolean;
40
40
  }
41
- export interface AccordionItemProps extends BaseProps<HTMLDivElement, AccordionItemState> {
41
+ export interface AccordionItemProps extends Props<HTMLDivElement, AccordionItemState> {
42
42
  /** Disables the items, disallowing clicking and keyboard navigation. */
43
43
  disabled?: boolean;
44
44
  }
@@ -1,9 +1,4 @@
1
- <script lang="ts" context="module"></script>
2
-
3
- <script lang="ts">import {
4
- useActions,
5
- classProp
6
- } from "../../internal/index.js";
1
+ <script lang="ts">import { useActions, classProp } from "../../internal/index.js";
7
2
  let {
8
3
  children,
9
4
  class: klass,