@apple-pie/slice 0.1.29 → 0.1.30

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 (182) hide show
  1. package/README.md +164 -3
  2. package/dist/cjs/chunks/{Avatar-vIquH-Uk.js → Avatar-CqUSRzVd.js} +1 -1
  3. package/dist/cjs/chunks/{AvatarGroup-DYN73N5x.js → AvatarGroup-DhGp_qLw.js} +1 -1
  4. package/dist/cjs/chunks/{Button-B1qbfQgN.js → Button-PsJx1WmV.js} +1 -1
  5. package/dist/cjs/chunks/{ButtonBar-zpC3sClM.js → ButtonBar-8zm6a_h7.js} +1 -1
  6. package/dist/cjs/chunks/{Camera-CCzynmXT.js → Camera-zFyIXcge.js} +2 -2
  7. package/dist/cjs/chunks/{CheckBox-DNctUlTA.js → CheckBox-Cbh6UK-7.js} +1 -1
  8. package/dist/cjs/chunks/{Chip-BN4qBz6w.js → Chip-DcS8dtW2.js} +1 -1
  9. package/dist/cjs/chunks/{DivInput-932r3bvF.js → DivInput-2cMdJQ9U.js} +1 -1
  10. package/dist/cjs/chunks/{DrggablePanel-u8C-Y4dA.js → DrggablePanel-P7TgBI3j.js} +1 -1
  11. package/dist/cjs/chunks/{DropDown-BZbrZOkx.js → DropDown-B0970yVe.js} +1 -1
  12. package/dist/cjs/chunks/{FileIcon-Dxn9OL10.js → FileIcon-PuDoz0mF.js} +1 -1
  13. package/dist/cjs/chunks/{FileList-D5_igVaC.js → FileList-sDq1jK0b.js} +1 -1
  14. package/dist/cjs/chunks/{Grouper-D6rSl9nK.js → Grouper-Ccd-x_Nb.js} +1 -1
  15. package/dist/cjs/chunks/{Icon-BFiN8Wzm.js → Icon-BtcHXeqE.js} +1 -1
  16. package/dist/cjs/chunks/{IconButton-Cv-po19M.js → IconButton-CF4cR7Tr.js} +1 -1
  17. package/dist/cjs/chunks/{Label-BQ6flU4-.js → Label-htjXHiQ4.js} +1 -1
  18. package/dist/cjs/chunks/Modal-C0Z59meI.js +101 -0
  19. package/dist/cjs/chunks/ModalController-13xmvKnm.js +70 -0
  20. package/dist/cjs/chunks/{Overlay-DDOvMM6L.js → Overlay-GXu6nMnw.js} +9 -3
  21. package/dist/cjs/chunks/{Pager-GH2y7l5h.js → Pager-D2_fshTy.js} +1 -1
  22. package/dist/cjs/chunks/{ProgressIndicator-7pLk4Dvn.js → ProgressIndicator-D06PqCQk.js} +55 -51
  23. package/dist/cjs/chunks/{PromptInput-C8-V67sS.js → PromptInput-DuE4vGxR.js} +1 -1
  24. package/dist/cjs/chunks/{RadioButton-3CzhKBn6.js → RadioButton-DPB2ZGVf.js} +1 -1
  25. package/dist/cjs/chunks/{RadioButtonList-DvJV6Qdg.js → RadioButtonList-N7Fmvr5W.js} +1 -1
  26. package/dist/cjs/chunks/{Slider-D8OYGFsN.js → Slider-BSy8xciG.js} +2 -4
  27. package/dist/cjs/chunks/{TabBar-VzxuAesC.js → TabBar-BtFfMwiB.js} +1 -1
  28. package/dist/cjs/chunks/{TextArea-CBNHvcK3.js → TextArea-CRiPRF8v.js} +1 -1
  29. package/dist/cjs/chunks/{TextField-BpoLF6pZ.js → TextField-Bh2EA082.js} +2 -2
  30. package/dist/cjs/chunks/{Tip-CUKFhP9K.js → Tip-C5keUoHx.js} +1 -1
  31. package/dist/cjs/chunks/{Toast-CKqGjsEk.js → Toast-CyiFOsI3.js} +16 -7
  32. package/dist/cjs/chunks/{ToggleButton-BdCsChJM.js → ToggleButton-D5_WnW0o.js} +2 -2
  33. package/dist/cjs/chunks/{UploadArea-M9oc-No2.js → UploadArea-KqES_OLl.js} +1 -1
  34. package/dist/cjs/chunks/{misc-CTl4GDxI.js → misc-QpU0XEOW.js} +15 -18
  35. package/dist/cjs/chunks/modalStore-7VjHHM8X.js +70 -0
  36. package/dist/cjs/chunks/{uploads-worker-mD8pcsGP.js → uploads-worker-Az040BSN.js} +1 -1
  37. package/dist/cjs/chunks/{uploadsStore-CxWIctvI.js → uploadsStore-8mOTz0Qe.js} +2 -2
  38. package/dist/cjs/chunks/{volumeStore-oYwlRVN0.js → volumeStore-Pv23v12t.js} +2 -2
  39. package/dist/cjs/components/Avatar/index.js +2 -2
  40. package/dist/cjs/components/AvatarGroup/index.js +2 -2
  41. package/dist/cjs/components/Button/index.js +4 -4
  42. package/dist/cjs/components/ButtonBar/index.js +2 -2
  43. package/dist/cjs/components/Camera/index.js +4 -4
  44. package/dist/cjs/components/CheckBox/index.js +2 -2
  45. package/dist/cjs/components/Chip/index.js +2 -2
  46. package/dist/cjs/components/DivInput/index.js +2 -2
  47. package/dist/cjs/components/DraggablePanel/index.js +2 -2
  48. package/dist/cjs/components/DropDown/index.js +2 -2
  49. package/dist/cjs/components/FileIcon/index.js +2 -2
  50. package/dist/cjs/components/FileList/index.js +3 -3
  51. package/dist/cjs/components/Grouper/index.js +2 -2
  52. package/dist/cjs/components/Icon/index.js +2 -2
  53. package/dist/cjs/components/IconButton/index.js +3 -3
  54. package/dist/cjs/components/Label/index.js +2 -2
  55. package/dist/cjs/components/Modal/index.js +14 -0
  56. package/dist/cjs/components/ModalController/index.js +7 -0
  57. package/dist/cjs/components/Overlay/index.js +1 -1
  58. package/dist/cjs/components/Pager/index.js +2 -2
  59. package/dist/cjs/components/Progress/index.js +2 -2
  60. package/dist/cjs/components/PromptInput/index.js +5 -5
  61. package/dist/cjs/components/RadioButton/index.js +2 -2
  62. package/dist/cjs/components/RadioButtonList/index.js +3 -3
  63. package/dist/cjs/components/Slider/index.js +2 -2
  64. package/dist/cjs/components/TabBar/index.js +3 -3
  65. package/dist/cjs/components/TextArea/index.js +5 -5
  66. package/dist/cjs/components/Textfield/index.js +4 -4
  67. package/dist/cjs/components/Tip/index.js +2 -2
  68. package/dist/cjs/components/Toast/index.js +4 -3
  69. package/dist/cjs/components/ToggleButton/index.js +5 -5
  70. package/dist/cjs/components/UploadArea/index.js +5 -5
  71. package/dist/cjs/hooks/useAudioRecorder.js +3 -4
  72. package/dist/cjs/hooks/useLocalStore.js +3 -9
  73. package/dist/cjs/hooks/useMicrophone.js +6 -10
  74. package/dist/cjs/hooks/useTrackRenders.js +1 -1
  75. package/dist/cjs/index.js +6 -4
  76. package/dist/cjs/providers/ThemeProvider.js +1 -1
  77. package/dist/cjs/stores/modal.js +7 -0
  78. package/dist/cjs/stores/uploads.js +2 -2
  79. package/dist/cjs/stores/volume.js +1 -1
  80. package/dist/cjs/stores.js +16 -13
  81. package/dist/cjs/theme/colors.js +1 -1
  82. package/dist/cjs/utils/index.js +1 -1
  83. package/dist/cjs/workers/uploads/uploads.js +1 -1
  84. package/dist/esm/chunks/{Avatar-Ds6MWC2c.mjs → Avatar-29zhNfxX.mjs} +1 -1
  85. package/dist/esm/chunks/{AvatarGroup-CBGi99eo.mjs → AvatarGroup-C7YRtPmJ.mjs} +1 -1
  86. package/dist/esm/chunks/{Button-CYFpitCp.mjs → Button-BQS3rwrS.mjs} +2 -2
  87. package/dist/esm/chunks/{ButtonBar-ieMA0SHi.mjs → ButtonBar-GLNRjmjv.mjs} +2 -2
  88. package/dist/esm/chunks/{Camera-jn9CcaD0.mjs → Camera-CAp0Y2gN.mjs} +3 -3
  89. package/dist/esm/chunks/{CheckBox-CoOmnGWD.mjs → CheckBox-7TiT2U47.mjs} +2 -2
  90. package/dist/esm/chunks/{Chip-ClG6cUX0.mjs → Chip-CKsojimU.mjs} +2 -2
  91. package/dist/esm/chunks/{DivInput-BVhcU0y0.mjs → DivInput-g6F1YWTo.mjs} +1 -1
  92. package/dist/esm/chunks/{DrggablePanel-G5HHlntD.mjs → DrggablePanel-C0AmJy8g.mjs} +1 -1
  93. package/dist/esm/chunks/{DropDown-AuQW_DWv.mjs → DropDown-mwo8fY7p.mjs} +2 -2
  94. package/dist/esm/chunks/{FileIcon-fJV_Cl6v.mjs → FileIcon-BQ2zZIW5.mjs} +1 -1
  95. package/dist/esm/chunks/{FileList-CxHaEEUi.mjs → FileList-fh-x9Dzm.mjs} +4 -4
  96. package/dist/esm/chunks/{Grouper-CyWZ8tfm.mjs → Grouper-naJMvpB9.mjs} +1 -1
  97. package/dist/esm/chunks/{Icon-BOJAk-hM.mjs → Icon--RjjODc9.mjs} +1 -1
  98. package/dist/esm/chunks/{IconButton-Ck0IMn4i.mjs → IconButton-ByBYppAj.mjs} +1 -1
  99. package/dist/esm/chunks/{Label-DSfCcKtQ.mjs → Label-C04tD7UZ.mjs} +1 -1
  100. package/dist/esm/chunks/Modal-B9ad9OfJ.mjs +115 -0
  101. package/dist/esm/chunks/ModalController-BO5FkAqu.mjs +80 -0
  102. package/dist/esm/chunks/{Overlay-DiSvgIQP.mjs → Overlay-sXM7cEYc.mjs} +9 -3
  103. package/dist/esm/chunks/{Pager-ByJ2Cr0n.mjs → Pager-Bz0FpgO5.mjs} +1 -1
  104. package/dist/esm/chunks/{ProgressIndicator-d2JGUDW_.mjs → ProgressIndicator-B5oByN3i.mjs} +56 -52
  105. package/dist/esm/chunks/{PromptInput-COJnOFZf.mjs → PromptInput-Cwd53ux7.mjs} +2 -2
  106. package/dist/esm/chunks/{RadioButton-BB73OY2a.mjs → RadioButton-CLeRiZ8x.mjs} +2 -2
  107. package/dist/esm/chunks/{RadioButtonList-XqlqadYn.mjs → RadioButtonList-C_heuiis.mjs} +2 -2
  108. package/dist/esm/chunks/{Slider-CU0Zdlpu.mjs → Slider-XEV0D2Rd.mjs} +2 -4
  109. package/dist/esm/chunks/{TabBar-v8Dp4dr-.mjs → TabBar-kPZ6ZJxr.mjs} +2 -2
  110. package/dist/esm/chunks/{TextArea-DGF43RON.mjs → TextArea-CxscPLwN.mjs} +1 -1
  111. package/dist/esm/chunks/{TextField-j4q0RUzH.mjs → TextField-DwVKlLI_.mjs} +4 -4
  112. package/dist/esm/chunks/{Tip-Bj9d-230.mjs → Tip-C6EcX7_M.mjs} +1 -1
  113. package/dist/esm/chunks/{Toast-CoioLlEG.mjs → Toast-D4uMNvaa.mjs} +18 -7
  114. package/dist/esm/chunks/{ToggleButton-CwTm8Yx0.mjs → ToggleButton-C0QIflzX.mjs} +3 -3
  115. package/dist/esm/chunks/{UploadArea-DAwoJxtr.mjs → UploadArea-je-1NhGb.mjs} +4 -4
  116. package/dist/esm/chunks/{misc-Bjbro8Xe.mjs → misc-wS74txaa.mjs} +15 -18
  117. package/dist/esm/chunks/modalStore-BpWnLtOF.mjs +68 -0
  118. package/dist/esm/chunks/{uploads-worker-7X9EwX9N.mjs → uploads-worker-CYp-F4dz.mjs} +1 -1
  119. package/dist/esm/chunks/{uploadsStore-B7VECR5Q.mjs → uploadsStore-DeRMJ5c9.mjs} +1 -1
  120. package/dist/esm/chunks/{volumeStore-GZnCDBMU.mjs → volumeStore-BX7QcrL-.mjs} +2 -2
  121. package/dist/esm/components/Avatar/index.mjs +2 -2
  122. package/dist/esm/components/AvatarGroup/index.mjs +3 -3
  123. package/dist/esm/components/Button/index.mjs +4 -4
  124. package/dist/esm/components/ButtonBar/index.mjs +3 -3
  125. package/dist/esm/components/Camera/index.mjs +4 -4
  126. package/dist/esm/components/CheckBox/index.mjs +3 -3
  127. package/dist/esm/components/Chip/index.mjs +3 -3
  128. package/dist/esm/components/DivInput/index.mjs +2 -2
  129. package/dist/esm/components/DraggablePanel/index.mjs +2 -2
  130. package/dist/esm/components/DropDown/index.mjs +3 -3
  131. package/dist/esm/components/FileIcon/index.mjs +2 -2
  132. package/dist/esm/components/FileList/index.mjs +5 -5
  133. package/dist/esm/components/Grouper/index.mjs +3 -3
  134. package/dist/esm/components/Icon/index.mjs +2 -2
  135. package/dist/esm/components/IconButton/index.mjs +3 -3
  136. package/dist/esm/components/Label/index.mjs +2 -2
  137. package/dist/esm/components/Modal/index.mjs +47 -0
  138. package/dist/esm/components/ModalController/index.mjs +17 -0
  139. package/dist/esm/components/Overlay/index.mjs +1 -1
  140. package/dist/esm/components/Pager/index.mjs +2 -2
  141. package/dist/esm/components/Progress/index.mjs +3 -3
  142. package/dist/esm/components/PromptInput/index.mjs +7 -7
  143. package/dist/esm/components/RadioButton/index.mjs +3 -3
  144. package/dist/esm/components/RadioButtonList/index.mjs +4 -4
  145. package/dist/esm/components/Slider/index.mjs +2 -2
  146. package/dist/esm/components/TabBar/index.mjs +4 -4
  147. package/dist/esm/components/TextArea/index.mjs +5 -5
  148. package/dist/esm/components/Textfield/index.mjs +6 -6
  149. package/dist/esm/components/Tip/index.mjs +2 -2
  150. package/dist/esm/components/Toast/index.mjs +5 -3
  151. package/dist/esm/components/ToggleButton/index.mjs +5 -5
  152. package/dist/esm/components/UploadArea/index.mjs +6 -6
  153. package/dist/esm/hooks/useAudioRecorder.mjs +3 -4
  154. package/dist/esm/hooks/useLocalStore.mjs +3 -9
  155. package/dist/esm/hooks/useMicrophone.mjs +6 -10
  156. package/dist/esm/hooks/useTrackRenders.mjs +1 -1
  157. package/dist/esm/index.mjs +39 -31
  158. package/dist/esm/providers/ThemeProvider.mjs +1 -1
  159. package/dist/esm/stores/modal.mjs +3 -0
  160. package/dist/esm/stores/uploads.mjs +2 -2
  161. package/dist/esm/stores/volume.mjs +1 -1
  162. package/dist/esm/stores.mjs +5 -3
  163. package/dist/esm/theme/colors.mjs +1 -1
  164. package/dist/esm/utils/index.mjs +1 -1
  165. package/dist/esm/workers/uploads/uploads.mjs +1 -1
  166. package/dist/types/components/Modal/Modal.d.ts +3 -0
  167. package/dist/types/components/Modal/_types.d.ts +45 -0
  168. package/dist/types/components/Modal/index.d.ts +2 -0
  169. package/dist/types/components/ModalController/ModalController.d.ts +2 -0
  170. package/dist/types/components/ModalController/_types.d.ts +13 -0
  171. package/dist/types/components/ModalController/index.d.ts +2 -0
  172. package/dist/types/components/Overlay/_types.d.ts +4 -0
  173. package/dist/types/components/Progress/ProgressIndicator/ProgressIndicator.d.ts +1 -1
  174. package/dist/types/components/Progress/ProgressIndicator/_types.d.ts +2 -1
  175. package/dist/types/components/Toast/_types.d.ts +2 -0
  176. package/dist/types/index.d.ts +4 -0
  177. package/dist/types/stores/index.d.ts +1 -0
  178. package/dist/types/stores/modal/_types.d.ts +27 -0
  179. package/dist/types/stores/modal/index.d.ts +2 -0
  180. package/dist/types/stores/modal/modalStore.d.ts +20 -0
  181. package/dist/types/stores/toast/_types.d.ts +3 -1
  182. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- export { c as copyToClipboard, h as hexToRgb } from "../chunks/misc-Bjbro8Xe.mjs";
