@televet/kibble-ui 4.0.0-beta.49 → 4.0.0-beta.51
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.
- package/dist/chunks/{alert.component-xIg594Bw.js → alert.component-g3HPaEm9.js} +3 -3
- package/dist/chunks/{alert.component-xIg594Bw.js.map → alert.component-g3HPaEm9.js.map} +1 -1
- package/dist/chunks/{avatar.component-B7rggLqO.js → avatar.component-oOJ66hzm.js} +11 -11
- package/dist/chunks/{avatar.component-B7rggLqO.js.map → avatar.component-oOJ66hzm.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-BxK-Fntw.js → avatarGroup.component-BOzKnzZu.js} +2 -2
- package/dist/chunks/{avatarGroup.component-BxK-Fntw.js.map → avatarGroup.component-BOzKnzZu.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-B_5ioQ76.js → buttonGroup.component-CESNUX_O.js} +2 -2
- package/dist/chunks/{buttonGroup.component-B_5ioQ76.js.map → buttonGroup.component-CESNUX_O.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-Bmd3imRK.js → characterCounter.component-BFw6saPi.js} +2 -2
- package/dist/chunks/{characterCounter.component-Bmd3imRK.js.map → characterCounter.component-BFw6saPi.js.map} +1 -1
- package/dist/chunks/{checkbox.component-C99uwLFM.js → checkbox.component-DGQYgNkB.js} +12 -12
- package/dist/chunks/{checkbox.component-C99uwLFM.js.map → checkbox.component-DGQYgNkB.js.map} +1 -1
- package/dist/chunks/{checkbox.records-BBV1vniy.js → checkbox.records-7WQ70CZr.js} +4 -4
- package/dist/chunks/{checkbox.records-BBV1vniy.js.map → checkbox.records-7WQ70CZr.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-DwICStpY.js → checkboxGroup.component-DAMxeo3c.js} +3 -3
- package/dist/chunks/{checkboxGroup.component-DwICStpY.js.map → checkboxGroup.component-DAMxeo3c.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-CiDSMTUO.js → conversationCard.component-CiFdjzC0.js} +7 -7
- package/dist/chunks/{conversationCard.component-CiDSMTUO.js.map → conversationCard.component-CiFdjzC0.js.map} +1 -1
- package/dist/chunks/{datePicker.component-DKDgsGci.js → datePicker.component-D7J1Ft-p.js} +7 -7
- package/dist/chunks/{datePicker.component-DKDgsGci.js.map → datePicker.component-D7J1Ft-p.js.map} +1 -1
- package/dist/chunks/{dialog-trigger-sGBMGLMB.js → dialog-trigger-CKEZLJZ6.js} +13 -13
- package/dist/chunks/{dialog-trigger-sGBMGLMB.js.map → dialog-trigger-CKEZLJZ6.js.map} +1 -1
- package/dist/chunks/{heading.component-DIST7ncC.js → heading.component-CVm2LGDL.js} +2 -2
- package/dist/chunks/{heading.component-DIST7ncC.js.map → heading.component-CVm2LGDL.js.map} +1 -1
- package/dist/chunks/{index-DLvqBeH6.js → index-B8d8Hi2Q.js} +35 -35
- package/dist/chunks/{index-DLvqBeH6.js.map → index-B8d8Hi2Q.js.map} +1 -1
- package/dist/chunks/{index-ByhnCBwf.js → index-BE2MBRYo.js} +4 -4
- package/dist/chunks/{index-ByhnCBwf.js.map → index-BE2MBRYo.js.map} +1 -1
- package/dist/chunks/{index-Dn2nvQ5m.js → index-BavQMU2I.js} +4 -4
- package/dist/chunks/{index-Dn2nvQ5m.js.map → index-BavQMU2I.js.map} +1 -1
- package/dist/chunks/{index-sWaESJRS.js → index-BsfW-qzE.js} +35 -35
- package/dist/chunks/{index-sWaESJRS.js.map → index-BsfW-qzE.js.map} +1 -1
- package/dist/chunks/{index-D79JhErY.js → index-CJ_SaUFt.js} +7 -7
- package/dist/chunks/{index-D79JhErY.js.map → index-CJ_SaUFt.js.map} +1 -1
- package/dist/chunks/{index-63NGUyr9.js → index-COcjj2r_.js} +4 -4
- package/dist/chunks/{index-63NGUyr9.js.map → index-COcjj2r_.js.map} +1 -1
- package/dist/chunks/{index-C3d8HKg_.js → index-CVMzOz4r.js} +7 -7
- package/dist/chunks/{index-C3d8HKg_.js.map → index-CVMzOz4r.js.map} +1 -1
- package/dist/chunks/{index-C1_01X--.js → index-Dw9PbX_m.js} +80 -80
- package/dist/chunks/{index-C1_01X--.js.map → index-Dw9PbX_m.js.map} +1 -1
- package/dist/chunks/{index-Bcp83GlU.js → index-X8K9tzgE.js} +10 -10
- package/dist/chunks/{index-Bcp83GlU.js.map → index-X8K9tzgE.js.map} +1 -1
- package/dist/chunks/{index-Kw3RO_3f.js → index-bYxdnAxK.js} +3 -3
- package/dist/chunks/{index-Kw3RO_3f.js.map → index-bYxdnAxK.js.map} +1 -1
- package/dist/chunks/{index-Cz4pncg8.js → index-xa8tmbbH.js} +25 -25
- package/dist/chunks/{index-Cz4pncg8.js.map → index-xa8tmbbH.js.map} +1 -1
- package/dist/chunks/{link.component-DYNc5XEj.js → link.component-B8MuH7tM.js} +2 -2
- package/dist/chunks/{link.component-DYNc5XEj.js.map → link.component-B8MuH7tM.js.map} +1 -1
- package/dist/chunks/menu.component-Bi2JPazM.js.map +1 -1
- package/dist/chunks/{menu.component-DbVIiM3g.js → menu.component-DZoyME_s.js} +22 -22
- package/dist/chunks/{menu.component-DbVIiM3g.js.map → menu.component-DZoyME_s.js.map} +1 -1
- package/dist/chunks/{modal.types-CdZepugS.js → modal.types-3KGURq43.js} +5 -5
- package/dist/chunks/{modal.types-CdZepugS.js.map → modal.types-3KGURq43.js.map} +1 -1
- package/dist/chunks/{pinInput.types-Ov7NqPQG.js → pinInput.types-Q3gBjJrF.js} +8 -8
- package/dist/chunks/{pinInput.types-Ov7NqPQG.js.map → pinInput.types-Q3gBjJrF.js.map} +1 -1
- package/dist/chunks/{popover-Q1b5Ou9h.js → popover-BBhgGw0a.js} +12 -12
- package/dist/chunks/{popover-Q1b5Ou9h.js.map → popover-BBhgGw0a.js.map} +1 -1
- package/dist/chunks/{popover-root-provider-_dExZRNY.js → popover-root-provider-CKQPoRvU.js} +8 -8
- package/dist/chunks/{popover-root-provider-_dExZRNY.js.map → popover-root-provider-CKQPoRvU.js.map} +1 -1
- package/dist/chunks/{popover.component-LH8cQ5xp.js → popover.component-D-UQ63DB.js} +15 -15
- package/dist/chunks/{popover.component-LH8cQ5xp.js.map → popover.component-D-UQ63DB.js.map} +1 -1
- package/dist/chunks/{popover.recipe-BwEAIvNr.js → popover.recipe-BVdiJdJk.js} +6 -6
- package/dist/chunks/{popover.recipe-BwEAIvNr.js.map → popover.recipe-BVdiJdJk.js.map} +1 -1
- package/dist/chunks/{radio.records-BEcLVP_S.js → radio.records-EtuVQX6z.js} +4 -4
- package/dist/chunks/{radio.records-BEcLVP_S.js.map → radio.records-EtuVQX6z.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-VgKW4-P2.js → radioGroup.component-sOmiKjNM.js} +19 -19
- package/dist/chunks/{radioGroup.component-VgKW4-P2.js.map → radioGroup.component-sOmiKjNM.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-CgBG_tvz.js → ratingDots.component-CMDKq3_T.js} +3 -3
- package/dist/chunks/{ratingDots.component-CgBG_tvz.js.map → ratingDots.component-CMDKq3_T.js.map} +1 -1
- package/dist/chunks/{render-strategy-Cr139kIz.js → render-strategy-DBmKAZIM.js} +2 -2
- package/dist/chunks/{render-strategy-Cr139kIz.js.map → render-strategy-DBmKAZIM.js.map} +1 -1
- package/dist/chunks/{select.component-BSZd60MZ.js → select.component-BOSAKx8m.js} +36 -36
- package/dist/chunks/{select.component-BSZd60MZ.js.map → select.component-BOSAKx8m.js.map} +1 -1
- package/dist/chunks/{select.component-BDLdQaL2.js → select.component-C9Vj7Sk7.js} +2 -2
- package/dist/chunks/{select.component-BDLdQaL2.js.map → select.component-C9Vj7Sk7.js.map} +1 -1
- package/dist/chunks/{sortableList.component-BRToMbfY.js → sortableList.component-BEc4_tAM.js} +3 -3
- package/dist/chunks/{sortableList.component-BRToMbfY.js.map → sortableList.component-BEc4_tAM.js.map} +1 -1
- package/dist/chunks/{spinner.component-DCSsW51J.js → spinner.component-DNrNcGw9.js} +2 -2
- package/dist/chunks/{spinner.component-DCSsW51J.js.map → spinner.component-DNrNcGw9.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-b9eWaeJ6.js → styledAvatar.types-DgeupAct.js} +2 -2
- package/dist/chunks/{styledAvatar.types-b9eWaeJ6.js.map → styledAvatar.types-DgeupAct.js.map} +1 -1
- package/dist/chunks/{switch.component-B2vWRrP_.js → switch.component-BQ9rEKP6.js} +9 -9
- package/dist/chunks/{switch.component-B2vWRrP_.js.map → switch.component-BQ9rEKP6.js.map} +1 -1
- package/dist/chunks/{tabs.component-DlaP-qhJ.js → tabs.component-BuknlGMy.js} +41 -41
- package/dist/chunks/{tabs.component-DlaP-qhJ.js.map → tabs.component-BuknlGMy.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-DpcWXFLP.js → tagBlock.component-BZtyjaQk.js} +5 -5
- package/dist/chunks/{tagBlock.component-DpcWXFLP.js.map → tagBlock.component-BZtyjaQk.js.map} +1 -1
- package/dist/chunks/{text.component-D3E0SdX1.js → text.component-ByshUroO.js} +2 -2
- package/dist/chunks/{text.component-D3E0SdX1.js.map → text.component-ByshUroO.js.map} +1 -1
- package/dist/chunks/{textInput.component-BpCIE07n.js → textInput.component-BYpBgS2h.js} +12 -12
- package/dist/chunks/{textInput.component-BpCIE07n.js.map → textInput.component-BYpBgS2h.js.map} +1 -1
- package/dist/chunks/{textarea.component-B5AsA90v.js → textarea.component-B8X86Tqw.js} +6 -6
- package/dist/chunks/{textarea.component-B5AsA90v.js.map → textarea.component-B8X86Tqw.js.map} +1 -1
- package/dist/chunks/{theme.provider-B9PPowSI.js → theme.provider-C13bkPxl.js} +18 -18
- package/dist/chunks/{theme.provider-B9PPowSI.js.map → theme.provider-C13bkPxl.js.map} +1 -1
- package/dist/chunks/{timePicker.component-BFa1h4Gv.js → timePicker.component-BwmHvV_9.js} +3 -3
- package/dist/chunks/{timePicker.component-BFa1h4Gv.js.map → timePicker.component-BwmHvV_9.js.map} +1 -1
- package/dist/chunks/{timeRange.component-DuKclNl6.js → timeRange.component-Du_CkwPc.js} +2 -2
- package/dist/chunks/{timeRange.component-DuKclNl6.js.map → timeRange.component-Du_CkwPc.js.map} +1 -1
- package/dist/chunks/{timestamp.component-BouqsJZM.js → timestamp.component-CA-gdN9e.js} +3 -3
- package/dist/chunks/{timestamp.component-BouqsJZM.js.map → timestamp.component-CA-gdN9e.js.map} +1 -1
- package/dist/chunks/{toaster.records-BSRUGTiS.js → toaster.records-DuvFE6c1.js} +10 -10
- package/dist/chunks/{toaster.records-BSRUGTiS.js.map → toaster.records-DuvFE6c1.js.map} +1 -1
- package/dist/chunks/{tooltip.component-DYBYGsfe.js → tooltip.component-B0iqN7WJ.js} +40 -40
- package/dist/chunks/{tooltip.component-DYBYGsfe.js.map → tooltip.component-B0iqN7WJ.js.map} +1 -1
- package/dist/chunks/{typography.records-DA6XZIsX.js → typography.records-BS1CFpJg.js} +2 -2
- package/dist/chunks/{typography.records-DA6XZIsX.js.map → typography.records-BS1CFpJg.js.map} +1 -1
- package/dist/chunks/{use-field-context-B8ygn96q.js → use-field-context-Bxg2bkx0.js} +2 -2
- package/dist/chunks/{use-field-context-B8ygn96q.js.map → use-field-context-Bxg2bkx0.js.map} +1 -1
- package/dist/chunks/{use-locale-context-zakBNK5b.js → use-locale-context-BnlMA8su.js} +58 -58
- package/dist/chunks/{use-locale-context-zakBNK5b.js.map → use-locale-context-BnlMA8su.js.map} +1 -1
- package/dist/chunks/{withFormControl-Vf_flDYv.js → withFormControl-BRVK_J11.js} +26 -26
- package/dist/chunks/{withFormControl-Vf_flDYv.js.map → withFormControl-BRVK_J11.js.map} +1 -1
- package/dist/chunks/{withTruncation-BNm_JUdt.js → withTruncation-C3gfaeh3.js} +2 -2
- package/dist/chunks/{withTruncation-BNm_JUdt.js.map → withTruncation-C3gfaeh3.js.map} +1 -1
- package/dist/cjs/chakra/index.cjs +1 -1
- package/dist/cjs/components/Select/index.cjs +1 -1
- package/dist/cjs/components/index.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/chakra/index.js +115 -114
- package/dist/esm/components/Alert/index.js +1 -1
- package/dist/esm/components/Avatar/index.js +1 -1
- package/dist/esm/components/AvatarGroup/index.js +1 -1
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/CharacterCounter/index.js +1 -1
- package/dist/esm/components/Checkbox/index.js +1 -1
- package/dist/esm/components/CheckboxGroup/index.js +1 -1
- package/dist/esm/components/ConversationCard/index.js +1 -1
- package/dist/esm/components/DatePicker/index.js +1 -1
- package/dist/esm/components/Heading/index.js +1 -1
- package/dist/esm/components/Link/index.js +1 -1
- package/dist/esm/components/Menu/index.js +1 -1
- package/dist/esm/components/Modal/index.js +1 -1
- package/dist/esm/components/PinInput/index.js +1 -1
- package/dist/esm/components/Popover/index.js +1 -1
- package/dist/esm/components/RadioGroup/index.js +1 -1
- package/dist/esm/components/RatingDots/index.js +1 -1
- package/dist/esm/components/Select/index.js +1 -1
- package/dist/esm/components/SortableList/index.js +1 -1
- package/dist/esm/components/Spinner/index.js +1 -1
- package/dist/esm/components/StyledAvatar/index.js +1 -1
- package/dist/esm/components/Switch/index.js +1 -1
- package/dist/esm/components/Tabs/index.js +1 -1
- package/dist/esm/components/TagBlock/index.js +1 -1
- package/dist/esm/components/Text/index.js +1 -1
- package/dist/esm/components/TextInput/index.js +1 -1
- package/dist/esm/components/Textarea/index.js +1 -1
- package/dist/esm/components/TimePicker/index.js +1 -1
- package/dist/esm/components/TimeRange/index.js +1 -1
- package/dist/esm/components/Timestamp/index.js +1 -1
- package/dist/esm/components/Toast/index.js +1 -1
- package/dist/esm/components/Tooltip/index.js +1 -1
- package/dist/esm/components/index.js +31 -31
- package/dist/esm/index.js +32 -32
- package/dist/esm/theme/index.js +1 -1
- package/dist/types/chakra/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as o } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { useCallback as h, useRef as w, useEffect as H, useState as b, useMemo as R } from "react";
|
|
3
|
-
import { W as G } from "./textInput.component-
|
|
4
|
-
import { P as J } from "./popover.component-
|
|
3
|
+
import { W as G } from "./textInput.component-BYpBgS2h.js";
|
|
4
|
+
import { P as J } from "./popover.component-D-UQ63DB.js";
|
|
5
5
|
import { I as K } from "./icon.component-BmcWaysM.js";
|
|
6
6
|
import { u as Q } from "./useIconTextSizeMap-BK-pUrQv.js";
|
|
7
7
|
import { f as U } from "./format-DgHM6wFr.js";
|
|
@@ -246,4 +246,4 @@ export {
|
|
|
246
246
|
u as M,
|
|
247
247
|
fe as T
|
|
248
248
|
};
|
|
249
|
-
//# sourceMappingURL=timePicker.component-
|
|
249
|
+
//# sourceMappingURL=timePicker.component-BwmHvV_9.js.map
|
package/dist/chunks/{timePicker.component-BFa1h4Gv.js.map → timePicker.component-BwmHvV_9.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timePicker.component-BFa1h4Gv.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from \"@chakra-ui/react/styled-system\";\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: \"4px\",\n cursor: \"pointer\",\n fontSize: \"sm\",\n px: 3,\n py: 1,\n textAlign: \"center\",\n },\n variants: {\n selected: {\n true: {\n background: \"background.secondary\",\n color: \"text.contrast\",\n _hover: {\n background: \"background.secondary.hover\",\n },\n },\n false: {\n background: \"background\",\n color: \"text.subtle\",\n _hover: {\n background: \"background.secondaryAlpha.hover\",\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from \"react\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { useRecipe } from \"@chakra-ui/react/styled-system\";\nimport { timeOptionRecipe } from \"./timeOption.recipe\";\n\ninterface TimeOptionProps {\n innerRef?: React.RefObject<HTMLDivElement | null> | null;\n onClick: (selectedValue: string) => void;\n selected: boolean;\n value: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || \"\";\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box\n className=\"TimePicker__Option\"\n data-testid=\"kibble-timepicker-option\"\n ref={innerRef}\n onClick={handleClick}\n css={styles}\n >\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from \"@chakra-ui/react/styled-system\";\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: [\"trigger\", \"container\", \"list\"],\n base: {\n trigger: {\n width: \"100%\",\n },\n container: {\n display: \"flex\",\n gap: 1.5,\n height: \"186px\",\n overflow: \"hidden\",\n },\n list: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 1,\n overflowY: \"auto\",\n \"&::webkit-scrollbar\": {\n display: \"none\",\n },\n },\n },\n});\n","import React, { useEffect, useRef } from \"react\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { TimeOption } from \"../TimeOption/timeOption.component\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { timePickerRecipe } from \"../../timePicker.recipe\";\n\ninterface ScrollContainerProps {\n options: string[];\n optionType: \"hour\" | \"minute\" | \"meridiem\";\n selectedValue?: string;\n onClick: (value: string) => void;\n open: boolean;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop =\n itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [open]);\n\n return (\n <Box\n className=\"TimePicker__List\"\n data-testid={`kibble-timepicker-${optionType}-list`}\n css={styles.list}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={option}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = \"AM\",\n PM = \"PM\",\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n TextInput,\n TextInputProps,\n} from \"components/TextInput/textInput.component\";\nimport { Popover } from \"components/Popover/popover.component\";\nimport { Icon } from \"components/Icon/icon.component\";\nimport { useIconTextSizeMap } from \"hooks/useIconTextSizeMap\";\nimport format from \"date-fns/format\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { TimeList } from \"./components/TimeList/timeList.component\";\nimport { Meridiem } from \"./timePicker.types\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { timePickerRecipe } from \"./timePicker.recipe\";\nimport { Placement } from \"shared/types/placement\";\n\nexport interface TimePickerProps {\n initialTime?: Date;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n minuteInterval?: number;\n onTimeChange?: (time: Date) => void;\n placement?: Placement;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n placement = \"bottom\",\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<\n string | undefined\n >();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return \"\";\n return format(selectedTime, \"h:mm aa\");\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) =>\n hour.toString(),\n );\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || \"12\";\n const _minute = minute || \"00\";\n const _meridiem = meridiem || \"AM\";\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour(\"12\");\n }\n if (!minute) {\n setSelectedMinute(\"00\");\n }\n if (!meridiem) {\n setSelectedMeridiem(\"AM\");\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(\n localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n );\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => setIsOpen(open)}\n anchor={\n <Box\n className=\"TimePicker__Trigger\"\n data-testid=\"kibble-timepicker-trigger\"\n css={styles.trigger}\n >\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={\n <Icon\n size={useIconTextSizeMap(inputProps?.size || \"md\")}\n name=\"clock\"\n />\n }\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { \"data-focus\": \"true\" })}\n />\n </Box>\n }\n contentProps={{ w: \"max-content\" }}\n variant=\"default\"\n placement={placement}\n >\n <Box\n className=\"TimePicker__Container\"\n data-testid=\"kibble-timepicker-container\"\n css={styles.container}\n >\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={\n selectedMinute ? formatNumber(selectedMinute) : undefined\n }\n onClick={handleMinuteClick}\n open={isOpen}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","containerRef","useEffect","option","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timePicker.component-BwmHvV_9.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from \"@chakra-ui/react/styled-system\";\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: \"4px\",\n cursor: \"pointer\",\n fontSize: \"sm\",\n px: 3,\n py: 1,\n textAlign: \"center\",\n },\n variants: {\n selected: {\n true: {\n background: \"background.secondary\",\n color: \"text.contrast\",\n _hover: {\n background: \"background.secondary.hover\",\n },\n },\n false: {\n background: \"background\",\n color: \"text.subtle\",\n _hover: {\n background: \"background.secondaryAlpha.hover\",\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from \"react\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { useRecipe } from \"@chakra-ui/react/styled-system\";\nimport { timeOptionRecipe } from \"./timeOption.recipe\";\n\ninterface TimeOptionProps {\n innerRef?: React.RefObject<HTMLDivElement | null> | null;\n onClick: (selectedValue: string) => void;\n selected: boolean;\n value: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || \"\";\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box\n className=\"TimePicker__Option\"\n data-testid=\"kibble-timepicker-option\"\n ref={innerRef}\n onClick={handleClick}\n css={styles}\n >\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from \"@chakra-ui/react/styled-system\";\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: [\"trigger\", \"container\", \"list\"],\n base: {\n trigger: {\n width: \"100%\",\n },\n container: {\n display: \"flex\",\n gap: 1.5,\n height: \"186px\",\n overflow: \"hidden\",\n },\n list: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 1,\n overflowY: \"auto\",\n \"&::webkit-scrollbar\": {\n display: \"none\",\n },\n },\n },\n});\n","import React, { useEffect, useRef } from \"react\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { TimeOption } from \"../TimeOption/timeOption.component\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { timePickerRecipe } from \"../../timePicker.recipe\";\n\ninterface ScrollContainerProps {\n options: string[];\n optionType: \"hour\" | \"minute\" | \"meridiem\";\n selectedValue?: string;\n onClick: (value: string) => void;\n open: boolean;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop =\n itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [open]);\n\n return (\n <Box\n className=\"TimePicker__List\"\n data-testid={`kibble-timepicker-${optionType}-list`}\n css={styles.list}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={option}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = \"AM\",\n PM = \"PM\",\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n TextInput,\n TextInputProps,\n} from \"components/TextInput/textInput.component\";\nimport { Popover } from \"components/Popover/popover.component\";\nimport { Icon } from \"components/Icon/icon.component\";\nimport { useIconTextSizeMap } from \"hooks/useIconTextSizeMap\";\nimport format from \"date-fns/format\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { TimeList } from \"./components/TimeList/timeList.component\";\nimport { Meridiem } from \"./timePicker.types\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { timePickerRecipe } from \"./timePicker.recipe\";\nimport { Placement } from \"shared/types/placement\";\n\nexport interface TimePickerProps {\n initialTime?: Date;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n minuteInterval?: number;\n onTimeChange?: (time: Date) => void;\n placement?: Placement;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n placement = \"bottom\",\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<\n string | undefined\n >();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return \"\";\n return format(selectedTime, \"h:mm aa\");\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) =>\n hour.toString(),\n );\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || \"12\";\n const _minute = minute || \"00\";\n const _meridiem = meridiem || \"AM\";\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour(\"12\");\n }\n if (!minute) {\n setSelectedMinute(\"00\");\n }\n if (!meridiem) {\n setSelectedMeridiem(\"AM\");\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(\n localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n );\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => setIsOpen(open)}\n anchor={\n <Box\n className=\"TimePicker__Trigger\"\n data-testid=\"kibble-timepicker-trigger\"\n css={styles.trigger}\n >\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={\n <Icon\n size={useIconTextSizeMap(inputProps?.size || \"md\")}\n name=\"clock\"\n />\n }\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { \"data-focus\": \"true\" })}\n />\n </Box>\n }\n contentProps={{ w: \"max-content\" }}\n variant=\"default\"\n placement={placement}\n >\n <Box\n className=\"TimePicker__Container\"\n data-testid=\"kibble-timepicker-container\"\n css={styles.container}\n >\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={\n selectedMinute ? formatNumber(selectedMinute) : undefined\n }\n onClick={handleMinuteClick}\n open={isOpen}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","containerRef","useEffect","option","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import { T as r } from "./timePicker.component-
|
|
2
|
+
import { T as r } from "./timePicker.component-BwmHvV_9.js";
|
|
3
3
|
import { F as a } from "./flex-C2d2LH-K.js";
|
|
4
4
|
import { B as o } from "./box-y05hq0PT.js";
|
|
5
5
|
const j = ({
|
|
@@ -15,4 +15,4 @@ const j = ({
|
|
|
15
15
|
export {
|
|
16
16
|
j as T
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=timeRange.component-
|
|
18
|
+
//# sourceMappingURL=timeRange.component-Du_CkwPc.js.map
|
package/dist/chunks/{timeRange.component-DuKclNl6.js.map → timeRange.component-Du_CkwPc.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.component-
|
|
1
|
+
{"version":3,"file":"timeRange.component-Du_CkwPc.js","sources":["../../src/components/TimeRange/timeRange.component.tsx"],"sourcesContent":["import React from \"react\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { Flex, FlexProps } from \"@chakra-ui/react/flex\";\nimport {\n TimePicker,\n TimePickerProps,\n} from \"components/TimePicker/timePicker.component\";\n\nexport interface TimeRangeProps extends FlexProps {\n separator?: React.ReactNode;\n endTimePickerProps: TimePickerProps;\n startTimePickerProps: TimePickerProps;\n}\n\nexport const TimeRange = ({\n endTimePickerProps,\n separator,\n startTimePickerProps,\n ...rest\n}: TimeRangeProps): React.JSX.Element => {\n return (\n <Flex className=\"TimeRange\" data-testid=\"kibble-time-range\" {...rest}>\n <TimePicker {...startTimePickerProps} />\n <Box alignSelf=\"center\" mx={1}>\n {separator || \"-\"}\n </Box>\n <TimePicker {...endTimePickerProps} />\n </Flex>\n );\n};\n"],"names":["TimeRange","endTimePickerProps","separator","startTimePickerProps","rest","Flex","jsx","TimePicker","Box"],"mappings":";;;;AAcO,MAAMA,IAAY,CAAC;AAAA,EACxB,oBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,GAAGC;AACL,6BAEKC,GAAK,EAAA,WAAU,aAAY,eAAY,qBAAqB,GAAGD,GAC9D,UAAA;AAAA,EAACE,gBAAAA,EAAAA,IAAAC,GAAA,EAAY,GAAGJ,GAAsB;AAAA,wBACrCK,GAAI,EAAA,WAAU,UAAS,IAAI,GACzB,eAAa,KAChB;AAAA,EACAF,gBAAAA,MAACC,GAAY,EAAA,GAAGN,EAAoB,CAAA;AAAA,GACtC;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { useMemo as f } from "react";
|
|
3
|
-
import { W as p } from "./text.component-
|
|
4
|
-
import { T as u } from "./tooltip.component-
|
|
3
|
+
import { W as p } from "./text.component-ByshUroO.js";
|
|
4
|
+
import { T as u } from "./tooltip.component-B0iqN7WJ.js";
|
|
5
5
|
import { c as m, n as x, s as n, f as l } from "./format-DgHM6wFr.js";
|
|
6
6
|
function T(t) {
|
|
7
7
|
return m(t, Date.now());
|
|
@@ -51,4 +51,4 @@ const z = ({
|
|
|
51
51
|
export {
|
|
52
52
|
z as T
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=timestamp.component-
|
|
54
|
+
//# sourceMappingURL=timestamp.component-CA-gdN9e.js.map
|
package/dist/chunks/{timestamp.component-BouqsJZM.js.map → timestamp.component-CA-gdN9e.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.component-
|
|
1
|
+
{"version":3,"file":"timestamp.component-CA-gdN9e.js","sources":["../../node_modules/date-fns/constructNow.js","../../node_modules/date-fns/isSameDay.js","../../node_modules/date-fns/isToday.js","../../src/components/Timestamp/timestamp.component.tsx"],"sourcesContent":["import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n","import React, { useMemo } from \"react\";\nimport { Text, TextProps } from \"components/Text/text.component\";\nimport { Tooltip } from \"components/Tooltip/tooltip.component\";\nimport format from \"date-fns/format\";\nimport isToday from \"date-fns/isToday\";\n\nexport interface TimestampProps {\n date: Date;\n timeFormat?: string;\n dateFormat?: string;\n shouldTodayDisplayTimeOnly?: boolean;\n tooltipLabel?: string;\n textProps?: Omit<TextProps, \"children\">;\n}\n\nexport const Timestamp = ({\n date,\n timeFormat = \"h:mma\",\n dateFormat = \"M/d/yy\",\n shouldTodayDisplayTimeOnly = true,\n tooltipLabel,\n textProps,\n}: TimestampProps): React.JSX.Element => {\n const stamp = useMemo(\n () =>\n format(\n date,\n isToday(date) && shouldTodayDisplayTimeOnly ? timeFormat : dateFormat,\n ),\n [date, dateFormat, shouldTodayDisplayTimeOnly, timeFormat],\n );\n\n return (\n <Tooltip disabled={!tooltipLabel} label={tooltipLabel || \"\"}>\n <Text\n className=\"Timestamp\"\n data-testid=\"kibble-timestamp\"\n variant=\"subtle\"\n size=\"xs\"\n textTransform=\"lowercase\"\n {...textProps}\n >\n {stamp}\n </Text>\n </Tooltip>\n );\n};\n"],"names":["constructNow","date","constructFrom","isSameDay","laterDate","earlierDate","options","dateLeft_","dateRight_","normalizeDates","startOfDay","isToday","Timestamp","timeFormat","dateFormat","shouldTodayDisplayTimeOnly","tooltipLabel","textProps","stamp","useMemo","format","Tooltip","jsx","Text"],"mappings":";;;;;AA8BO,SAASA,EAAaC,GAAM;AACjC,SAAOC,EAAcD,GAAM,KAAK,IAAG,CAAE;AACvC;ACIO,SAASE,EAAUC,GAAWC,GAAaC,GAAS;AACzD,QAAM,CAACC,GAAWC,CAAU,IAAIC;AAAA,IAC9BH,GAAS;AAAA,IACTF;AAAA,IACAC;AAAA,EACD;AACD,SAAO,CAACK,EAAWH,CAAS,KAAM,CAACG,EAAWF,CAAU;AAC1D;AChBO,SAASG,EAAQV,GAAMK,GAAS;AACrC,SAAOH;AAAA,IACLD,EAA6BD,GAAMA,CAAI;AAAA,IACvCD,EAA4BC,CAAI;AAAA,EACjC;AACH;ACjBO,MAAMW,IAAY,CAAC;AAAA,EACxB,MAAAX;AAAA,EACA,YAAAY,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,4BAAAC,IAA6B;AAAA,EAC7B,cAAAC;AAAA,EACA,WAAAC;AACF,MAAyC;AACvC,QAAMC,IAAQC;AAAA,IACZ,MACEC;AAAA,MACEnB;AAAA,MACAU,EAAQV,CAAI,KAAKc,IAA6BF,IAAaC;AAAA,IAC7D;AAAA,IACF,CAACb,GAAMa,GAAYC,GAA4BF,CAAU;AAAA,EAC3D;AAEA,+BACGQ,GAAQ,EAAA,UAAU,CAACL,GAAc,OAAOA,KAAgB,IACvD,UAAAM,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAY;AAAA,MACZ,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,eAAc;AAAA,MACb,GAAGN;AAAA,MAEH,UAAAC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ac as
|
|
2
|
-
import { a as st } from "./index-
|
|
1
|
+
import { ac as Y, ad as A, ae as j, c as q, R as U, f as Z, a1 as J, af as z, a as tt, r as V, ag as N, ah as et, e as I } from "./index-B8d8Hi2Q.js";
|
|
2
|
+
import { a as st } from "./index-xa8tmbbH.js";
|
|
3
3
|
var ot = Z("toast").parts(
|
|
4
4
|
"group",
|
|
5
5
|
"root",
|
|
@@ -284,7 +284,7 @@ var gt = q({
|
|
|
284
284
|
});
|
|
285
285
|
},
|
|
286
286
|
trackHotKeyPress({ prop: t, send: e }) {
|
|
287
|
-
return
|
|
287
|
+
return U(document, "keydown", (s) => {
|
|
288
288
|
const { hotkey: n } = t("store").attrs;
|
|
289
289
|
n.every((c) => s[c] || s.code === c) && e({ type: "DOC.HOTKEY" });
|
|
290
290
|
}, { capture: !0 });
|
|
@@ -293,7 +293,7 @@ var gt = q({
|
|
|
293
293
|
const { pauseOnPageIdle: s } = t("store").attrs;
|
|
294
294
|
if (!s) return;
|
|
295
295
|
const n = o.getDoc();
|
|
296
|
-
return
|
|
296
|
+
return U(n, "visibilitychange", () => {
|
|
297
297
|
const r = n.visibilityState === "hidden";
|
|
298
298
|
e({ type: r ? "PAUSE_ALL" : "RESUME_ALL" });
|
|
299
299
|
});
|
|
@@ -591,7 +591,7 @@ var { not: pt } = tt(), Rt = q({
|
|
|
591
591
|
},
|
|
592
592
|
trackHeight({ scope: t, prop: e }) {
|
|
593
593
|
let o;
|
|
594
|
-
return
|
|
594
|
+
return V(() => {
|
|
595
595
|
const s = $(t);
|
|
596
596
|
if (!s) return;
|
|
597
597
|
const n = () => {
|
|
@@ -616,7 +616,7 @@ var { not: pt } = tt(), Rt = q({
|
|
|
616
616
|
},
|
|
617
617
|
actions: {
|
|
618
618
|
setMounted({ context: t }) {
|
|
619
|
-
|
|
619
|
+
V(() => {
|
|
620
620
|
t.set("mounted", !0);
|
|
621
621
|
});
|
|
622
622
|
},
|
|
@@ -663,7 +663,7 @@ function W(t, e) {
|
|
|
663
663
|
const { id: o, height: s } = e;
|
|
664
664
|
t.context.set("heights", (n) => n.find((c) => c.id === o) ? n.map((c) => c.id === o ? { ...c, height: s } : c) : [{ id: o, height: s }, ...n]);
|
|
665
665
|
}
|
|
666
|
-
var mt = (t, e) => ({ ...e, ...
|
|
666
|
+
var mt = (t, e) => ({ ...e, ...Y(t) });
|
|
667
667
|
function ft(t) {
|
|
668
668
|
const e = mt(t, {
|
|
669
669
|
placement: "bottom",
|
|
@@ -730,7 +730,7 @@ function ft(t) {
|
|
|
730
730
|
type: "loading"
|
|
731
731
|
}));
|
|
732
732
|
let w = y !== void 0, P;
|
|
733
|
-
const
|
|
733
|
+
const Q = A(i).then(async (E) => {
|
|
734
734
|
if (P = ["resolve", E], ht(E) && !E.ok) {
|
|
735
735
|
w = !1;
|
|
736
736
|
const S = A(a.error, `HTTP Error! status: ${E.status}`);
|
|
@@ -750,7 +750,7 @@ function ft(t) {
|
|
|
750
750
|
w && (p(y), y = void 0), a.finally?.();
|
|
751
751
|
});
|
|
752
752
|
return { id: y, unwrap: () => new Promise(
|
|
753
|
-
(E, S) =>
|
|
753
|
+
(E, S) => Q.then(() => P[0] === "reject" ? S(P[1]) : E(P[1])).catch(S)
|
|
754
754
|
) };
|
|
755
755
|
},
|
|
756
756
|
pause: (i) => {
|
|
@@ -821,4 +821,4 @@ export {
|
|
|
821
821
|
Rt as m,
|
|
822
822
|
Ct as t
|
|
823
823
|
};
|
|
824
|
-
//# sourceMappingURL=toaster.records-
|
|
824
|
+
//# sourceMappingURL=toaster.records-DuvFE6c1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toaster.records-BSRUGTiS.js","sources":["../../node_modules/@zag-js/toast/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/toast/create-toaster.js","../../src/components/Toast/components/Toaster/toaster.records.ts"],"sourcesContent":["import { addDomEvent, raf, contains, dataAttr, MAX_Z_INDEX } from '@zag-js/dom-query';\nimport { createAnatomy } from '@zag-js/anatomy';\nimport { createMachine, createGuards } from '@zag-js/core';\nimport { trackDismissableBranch } from '@zag-js/dismissable';\nimport { uuid, setRafTimeout, ensureProps, runIfFn, compact } from '@zag-js/utils';\n\n// src/toast-group.connect.ts\nvar anatomy = createAnatomy(\"toast\").parts(\n \"group\",\n \"root\",\n \"title\",\n \"description\",\n \"actionTrigger\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/toast.dom.ts\nvar getRegionId = (placement) => `toast-group:${placement}`;\nvar getRegionEl = (ctx, placement) => ctx.getById(`toast-group:${placement}`);\nvar getRootId = (ctx) => `toast:${ctx.id}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getTitleId = (ctx) => `toast:${ctx.id}:title`;\nvar getDescriptionId = (ctx) => `toast:${ctx.id}:description`;\nvar getCloseTriggerId = (ctx) => `toast${ctx.id}:close`;\nvar defaultTimeouts = {\n info: 5e3,\n error: 5e3,\n success: 2e3,\n loading: Infinity,\n DEFAULT: 5e3\n};\nfunction getToastDuration(duration, type) {\n return duration ?? defaultTimeouts[type] ?? defaultTimeouts.DEFAULT;\n}\nvar getOffsets = (offsets) => typeof offsets === \"string\" ? { left: offsets, right: offsets, bottom: offsets, top: offsets } : offsets;\nfunction getGroupPlacementStyle(service, placement) {\n const { prop, computed, context } = service;\n const { offsets, gap } = prop(\"store\").attrs;\n const heights = context.get(\"heights\");\n const computedOffset = getOffsets(offsets);\n const rtl = prop(\"dir\") === \"rtl\";\n const computedPlacement = placement.replace(\"-start\", rtl ? \"-right\" : \"-left\").replace(\"-end\", rtl ? \"-left\" : \"-right\");\n const isRighty = computedPlacement.includes(\"right\");\n const isLefty = computedPlacement.includes(\"left\");\n const styles = {\n position: \"fixed\",\n pointerEvents: computed(\"count\") > 0 ? void 0 : \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n \"--gap\": `${gap}px`,\n \"--first-height\": `${heights[0]?.height || 0}px`,\n zIndex: MAX_Z_INDEX\n };\n let alignItems = \"center\";\n if (isRighty) alignItems = \"flex-end\";\n if (isLefty) alignItems = \"flex-start\";\n styles.alignItems = alignItems;\n if (computedPlacement.includes(\"top\")) {\n const offset = computedOffset.top;\n styles.top = `max(env(safe-area-inset-top, 0px), ${offset})`;\n }\n if (computedPlacement.includes(\"bottom\")) {\n const offset = computedOffset.bottom;\n styles.bottom = `max(env(safe-area-inset-bottom, 0px), ${offset})`;\n }\n if (!computedPlacement.includes(\"left\")) {\n const offset = computedOffset.right;\n styles.insetInlineEnd = `calc(env(safe-area-inset-right, 0px) + ${offset})`;\n }\n if (!computedPlacement.includes(\"right\")) {\n const offset = computedOffset.left;\n styles.insetInlineStart = `calc(env(safe-area-inset-left, 0px) + ${offset})`;\n }\n return styles;\n}\nfunction getPlacementStyle(service, visible) {\n const { prop, context, computed } = service;\n const parent = prop(\"parent\");\n const placement = parent.computed(\"placement\");\n const { gap } = parent.prop(\"store\").attrs;\n const [side] = placement.split(\"-\");\n const mounted = context.get(\"mounted\");\n const remainingTime = context.get(\"remainingTime\");\n const height = computed(\"height\");\n const frontmost = computed(\"frontmost\");\n const sibling = !frontmost;\n const overlap = !prop(\"stacked\");\n const stacked = prop(\"stacked\");\n const type = prop(\"type\");\n const duration = type === \"loading\" ? Number.MAX_SAFE_INTEGER : remainingTime;\n const offset = computed(\"heightIndex\") * gap + computed(\"heightBefore\");\n const styles = {\n position: \"absolute\",\n pointerEvents: \"auto\",\n \"--opacity\": \"0\",\n \"--remove-delay\": `${prop(\"removeDelay\")}ms`,\n \"--duration\": `${duration}ms`,\n \"--initial-height\": `${height}px`,\n \"--offset\": `${offset}px`,\n \"--index\": prop(\"index\"),\n \"--z-index\": computed(\"zIndex\"),\n \"--lift-amount\": \"calc(var(--lift) * var(--gap))\",\n \"--y\": \"100%\",\n \"--x\": \"0\"\n };\n const assign = (overrides) => Object.assign(styles, overrides);\n if (side === \"top\") {\n assign({\n top: \"0\",\n \"--sign\": \"-1\",\n \"--y\": \"-100%\",\n \"--lift\": \"1\"\n });\n } else if (side === \"bottom\") {\n assign({\n bottom: \"0\",\n \"--sign\": \"1\",\n \"--y\": \"100%\",\n \"--lift\": \"-1\"\n });\n }\n if (mounted) {\n assign({\n \"--y\": \"0\",\n \"--opacity\": \"1\"\n });\n if (stacked) {\n assign({\n \"--y\": \"calc(var(--lift) * var(--offset))\",\n \"--height\": \"var(--initial-height)\"\n });\n }\n }\n if (!visible) {\n assign({\n \"--opacity\": \"0\",\n pointerEvents: \"none\"\n });\n }\n if (sibling && overlap) {\n assign({\n \"--base-scale\": \"var(--index) * 0.05 + 1\",\n \"--y\": \"calc(var(--lift-amount) * var(--index))\",\n \"--scale\": \"calc(-1 * var(--base-scale))\",\n \"--height\": \"var(--first-height)\"\n });\n if (!visible) {\n assign({\n \"--y\": \"calc(var(--sign) * 40%)\"\n });\n }\n }\n if (sibling && stacked && !visible) {\n assign({\n \"--y\": \"calc(var(--lift) * var(--offset) + var(--lift) * -100%)\"\n });\n }\n if (frontmost && !visible) {\n assign({\n \"--y\": \"calc(var(--lift) * -100%)\"\n });\n }\n return styles;\n}\nfunction getGhostBeforeStyle(service, visible) {\n const { computed } = service;\n const styles = {\n position: \"absolute\",\n inset: \"0\",\n scale: \"1 2\",\n pointerEvents: visible ? \"none\" : \"auto\"\n };\n const assign = (overrides) => Object.assign(styles, overrides);\n if (computed(\"frontmost\") && !visible) {\n assign({\n height: \"calc(var(--initial-height) + 80%)\"\n });\n }\n return styles;\n}\nfunction getGhostAfterStyle() {\n return {\n position: \"absolute\",\n left: \"0\",\n height: \"calc(var(--gap) + 2px)\",\n bottom: \"100%\",\n width: \"100%\"\n };\n}\n\n// src/toast-group.connect.ts\nfunction groupConnect(service, normalize) {\n const { context, prop, send, refs, computed } = service;\n return {\n getCount() {\n return context.get(\"toasts\").length;\n },\n getToasts() {\n return context.get(\"toasts\");\n },\n getGroupProps(options = {}) {\n const { label = \"Notifications\" } = options;\n const { hotkey } = prop(\"store\").attrs;\n const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n const placement = computed(\"placement\");\n const [side, align = \"center\"] = placement.split(\"-\");\n return normalize.element({\n ...parts.group.attrs,\n dir: prop(\"dir\"),\n tabIndex: -1,\n \"aria-label\": `${placement} ${label} ${hotkeyLabel}`,\n id: getRegionId(placement),\n \"data-placement\": placement,\n \"data-side\": side,\n \"data-align\": align,\n \"aria-live\": \"polite\",\n role: \"region\",\n style: getGroupPlacementStyle(service, placement),\n onMouseMove() {\n send({ type: \"REGION.POINTER_ENTER\", placement });\n },\n onMouseLeave() {\n send({ type: \"REGION.POINTER_LEAVE\", placement });\n },\n onFocus(event) {\n send({ type: \"REGION.FOCUS\", target: event.relatedTarget });\n },\n onBlur(event) {\n if (refs.get(\"isFocusWithin\") && !contains(event.currentTarget, event.relatedTarget)) {\n queueMicrotask(() => send({ type: \"REGION.BLUR\" }));\n }\n }\n });\n },\n subscribe(fn) {\n const store = prop(\"store\");\n return store.subscribe(() => fn(context.get(\"toasts\")));\n }\n };\n}\nvar groupMachine = createMachine({\n props({ props }) {\n return {\n dir: \"ltr\",\n id: uuid(),\n ...props,\n store: props.store\n };\n },\n initialState({ prop }) {\n return prop(\"store\").attrs.overlap ? \"overlap\" : \"stack\";\n },\n refs() {\n return {\n lastFocusedEl: null,\n isFocusWithin: false,\n dismissableCleanup: void 0\n };\n },\n context({ bindable }) {\n return {\n toasts: bindable(() => ({\n defaultValue: [],\n sync: true,\n hash: (toasts) => toasts.map((t) => t.id).join(\",\")\n })),\n heights: bindable(() => ({\n defaultValue: [],\n sync: true\n }))\n };\n },\n computed: {\n count: ({ context }) => context.get(\"toasts\").length,\n overlap: ({ prop }) => prop(\"store\").attrs.overlap,\n placement: ({ prop }) => prop(\"store\").attrs.placement\n },\n effects: [\"subscribeToStore\", \"trackDocumentVisibility\", \"trackHotKeyPress\"],\n watch({ track, context, action }) {\n track([() => context.hash(\"toasts\")], () => {\n queueMicrotask(() => {\n action([\"collapsedIfEmpty\", \"setDismissableBranch\"]);\n });\n });\n },\n exit: [\"clearDismissableBranch\", \"clearLastFocusedEl\"],\n on: {\n \"DOC.HOTKEY\": {\n actions: [\"focusRegionEl\"]\n },\n \"REGION.BLUR\": [\n {\n guard: \"isOverlapping\",\n target: \"overlap\",\n actions: [\"collapseToasts\", \"resumeToasts\", \"restoreLastFocusedEl\"]\n },\n {\n target: \"stack\",\n actions: [\"resumeToasts\", \"restoreLastFocusedEl\"]\n }\n ],\n \"TOAST.REMOVE\": {\n actions: [\"removeToast\", \"removeHeight\"]\n },\n \"TOAST.PAUSE\": {\n actions: [\"pauseToasts\"]\n }\n },\n states: {\n stack: {\n on: {\n \"REGION.POINTER_LEAVE\": [\n {\n guard: \"isOverlapping\",\n target: \"overlap\",\n actions: [\"resumeToasts\", \"collapseToasts\"]\n },\n {\n actions: [\"resumeToasts\"]\n }\n ],\n \"REGION.OVERLAP\": {\n target: \"overlap\",\n actions: [\"collapseToasts\"]\n },\n \"REGION.FOCUS\": {\n actions: [\"setLastFocusedEl\", \"pauseToasts\"]\n },\n \"REGION.POINTER_ENTER\": {\n actions: [\"pauseToasts\"]\n }\n }\n },\n overlap: {\n on: {\n \"REGION.STACK\": {\n target: \"stack\",\n actions: [\"expandToasts\"]\n },\n \"REGION.POINTER_ENTER\": {\n target: \"stack\",\n actions: [\"pauseToasts\", \"expandToasts\"]\n },\n \"REGION.FOCUS\": {\n target: \"stack\",\n actions: [\"setLastFocusedEl\", \"pauseToasts\", \"expandToasts\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isOverlapping: ({ computed }) => computed(\"overlap\")\n },\n effects: {\n subscribeToStore({ context, prop }) {\n return prop(\"store\").subscribe((toast) => {\n if (toast.dismiss) {\n context.set(\"toasts\", (prev) => prev.filter((t) => t.id !== toast.id));\n return;\n }\n context.set(\"toasts\", (prev) => {\n const index = prev.findIndex((t) => t.id === toast.id);\n if (index !== -1) {\n return [...prev.slice(0, index), { ...prev[index], ...toast }, ...prev.slice(index + 1)];\n }\n return [toast, ...prev];\n });\n });\n },\n trackHotKeyPress({ prop, send }) {\n const handleKeyDown = (event) => {\n const { hotkey } = prop(\"store\").attrs;\n const isHotkeyPressed = hotkey.every((key) => event[key] || event.code === key);\n if (!isHotkeyPressed) return;\n send({ type: \"DOC.HOTKEY\" });\n };\n return addDomEvent(document, \"keydown\", handleKeyDown, { capture: true });\n },\n trackDocumentVisibility({ prop, send, scope }) {\n const { pauseOnPageIdle } = prop(\"store\").attrs;\n if (!pauseOnPageIdle) return;\n const doc = scope.getDoc();\n return addDomEvent(doc, \"visibilitychange\", () => {\n const isHidden = doc.visibilityState === \"hidden\";\n send({ type: isHidden ? \"PAUSE_ALL\" : \"RESUME_ALL\" });\n });\n }\n },\n actions: {\n setDismissableBranch({ refs, context, computed, scope }) {\n const toasts = context.get(\"toasts\");\n const placement = computed(\"placement\");\n const hasToasts = toasts.length > 0;\n if (!hasToasts) {\n refs.get(\"dismissableCleanup\")?.();\n return;\n }\n if (hasToasts && refs.get(\"dismissableCleanup\")) {\n return;\n }\n const groupEl = () => getRegionEl(scope, placement);\n const cleanup = trackDismissableBranch(groupEl, { defer: true });\n refs.set(\"dismissableCleanup\", cleanup);\n },\n clearDismissableBranch({ refs }) {\n refs.get(\"dismissableCleanup\")?.();\n },\n focusRegionEl({ scope, computed }) {\n queueMicrotask(() => {\n getRegionEl(scope, computed(\"placement\"))?.focus();\n });\n },\n pauseToasts({ prop }) {\n prop(\"store\").pause();\n },\n resumeToasts({ prop }) {\n prop(\"store\").resume();\n },\n expandToasts({ prop }) {\n prop(\"store\").expand();\n },\n collapseToasts({ prop }) {\n prop(\"store\").collapse();\n },\n removeToast({ prop, event }) {\n prop(\"store\").remove(event.id);\n },\n removeHeight({ event, context }) {\n if (event?.id == null) return;\n queueMicrotask(() => {\n context.set(\"heights\", (heights) => heights.filter((height) => height.id !== event.id));\n });\n },\n collapsedIfEmpty({ send, computed }) {\n if (!computed(\"overlap\") || computed(\"count\") > 1) return;\n send({ type: \"REGION.OVERLAP\" });\n },\n setLastFocusedEl({ refs, event }) {\n if (refs.get(\"isFocusWithin\") || !event.target) return;\n refs.set(\"isFocusWithin\", true);\n refs.set(\"lastFocusedEl\", event.target);\n },\n restoreLastFocusedEl({ refs }) {\n if (!refs.get(\"lastFocusedEl\")) return;\n refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n refs.set(\"lastFocusedEl\", null);\n refs.set(\"isFocusWithin\", false);\n },\n clearLastFocusedEl({ refs }) {\n if (!refs.get(\"lastFocusedEl\")) return;\n refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n refs.set(\"lastFocusedEl\", null);\n refs.set(\"isFocusWithin\", false);\n }\n }\n }\n});\nfunction connect(service, normalize) {\n const { state, send, prop, scope, context, computed } = service;\n const visible = state.hasTag(\"visible\");\n const paused = state.hasTag(\"paused\");\n const mounted = context.get(\"mounted\");\n const frontmost = computed(\"frontmost\");\n const placement = prop(\"parent\").computed(\"placement\");\n const type = prop(\"type\");\n const stacked = prop(\"stacked\");\n const title = prop(\"title\");\n const description = prop(\"description\");\n const action = prop(\"action\");\n const [side, align = \"center\"] = placement.split(\"-\");\n return {\n type,\n title,\n description,\n placement,\n visible,\n paused,\n closable: !!prop(\"closable\"),\n pause() {\n send({ type: \"PAUSE\" });\n },\n resume() {\n send({ type: \"RESUME\" });\n },\n dismiss() {\n send({ type: \"DISMISS\", src: \"programmatic\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-state\": visible ? \"open\" : \"closed\",\n \"data-type\": type,\n \"data-placement\": placement,\n \"data-align\": align,\n \"data-side\": side,\n \"data-mounted\": dataAttr(mounted),\n \"data-paused\": dataAttr(paused),\n \"data-first\": dataAttr(frontmost),\n \"data-sibling\": dataAttr(!frontmost),\n \"data-stack\": dataAttr(stacked),\n \"data-overlap\": dataAttr(!stacked),\n role: \"status\",\n \"aria-atomic\": \"true\",\n \"aria-describedby\": description ? getDescriptionId(scope) : void 0,\n \"aria-labelledby\": title ? getTitleId(scope) : void 0,\n tabIndex: 0,\n style: getPlacementStyle(service, visible),\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (event.key == \"Escape\") {\n send({ type: \"DISMISS\", src: \"keyboard\" });\n event.preventDefault();\n }\n }\n });\n },\n /* Leave a ghost div to avoid setting hover to false when transitioning out */\n getGhostBeforeProps() {\n return normalize.element({\n \"data-ghost\": \"before\",\n style: getGhostBeforeStyle(service, visible)\n });\n },\n /* Needed to avoid setting hover to false when in between toasts */\n getGhostAfterProps() {\n return normalize.element({\n \"data-ghost\": \"after\",\n style: getGhostAfterStyle()\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n id: getTitleId(scope)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n id: getDescriptionId(scope)\n });\n },\n getActionTriggerProps() {\n return normalize.button({\n ...parts.actionTrigger.attrs,\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n action?.onClick?.();\n send({ type: \"DISMISS\", src: \"user\" });\n }\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n id: getCloseTriggerId(scope),\n ...parts.closeTrigger.attrs,\n type: \"button\",\n \"aria-label\": \"Dismiss notification\",\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"DISMISS\", src: \"user\" });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props }) {\n ensureProps(props, [\"id\", \"type\", \"parent\", \"removeDelay\"], \"toast\");\n return {\n closable: true,\n ...props,\n duration: getToastDuration(props.duration, props.type)\n };\n },\n initialState({ prop }) {\n const persist = prop(\"type\") === \"loading\" || prop(\"duration\") === Infinity;\n return persist ? \"visible:persist\" : \"visible\";\n },\n context({ prop, bindable }) {\n return {\n remainingTime: bindable(() => ({\n defaultValue: getToastDuration(prop(\"duration\"), prop(\"type\"))\n })),\n createdAt: bindable(() => ({\n defaultValue: Date.now()\n })),\n mounted: bindable(() => ({\n defaultValue: false\n })),\n initialHeight: bindable(() => ({\n defaultValue: 0\n }))\n };\n },\n refs() {\n return {\n closeTimerStartTime: Date.now(),\n lastCloseStartTimerStartTime: 0\n };\n },\n computed: {\n zIndex: ({ prop }) => {\n const toasts = prop(\"parent\").context.get(\"toasts\");\n const index = toasts.findIndex((toast) => toast.id === prop(\"id\"));\n return toasts.length - index;\n },\n height: ({ prop }) => {\n const heights = prop(\"parent\").context.get(\"heights\");\n const height = heights.find((height2) => height2.id === prop(\"id\"));\n return height?.height ?? 0;\n },\n heightIndex: ({ prop }) => {\n const heights = prop(\"parent\").context.get(\"heights\");\n return heights.findIndex((height) => height.id === prop(\"id\"));\n },\n frontmost: ({ prop }) => prop(\"index\") === 0,\n heightBefore: ({ prop }) => {\n const heights = prop(\"parent\").context.get(\"heights\");\n const heightIndex = heights.findIndex((height) => height.id === prop(\"id\"));\n return heights.reduce((prev, curr, reducerIndex) => {\n if (reducerIndex >= heightIndex) return prev;\n return prev + curr.height;\n }, 0);\n },\n shouldPersist: ({ prop }) => prop(\"type\") === \"loading\" || prop(\"duration\") === Infinity\n },\n watch({ track, prop, send }) {\n track([() => prop(\"message\")], () => {\n const message = prop(\"message\");\n if (message) send({ type: message, src: \"programmatic\" });\n });\n track([() => prop(\"type\"), () => prop(\"duration\")], () => {\n send({ type: \"UPDATE\" });\n });\n },\n on: {\n UPDATE: [\n {\n guard: \"shouldPersist\",\n target: \"visible:persist\",\n actions: [\"resetCloseTimer\"]\n },\n {\n target: \"visible:updating\",\n actions: [\"resetCloseTimer\"]\n }\n ],\n MEASURE: {\n actions: [\"measureHeight\"]\n }\n },\n entry: [\"setMounted\", \"measureHeight\", \"invokeOnVisible\"],\n effects: [\"trackHeight\"],\n states: {\n \"visible:updating\": {\n tags: [\"visible\", \"updating\"],\n effects: [\"waitForNextTick\"],\n on: {\n SHOW: {\n target: \"visible\"\n }\n }\n },\n \"visible:persist\": {\n tags: [\"visible\", \"paused\"],\n on: {\n RESUME: {\n guard: not(\"isLoadingType\"),\n target: \"visible\",\n actions: [\"setCloseTimer\"]\n },\n DISMISS: {\n target: \"dismissing\"\n }\n }\n },\n visible: {\n tags: [\"visible\"],\n effects: [\"waitForDuration\"],\n on: {\n DISMISS: {\n target: \"dismissing\"\n },\n PAUSE: {\n target: \"visible:persist\",\n actions: [\"syncRemainingTime\"]\n }\n }\n },\n dismissing: {\n entry: [\"invokeOnDismiss\"],\n effects: [\"waitForRemoveDelay\"],\n on: {\n REMOVE: {\n target: \"unmounted\",\n actions: [\"notifyParentToRemove\"]\n }\n }\n },\n unmounted: {\n entry: [\"invokeOnUnmount\"]\n }\n },\n implementations: {\n effects: {\n waitForRemoveDelay({ prop, send }) {\n return setRafTimeout(() => {\n send({ type: \"REMOVE\", src: \"timer\" });\n }, prop(\"removeDelay\"));\n },\n waitForDuration({ send, context, computed }) {\n if (computed(\"shouldPersist\")) return;\n return setRafTimeout(() => {\n send({ type: \"DISMISS\", src: \"timer\" });\n }, context.get(\"remainingTime\"));\n },\n waitForNextTick({ send }) {\n return setRafTimeout(() => {\n send({ type: \"SHOW\", src: \"timer\" });\n }, 0);\n },\n trackHeight({ scope, prop }) {\n let cleanup;\n raf(() => {\n const rootEl = getRootEl(scope);\n if (!rootEl) return;\n const syncHeight = () => {\n const originalHeight = rootEl.style.height;\n rootEl.style.height = \"auto\";\n const height = rootEl.getBoundingClientRect().height;\n rootEl.style.height = originalHeight;\n const item = { id: prop(\"id\"), height };\n setHeight(prop(\"parent\"), item);\n };\n const win = scope.getWin();\n const observer = new win.MutationObserver(syncHeight);\n observer.observe(rootEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n cleanup = () => observer.disconnect();\n });\n return () => cleanup?.();\n }\n },\n guards: {\n isLoadingType: ({ prop }) => prop(\"type\") === \"loading\",\n shouldPersist: ({ computed }) => computed(\"shouldPersist\")\n },\n actions: {\n setMounted({ context }) {\n raf(() => {\n context.set(\"mounted\", true);\n });\n },\n measureHeight({ scope, prop, context }) {\n queueMicrotask(() => {\n const rootEl = getRootEl(scope);\n if (!rootEl) return;\n const originalHeight = rootEl.style.height;\n rootEl.style.height = \"auto\";\n const height = rootEl.getBoundingClientRect().height;\n rootEl.style.height = originalHeight;\n context.set(\"initialHeight\", height);\n const item = { id: prop(\"id\"), height };\n setHeight(prop(\"parent\"), item);\n });\n },\n setCloseTimer({ refs }) {\n refs.set(\"closeTimerStartTime\", Date.now());\n },\n resetCloseTimer({ context, refs, prop }) {\n refs.set(\"closeTimerStartTime\", Date.now());\n context.set(\"remainingTime\", getToastDuration(prop(\"duration\"), prop(\"type\")));\n },\n syncRemainingTime({ context, refs }) {\n context.set(\"remainingTime\", (prev) => {\n const closeTimerStartTime = refs.get(\"closeTimerStartTime\");\n const elapsedTime = Date.now() - closeTimerStartTime;\n refs.set(\"lastCloseStartTimerStartTime\", Date.now());\n return prev - elapsedTime;\n });\n },\n notifyParentToRemove({ prop }) {\n const parent = prop(\"parent\");\n parent.send({ type: \"TOAST.REMOVE\", id: prop(\"id\") });\n },\n invokeOnDismiss({ prop, event }) {\n prop(\"onStatusChange\")?.({ status: \"dismissing\", src: event.src });\n },\n invokeOnUnmount({ prop }) {\n prop(\"onStatusChange\")?.({ status: \"unmounted\" });\n },\n invokeOnVisible({ prop }) {\n prop(\"onStatusChange\")?.({ status: \"visible\" });\n }\n }\n }\n});\nfunction setHeight(parent, item) {\n const { id, height } = item;\n parent.context.set(\"heights\", (prev) => {\n const alreadyExists = prev.find((i) => i.id === id);\n if (!alreadyExists) {\n return [{ id, height }, ...prev];\n } else {\n return prev.map((i) => i.id === id ? { ...i, height } : i);\n }\n });\n}\nvar withDefaults = (options, defaults) => {\n return { ...defaults, ...compact(options) };\n};\nfunction createToastStore(props) {\n const attrs = withDefaults(props, {\n placement: \"bottom\",\n overlap: false,\n max: 24,\n gap: 16,\n offsets: \"1rem\",\n hotkey: [\"altKey\", \"KeyT\"],\n removeDelay: 200,\n pauseOnPageIdle: true\n });\n let subscribers = [];\n let toasts = [];\n let dismissedToasts = /* @__PURE__ */ new Set();\n let toastQueue = [];\n const subscribe = (subscriber) => {\n subscribers.push(subscriber);\n return () => {\n const index = subscribers.indexOf(subscriber);\n subscribers.splice(index, 1);\n };\n };\n const publish = (data) => {\n subscribers.forEach((subscriber) => subscriber(data));\n return data;\n };\n const addToast = (data) => {\n if (toasts.length >= attrs.max) {\n toastQueue.push(data);\n return;\n }\n publish(data);\n toasts.unshift(data);\n };\n const processQueue = () => {\n while (toastQueue.length > 0 && toasts.length < attrs.max) {\n const nextToast = toastQueue.shift();\n if (nextToast) {\n publish(nextToast);\n toasts.unshift(nextToast);\n }\n }\n };\n const create = (data) => {\n const id = data.id ?? `toast:${uuid()}`;\n const exists = toasts.find((toast) => toast.id === id);\n if (dismissedToasts.has(id)) dismissedToasts.delete(id);\n if (exists) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) {\n return publish({ ...toast, ...data, id });\n }\n return toast;\n });\n } else {\n addToast({\n id,\n duration: attrs.duration,\n removeDelay: attrs.removeDelay,\n type: \"info\",\n ...data,\n stacked: !attrs.overlap,\n gap: attrs.gap\n });\n }\n return id;\n };\n const remove = (id) => {\n dismissedToasts.add(id);\n if (!id) {\n toasts.forEach((toast) => {\n subscribers.forEach((subscriber) => subscriber({ id: toast.id, dismiss: true }));\n });\n toasts = [];\n toastQueue = [];\n } else {\n subscribers.forEach((subscriber) => subscriber({ id, dismiss: true }));\n toasts = toasts.filter((toast) => toast.id !== id);\n processQueue();\n }\n return id;\n };\n const error = (data) => {\n return create({ ...data, type: \"error\" });\n };\n const success = (data) => {\n return create({ ...data, type: \"success\" });\n };\n const info = (data) => {\n return create({ ...data, type: \"info\" });\n };\n const warning = (data) => {\n return create({ ...data, type: \"warning\" });\n };\n const loading = (data) => {\n return create({ ...data, type: \"loading\" });\n };\n const getVisibleToasts = () => {\n return toasts.filter((toast) => !dismissedToasts.has(toast.id));\n };\n const getCount = () => {\n return toasts.length;\n };\n const promise = (promise2, options, shared = {}) => {\n if (!options) return;\n let id = void 0;\n if (options.loading !== void 0) {\n id = create({\n ...shared,\n ...options.loading,\n promise: promise2,\n type: \"loading\"\n });\n }\n let removable = id !== void 0;\n let result;\n const prom = runIfFn(promise2).then(async (response) => {\n result = [\"resolve\", response];\n if (isHttpResponse(response) && !response.ok) {\n removable = false;\n const errorOptions = runIfFn(options.error, `HTTP Error! status: ${response.status}`);\n create({ ...shared, ...errorOptions, id, type: \"error\" });\n } else if (options.success !== void 0) {\n removable = false;\n const successOptions = runIfFn(options.success, response);\n create({ ...shared, ...successOptions, id, type: \"success\" });\n }\n }).catch(async (error2) => {\n result = [\"reject\", error2];\n if (options.error !== void 0) {\n removable = false;\n const errorOptions = runIfFn(options.error, error2);\n create({ ...shared, ...errorOptions, id, type: \"error\" });\n }\n }).finally(() => {\n if (removable) {\n remove(id);\n id = void 0;\n }\n options.finally?.();\n });\n const unwrap = () => new Promise(\n (resolve, reject) => prom.then(() => result[0] === \"reject\" ? reject(result[1]) : resolve(result[1])).catch(reject)\n );\n return { id, unwrap };\n };\n const update = (id, data) => {\n return create({ id, ...data });\n };\n const pause = (id) => {\n if (id != null) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) return publish({ ...toast, message: \"PAUSE\" });\n return toast;\n });\n } else {\n toasts = toasts.map((toast) => publish({ ...toast, message: \"PAUSE\" }));\n }\n };\n const resume = (id) => {\n if (id != null) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) return publish({ ...toast, message: \"RESUME\" });\n return toast;\n });\n } else {\n toasts = toasts.map((toast) => publish({ ...toast, message: \"RESUME\" }));\n }\n };\n const dismiss = (id) => {\n if (id != null) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) return publish({ ...toast, message: \"DISMISS\" });\n return toast;\n });\n } else {\n toasts = toasts.map((toast) => publish({ ...toast, message: \"DISMISS\" }));\n }\n };\n const isVisible = (id) => {\n return !dismissedToasts.has(id) && !!toasts.find((toast) => toast.id === id);\n };\n const isDismissed = (id) => {\n return dismissedToasts.has(id);\n };\n const expand = () => {\n toasts = toasts.map((toast) => publish({ ...toast, stacked: true }));\n };\n const collapse = () => {\n toasts = toasts.map((toast) => publish({ ...toast, stacked: false }));\n };\n return {\n attrs,\n subscribe,\n create,\n update,\n remove,\n dismiss,\n error,\n success,\n info,\n warning,\n loading,\n getVisibleToasts,\n getCount,\n promise,\n pause,\n resume,\n isVisible,\n isDismissed,\n expand,\n collapse\n };\n}\nvar isHttpResponse = (data) => {\n return data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n};\n\n// src/index.ts\nvar group = {\n connect: groupConnect,\n machine: groupMachine\n};\n\nexport { anatomy, connect, createToastStore as createStore, group, machine };\n","'use client';\nimport * as toast from '@zag-js/toast';\n\nconst createToaster = (props) => {\n return toast.createStore(props);\n};\n\nexport { createToaster };\n","import { createToaster } from \"@chakra-ui/react/toast\";\nimport { ToasterConfig } from \"./toaster.types\";\n\nexport const toasterPlacements = [\n \"bottom\",\n \"bottom-end\",\n \"bottom-start\",\n \"top\",\n \"top-end\",\n \"top-start\",\n] as const;\n\nexport type ToasterPlacement = (typeof toasterPlacements)[number];\n\nconst defaultToasterConfig: ToasterConfig = {\n duration: 5000,\n gap: 16,\n hotkey: undefined,\n max: 24,\n offsets: \"1rem\",\n overlap: false,\n pauseOnPageIdle: true,\n removeDelay: 200,\n};\n\nexport const ToasterConfigMap: Record<ToasterPlacement, ToasterConfig> = {\n bottom: {\n ...defaultToasterConfig,\n placement: \"bottom\",\n },\n \"bottom-end\": {\n ...defaultToasterConfig,\n placement: \"bottom-end\",\n },\n \"bottom-start\": {\n ...defaultToasterConfig,\n placement: \"bottom-start\",\n },\n top: {\n ...defaultToasterConfig,\n placement: \"top\",\n },\n \"top-end\": {\n ...defaultToasterConfig,\n placement: \"top-end\",\n },\n \"top-start\": {\n ...defaultToasterConfig,\n placement: \"top-start\",\n },\n};\n\nexport const bottomToaster = createToaster(ToasterConfigMap[\"bottom\"]);\nexport const bottomEndToaster = createToaster(ToasterConfigMap[\"bottom-end\"]);\nexport const bottomStartToaster = createToaster(\n ToasterConfigMap[\"bottom-start\"],\n);\nexport const topToaster = createToaster(ToasterConfigMap[\"top\"]);\nexport const topEndToaster = createToaster(ToasterConfigMap[\"top-end\"]);\nexport const topStartToaster = createToaster(ToasterConfigMap[\"top-start\"]);\n"],"names":["anatomy","createAnatomy","parts","getRegionId","placement","getRegionEl","ctx","getRootId","getRootEl","getTitleId","getDescriptionId","getCloseTriggerId","defaultTimeouts","getToastDuration","duration","type","getOffsets","offsets","getGroupPlacementStyle","service","prop","computed","context","gap","heights","computedOffset","rtl","computedPlacement","isRighty","isLefty","styles","MAX_Z_INDEX","alignItems","offset","getPlacementStyle","visible","parent","side","mounted","remainingTime","height","frontmost","sibling","overlap","stacked","assign","overrides","getGhostBeforeStyle","getGhostAfterStyle","groupConnect","normalize","send","refs","options","label","hotkey","hotkeyLabel","align","event","contains","fn","groupMachine","createMachine","props","uuid","bindable","toasts","t","track","action","toast","prev","index","addDomEvent","key","scope","pauseOnPageIdle","doc","isHidden","hasToasts","cleanup","trackDismissableBranch","connect","state","paused","title","description","dataAttr","not","createGuards","machine","ensureProps","height2","heightIndex","curr","reducerIndex","message","setRafTimeout","raf","rootEl","syncHeight","originalHeight","item","setHeight","win","observer","closeTimerStartTime","elapsedTime","id","i","withDefaults","defaults","compact","createToastStore","attrs","subscribers","dismissedToasts","toastQueue","subscribe","subscriber","publish","data","addToast","processQueue","nextToast","create","exists","remove","promise2","shared","removable","result","prom","runIfFn","response","isHttpResponse","errorOptions","successOptions","error2","resolve","reject","group","createToaster","toast.createStore","defaultToasterConfig","ToasterConfigMap","bottomToaster","bottomEndToaster","bottomStartToaster","topToaster","topEndToaster","topStartToaster"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"toaster.records-DuvFE6c1.js","sources":["../../node_modules/@zag-js/toast/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/toast/create-toaster.js","../../src/components/Toast/components/Toaster/toaster.records.ts"],"sourcesContent":["import { addDomEvent, raf, contains, dataAttr, MAX_Z_INDEX } from '@zag-js/dom-query';\nimport { createAnatomy } from '@zag-js/anatomy';\nimport { createMachine, createGuards } from '@zag-js/core';\nimport { trackDismissableBranch } from '@zag-js/dismissable';\nimport { uuid, setRafTimeout, ensureProps, runIfFn, compact } from '@zag-js/utils';\n\n// src/toast-group.connect.ts\nvar anatomy = createAnatomy(\"toast\").parts(\n \"group\",\n \"root\",\n \"title\",\n \"description\",\n \"actionTrigger\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/toast.dom.ts\nvar getRegionId = (placement) => `toast-group:${placement}`;\nvar getRegionEl = (ctx, placement) => ctx.getById(`toast-group:${placement}`);\nvar getRootId = (ctx) => `toast:${ctx.id}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getTitleId = (ctx) => `toast:${ctx.id}:title`;\nvar getDescriptionId = (ctx) => `toast:${ctx.id}:description`;\nvar getCloseTriggerId = (ctx) => `toast${ctx.id}:close`;\nvar defaultTimeouts = {\n info: 5e3,\n error: 5e3,\n success: 2e3,\n loading: Infinity,\n DEFAULT: 5e3\n};\nfunction getToastDuration(duration, type) {\n return duration ?? defaultTimeouts[type] ?? defaultTimeouts.DEFAULT;\n}\nvar getOffsets = (offsets) => typeof offsets === \"string\" ? { left: offsets, right: offsets, bottom: offsets, top: offsets } : offsets;\nfunction getGroupPlacementStyle(service, placement) {\n const { prop, computed, context } = service;\n const { offsets, gap } = prop(\"store\").attrs;\n const heights = context.get(\"heights\");\n const computedOffset = getOffsets(offsets);\n const rtl = prop(\"dir\") === \"rtl\";\n const computedPlacement = placement.replace(\"-start\", rtl ? \"-right\" : \"-left\").replace(\"-end\", rtl ? \"-left\" : \"-right\");\n const isRighty = computedPlacement.includes(\"right\");\n const isLefty = computedPlacement.includes(\"left\");\n const styles = {\n position: \"fixed\",\n pointerEvents: computed(\"count\") > 0 ? void 0 : \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n \"--gap\": `${gap}px`,\n \"--first-height\": `${heights[0]?.height || 0}px`,\n zIndex: MAX_Z_INDEX\n };\n let alignItems = \"center\";\n if (isRighty) alignItems = \"flex-end\";\n if (isLefty) alignItems = \"flex-start\";\n styles.alignItems = alignItems;\n if (computedPlacement.includes(\"top\")) {\n const offset = computedOffset.top;\n styles.top = `max(env(safe-area-inset-top, 0px), ${offset})`;\n }\n if (computedPlacement.includes(\"bottom\")) {\n const offset = computedOffset.bottom;\n styles.bottom = `max(env(safe-area-inset-bottom, 0px), ${offset})`;\n }\n if (!computedPlacement.includes(\"left\")) {\n const offset = computedOffset.right;\n styles.insetInlineEnd = `calc(env(safe-area-inset-right, 0px) + ${offset})`;\n }\n if (!computedPlacement.includes(\"right\")) {\n const offset = computedOffset.left;\n styles.insetInlineStart = `calc(env(safe-area-inset-left, 0px) + ${offset})`;\n }\n return styles;\n}\nfunction getPlacementStyle(service, visible) {\n const { prop, context, computed } = service;\n const parent = prop(\"parent\");\n const placement = parent.computed(\"placement\");\n const { gap } = parent.prop(\"store\").attrs;\n const [side] = placement.split(\"-\");\n const mounted = context.get(\"mounted\");\n const remainingTime = context.get(\"remainingTime\");\n const height = computed(\"height\");\n const frontmost = computed(\"frontmost\");\n const sibling = !frontmost;\n const overlap = !prop(\"stacked\");\n const stacked = prop(\"stacked\");\n const type = prop(\"type\");\n const duration = type === \"loading\" ? Number.MAX_SAFE_INTEGER : remainingTime;\n const offset = computed(\"heightIndex\") * gap + computed(\"heightBefore\");\n const styles = {\n position: \"absolute\",\n pointerEvents: \"auto\",\n \"--opacity\": \"0\",\n \"--remove-delay\": `${prop(\"removeDelay\")}ms`,\n \"--duration\": `${duration}ms`,\n \"--initial-height\": `${height}px`,\n \"--offset\": `${offset}px`,\n \"--index\": prop(\"index\"),\n \"--z-index\": computed(\"zIndex\"),\n \"--lift-amount\": \"calc(var(--lift) * var(--gap))\",\n \"--y\": \"100%\",\n \"--x\": \"0\"\n };\n const assign = (overrides) => Object.assign(styles, overrides);\n if (side === \"top\") {\n assign({\n top: \"0\",\n \"--sign\": \"-1\",\n \"--y\": \"-100%\",\n \"--lift\": \"1\"\n });\n } else if (side === \"bottom\") {\n assign({\n bottom: \"0\",\n \"--sign\": \"1\",\n \"--y\": \"100%\",\n \"--lift\": \"-1\"\n });\n }\n if (mounted) {\n assign({\n \"--y\": \"0\",\n \"--opacity\": \"1\"\n });\n if (stacked) {\n assign({\n \"--y\": \"calc(var(--lift) * var(--offset))\",\n \"--height\": \"var(--initial-height)\"\n });\n }\n }\n if (!visible) {\n assign({\n \"--opacity\": \"0\",\n pointerEvents: \"none\"\n });\n }\n if (sibling && overlap) {\n assign({\n \"--base-scale\": \"var(--index) * 0.05 + 1\",\n \"--y\": \"calc(var(--lift-amount) * var(--index))\",\n \"--scale\": \"calc(-1 * var(--base-scale))\",\n \"--height\": \"var(--first-height)\"\n });\n if (!visible) {\n assign({\n \"--y\": \"calc(var(--sign) * 40%)\"\n });\n }\n }\n if (sibling && stacked && !visible) {\n assign({\n \"--y\": \"calc(var(--lift) * var(--offset) + var(--lift) * -100%)\"\n });\n }\n if (frontmost && !visible) {\n assign({\n \"--y\": \"calc(var(--lift) * -100%)\"\n });\n }\n return styles;\n}\nfunction getGhostBeforeStyle(service, visible) {\n const { computed } = service;\n const styles = {\n position: \"absolute\",\n inset: \"0\",\n scale: \"1 2\",\n pointerEvents: visible ? \"none\" : \"auto\"\n };\n const assign = (overrides) => Object.assign(styles, overrides);\n if (computed(\"frontmost\") && !visible) {\n assign({\n height: \"calc(var(--initial-height) + 80%)\"\n });\n }\n return styles;\n}\nfunction getGhostAfterStyle() {\n return {\n position: \"absolute\",\n left: \"0\",\n height: \"calc(var(--gap) + 2px)\",\n bottom: \"100%\",\n width: \"100%\"\n };\n}\n\n// src/toast-group.connect.ts\nfunction groupConnect(service, normalize) {\n const { context, prop, send, refs, computed } = service;\n return {\n getCount() {\n return context.get(\"toasts\").length;\n },\n getToasts() {\n return context.get(\"toasts\");\n },\n getGroupProps(options = {}) {\n const { label = \"Notifications\" } = options;\n const { hotkey } = prop(\"store\").attrs;\n const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n const placement = computed(\"placement\");\n const [side, align = \"center\"] = placement.split(\"-\");\n return normalize.element({\n ...parts.group.attrs,\n dir: prop(\"dir\"),\n tabIndex: -1,\n \"aria-label\": `${placement} ${label} ${hotkeyLabel}`,\n id: getRegionId(placement),\n \"data-placement\": placement,\n \"data-side\": side,\n \"data-align\": align,\n \"aria-live\": \"polite\",\n role: \"region\",\n style: getGroupPlacementStyle(service, placement),\n onMouseMove() {\n send({ type: \"REGION.POINTER_ENTER\", placement });\n },\n onMouseLeave() {\n send({ type: \"REGION.POINTER_LEAVE\", placement });\n },\n onFocus(event) {\n send({ type: \"REGION.FOCUS\", target: event.relatedTarget });\n },\n onBlur(event) {\n if (refs.get(\"isFocusWithin\") && !contains(event.currentTarget, event.relatedTarget)) {\n queueMicrotask(() => send({ type: \"REGION.BLUR\" }));\n }\n }\n });\n },\n subscribe(fn) {\n const store = prop(\"store\");\n return store.subscribe(() => fn(context.get(\"toasts\")));\n }\n };\n}\nvar groupMachine = createMachine({\n props({ props }) {\n return {\n dir: \"ltr\",\n id: uuid(),\n ...props,\n store: props.store\n };\n },\n initialState({ prop }) {\n return prop(\"store\").attrs.overlap ? \"overlap\" : \"stack\";\n },\n refs() {\n return {\n lastFocusedEl: null,\n isFocusWithin: false,\n dismissableCleanup: void 0\n };\n },\n context({ bindable }) {\n return {\n toasts: bindable(() => ({\n defaultValue: [],\n sync: true,\n hash: (toasts) => toasts.map((t) => t.id).join(\",\")\n })),\n heights: bindable(() => ({\n defaultValue: [],\n sync: true\n }))\n };\n },\n computed: {\n count: ({ context }) => context.get(\"toasts\").length,\n overlap: ({ prop }) => prop(\"store\").attrs.overlap,\n placement: ({ prop }) => prop(\"store\").attrs.placement\n },\n effects: [\"subscribeToStore\", \"trackDocumentVisibility\", \"trackHotKeyPress\"],\n watch({ track, context, action }) {\n track([() => context.hash(\"toasts\")], () => {\n queueMicrotask(() => {\n action([\"collapsedIfEmpty\", \"setDismissableBranch\"]);\n });\n });\n },\n exit: [\"clearDismissableBranch\", \"clearLastFocusedEl\"],\n on: {\n \"DOC.HOTKEY\": {\n actions: [\"focusRegionEl\"]\n },\n \"REGION.BLUR\": [\n {\n guard: \"isOverlapping\",\n target: \"overlap\",\n actions: [\"collapseToasts\", \"resumeToasts\", \"restoreLastFocusedEl\"]\n },\n {\n target: \"stack\",\n actions: [\"resumeToasts\", \"restoreLastFocusedEl\"]\n }\n ],\n \"TOAST.REMOVE\": {\n actions: [\"removeToast\", \"removeHeight\"]\n },\n \"TOAST.PAUSE\": {\n actions: [\"pauseToasts\"]\n }\n },\n states: {\n stack: {\n on: {\n \"REGION.POINTER_LEAVE\": [\n {\n guard: \"isOverlapping\",\n target: \"overlap\",\n actions: [\"resumeToasts\", \"collapseToasts\"]\n },\n {\n actions: [\"resumeToasts\"]\n }\n ],\n \"REGION.OVERLAP\": {\n target: \"overlap\",\n actions: [\"collapseToasts\"]\n },\n \"REGION.FOCUS\": {\n actions: [\"setLastFocusedEl\", \"pauseToasts\"]\n },\n \"REGION.POINTER_ENTER\": {\n actions: [\"pauseToasts\"]\n }\n }\n },\n overlap: {\n on: {\n \"REGION.STACK\": {\n target: \"stack\",\n actions: [\"expandToasts\"]\n },\n \"REGION.POINTER_ENTER\": {\n target: \"stack\",\n actions: [\"pauseToasts\", \"expandToasts\"]\n },\n \"REGION.FOCUS\": {\n target: \"stack\",\n actions: [\"setLastFocusedEl\", \"pauseToasts\", \"expandToasts\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isOverlapping: ({ computed }) => computed(\"overlap\")\n },\n effects: {\n subscribeToStore({ context, prop }) {\n return prop(\"store\").subscribe((toast) => {\n if (toast.dismiss) {\n context.set(\"toasts\", (prev) => prev.filter((t) => t.id !== toast.id));\n return;\n }\n context.set(\"toasts\", (prev) => {\n const index = prev.findIndex((t) => t.id === toast.id);\n if (index !== -1) {\n return [...prev.slice(0, index), { ...prev[index], ...toast }, ...prev.slice(index + 1)];\n }\n return [toast, ...prev];\n });\n });\n },\n trackHotKeyPress({ prop, send }) {\n const handleKeyDown = (event) => {\n const { hotkey } = prop(\"store\").attrs;\n const isHotkeyPressed = hotkey.every((key) => event[key] || event.code === key);\n if (!isHotkeyPressed) return;\n send({ type: \"DOC.HOTKEY\" });\n };\n return addDomEvent(document, \"keydown\", handleKeyDown, { capture: true });\n },\n trackDocumentVisibility({ prop, send, scope }) {\n const { pauseOnPageIdle } = prop(\"store\").attrs;\n if (!pauseOnPageIdle) return;\n const doc = scope.getDoc();\n return addDomEvent(doc, \"visibilitychange\", () => {\n const isHidden = doc.visibilityState === \"hidden\";\n send({ type: isHidden ? \"PAUSE_ALL\" : \"RESUME_ALL\" });\n });\n }\n },\n actions: {\n setDismissableBranch({ refs, context, computed, scope }) {\n const toasts = context.get(\"toasts\");\n const placement = computed(\"placement\");\n const hasToasts = toasts.length > 0;\n if (!hasToasts) {\n refs.get(\"dismissableCleanup\")?.();\n return;\n }\n if (hasToasts && refs.get(\"dismissableCleanup\")) {\n return;\n }\n const groupEl = () => getRegionEl(scope, placement);\n const cleanup = trackDismissableBranch(groupEl, { defer: true });\n refs.set(\"dismissableCleanup\", cleanup);\n },\n clearDismissableBranch({ refs }) {\n refs.get(\"dismissableCleanup\")?.();\n },\n focusRegionEl({ scope, computed }) {\n queueMicrotask(() => {\n getRegionEl(scope, computed(\"placement\"))?.focus();\n });\n },\n pauseToasts({ prop }) {\n prop(\"store\").pause();\n },\n resumeToasts({ prop }) {\n prop(\"store\").resume();\n },\n expandToasts({ prop }) {\n prop(\"store\").expand();\n },\n collapseToasts({ prop }) {\n prop(\"store\").collapse();\n },\n removeToast({ prop, event }) {\n prop(\"store\").remove(event.id);\n },\n removeHeight({ event, context }) {\n if (event?.id == null) return;\n queueMicrotask(() => {\n context.set(\"heights\", (heights) => heights.filter((height) => height.id !== event.id));\n });\n },\n collapsedIfEmpty({ send, computed }) {\n if (!computed(\"overlap\") || computed(\"count\") > 1) return;\n send({ type: \"REGION.OVERLAP\" });\n },\n setLastFocusedEl({ refs, event }) {\n if (refs.get(\"isFocusWithin\") || !event.target) return;\n refs.set(\"isFocusWithin\", true);\n refs.set(\"lastFocusedEl\", event.target);\n },\n restoreLastFocusedEl({ refs }) {\n if (!refs.get(\"lastFocusedEl\")) return;\n refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n refs.set(\"lastFocusedEl\", null);\n refs.set(\"isFocusWithin\", false);\n },\n clearLastFocusedEl({ refs }) {\n if (!refs.get(\"lastFocusedEl\")) return;\n refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n refs.set(\"lastFocusedEl\", null);\n refs.set(\"isFocusWithin\", false);\n }\n }\n }\n});\nfunction connect(service, normalize) {\n const { state, send, prop, scope, context, computed } = service;\n const visible = state.hasTag(\"visible\");\n const paused = state.hasTag(\"paused\");\n const mounted = context.get(\"mounted\");\n const frontmost = computed(\"frontmost\");\n const placement = prop(\"parent\").computed(\"placement\");\n const type = prop(\"type\");\n const stacked = prop(\"stacked\");\n const title = prop(\"title\");\n const description = prop(\"description\");\n const action = prop(\"action\");\n const [side, align = \"center\"] = placement.split(\"-\");\n return {\n type,\n title,\n description,\n placement,\n visible,\n paused,\n closable: !!prop(\"closable\"),\n pause() {\n send({ type: \"PAUSE\" });\n },\n resume() {\n send({ type: \"RESUME\" });\n },\n dismiss() {\n send({ type: \"DISMISS\", src: \"programmatic\" });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-state\": visible ? \"open\" : \"closed\",\n \"data-type\": type,\n \"data-placement\": placement,\n \"data-align\": align,\n \"data-side\": side,\n \"data-mounted\": dataAttr(mounted),\n \"data-paused\": dataAttr(paused),\n \"data-first\": dataAttr(frontmost),\n \"data-sibling\": dataAttr(!frontmost),\n \"data-stack\": dataAttr(stacked),\n \"data-overlap\": dataAttr(!stacked),\n role: \"status\",\n \"aria-atomic\": \"true\",\n \"aria-describedby\": description ? getDescriptionId(scope) : void 0,\n \"aria-labelledby\": title ? getTitleId(scope) : void 0,\n tabIndex: 0,\n style: getPlacementStyle(service, visible),\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (event.key == \"Escape\") {\n send({ type: \"DISMISS\", src: \"keyboard\" });\n event.preventDefault();\n }\n }\n });\n },\n /* Leave a ghost div to avoid setting hover to false when transitioning out */\n getGhostBeforeProps() {\n return normalize.element({\n \"data-ghost\": \"before\",\n style: getGhostBeforeStyle(service, visible)\n });\n },\n /* Needed to avoid setting hover to false when in between toasts */\n getGhostAfterProps() {\n return normalize.element({\n \"data-ghost\": \"after\",\n style: getGhostAfterStyle()\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n id: getTitleId(scope)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n id: getDescriptionId(scope)\n });\n },\n getActionTriggerProps() {\n return normalize.button({\n ...parts.actionTrigger.attrs,\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n action?.onClick?.();\n send({ type: \"DISMISS\", src: \"user\" });\n }\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n id: getCloseTriggerId(scope),\n ...parts.closeTrigger.attrs,\n type: \"button\",\n \"aria-label\": \"Dismiss notification\",\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"DISMISS\", src: \"user\" });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props }) {\n ensureProps(props, [\"id\", \"type\", \"parent\", \"removeDelay\"], \"toast\");\n return {\n closable: true,\n ...props,\n duration: getToastDuration(props.duration, props.type)\n };\n },\n initialState({ prop }) {\n const persist = prop(\"type\") === \"loading\" || prop(\"duration\") === Infinity;\n return persist ? \"visible:persist\" : \"visible\";\n },\n context({ prop, bindable }) {\n return {\n remainingTime: bindable(() => ({\n defaultValue: getToastDuration(prop(\"duration\"), prop(\"type\"))\n })),\n createdAt: bindable(() => ({\n defaultValue: Date.now()\n })),\n mounted: bindable(() => ({\n defaultValue: false\n })),\n initialHeight: bindable(() => ({\n defaultValue: 0\n }))\n };\n },\n refs() {\n return {\n closeTimerStartTime: Date.now(),\n lastCloseStartTimerStartTime: 0\n };\n },\n computed: {\n zIndex: ({ prop }) => {\n const toasts = prop(\"parent\").context.get(\"toasts\");\n const index = toasts.findIndex((toast) => toast.id === prop(\"id\"));\n return toasts.length - index;\n },\n height: ({ prop }) => {\n const heights = prop(\"parent\").context.get(\"heights\");\n const height = heights.find((height2) => height2.id === prop(\"id\"));\n return height?.height ?? 0;\n },\n heightIndex: ({ prop }) => {\n const heights = prop(\"parent\").context.get(\"heights\");\n return heights.findIndex((height) => height.id === prop(\"id\"));\n },\n frontmost: ({ prop }) => prop(\"index\") === 0,\n heightBefore: ({ prop }) => {\n const heights = prop(\"parent\").context.get(\"heights\");\n const heightIndex = heights.findIndex((height) => height.id === prop(\"id\"));\n return heights.reduce((prev, curr, reducerIndex) => {\n if (reducerIndex >= heightIndex) return prev;\n return prev + curr.height;\n }, 0);\n },\n shouldPersist: ({ prop }) => prop(\"type\") === \"loading\" || prop(\"duration\") === Infinity\n },\n watch({ track, prop, send }) {\n track([() => prop(\"message\")], () => {\n const message = prop(\"message\");\n if (message) send({ type: message, src: \"programmatic\" });\n });\n track([() => prop(\"type\"), () => prop(\"duration\")], () => {\n send({ type: \"UPDATE\" });\n });\n },\n on: {\n UPDATE: [\n {\n guard: \"shouldPersist\",\n target: \"visible:persist\",\n actions: [\"resetCloseTimer\"]\n },\n {\n target: \"visible:updating\",\n actions: [\"resetCloseTimer\"]\n }\n ],\n MEASURE: {\n actions: [\"measureHeight\"]\n }\n },\n entry: [\"setMounted\", \"measureHeight\", \"invokeOnVisible\"],\n effects: [\"trackHeight\"],\n states: {\n \"visible:updating\": {\n tags: [\"visible\", \"updating\"],\n effects: [\"waitForNextTick\"],\n on: {\n SHOW: {\n target: \"visible\"\n }\n }\n },\n \"visible:persist\": {\n tags: [\"visible\", \"paused\"],\n on: {\n RESUME: {\n guard: not(\"isLoadingType\"),\n target: \"visible\",\n actions: [\"setCloseTimer\"]\n },\n DISMISS: {\n target: \"dismissing\"\n }\n }\n },\n visible: {\n tags: [\"visible\"],\n effects: [\"waitForDuration\"],\n on: {\n DISMISS: {\n target: \"dismissing\"\n },\n PAUSE: {\n target: \"visible:persist\",\n actions: [\"syncRemainingTime\"]\n }\n }\n },\n dismissing: {\n entry: [\"invokeOnDismiss\"],\n effects: [\"waitForRemoveDelay\"],\n on: {\n REMOVE: {\n target: \"unmounted\",\n actions: [\"notifyParentToRemove\"]\n }\n }\n },\n unmounted: {\n entry: [\"invokeOnUnmount\"]\n }\n },\n implementations: {\n effects: {\n waitForRemoveDelay({ prop, send }) {\n return setRafTimeout(() => {\n send({ type: \"REMOVE\", src: \"timer\" });\n }, prop(\"removeDelay\"));\n },\n waitForDuration({ send, context, computed }) {\n if (computed(\"shouldPersist\")) return;\n return setRafTimeout(() => {\n send({ type: \"DISMISS\", src: \"timer\" });\n }, context.get(\"remainingTime\"));\n },\n waitForNextTick({ send }) {\n return setRafTimeout(() => {\n send({ type: \"SHOW\", src: \"timer\" });\n }, 0);\n },\n trackHeight({ scope, prop }) {\n let cleanup;\n raf(() => {\n const rootEl = getRootEl(scope);\n if (!rootEl) return;\n const syncHeight = () => {\n const originalHeight = rootEl.style.height;\n rootEl.style.height = \"auto\";\n const height = rootEl.getBoundingClientRect().height;\n rootEl.style.height = originalHeight;\n const item = { id: prop(\"id\"), height };\n setHeight(prop(\"parent\"), item);\n };\n const win = scope.getWin();\n const observer = new win.MutationObserver(syncHeight);\n observer.observe(rootEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n cleanup = () => observer.disconnect();\n });\n return () => cleanup?.();\n }\n },\n guards: {\n isLoadingType: ({ prop }) => prop(\"type\") === \"loading\",\n shouldPersist: ({ computed }) => computed(\"shouldPersist\")\n },\n actions: {\n setMounted({ context }) {\n raf(() => {\n context.set(\"mounted\", true);\n });\n },\n measureHeight({ scope, prop, context }) {\n queueMicrotask(() => {\n const rootEl = getRootEl(scope);\n if (!rootEl) return;\n const originalHeight = rootEl.style.height;\n rootEl.style.height = \"auto\";\n const height = rootEl.getBoundingClientRect().height;\n rootEl.style.height = originalHeight;\n context.set(\"initialHeight\", height);\n const item = { id: prop(\"id\"), height };\n setHeight(prop(\"parent\"), item);\n });\n },\n setCloseTimer({ refs }) {\n refs.set(\"closeTimerStartTime\", Date.now());\n },\n resetCloseTimer({ context, refs, prop }) {\n refs.set(\"closeTimerStartTime\", Date.now());\n context.set(\"remainingTime\", getToastDuration(prop(\"duration\"), prop(\"type\")));\n },\n syncRemainingTime({ context, refs }) {\n context.set(\"remainingTime\", (prev) => {\n const closeTimerStartTime = refs.get(\"closeTimerStartTime\");\n const elapsedTime = Date.now() - closeTimerStartTime;\n refs.set(\"lastCloseStartTimerStartTime\", Date.now());\n return prev - elapsedTime;\n });\n },\n notifyParentToRemove({ prop }) {\n const parent = prop(\"parent\");\n parent.send({ type: \"TOAST.REMOVE\", id: prop(\"id\") });\n },\n invokeOnDismiss({ prop, event }) {\n prop(\"onStatusChange\")?.({ status: \"dismissing\", src: event.src });\n },\n invokeOnUnmount({ prop }) {\n prop(\"onStatusChange\")?.({ status: \"unmounted\" });\n },\n invokeOnVisible({ prop }) {\n prop(\"onStatusChange\")?.({ status: \"visible\" });\n }\n }\n }\n});\nfunction setHeight(parent, item) {\n const { id, height } = item;\n parent.context.set(\"heights\", (prev) => {\n const alreadyExists = prev.find((i) => i.id === id);\n if (!alreadyExists) {\n return [{ id, height }, ...prev];\n } else {\n return prev.map((i) => i.id === id ? { ...i, height } : i);\n }\n });\n}\nvar withDefaults = (options, defaults) => {\n return { ...defaults, ...compact(options) };\n};\nfunction createToastStore(props) {\n const attrs = withDefaults(props, {\n placement: \"bottom\",\n overlap: false,\n max: 24,\n gap: 16,\n offsets: \"1rem\",\n hotkey: [\"altKey\", \"KeyT\"],\n removeDelay: 200,\n pauseOnPageIdle: true\n });\n let subscribers = [];\n let toasts = [];\n let dismissedToasts = /* @__PURE__ */ new Set();\n let toastQueue = [];\n const subscribe = (subscriber) => {\n subscribers.push(subscriber);\n return () => {\n const index = subscribers.indexOf(subscriber);\n subscribers.splice(index, 1);\n };\n };\n const publish = (data) => {\n subscribers.forEach((subscriber) => subscriber(data));\n return data;\n };\n const addToast = (data) => {\n if (toasts.length >= attrs.max) {\n toastQueue.push(data);\n return;\n }\n publish(data);\n toasts.unshift(data);\n };\n const processQueue = () => {\n while (toastQueue.length > 0 && toasts.length < attrs.max) {\n const nextToast = toastQueue.shift();\n if (nextToast) {\n publish(nextToast);\n toasts.unshift(nextToast);\n }\n }\n };\n const create = (data) => {\n const id = data.id ?? `toast:${uuid()}`;\n const exists = toasts.find((toast) => toast.id === id);\n if (dismissedToasts.has(id)) dismissedToasts.delete(id);\n if (exists) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) {\n return publish({ ...toast, ...data, id });\n }\n return toast;\n });\n } else {\n addToast({\n id,\n duration: attrs.duration,\n removeDelay: attrs.removeDelay,\n type: \"info\",\n ...data,\n stacked: !attrs.overlap,\n gap: attrs.gap\n });\n }\n return id;\n };\n const remove = (id) => {\n dismissedToasts.add(id);\n if (!id) {\n toasts.forEach((toast) => {\n subscribers.forEach((subscriber) => subscriber({ id: toast.id, dismiss: true }));\n });\n toasts = [];\n toastQueue = [];\n } else {\n subscribers.forEach((subscriber) => subscriber({ id, dismiss: true }));\n toasts = toasts.filter((toast) => toast.id !== id);\n processQueue();\n }\n return id;\n };\n const error = (data) => {\n return create({ ...data, type: \"error\" });\n };\n const success = (data) => {\n return create({ ...data, type: \"success\" });\n };\n const info = (data) => {\n return create({ ...data, type: \"info\" });\n };\n const warning = (data) => {\n return create({ ...data, type: \"warning\" });\n };\n const loading = (data) => {\n return create({ ...data, type: \"loading\" });\n };\n const getVisibleToasts = () => {\n return toasts.filter((toast) => !dismissedToasts.has(toast.id));\n };\n const getCount = () => {\n return toasts.length;\n };\n const promise = (promise2, options, shared = {}) => {\n if (!options) return;\n let id = void 0;\n if (options.loading !== void 0) {\n id = create({\n ...shared,\n ...options.loading,\n promise: promise2,\n type: \"loading\"\n });\n }\n let removable = id !== void 0;\n let result;\n const prom = runIfFn(promise2).then(async (response) => {\n result = [\"resolve\", response];\n if (isHttpResponse(response) && !response.ok) {\n removable = false;\n const errorOptions = runIfFn(options.error, `HTTP Error! status: ${response.status}`);\n create({ ...shared, ...errorOptions, id, type: \"error\" });\n } else if (options.success !== void 0) {\n removable = false;\n const successOptions = runIfFn(options.success, response);\n create({ ...shared, ...successOptions, id, type: \"success\" });\n }\n }).catch(async (error2) => {\n result = [\"reject\", error2];\n if (options.error !== void 0) {\n removable = false;\n const errorOptions = runIfFn(options.error, error2);\n create({ ...shared, ...errorOptions, id, type: \"error\" });\n }\n }).finally(() => {\n if (removable) {\n remove(id);\n id = void 0;\n }\n options.finally?.();\n });\n const unwrap = () => new Promise(\n (resolve, reject) => prom.then(() => result[0] === \"reject\" ? reject(result[1]) : resolve(result[1])).catch(reject)\n );\n return { id, unwrap };\n };\n const update = (id, data) => {\n return create({ id, ...data });\n };\n const pause = (id) => {\n if (id != null) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) return publish({ ...toast, message: \"PAUSE\" });\n return toast;\n });\n } else {\n toasts = toasts.map((toast) => publish({ ...toast, message: \"PAUSE\" }));\n }\n };\n const resume = (id) => {\n if (id != null) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) return publish({ ...toast, message: \"RESUME\" });\n return toast;\n });\n } else {\n toasts = toasts.map((toast) => publish({ ...toast, message: \"RESUME\" }));\n }\n };\n const dismiss = (id) => {\n if (id != null) {\n toasts = toasts.map((toast) => {\n if (toast.id === id) return publish({ ...toast, message: \"DISMISS\" });\n return toast;\n });\n } else {\n toasts = toasts.map((toast) => publish({ ...toast, message: \"DISMISS\" }));\n }\n };\n const isVisible = (id) => {\n return !dismissedToasts.has(id) && !!toasts.find((toast) => toast.id === id);\n };\n const isDismissed = (id) => {\n return dismissedToasts.has(id);\n };\n const expand = () => {\n toasts = toasts.map((toast) => publish({ ...toast, stacked: true }));\n };\n const collapse = () => {\n toasts = toasts.map((toast) => publish({ ...toast, stacked: false }));\n };\n return {\n attrs,\n subscribe,\n create,\n update,\n remove,\n dismiss,\n error,\n success,\n info,\n warning,\n loading,\n getVisibleToasts,\n getCount,\n promise,\n pause,\n resume,\n isVisible,\n isDismissed,\n expand,\n collapse\n };\n}\nvar isHttpResponse = (data) => {\n return data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n};\n\n// src/index.ts\nvar group = {\n connect: groupConnect,\n machine: groupMachine\n};\n\nexport { anatomy, connect, createToastStore as createStore, group, machine };\n","'use client';\nimport * as toast from '@zag-js/toast';\n\nconst createToaster = (props) => {\n return toast.createStore(props);\n};\n\nexport { createToaster };\n","import { createToaster } from \"@chakra-ui/react/toast\";\nimport { ToasterConfig } from \"./toaster.types\";\n\nexport const toasterPlacements = [\n \"bottom\",\n \"bottom-end\",\n \"bottom-start\",\n \"top\",\n \"top-end\",\n \"top-start\",\n] as const;\n\nexport type ToasterPlacement = (typeof toasterPlacements)[number];\n\nconst defaultToasterConfig: ToasterConfig = {\n duration: 5000,\n gap: 16,\n hotkey: undefined,\n max: 24,\n offsets: \"1rem\",\n overlap: false,\n pauseOnPageIdle: true,\n removeDelay: 200,\n};\n\nexport const ToasterConfigMap: Record<ToasterPlacement, ToasterConfig> = {\n bottom: {\n ...defaultToasterConfig,\n placement: \"bottom\",\n },\n \"bottom-end\": {\n ...defaultToasterConfig,\n placement: \"bottom-end\",\n },\n \"bottom-start\": {\n ...defaultToasterConfig,\n placement: \"bottom-start\",\n },\n top: {\n ...defaultToasterConfig,\n placement: \"top\",\n },\n \"top-end\": {\n ...defaultToasterConfig,\n placement: \"top-end\",\n },\n \"top-start\": {\n ...defaultToasterConfig,\n placement: \"top-start\",\n },\n};\n\nexport const bottomToaster = createToaster(ToasterConfigMap[\"bottom\"]);\nexport const bottomEndToaster = createToaster(ToasterConfigMap[\"bottom-end\"]);\nexport const bottomStartToaster = createToaster(\n ToasterConfigMap[\"bottom-start\"],\n);\nexport const topToaster = createToaster(ToasterConfigMap[\"top\"]);\nexport const topEndToaster = createToaster(ToasterConfigMap[\"top-end\"]);\nexport const topStartToaster = createToaster(ToasterConfigMap[\"top-start\"]);\n"],"names":["anatomy","createAnatomy","parts","getRegionId","placement","getRegionEl","ctx","getRootId","getRootEl","getTitleId","getDescriptionId","getCloseTriggerId","defaultTimeouts","getToastDuration","duration","type","getOffsets","offsets","getGroupPlacementStyle","service","prop","computed","context","gap","heights","computedOffset","rtl","computedPlacement","isRighty","isLefty","styles","MAX_Z_INDEX","alignItems","offset","getPlacementStyle","visible","parent","side","mounted","remainingTime","height","frontmost","sibling","overlap","stacked","assign","overrides","getGhostBeforeStyle","getGhostAfterStyle","groupConnect","normalize","send","refs","options","label","hotkey","hotkeyLabel","align","event","contains","fn","groupMachine","createMachine","props","uuid","bindable","toasts","t","track","action","toast","prev","index","addDomEvent","key","scope","pauseOnPageIdle","doc","isHidden","hasToasts","cleanup","trackDismissableBranch","connect","state","paused","title","description","dataAttr","not","createGuards","machine","ensureProps","height2","heightIndex","curr","reducerIndex","message","setRafTimeout","raf","rootEl","syncHeight","originalHeight","item","setHeight","win","observer","closeTimerStartTime","elapsedTime","id","i","withDefaults","defaults","compact","createToastStore","attrs","subscribers","dismissedToasts","toastQueue","subscribe","subscriber","publish","data","addToast","processQueue","nextToast","create","exists","remove","promise2","shared","removable","result","prom","runIfFn","response","isHttpResponse","errorOptions","successOptions","error2","resolve","reject","group","createToaster","toast.createStore","defaultToasterConfig","ToasterConfigMap","bottomToaster","bottomEndToaster","bottomStartToaster","topToaster","topEndToaster","topStartToaster"],"mappings":"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","x_google_ignoreList":[0,1]}
|