1
+ export { c as copyToClipboard, h as hexToRgb } from "../chunks/misc-wS74txaa.mjs";
2
2
 
3
3
  export { d as debounce } from "../chunks/debounce-Bst1jxMS.mjs";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerUploadsWorker } from "../../chunks/uploads-worker-7X9EwX9N.mjs";
1
+ import { r as registerUploadsWorker } from "../../chunks/uploads-worker-CYp-F4dz.mjs";
2
2
 
3
3
  import "../../chunks/tslib.es6-C-olHjXV.mjs";
4
4
 
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import type { ModalProps } from './_types';
3
+ export declare const Modal: <T = string>(props: ModalProps<T>) => React.JSX.Element;
@@ -0,0 +1,45 @@
1
+ import type React from 'react';
2
+ import type { ToolTip } from '../sharedTypes';
3
+ export type ModalAction<T = string> = {
4
+ id: string;
5
+ label?: string;
6
+ value?: T;
7
+ primary?: boolean;
8
+ iconLeft?: string;
9
+ tooltip?: string;
10
+ iconRight?: string;
11
+ round?: boolean;
12
+ position?: 'left' | 'right';
13
+ promise?: 'resolve' | 'reject';
14
+ };
15
+ type ModalBaseProps<T = string> = {
16
+ children?: React.ReactNode;
17
+ minHeight?: number | string;
18
+ minWidth?: number | string;
19
+ maxWidth?: number | string;
20
+ maxHeight?: number | string;
21
+ borderRadius?: number | string;
22
+ borderColor?: string;
23
+ borderWidth?: number | string;
24
+ backgroundColor?: string;
25
+ padding?: number | string;
26
+ title?: string;
27
+ titleColor?: string;
28
+ titleBorderColor?: string;
29
+ titleBorderWidth?: number;
30
+ titleIcon?: string;
31
+ titleSize?: 'xs' | 's' | 'm' | 'l' | 'xl';
32
+ contentSize?: 'xs' | 's' | 'm' | 'l' | 'xl';
33
+ close?: boolean;
34
+ actions?: ModalAction<T>[];
35
+ actionsBorderColor?: string;
36
+ actionsBorderWidth?: number;
37
+ onAction?: (value?: T) => void;
38
+ onResolve?: (value?: T) => void;
39
+ onReject?: (value?: Error) => void;
40
+ onClose?: () => void;
41
+ onDragPointerDown?: (e: React.PointerEvent<any>) => void;
42
+ onToolTip?: (tip: ToolTip | null) => void;
43
+ };
44
+ export type ModalProps<T = string> = Omit<React.HTMLAttributes<HTMLElement>, keyof ModalBaseProps<T>> & ModalBaseProps<T>;
45
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Modal } from './Modal';
2
+ export type { ModalAction, ModalProps } from './_types';
@@ -0,0 +1,2 @@
1
+ import type { ModalControllerProps } from './_types';
2
+ export declare function ModalController(props: Readonly<ModalControllerProps>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import type { Transition, Variants } from 'motion/react';
2
+ import type React from 'react';
3
+ export type ModalControllerProps = {
4
+ dragConstraintsRef?: React.RefObject<HTMLElement | null>;
5
+ overlayColor?: string;
6
+ overlayOpacity?: number;
7
+ transition?: Transition;
8
+ variants?: Variants;
9
+ initial?: string;
10
+ animate?: string;
11
+ exit?: string;
12
+ draggable?: boolean;
13
+ };
@@ -0,0 +1,2 @@
1
+ export { ModalController } from './ModalController';
2
+ export type { ModalControllerProps } from './_types';
@@ -1,11 +1,15 @@
1
+ import type { Transition } from 'motion/react';
1
2
  import type React from 'react';
2
3
  type OverlayBaseProps = {
4
+ children?: React.ReactNode;
5
+ show?: boolean;
3
6
  opacity?: number;
4
7
  color?: string;
5
8
  type?: 'clear' | 'dark';
6
9
  global?: boolean;
7
10
  overlay?: any;
8
11
  onClick?: () => void;
12
+ transition?: Transition;
9
13
  toggleOverlay?: (state: boolean) => void;
10
14
  };
11
15
  export type OverlayProps = Omit<React.HTMLAttributes<HTMLDivElement>, keyof OverlayBaseProps> & OverlayBaseProps;
@@ -1,3 +1,3 @@
1
1
  import type { ProgressIndicatorProps } from './_types';
2
2
  export declare function ProgressIndicator(props: Readonly<ProgressIndicatorProps>): import("react/jsx-runtime").JSX.Element;
3
- export declare const OpenCircle: (size: number, secondsPerSpin: number, color: string, stroke?: number, playing?: boolean) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const OpenCircle: (size: number | string, secondsPerSpin: number, color: string, stroke?: number, playing?: boolean, inset?: boolean, gradientId?: string) => import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,13 @@
1
1
  import type React from 'react';
2
2
  type ProgressIndicatorBaseProps = {
3
- size?: number;
3
+ size?: number | string;
4
4
  secondsPerSpin?: number;
5
5
  show?: boolean;
6
6
  color?: string;
7
7
  stroke?: number;
8
8
  duration?: number;
9
9
  inline?: boolean;
10
+ inset?: boolean;
10
11
  didStart?: () => void;
11
12
  didStop?: () => void;
12
13
  };
@@ -18,6 +18,8 @@ type ToastBaseProps = {
18
18
  duration?: number | 'Infinite';
19
19
  close?: boolean;
20
20
  type?: ToastType;
21
+ progress?: boolean;
22
+ onShow?: () => void;
21
23
  didHide?: () => void;
22
24
  };
23
25
  type ReservedToastEvents = 'onMouseEnter' | 'onMouseLeave' | 'onFocus' | 'onBlur';
@@ -31,6 +31,10 @@ export { Grouper } from './components/Grouper';
31
31
  export type { GrouperProps } from './components/Grouper';
32
32
  export { Overlay } from './components/Overlay';
33
33
  export type { OverlayProps } from './components/Overlay';
34
+ export { Modal } from './components/Modal';
35
+ export type { ModalAction, ModalProps } from './components/Modal';
36
+ export { ModalController } from './components/ModalController';
37
+ export type { ModalControllerProps } from './components/ModalController';
34
38
  export { FlexDiv, Size, Preset } from './components/FlexDiv';
35
39
  export type { FlexDivProps } from './components/FlexDiv';
36
40
  export { Pager } from './components/Pager';
@@ -1,4 +1,5 @@
1
1
  export * from './LocalDB';
2
+ export * from './modal';
2
3
  export * from './microphone';
3
4
  export * from './SSE';
4
5
  export * from './toast';
@@ -0,0 +1,27 @@
1
+ import type React from 'react';
2
+ export type ModalComponentProps<TResult = unknown> = {
3
+ onResolve?: (value?: TResult) => void;
4
+ onReject?: (error?: Error) => void;
5
+ onClose?: () => void;
6
+ onDragPointerDown?: React.PointerEventHandler;
7
+ };
8
+ export type ModalDescriptor<TProps extends Record<string, unknown> = Record<string, unknown>, TResult = unknown> = {
9
+ id?: string;
10
+ component: React.ComponentType<TProps & ModalComponentProps<TResult>>;
11
+ props?: TProps;
12
+ };
13
+ export type ActiveModal = ModalDescriptor & {
14
+ resolve?: (value?: unknown) => void;
15
+ reject?: (reason?: unknown) => void;
16
+ };
17
+ export interface ModalStore {
18
+ modal: ActiveModal | null;
19
+ actions: {
20
+ show: (modal: ModalDescriptor | null) => void;
21
+ hide: (reason?: unknown) => void;
22
+ modalResponse: <TResult = unknown>(modal: ModalDescriptor) => Promise<TResult | undefined>;
23
+ resolve: <TResult = unknown>(value?: TResult) => void;
24
+ reject: (reason?: unknown) => void;
25
+ clear: () => void;
26
+ };
27
+ }
@@ -0,0 +1,2 @@
1
+ export { useModalStore, useModal, useModalActions, modalActions, getModal, } from './modalStore';
2
+ export type { ActiveModal, ModalComponentProps, ModalDescriptor, ModalStore, } from './_types';
@@ -0,0 +1,20 @@
1
+ import type { ActiveModal, ModalDescriptor, ModalStore } from './_types';
2
+ export declare const useModalStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ModalStore>>;
3
+ export declare const useModal: () => ActiveModal | null;
4
+ export declare const useModalActions: () => {
5
+ show: (modal: ModalDescriptor | null) => void;
6
+ hide: (reason?: unknown) => void;
7
+ modalResponse: <TResult = unknown>(modal: ModalDescriptor) => Promise<TResult | undefined>;
8
+ resolve: <TResult = unknown>(value?: TResult) => void;
9
+ reject: (reason?: unknown) => void;
10
+ clear: () => void;
11
+ };
12
+ export declare const modalActions: {
13
+ show: (modal: ModalDescriptor | null) => void;
14
+ hide: (reason?: unknown) => void;
15
+ modalResponse: <TResult = unknown>(modal: ModalDescriptor) => Promise<TResult | undefined>;
16
+ resolve: <TResult = unknown>(value?: TResult) => void;
17
+ reject: (reason?: unknown) => void;
18
+ clear: () => void;
19
+ };
20
+ export declare const getModal: () => ActiveModal | null;
@@ -1,9 +1,11 @@
1
1
  import type { ToastType } from '../../components/Toast';
2
2
  export type Toast = {
3
3
  message: string | null;
4
- duration?: number;
4
+ duration?: number | 'Infinite';
5
5
  type?: ToastType;
6
6
  close?: boolean;
7
+ position?: 'top' | 'bottom';
8
+ progress?: boolean;
7
9
  };
8
10
  export interface ToastStore {
9
11
  toast: Toast | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apple-pie/slice",
3
- "version": "0.1.29",
3
+ "version": "0.1.30",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {