ics-ui-kit 0.1.11 → 0.1.13
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/README.md +36 -36
- package/dist/AlertContext-CxjW1LVL.js.map +1 -1
- package/dist/AlertIcon-5B6AgZpe.js.map +1 -1
- package/dist/Button-Dg89xRSi.js.map +1 -1
- package/dist/ButtonBase-e6qyv6mD.js.map +1 -1
- package/dist/{CheckboxField-cX09-eBX.js → CheckboxField-2zNFubvm.js} +2 -2
- package/dist/CheckboxField-2zNFubvm.js.map +1 -0
- package/dist/Combination-DeIugdgY.js +353 -0
- package/dist/Combination-DeIugdgY.js.map +1 -0
- package/dist/{Command-ClIm4U7r.js → Command-D5zgJ7-y.js} +3 -3
- package/dist/Command-D5zgJ7-y.js.map +1 -0
- package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
- package/dist/Description-BTPMlTT-.js.map +1 -1
- package/dist/{Dialog-Bs1B5Iu8.js → Dialog-CdnsGyJD.js} +3 -3
- package/dist/Dialog-CdnsGyJD.js.map +1 -0
- package/dist/Divider-DPW5ZhZ8.js.map +1 -1
- package/dist/EmptyState-DRKjscH-.js.map +1 -1
- package/dist/ErrorState-B26k67-z.js.map +1 -1
- package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
- package/dist/{Field-BiIWtq9o.js → Field-COD9VbUX.js} +2 -2
- package/dist/Field-COD9VbUX.js.map +1 -0
- package/dist/{FieldLabel-QJ4rJFOi.js → FieldLabel-eyKmeWRn.js} +2 -2
- package/dist/FieldLabel-eyKmeWRn.js.map +1 -0
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/{FormFooterTemplate-DPB6Dkxn.js → FormFooterTemplate-ClTxqrIB.js} +2 -2
- package/dist/FormFooterTemplate-ClTxqrIB.js.map +1 -0
- package/dist/FormHeader--F6b2aRk.js.map +1 -1
- package/dist/{FormStack-DO15vBgd.js → FormStack-B3UBh9oF.js} +3 -3
- package/dist/FormStack-B3UBh9oF.js.map +1 -0
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/IconButton-DwkpNgn3.js.map +1 -1
- package/dist/{IconTooltip-CKJKGHbk.js → IconTooltip-RSxvnBgH.js} +2 -2
- package/dist/IconTooltip-RSxvnBgH.js.map +1 -0
- package/dist/Indicator-AqxHWPA9.js.map +1 -1
- package/dist/InputGroup-BvD9Igmt.js.map +1 -1
- package/dist/InputOTP-B2e1nfSO.js.map +1 -1
- package/dist/Loader-BpHiL6W-.js.map +1 -1
- package/dist/MenuItem-d19Ty84F.js.map +1 -1
- package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
- package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
- package/dist/Overlay-CVt011mY.js.map +1 -1
- package/dist/{Popover-CY_d3Ggn.js → Popover-CRVD7AtB.js} +20 -19
- package/dist/Popover-CRVD7AtB.js.map +1 -0
- package/dist/RichButton-DuPTenmS.js.map +1 -1
- package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
- package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
- package/dist/SearchSelectTag-DFCX9zT1.js.map +1 -1
- package/dist/{Select-B2WcoFf5.js → Select-MLPTpIl5.js} +24 -23
- package/dist/Select-MLPTpIl5.js.map +1 -0
- package/dist/{Sheet-zTMuP7C8.js → Sheet-qTIXsqm0.js} +3 -3
- package/dist/Sheet-qTIXsqm0.js.map +1 -0
- package/dist/Shortcut-D8L15_ed.js.map +1 -1
- package/dist/Skeleton-y6I-i9q5.js.map +1 -1
- package/dist/Tag-DdHXTyKF.js.map +1 -1
- package/dist/Text-DeBE8AKl.js.map +1 -1
- package/dist/TextInput-Cj50ImXi.js.map +1 -1
- package/dist/{TextOverflowTooltip-DlUgic5y.js → TextOverflowTooltip-B1I5qwAT.js} +2 -2
- package/dist/TextOverflowTooltip-B1I5qwAT.js.map +1 -0
- package/dist/Toggle-v_HT3Gm2.js.map +1 -1
- package/dist/{Tooltip-C4rVuWr4.js → Tooltip-7Duaau0S.js} +3 -3
- package/dist/Tooltip-7Duaau0S.js.map +1 -0
- package/dist/TriggerButton-CfDObWP9.js.map +1 -1
- package/dist/blocks/auth/otp-form.js +1 -1
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/circle-BbEzypQJ.js +14 -0
- package/dist/circle-BbEzypQJ.js.map +1 -0
- package/dist/cn-dsXlqdJg.js.map +1 -1
- package/dist/components/alert-dialog.js +2 -2
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/background-pattern.js.map +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/banner.js.map +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/color-tile.js.map +1 -1
- package/dist/components/command/Command.stories.d.ts +1 -0
- package/dist/components/command.js +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/context-menu/ContextMenu.d.ts +27 -0
- package/dist/components/context-menu/ContextMenu.stories.d.ts +10 -0
- package/dist/components/context-menu/index.d.ts +1 -0
- package/dist/components/context-menu.d.ts +2 -0
- package/dist/components/context-menu.js +2675 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/counter.js.map +1 -1
- package/dist/components/dialog.js +3 -3
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/divider.js.map +1 -1
- package/dist/components/drawer.js +3 -3
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown.js +26 -25
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/error-state.js.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/file-upload.js +1 -1
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/form.js +3 -3
- package/dist/components/form.js.map +1 -1
- package/dist/components/glass-toolbar.js.map +1 -1
- package/dist/components/icon-tooltip.js +1 -1
- package/dist/components/image-placeholder.js.map +1 -1
- package/dist/components/image-preview.js.map +1 -1
- package/dist/components/image-uploader.js.map +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/overflow-tooltip.js +1 -1
- package/dist/components/page-state.js.map +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/portal-container.js +2 -2
- package/dist/components/portal-container.js.map +1 -1
- package/dist/components/progress-circle.js.map +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/prose.js.map +1 -1
- package/dist/components/radio-group.js +63 -72
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scheduler.js +1 -1
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/search-select.js +3 -3
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/sidebar.js +2 -2
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +1 -1
- package/dist/components/switch.js +5 -2
- package/dist/components/switch.js.map +1 -1
- package/dist/components/system-state.js.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-input.js +1 -1
- package/dist/components/tag-input.js.map +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/timer.js.map +1 -1
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toolbar.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/floating-ui.react-dom-BwDfy92G.js +1309 -0
- package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -0
- package/dist/formatBytes-C4QXq5lC.js.map +1 -1
- package/dist/index-0ioNhtNM.js.map +1 -1
- package/dist/index-1SnkxfPR.js +230 -0
- package/dist/index-1SnkxfPR.js.map +1 -0
- package/dist/index-437EL2iq.js.map +1 -1
- package/dist/index-BDrapWDv.js.map +1 -1
- package/dist/index-BGQepRFJ.js.map +1 -1
- package/dist/index-BVqs-uqP.js.map +1 -1
- package/dist/index-BZPx6jYI.js.map +1 -1
- package/dist/index-Bb23HztA.js.map +1 -1
- package/dist/index-BjtNfqNq.js +333 -0
- package/dist/index-BjtNfqNq.js.map +1 -0
- package/dist/index-BpWB3aFK.js.map +1 -1
- package/dist/index-ByaXH_ih.js.map +1 -1
- package/dist/index-CCKe-Mpx.js.map +1 -1
- package/dist/index-CFaU3UXv.js.map +1 -1
- package/dist/index-CLuiUUQ8.js.map +1 -1
- package/dist/{index-CQD-Njgt.js → index-CMxHunQ4.js} +26 -25
- package/dist/index-CMxHunQ4.js.map +1 -0
- package/dist/index-CmBeyp2d.js.map +1 -1
- package/dist/index-DFZozV_h.js.map +1 -1
- package/dist/index-DHsfW5Rj.js.map +1 -1
- package/dist/index-DHyZ_0Ut.js.map +1 -1
- package/dist/index-DLcqcWxM.js.map +1 -1
- package/dist/index-DnnQs07z.js.map +1 -1
- package/dist/index-Uiy0Xwy2.js.map +1 -1
- package/dist/index-_ITz1IyW.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inputBaseStyles-DbzD_jvq.js.map +1 -1
- package/dist/lib/utils/styles.d.ts +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/styles-scoped.css +6441 -6413
- package/dist/styles.css +6180 -6152
- package/dist/theme.css +362 -362
- package/dist/types/css.d.ts +4 -4
- package/dist/useBreakpoints-D8wKOvil.js.map +1 -1
- package/dist/useDebounce-BRah78CF.js.map +1 -1
- package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
- package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
- package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
- package/dist/usePortalContainer-BAIp0kSF.js +44 -0
- package/dist/usePortalContainer-BAIp0kSF.js.map +1 -0
- package/dist/vendors/tanstack/react-table.js.map +1 -1
- package/dist/zod-BMNoK3aM.js.map +1 -1
- package/package.json +206 -183
- package/tailwind.preset.js +448 -448
- package/dist/CheckboxField-cX09-eBX.js.map +0 -1
- package/dist/Command-ClIm4U7r.js.map +0 -1
- package/dist/Dialog-Bs1B5Iu8.js.map +0 -1
- package/dist/Field-BiIWtq9o.js.map +0 -1
- package/dist/FieldLabel-QJ4rJFOi.js.map +0 -1
- package/dist/FormFooterTemplate-DPB6Dkxn.js.map +0 -1
- package/dist/FormStack-DO15vBgd.js.map +0 -1
- package/dist/IconTooltip-CKJKGHbk.js.map +0 -1
- package/dist/Popover-CY_d3Ggn.js.map +0 -1
- package/dist/Select-B2WcoFf5.js.map +0 -1
- package/dist/Sheet-zTMuP7C8.js.map +0 -1
- package/dist/TextOverflowTooltip-DlUgic5y.js.map +0 -1
- package/dist/Tooltip-C4rVuWr4.js.map +0 -1
- package/dist/design-tokens.source.json +0 -1
- package/dist/index-BzCriPiK.js +0 -671
- package/dist/index-BzCriPiK.js.map +0 -1
- package/dist/index-CQD-Njgt.js.map +0 -1
- package/dist/index-DRo26PBK.js +0 -1525
- package/dist/index-DRo26PBK.js.map +0 -1
- package/dist/usePortalContainer-ae6EzS08.js +0 -39
- package/dist/usePortalContainer-ae6EzS08.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye.js","../../src/components/input/input/Input.tsx","../../src/components/input/web-input/WebInput.tsx","../../src/lib/utils/file/downloadFile.ts","../../src/components/input/file-input/FileInput.tsx","../../src/components/input/secret-input/SecretInput.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","import React, { useRef } from \"react\";\r\nimport { useMergeRefs } from \"../../../hooks/useMergeRefs\";\r\nimport { useCustomValidity } from \"../../../hooks/useCustomValidity\";\r\nimport { inputBaseControlStyles } from \"../styles/inputBaseStyles\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport type InputProps = React.ComponentProps<\"input\"> & {\r\n\t/** Текст сообщения об ошибке. При наличии делает поле невалидным */\r\n\terror?: string;\r\n};\r\n\r\nconst inputStyles = tv({\r\n\textend: inputBaseControlStyles,\r\n\tbase: \"h-10 lg:h-9\"\r\n});\r\n\r\n/**\r\n * Стилизованный базовый компонент для создания инпутов.\r\n */\r\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n\t({ type = \"text\", className, error, ...other }, ref) => {\r\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\t\tconst mergedRef = useMergeRefs(inputRef, ref);\r\n\r\n\t\tuseCustomValidity(inputRef, error);\r\n\r\n\t\treturn (\r\n\t\t\t<input\r\n\t\t\t\ttype={type}\r\n\t\t\t\tclassName={inputStyles({ className })}\r\n\t\t\t\tref={mergedRef}\r\n\t\t\t\taria-invalid={!!error}\r\n\t\t\t\t{...other}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n\r\nexport default Input;\r\n","import React from \"react\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { useInputWithActions } from \"@/hooks/useInputWithActions\";\r\nimport { InputGroup, InputGroupInput, InputGroupText, InputGroupButton } from \"../input-group/InputGroup\";\r\nimport { CircleX, Copy, Check } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst webInputStyles = tv({\r\n\tbase: \"group\",\r\n\tslots: {\r\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\"\r\n\t}\r\n});\r\n\r\nexport interface WebInputProps extends Omit<React.ComponentProps<\"input\">, \"onChange\"> {\r\n\t/** Содержимое в начале поля (например, префикс URL) */\r\n\tstartContent?: React.ReactNode;\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Флаг для отображения кнопки копирования значения */\r\n\tshowCopyIcon?: boolean;\r\n\t/** Колбэк на изменение значения */\r\n\tonChange?: (value: string | null) => void;\r\n\t/** Текст сообщения об ошибке */\r\n\terror?: string;\r\n}\r\n\r\nexport const WebInput = React.forwardRef<HTMLInputElement, WebInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tstartContent = \"https://\",\r\n\t\t\tshowClearIcon = true,\r\n\t\t\tshowCopyIcon = true,\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\terror,\r\n\t\t\tclassName,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = webInputStyles();\r\n\r\n\t\tconst inputActions = useInputWithActions({\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\tshowClearIcon,\r\n\t\t\tshowCopyIcon\r\n\t\t});\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={styles.base({ className })}>\r\n\t\t\t\t{startContent != null && <InputGroupText type=\"primary\">{startContent}</InputGroupText>}\r\n\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\tvalue={value}\r\n\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\tonChange={inputActions.handleChange}\r\n\t\t\t\t\treadOnly={readOnly}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\terror={error}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{inputActions.shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={CircleX}\r\n\t\t\t\t\t\tonClick={inputActions.handleClear}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\r\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nWebInput.displayName = \"WebInput\";\r\n\r\nexport default WebInput;\r\n","import { FileValue } from \"@/components/input\";\r\n\r\nexport function downloadFile(value: FileValue) {\r\n\tif (!value) return;\r\n\r\n\tif (value instanceof File) {\r\n\t\t// Логика для браузерного File объекта\r\n\t\tconst url = URL.createObjectURL(value);\r\n\t\tconst link = document.createElement(\"a\");\r\n\t\tlink.href = url;\r\n\t\tlink.download = value.name;\r\n\t\tdocument.body.appendChild(link);\r\n\t\tlink.click();\r\n\t\tdocument.body.removeChild(link);\r\n\t\t// Освобождаем память\r\n\t\tURL.revokeObjectURL(url);\r\n\t} else if (value.url) {\r\n\t\t// Логика для FileInfo с URL\r\n\t\tconst link = document.createElement(\"a\");\r\n\t\tlink.href = value.url;\r\n\t\tlink.download = value.name;\r\n\t\tlink.target = \"_blank\";\r\n\t\tdocument.body.appendChild(link);\r\n\t\tlink.click();\r\n\t\tdocument.body.removeChild(link);\r\n\t}\r\n}\r\n","import React, { useRef, useCallback, useState, useEffect } from \"react\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { InputGroup, InputGroupButton, InputGroupText } from \"../input-group/InputGroup\";\r\nimport { CircleX, Download } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { downloadFile } from \"@/lib/utils/file/downloadFile\";\r\n\r\nconst fileInputStyles = tv({\r\n\tbase: \"group relative cursor-pointer\",\r\n\tslots: {\r\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\",\r\n\t\tfileDisplay:\r\n\t\t\t\"flex min-w-0 flex-1 items-center truncate bg-transparent px-3 py-2.5 italic text-primary-fg lg:py-2\",\r\n\t\tplaceholder: \"text-muted\"\r\n\t}\r\n});\r\n\r\n/** Упрощенная информация о файле */\r\nexport interface FileInfo {\r\n\t/** id файла */\r\n\tid: number;\r\n\t/** Имя файла */\r\n\tname: string;\r\n\t/** URL для скачивания или просмотра файла */\r\n\turl: string;\r\n\t/** Размер файла в байтах (опционально) */\r\n\tsize?: number;\r\n\t/** MIME-тип файла (опционально) */\r\n\ttype?: string;\r\n}\r\n\r\n/** Тип файла - либо браузерный File, либо упрощенная FileInfo */\r\nexport type FileValue = File | FileInfo | null;\r\n\r\nexport interface FileInputProps\r\n\textends Omit<React.ComponentProps<\"input\">, \"type\" | \"onChange\" | \"value\" | \"defaultValue\"> {\r\n\t/** Текущий файл (для controlled режима) */\r\n\tvalue?: FileValue;\r\n\t/** Файл по умолчанию (для uncontrolled режима) */\r\n\tdefaultValue?: FileValue;\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Колбэк на изменение файла */\r\n\tonChange?: (file: FileValue) => void;\r\n\t/** Текст сообщения об ошибке */\r\n\terror?: string;\r\n\t/** Плейсхолдер для отображения когда файл не выбран */\r\n\tplaceholder?: string;\r\n\t/** Текст кнопки выбора файла */\r\n\tchooseButtonText?: string;\r\n}\r\n\r\nexport const FileInput = React.forwardRef<HTMLInputElement, FileInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tshowClearIcon = true,\r\n\t\t\tonChange,\r\n\t\t\tdisabled,\r\n\t\t\terror,\r\n\t\t\tclassName,\r\n\t\t\tplaceholder = \"File not selected\",\r\n\t\t\tchooseButtonText = \"Choose file\",\r\n\t\t\taccept,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = fileInputStyles();\r\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\t\tconst [internalValue, setInternalValue] = useState<FileValue>(defaultValue || null);\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputRef);\r\n\r\n\t\t// Определяем, находимся ли мы в controlled режиме\r\n\t\tconst isControlled = value !== undefined;\r\n\t\tconst currentValue = isControlled ? value : internalValue;\r\n\r\n\t\t// Синхронизируем внутреннее состояние с defaultValue при изменении\r\n\t\tuseEffect(() => {\r\n\t\t\tif (!isControlled && defaultValue !== undefined) {\r\n\t\t\t\tsetInternalValue(defaultValue);\r\n\t\t\t}\r\n\t\t}, [defaultValue, isControlled]);\r\n\r\n\t\tconst handleFileChange = useCallback(\r\n\t\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\t\tconst file = event.target.files?.[0] || null;\r\n\r\n\t\t\t\tif (!isControlled) {\r\n\t\t\t\t\tsetInternalValue(file);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tonChange?.(file);\r\n\t\t\t},\r\n\t\t\t[onChange, isControlled]\r\n\t\t);\r\n\r\n\t\tconst handleClear = useCallback(\r\n\t\t\t(e: React.MouseEvent) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tif (inputRef.current) {\r\n\t\t\t\t\tinputRef.current.value = \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!isControlled) {\r\n\t\t\t\t\tsetInternalValue(null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tonChange?.(null);\r\n\t\t\t},\r\n\t\t\t[onChange, isControlled]\r\n\t\t);\r\n\r\n\t\tconst handleChooseFile = useCallback(() => {\r\n\t\t\tif (!currentValue) {\r\n\t\t\t\tinputRef.current?.click();\r\n\t\t\t}\r\n\t\t}, [currentValue]);\r\n\r\n\t\tconst handleDownload = useCallback(() => downloadFile(currentValue), [currentValue]);\r\n\r\n\t\tconst shouldShowClearIcon = showClearIcon && currentValue && !disabled;\r\n\t\tconst shouldShowDownloadIcon =\r\n\t\t\tcurrentValue && (currentValue instanceof File || (!(currentValue instanceof File) && currentValue.url));\r\n\r\n\t\t// Получаем имя файла для отображения\r\n\t\tconst getFileName = (fileValue: FileValue): string | null => {\r\n\t\t\tif (!fileValue) return null;\r\n\t\t\tif (fileValue instanceof File) {\r\n\t\t\t\treturn fileValue.name;\r\n\t\t\t}\r\n\t\t\treturn fileValue.name;\r\n\t\t};\r\n\r\n\t\tconst fileName = getFileName(currentValue);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={styles.base({ className })} onClick={handleChooseFile}>\r\n\t\t\t\t<InputGroupText type=\"primary\">{chooseButtonText}</InputGroupText>\r\n\r\n\t\t\t\t<div className={styles.fileDisplay()}>\r\n\t\t\t\t\t{fileName ? <span>{fileName}</span> : <span className={styles.placeholder()}>{placeholder}</span>}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={handleClear} type=\"button\" className={styles.action()} />\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{shouldShowDownloadIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={Download}\r\n\t\t\t\t\t\tonClick={handleDownload}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<input\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\ttype=\"file\"\r\n\t\t\t\t\tonChange={handleFileChange}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\taccept={accept}\r\n\t\t\t\t\tclassName=\"sr-only\"\r\n\t\t\t\t\taria-invalid={!!error}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFileInput.displayName = \"FileInput\";\r\n\r\nexport default FileInput;\r\n","import { useInputWithActions } from \"@/hooks/useInputWithActions\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { Check, CircleX, Copy, Eye, EyeOff } from \"lucide-react\";\r\nimport React, { HTMLAttributes, useCallback, useState } from \"react\";\r\nimport { InputGroup, InputGroupButton, InputGroupInput } from \"../input-group/InputGroup\";\r\nimport { InputProps } from \"../input/Input\";\r\n\r\nexport interface SecretInputProps\r\n\textends Omit<InputProps, \"onChange\" | \"type\">,\r\n\t\tOmit<HTMLAttributes<HTMLInputElement>, \"onChange\" | \"type\"> {\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Флаг для отображения кнопки копирования значения */\r\n\tshowCopyIcon?: boolean;\r\n\t/** Колбэк на изменение значения */\r\n\tonChange?: (value: string | null) => void;\r\n}\r\n\r\n/**\r\n * Компонент для ввода секретных данных с возможностью переключения видимости текста.\r\n */\r\nexport const SecretInput = React.forwardRef<HTMLInputElement, SecretInputProps>(\r\n\t(\r\n\t\t{ showClearIcon, showCopyIcon, value, defaultValue, onChange, readOnly, disabled, error, className, ...props },\r\n\t\tref\r\n\t) => {\r\n\t\tconst [type, setType] = useState<\"password\" | \"text\">(\"password\");\r\n\r\n\t\tconst handleShowValueToggle = useCallback(() => {\r\n\t\t\tsetType((prev) => (prev === \"password\" ? \"text\" : \"password\"));\r\n\t\t}, []);\r\n\r\n\t\tconst inputActions = useInputWithActions({\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\tshowClearIcon,\r\n\t\t\tshowCopyIcon\r\n\t\t});\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={className}>\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\ttype={type}\r\n\t\t\t\t\tvalue={value}\r\n\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\tonChange={inputActions.handleChange}\r\n\t\t\t\t\treadOnly={readOnly}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\terror={error}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{inputActions.shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={inputActions.handleClear} type=\"button\" />\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\r\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<InputGroupButton icon={type === \"password\" ? Eye : EyeOff} onClick={handleShowValueToggle} />\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSecretInput.displayName = \"SecretInput\";\r\n"],"names":["EyeOff","createLucideIcon","Eye","inputStyles","tv","inputBaseControlStyles","Input","React","type","className","error","other","ref","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","webInputStyles","WebInput","startContent","showClearIcon","showCopyIcon","value","defaultValue","onChange","readOnly","disabled","props","styles","inputActions","useInputWithActions","jsxs","InputGroup","InputGroupText","InputGroupInput","InputGroupButton","CircleX","Check","Copy","downloadFile","url","link","fileInputStyles","FileInput","placeholder","chooseButtonText","accept","internalValue","setInternalValue","useState","isControlled","currentValue","useEffect","handleFileChange","useCallback","event","file","handleClear","e","handleChooseFile","handleDownload","shouldShowClearIcon","shouldShowDownloadIcon","fileName","fileValue","Download","SecretInput","setType","handleShowValueToggle","prev"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye.js","../../src/components/input/input/Input.tsx","../../src/components/input/web-input/WebInput.tsx","../../src/lib/utils/file/downloadFile.ts","../../src/components/input/file-input/FileInput.tsx","../../src/components/input/secret-input/SecretInput.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst EyeOff = createLucideIcon(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Eye = createLucideIcon(\"Eye\", [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","import React, { useRef } from \"react\";\nimport { useMergeRefs } from \"../../../hooks/useMergeRefs\";\nimport { useCustomValidity } from \"../../../hooks/useCustomValidity\";\nimport { inputBaseControlStyles } from \"../styles/inputBaseStyles\";\nimport { tv } from \"tailwind-variants\";\n\nexport type InputProps = React.ComponentProps<\"input\"> & {\n\t/** Текст сообщения об ошибке. При наличии делает поле невалидным */\n\terror?: string;\n};\n\nconst inputStyles = tv({\n\textend: inputBaseControlStyles,\n\tbase: \"h-10 lg:h-9\"\n});\n\n/**\n * Стилизованный базовый компонент для создания инпутов.\n */\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n\t({ type = \"text\", className, error, ...other }, ref) => {\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst mergedRef = useMergeRefs(inputRef, ref);\n\n\t\tuseCustomValidity(inputRef, error);\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype={type}\n\t\t\t\tclassName={inputStyles({ className })}\n\t\t\t\tref={mergedRef}\n\t\t\t\taria-invalid={!!error}\n\t\t\t\t{...other}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInput.displayName = \"Input\";\n\nexport default Input;\n","import React from \"react\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { useInputWithActions } from \"@/hooks/useInputWithActions\";\nimport { InputGroup, InputGroupInput, InputGroupText, InputGroupButton } from \"../input-group/InputGroup\";\nimport { CircleX, Copy, Check } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\n\nconst webInputStyles = tv({\n\tbase: \"group\",\n\tslots: {\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\"\n\t}\n});\n\nexport interface WebInputProps extends Omit<React.ComponentProps<\"input\">, \"onChange\"> {\n\t/** Содержимое в начале поля (например, префикс URL) */\n\tstartContent?: React.ReactNode;\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Флаг для отображения кнопки копирования значения */\n\tshowCopyIcon?: boolean;\n\t/** Колбэк на изменение значения */\n\tonChange?: (value: string | null) => void;\n\t/** Текст сообщения об ошибке */\n\terror?: string;\n}\n\nexport const WebInput = React.forwardRef<HTMLInputElement, WebInputProps>(\n\t(\n\t\t{\n\t\t\tstartContent = \"https://\",\n\t\t\tshowClearIcon = true,\n\t\t\tshowCopyIcon = true,\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst styles = webInputStyles();\n\n\t\tconst inputActions = useInputWithActions({\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\tshowClearIcon,\n\t\t\tshowCopyIcon\n\t\t});\n\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\n\n\t\treturn (\n\t\t\t<InputGroup className={styles.base({ className })}>\n\t\t\t\t{startContent != null && <InputGroupText type=\"primary\">{startContent}</InputGroupText>}\n\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={inputActions.handleChange}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\terror={error}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\n\t\t\t\t{inputActions.shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={CircleX}\n\t\t\t\t\t\tonClick={inputActions.handleClear}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nWebInput.displayName = \"WebInput\";\n\nexport default WebInput;\n","import { FileValue } from \"@/components/input\";\n\nexport function downloadFile(value: FileValue) {\n\tif (!value) return;\n\n\tif (value instanceof File) {\n\t\t// Логика для браузерного File объекта\n\t\tconst url = URL.createObjectURL(value);\n\t\tconst link = document.createElement(\"a\");\n\t\tlink.href = url;\n\t\tlink.download = value.name;\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\t\t// Освобождаем память\n\t\tURL.revokeObjectURL(url);\n\t} else if (value.url) {\n\t\t// Логика для FileInfo с URL\n\t\tconst link = document.createElement(\"a\");\n\t\tlink.href = value.url;\n\t\tlink.download = value.name;\n\t\tlink.target = \"_blank\";\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\t}\n}\n","import React, { useRef, useCallback, useState, useEffect } from \"react\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { InputGroup, InputGroupButton, InputGroupText } from \"../input-group/InputGroup\";\nimport { CircleX, Download } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\nimport { downloadFile } from \"@/lib/utils/file/downloadFile\";\n\nconst fileInputStyles = tv({\n\tbase: \"group relative cursor-pointer\",\n\tslots: {\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\",\n\t\tfileDisplay:\n\t\t\t\"flex min-w-0 flex-1 items-center truncate bg-transparent px-3 py-2.5 italic text-primary-fg lg:py-2\",\n\t\tplaceholder: \"text-muted\"\n\t}\n});\n\n/** Упрощенная информация о файле */\nexport interface FileInfo {\n\t/** id файла */\n\tid: number;\n\t/** Имя файла */\n\tname: string;\n\t/** URL для скачивания или просмотра файла */\n\turl: string;\n\t/** Размер файла в байтах (опционально) */\n\tsize?: number;\n\t/** MIME-тип файла (опционально) */\n\ttype?: string;\n}\n\n/** Тип файла - либо браузерный File, либо упрощенная FileInfo */\nexport type FileValue = File | FileInfo | null;\n\nexport interface FileInputProps\n\textends Omit<React.ComponentProps<\"input\">, \"type\" | \"onChange\" | \"value\" | \"defaultValue\"> {\n\t/** Текущий файл (для controlled режима) */\n\tvalue?: FileValue;\n\t/** Файл по умолчанию (для uncontrolled режима) */\n\tdefaultValue?: FileValue;\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Колбэк на изменение файла */\n\tonChange?: (file: FileValue) => void;\n\t/** Текст сообщения об ошибке */\n\terror?: string;\n\t/** Плейсхолдер для отображения когда файл не выбран */\n\tplaceholder?: string;\n\t/** Текст кнопки выбора файла */\n\tchooseButtonText?: string;\n}\n\nexport const FileInput = React.forwardRef<HTMLInputElement, FileInputProps>(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tshowClearIcon = true,\n\t\t\tonChange,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tclassName,\n\t\t\tplaceholder = \"File not selected\",\n\t\t\tchooseButtonText = \"Choose file\",\n\t\t\taccept,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst styles = fileInputStyles();\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst [internalValue, setInternalValue] = useState<FileValue>(defaultValue || null);\n\n\t\tconst mergedRef = useMergeRefs(ref, inputRef);\n\n\t\t// Определяем, находимся ли мы в controlled режиме\n\t\tconst isControlled = value !== undefined;\n\t\tconst currentValue = isControlled ? value : internalValue;\n\n\t\t// Синхронизируем внутреннее состояние с defaultValue при изменении\n\t\tuseEffect(() => {\n\t\t\tif (!isControlled && defaultValue !== undefined) {\n\t\t\t\tsetInternalValue(defaultValue);\n\t\t\t}\n\t\t}, [defaultValue, isControlled]);\n\n\t\tconst handleFileChange = useCallback(\n\t\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\t\tconst file = event.target.files?.[0] || null;\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(file);\n\t\t\t\t}\n\n\t\t\t\tonChange?.(file);\n\t\t\t},\n\t\t\t[onChange, isControlled]\n\t\t);\n\n\t\tconst handleClear = useCallback(\n\t\t\t(e: React.MouseEvent) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\tif (inputRef.current) {\n\t\t\t\t\tinputRef.current.value = \"\";\n\t\t\t\t}\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(null);\n\t\t\t\t}\n\n\t\t\t\tonChange?.(null);\n\t\t\t},\n\t\t\t[onChange, isControlled]\n\t\t);\n\n\t\tconst handleChooseFile = useCallback(() => {\n\t\t\tif (!currentValue) {\n\t\t\t\tinputRef.current?.click();\n\t\t\t}\n\t\t}, [currentValue]);\n\n\t\tconst handleDownload = useCallback(() => downloadFile(currentValue), [currentValue]);\n\n\t\tconst shouldShowClearIcon = showClearIcon && currentValue && !disabled;\n\t\tconst shouldShowDownloadIcon =\n\t\t\tcurrentValue && (currentValue instanceof File || (!(currentValue instanceof File) && currentValue.url));\n\n\t\t// Получаем имя файла для отображения\n\t\tconst getFileName = (fileValue: FileValue): string | null => {\n\t\t\tif (!fileValue) return null;\n\t\t\tif (fileValue instanceof File) {\n\t\t\t\treturn fileValue.name;\n\t\t\t}\n\t\t\treturn fileValue.name;\n\t\t};\n\n\t\tconst fileName = getFileName(currentValue);\n\n\t\treturn (\n\t\t\t<InputGroup className={styles.base({ className })} onClick={handleChooseFile}>\n\t\t\t\t<InputGroupText type=\"primary\">{chooseButtonText}</InputGroupText>\n\n\t\t\t\t<div className={styles.fileDisplay()}>\n\t\t\t\t\t{fileName ? <span>{fileName}</span> : <span className={styles.placeholder()}>{placeholder}</span>}\n\t\t\t\t</div>\n\n\t\t\t\t{shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={handleClear} type=\"button\" className={styles.action()} />\n\t\t\t\t)}\n\n\t\t\t\t{shouldShowDownloadIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={Download}\n\t\t\t\t\t\tonClick={handleDownload}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<input\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\tonChange={handleFileChange}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\taccept={accept}\n\t\t\t\t\tclassName=\"sr-only\"\n\t\t\t\t\taria-invalid={!!error}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nFileInput.displayName = \"FileInput\";\n\nexport default FileInput;\n","import { useInputWithActions } from \"@/hooks/useInputWithActions\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { Check, CircleX, Copy, Eye, EyeOff } from \"lucide-react\";\nimport React, { HTMLAttributes, useCallback, useState } from \"react\";\nimport { InputGroup, InputGroupButton, InputGroupInput } from \"../input-group/InputGroup\";\nimport { InputProps } from \"../input/Input\";\n\nexport interface SecretInputProps\n\textends Omit<InputProps, \"onChange\" | \"type\">,\n\t\tOmit<HTMLAttributes<HTMLInputElement>, \"onChange\" | \"type\"> {\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Флаг для отображения кнопки копирования значения */\n\tshowCopyIcon?: boolean;\n\t/** Колбэк на изменение значения */\n\tonChange?: (value: string | null) => void;\n}\n\n/**\n * Компонент для ввода секретных данных с возможностью переключения видимости текста.\n */\nexport const SecretInput = React.forwardRef<HTMLInputElement, SecretInputProps>(\n\t(\n\t\t{ showClearIcon, showCopyIcon, value, defaultValue, onChange, readOnly, disabled, error, className, ...props },\n\t\tref\n\t) => {\n\t\tconst [type, setType] = useState<\"password\" | \"text\">(\"password\");\n\n\t\tconst handleShowValueToggle = useCallback(() => {\n\t\t\tsetType((prev) => (prev === \"password\" ? \"text\" : \"password\"));\n\t\t}, []);\n\n\t\tconst inputActions = useInputWithActions({\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\tshowClearIcon,\n\t\t\tshowCopyIcon\n\t\t});\n\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\n\n\t\treturn (\n\t\t\t<InputGroup className={className}>\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={inputActions.handleChange}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\terror={error}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\n\t\t\t\t{inputActions.shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={inputActions.handleClear} type=\"button\" />\n\t\t\t\t)}\n\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<InputGroupButton icon={type === \"password\" ? Eye : EyeOff} onClick={handleShowValueToggle} />\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nSecretInput.displayName = \"SecretInput\";\n"],"names":["EyeOff","createLucideIcon","Eye","inputStyles","tv","inputBaseControlStyles","Input","React","type","className","error","other","ref","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","webInputStyles","WebInput","startContent","showClearIcon","showCopyIcon","value","defaultValue","onChange","readOnly","disabled","props","styles","inputActions","useInputWithActions","jsxs","InputGroup","InputGroupText","InputGroupInput","InputGroupButton","CircleX","Check","Copy","downloadFile","url","link","fileInputStyles","FileInput","placeholder","chooseButtonText","accept","internalValue","setInternalValue","useState","isControlled","currentValue","useEffect","handleFileChange","useCallback","event","file","handleClear","e","handleChooseFile","handleDownload","shouldShowClearIcon","shouldShowDownloadIcon","fileName","fileValue","Download","SecretInput","setType","handleShowValueToggle","prev"],"mappings":"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","x_google_ignoreList":[0,1]}
|
package/dist/components/label.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.js","sources":["../../src/components/menu-item/MenuItemAction.tsx","../../src/components/menu-item/components/menu-item-button/MenuItemButton.tsx","../../src/components/menu-item/components/menu-item-icon/MenuItemIcon.tsx","../../src/components/menu-item/components/menu-item-icon-button/MenuItemIconButton.tsx","../../src/components/menu-item/components/menu-item-secondary-text/MenuItemSecondaryText.tsx","../../src/components/menu-item/templates/menu-item-action-template/MenuItemActionTemplate.tsx","../../src/components/menu-item/templates/menu-item-common-template/MenuItemCommonTemplate.tsx","../../src/components/menu-item/templates/menu-item-info-template/MenuItemInfoTemplate.tsx","../../src/components/menu-item/templates/menu-item-interactive-template/MenuItemInteractiveTemplate.tsx","../../src/components/menu-item/templates/menu-item-rich-template/MenuItemRichTemplate.tsx"],"sourcesContent":["import { tv } from \"tailwind-variants\";\r\nimport { MenuItem, MenuItemProps } from \"./MenuItem\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport React from \"react\";\r\n\r\nconst menuItemActionStyles = tv({\r\n\tbase: \"hover:cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\"\r\n});\r\n\r\nexport type MenuActionItemProps = MenuItemProps;\r\n\r\nexport const MenuItemAction = React.forwardRef<HTMLDivElement, PropsWithChildren<MenuActionItemProps>>(\r\n\t({ className, children, ...props }, ref) => (\r\n\t\t<MenuItem ref={ref} className={menuItemActionStyles({ className })} tabIndex={0} {...props}>\r\n\t\t\t{children}\r\n\t\t</MenuItem>\r\n\t)\r\n);\r\n\r\nMenuItemAction.displayName = \"MenuItemAction\";\r\n","import { Button } from \"@/components/button\";\r\nimport { ButtonProps } from \"@/components/button/button/Button\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\ntype MenuItemButtonProps = Omit<ButtonProps, \"variant\" | \"status\"> & {\r\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\r\n};\r\n\r\nexport const menuItemButtonVariants = tv({\r\n\tvariants: {\r\n\t\ttheme: {\r\n\t\t\tinverse: \"text-inverse-primary-fg\"\r\n\t\t},\r\n\t\tvariant: {\r\n\t\t\toutline: \"\",\r\n\t\t\tghost: \"\",\r\n\t\t\ttext: \"\",\r\n\t\t\tlink: \"\"\r\n\t\t}\r\n\t},\r\n\tcompoundVariants: [\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"outline\",\r\n\t\t\tclass: \"border-inverse-border bg-inverse-primary-bg active:border-inverse-border active:bg-inverse-hover lg:hover:border-inverse-border lg:hover:bg-inverse-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"ghost\",\r\n\t\t\tclass: \"active:bg-inverse-hover lg:hover:bg-inverse-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"text\",\r\n\t\t\tclass: \"active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"link\",\r\n\t\t\tclass: \"text-inverse-muted underline active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\r\n\t\t}\r\n\t]\r\n});\r\n\r\nconst menuItemButtonStyles = tv({\r\n\textend: menuItemButtonVariants,\r\n\tbase: \"h-6 rounded-sm py-1\"\r\n});\r\n\r\nexport const MenuItemButton = React.forwardRef<HTMLButtonElement, MenuItemButtonProps>(\r\n\t({ className, variant = \"ghost\", ...props }, ref) => {\r\n\t\tconst { variant: componentVariant } = useComponentVariant();\r\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-menu-item-action\r\n\t\t\t\tsize=\"xs\"\r\n\t\t\t\tvariant={variant}\r\n\t\t\t\tclassName={menuItemButtonStyles({ className, theme, variant })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nMenuItemButton.displayName = \"MenuItemButton\";\r\n","import { Icon } from \"@/components/icon\";\r\nimport { IconProps } from \"@/components/icon/Icon\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst menuItemIconStyles = tv({\r\n\tbase: \"truncate text-sm text-primary-fg\",\r\n\tvariants: {\r\n\t\ttheme: {\r\n\t\t\tinverse: \"text-inverse-primary-fg\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\ntype MenuItemIconProps = IconProps;\r\n\r\nexport const MenuItemIcon = ({ className, icon, ...props }: MenuItemIconProps) => {\r\n\tconst { variant } = useComponentVariant();\r\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\r\n\r\n\treturn <Icon icon={icon} className={menuItemIconStyles({ className, theme })} {...props} />;\r\n};\r\n\r\nMenuItemIcon.displayName = \"MenuItemIcon\";\r\n","import { IconButton } from \"@/components/button\";\r\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport React from \"react\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport { menuItemButtonVariants } from \"../menu-item-button/MenuItemButton\";\r\n\r\ntype MenuItemIconProps = Omit<IconButtonProps, \"variant\" | \"status\"> & {\r\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\r\n};\r\n\r\nconst menuItemIconButtonStyles = tv({\r\n\textend: menuItemButtonVariants,\r\n\tbase: \"h-6 w-6 rounded-sm\"\r\n});\r\n\r\nexport const MenuItemIconButton = React.forwardRef<HTMLButtonElement, MenuItemIconProps>(\r\n\t({ className, icon, variant = \"ghost\", ...props }, ref) => {\r\n\t\tconst { variant: componentVariant } = useComponentVariant();\r\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\r\n\r\n\t\treturn (\r\n\t\t\t<IconButton\r\n\t\t\t\tref={ref}\r\n\t\t\t\ticon={icon}\r\n\t\t\t\tdata-menu-item-action\r\n\t\t\t\tsize=\"xs\"\r\n\t\t\t\tvariant={variant}\r\n\t\t\t\tstatus=\"default\"\r\n\t\t\t\tclassName={menuItemIconButtonStyles({ className, theme, variant })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nMenuItemIconButton.displayName = \"MenuItemIconButton\";\r\n","import { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport const menuItemSecondaryTextStyles = tv({\r\n\tbase: \"truncate text-xs text-muted\",\r\n\tvariants: {\r\n\t\ttheme: {\r\n\t\t\tinverse: \"text-inverse-muted\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\ntype MenuItemTextProps = React.HTMLAttributes<HTMLSpanElement>;\r\n\r\nexport const MenuItemSecondaryText = ({ className, children, ...props }: MenuItemTextProps) => {\r\n\tconst { variant } = useComponentVariant();\r\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\r\n\r\n\treturn (\r\n\t\t<span className={menuItemSecondaryTextStyles({ className, theme })} {...props}>\r\n\t\t\t{children}\r\n\t\t</span>\r\n\t);\r\n};\r\n\r\nMenuItemSecondaryText.displayName = \"MenuItemSecondaryText\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { MenuItemShortcut } from \"../../components/menu-item-shortcut/MenuItemShortcut\";\r\n\r\ntype MenuItemActionTemplateProps = {\r\n\ticon: LucideIcon;\r\n\ttext: string;\r\n\tshortcut?: string;\r\n};\r\n\r\nexport const MenuItemActionTemplate = ({ icon, text, shortcut }: PropsWithChildren<MenuItemActionTemplateProps>) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<MenuItemIcon icon={icon} />\r\n\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t{shortcut && <MenuItemShortcut>{shortcut}</MenuItemShortcut>}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nMenuItemActionTemplate.displayName = \"MenuItemActionTemplate\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { Check, LucideIcon } from \"lucide-react\";\r\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface MenuItemCommonTemplateVariants {\r\n\tisSelected?: boolean;\r\n}\r\n\r\nconst menuItemCommonTemplateStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\r\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\r\n\t\tcheck: \"invisible\",\r\n\t\trightIcon: \"ml-auto\"\r\n\t},\r\n\tvariants: {\r\n\t\tisSelected: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcheck: \"visible\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<MenuItemCommonTemplateVariants>\r\n});\r\n\r\ntype MenuItemCommonTemplateProps = MenuItemCommonTemplateVariants & {\r\n\ttext: string;\r\n\ticon: LucideIcon;\r\n\tshowStartCheck?: boolean;\r\n\tshowEndCheck?: boolean;\r\n};\r\n\r\nexport const MenuItemCommonTemplate = ({\r\n\ticon,\r\n\ttext,\r\n\tisSelected,\r\n\tshowStartCheck = false,\r\n\tshowEndCheck = false\r\n}: PropsWithChildren<MenuItemCommonTemplateProps>) => {\r\n\tconst styles = menuItemCommonTemplateStyles();\r\n\r\n\treturn (\r\n\t\t<div className={styles.wrapper()}>\r\n\t\t\t{showStartCheck && <Icon icon={Check} className={styles.check({ isSelected })} />}\r\n\t\t\t<div className={styles.contentWrapper()}>\r\n\t\t\t\t<MenuItemIcon icon={icon} />\r\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t</div>\r\n\t\t\t{showEndCheck && <Icon icon={Check} className={cn(styles.rightIcon(), styles.check({ isSelected }))} />}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nMenuItemCommonTemplate.displayName = \"MenuItemCommonTemplate\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { Check } from \"lucide-react\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface MenuItemInfoTemplateVariants {\r\n\tisSelected?: boolean;\r\n}\r\n\r\nconst menuItemInfoTemplateStyles = tv({\r\n\tslots: {\r\n\t\tcheck: \"invisible\"\r\n\t},\r\n\tvariants: {\r\n\t\tisSelected: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcheck: \"visible\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<MenuItemInfoTemplateVariants>\r\n});\r\n\r\ntype MenuItemInfoTemplateProps = MenuItemInfoTemplateVariants & {\r\n\ttext: string;\r\n\tdescription?: string;\r\n};\r\n\r\nexport const MenuItemInfoTemplate = ({\r\n\tdescription,\r\n\ttext,\r\n\tisSelected\r\n}: PropsWithChildren<MenuItemInfoTemplateProps>) => {\r\n\tconst styles = menuItemInfoTemplateStyles();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\r\n\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t{description && <MenuItemSecondaryText>{description}</MenuItemSecondaryText>}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nMenuItemInfoTemplate.displayName = \"MenuItemInfoTemplate\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { Check, LucideIcon } from \"lucide-react\";\r\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\r\nimport { MenuItemIconButton } from \"../../components/menu-item-icon-button/MenuItemIconButton\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface MenuItemInteractiveTemplateVariants {\r\n\tisSelected?: boolean;\r\n}\r\n\r\nconst menuItemInteractiveTemplateStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\r\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\r\n\t\tcheck: \"invisible\",\r\n\t\tbutton: \"ml-auto\"\r\n\t},\r\n\tvariants: {\r\n\t\tisSelected: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcheck: \"visible\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<MenuItemInteractiveTemplateVariants>\r\n});\r\n\r\ntype MenuItemInteractiveTemplateProps = MenuItemInteractiveTemplateVariants & {\r\n\ttext: string;\r\n\ticon: LucideIcon;\r\n\tbuttonIcon: LucideIcon;\r\n\tbuttonOnClick?: (e: React.MouseEvent) => void;\r\n};\r\n\r\nexport const MenuItemInteractiveTemplate = ({\r\n\ttext,\r\n\ticon,\r\n\tbuttonIcon,\r\n\tbuttonOnClick,\r\n\tisSelected\r\n}: PropsWithChildren<MenuItemInteractiveTemplateProps>) => {\r\n\tconst styles = menuItemInteractiveTemplateStyles();\r\n\r\n\treturn (\r\n\t\t<div className={styles.wrapper()}>\r\n\t\t\t<div className={styles.contentWrapper()}>\r\n\t\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\r\n\t\t\t\t<MenuItemIcon icon={icon} />\r\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t</div>\r\n\t\t\t<MenuItemIconButton icon={buttonIcon} onClick={buttonOnClick} className={styles.button()} />\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nMenuItemInteractiveTemplate.displayName = \"MenuItemInteractiveTemplate\";\r\n","import { LucideIcon } from \"lucide-react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport { FeatureIcon } from \"@/components/icon\";\r\nimport { richButtonStyles } from \"@/components/button/rich-button/RichButton\";\r\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\r\n\r\nexport type MenuItemRichTemplateProps = {\r\n\ttitle: string;\r\n\tdescription: string;\r\n\ticon: LucideIcon;\r\n};\r\n\r\nexport const MenuItemRichTemplate = ({ icon, description, title }: PropsWithChildren<MenuItemRichTemplateProps>) => {\r\n\tconst buttonStyles = richButtonStyles();\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<FeatureIcon icon={icon} size=\"sm\" className=\"bg-status-neutral-fg\" />\r\n\r\n\t\t\t<div className={buttonStyles.wrapper()}>\r\n\t\t\t\t<span className={buttonStyles.text()}>{title}</span>\r\n\t\t\t\t<MenuItemSecondaryText className={buttonStyles.description()}>{description}</MenuItemSecondaryText>\r\n\t\t\t</div>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nMenuItemRichTemplate.displayName = \"MenuItemRichTemplate\";\r\n"],"names":["menuItemActionStyles","tv","MenuItemAction","React","className","children","props","ref","jsx","MenuItem","menuItemButtonVariants","menuItemButtonStyles","MenuItemButton","variant","componentVariant","useComponentVariant","theme","narrowVariant","Button","menuItemIconStyles","MenuItemIcon","icon","Icon","menuItemIconButtonStyles","MenuItemIconButton","IconButton","menuItemSecondaryTextStyles","MenuItemSecondaryText","MenuItemActionTemplate","text","shortcut","jsxs","Fragment","MenuItemText","MenuItemShortcut","menuItemCommonTemplateStyles","MenuItemCommonTemplate","isSelected","showStartCheck","showEndCheck","styles","Check","cn","menuItemInfoTemplateStyles","MenuItemInfoTemplate","description","menuItemInteractiveTemplateStyles","MenuItemInteractiveTemplate","buttonIcon","buttonOnClick","MenuItemRichTemplate","title","buttonStyles","richButtonStyles","FeatureIcon"],"mappings":";;;;;;;;;;;;;;;AAKA,MAAMA,IAAuBC,EAAG;AAAA,EAC/B,MAAM;AACP,CAAC,GAIYC,IAAiBC,EAAM;AAAA,EACnC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAM,GAAGC,MAClC,gBAAAC,EAAAC,GAAA,EAAS,KAAAF,GAAU,WAAWP,EAAqB,EAAE,WAAAI,GAAW,GAAG,UAAU,GAAI,GAAGE,GACnF,UAAAD,EACF,CAAA;AAEF;AAEAH,EAAe,cAAc;ACTtB,MAAMQ,IAAyBT,EAAG;AAAA,EACxC,UAAU;AAAA,IACT,OAAO;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,kBAAkB;AAAA,IACjB;AAAA,MACC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,EACR;AAEF,CAAC,GAEKU,IAAuBV,EAAG;AAAA,EAC/B,QAAQS;AAAA,EACR,MAAM;AACP,CAAC,GAEYE,IAAiBT,EAAM;AAAA,EACnC,CAAC,EAAE,WAAAC,GAAW,SAAAS,IAAU,SAAS,GAAGP,KAASC,MAAQ;AACpD,UAAM,EAAE,SAASO,EAAiB,IAAIC,EAAoB,GACpDC,IAAQC,EAAcH,GAAkB,CAAC,SAAS,CAAC;AAGxD,WAAA,gBAAAN;AAAA,MAACU;AAAA,MAAA;AAAA,QACA,KAAAX;AAAA,QACA,yBAAqB;AAAA,QACrB,MAAK;AAAA,QACL,SAAAM;AAAA,QACA,WAAWF,EAAqB,EAAE,WAAAP,GAAW,OAAAY,GAAO,SAAAH,GAAS;AAAA,QAC5D,GAAGP;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAM,EAAe,cAAc;AChE7B,MAAMO,IAAqBlB,EAAG;AAAA,EAC7B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,OAAO;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACV;AAEF,CAAC,GAIYmB,IAAe,CAAC,EAAE,WAAAhB,GAAW,MAAAiB,GAAM,GAAGf,QAA+B;AAC3E,QAAA,EAAE,SAAAO,EAAQ,IAAIE,EAAoB,GAClCC,IAAQC,EAAcJ,GAAS,CAAC,SAAS,CAAC;AAEzC,SAAA,gBAAAL,EAACc,GAAK,EAAA,MAAAD,GAAY,WAAWF,EAAmB,EAAE,WAAAf,GAAW,OAAAY,EAAM,CAAC,GAAI,GAAGV,EAAO,CAAA;AAC1F;AAEAc,EAAa,cAAc;ACZ3B,MAAMG,IAA2BtB,EAAG;AAAA,EACnC,QAAQS;AAAA,EACR,MAAM;AACP,CAAC,GAEYc,IAAqBrB,EAAM;AAAA,EACvC,CAAC,EAAE,WAAAC,GAAW,MAAAiB,GAAM,SAAAR,IAAU,SAAS,GAAGP,EAAM,GAAGC,MAAQ;AAC1D,UAAM,EAAE,SAASO,EAAiB,IAAIC,EAAoB,GACpDC,IAAQC,EAAcH,GAAkB,CAAC,SAAS,CAAC;AAGxD,WAAA,gBAAAN;AAAA,MAACiB;AAAA,MAAA;AAAA,QACA,KAAAlB;AAAA,QACA,MAAAc;AAAA,QACA,yBAAqB;AAAA,QACrB,MAAK;AAAA,QACL,SAAAR;AAAA,QACA,QAAO;AAAA,QACP,WAAWU,EAAyB,EAAE,WAAAnB,GAAW,OAAAY,GAAO,SAAAH,GAAS;AAAA,QAChE,GAAGP;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAkB,EAAmB,cAAc;AChC1B,MAAME,IAA8BzB,EAAG;AAAA,EAC7C,MAAM;AAAA,EACN,UAAU;AAAA,IACT,OAAO;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACV;AAEF,CAAC,GAIY0B,IAAwB,CAAC,EAAE,WAAAvB,GAAW,UAAAC,GAAU,GAAGC,QAA+B;AACxF,QAAA,EAAE,SAAAO,EAAQ,IAAIE,EAAoB,GAClCC,IAAQC,EAAcJ,GAAS,CAAC,SAAS,CAAC;AAG/C,SAAA,gBAAAL,EAAC,QAAK,EAAA,WAAWkB,EAA4B,EAAE,WAAAtB,GAAW,OAAAY,GAAO,GAAI,GAAGV,GACtE,UAAAD,EACF,CAAA;AAEF;AAEAsB,EAAsB,cAAc;ACd7B,MAAMC,IAAyB,CAAC,EAAE,MAAAP,GAAM,MAAAQ,GAAM,UAAAC,QAGlD,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,EAAA,gBAAAxB,EAACY,KAAa,MAAAC,GAAY;AAAA,EAC1B,gBAAAb,EAACyB,KAAc,UAAKJ,EAAA,CAAA;AAAA,EACnBC,KAAa,gBAAAtB,EAAA0B,GAAA,EAAkB,UAASJ,EAAA,CAAA;AAAA,GAC1C;AAIFF,EAAuB,cAAc;ACTrC,MAAMO,IAA+BlC,EAAG;AAAA,EACvC,OAAO;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,WAAW;AAAA,EACZ;AAAA,EACA,UAAU;AAAA,IACT,YAAY;AAAA,MACX,MAAM;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IACR;AAAA,EACD;AAEF,CAAC,GASYmC,IAAyB,CAAC;AAAA,EACtC,MAAAf;AAAA,EACA,MAAAQ;AAAA,EACA,YAAAQ;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,cAAAC,IAAe;AAChB,MAAsD;AACrD,QAAMC,IAASL,EAA6B;AAE5C,SACE,gBAAAJ,EAAA,OAAA,EAAI,WAAWS,EAAO,QACrB,GAAA,UAAA;AAAA,IAAkBF,KAAA,gBAAA9B,EAACc,GAAK,EAAA,MAAMmB,GAAO,WAAWD,EAAO,MAAM,EAAE,YAAAH,EAAW,CAAC,EAAG,CAAA;AAAA,IAC9E,gBAAAN,EAAA,OAAA,EAAI,WAAWS,EAAO,eACtB,GAAA,UAAA;AAAA,MAAA,gBAAAhC,EAACY,KAAa,MAAAC,GAAY;AAAA,MAC1B,gBAAAb,EAACyB,KAAc,UAAKJ,EAAA,CAAA;AAAA,IAAA,GACrB;AAAA,IACCU,KAAiB,gBAAA/B,EAAAc,GAAA,EAAK,MAAMmB,GAAO,WAAWC,EAAGF,EAAO,UAAU,GAAGA,EAAO,MAAM,EAAE,YAAAH,EAAY,CAAA,CAAC,EAAG,CAAA;AAAA,EAAA,GACtG;AAEF;AAEAD,EAAuB,cAAc;AC7CrC,MAAMO,IAA6B1C,EAAG;AAAA,EACrC,OAAO;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACT,YAAY;AAAA,MACX,MAAM;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IACR;AAAA,EACD;AAEF,CAAC,GAOY2C,IAAuB,CAAC;AAAA,EACpC,aAAAC;AAAA,EACA,MAAAhB;AAAA,EACA,YAAAQ;AACD,MAAoD;AACnD,QAAMG,IAASG,EAA2B;AAE1C,SAEE,gBAAAZ,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAxB,EAAAc,GAAA,EAAK,MAAMmB,GAAO,WAAWD,EAAO,MAAM,EAAE,YAAAH,EAAY,CAAA,GAAG;AAAA,IAC5D,gBAAA7B,EAACyB,KAAc,UAAKJ,EAAA,CAAA;AAAA,IACnBgB,KAAgB,gBAAArC,EAAAmB,GAAA,EAAuB,UAAYkB,EAAA,CAAA;AAAA,EAAA,GACrD;AAEF;AAEAD,EAAqB,cAAc;ACjCnC,MAAME,IAAoC7C,EAAG;AAAA,EAC5C,OAAO;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACT,YAAY;AAAA,MACX,MAAM;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IACR;AAAA,EACD;AAEF,CAAC,GASY8C,IAA8B,CAAC;AAAA,EAC3C,MAAAlB;AAAA,EACA,MAAAR;AAAA,EACA,YAAA2B;AAAA,EACA,eAAAC;AAAA,EACA,YAAAZ;AACD,MAA2D;AAC1D,QAAMG,IAASM,EAAkC;AAEjD,SACE,gBAAAf,EAAA,OAAA,EAAI,WAAWS,EAAO,QACtB,GAAA,UAAA;AAAA,IAAA,gBAAAT,EAAC,OAAI,EAAA,WAAWS,EAAO,eACtB,GAAA,UAAA;AAAA,MAAC,gBAAAhC,EAAAc,GAAA,EAAK,MAAMmB,GAAO,WAAWD,EAAO,MAAM,EAAE,YAAAH,EAAY,CAAA,GAAG;AAAA,MAC5D,gBAAA7B,EAACY,KAAa,MAAAC,GAAY;AAAA,MAC1B,gBAAAb,EAACyB,KAAc,UAAKJ,EAAA,CAAA;AAAA,IAAA,GACrB;AAAA,IACA,gBAAArB,EAACgB,KAAmB,MAAMwB,GAAY,SAASC,GAAe,WAAWT,EAAO,SAAU,CAAA;AAAA,EAAA,GAC3F;AAEF;AAEAO,EAA4B,cAAc;AC7CnC,MAAMG,IAAuB,CAAC,EAAE,MAAA7B,GAAM,aAAAwB,GAAa,OAAAM,QAA0D;AACnH,QAAMC,IAAeC,EAAiB;AACtC,SAEE,gBAAAtB,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAxB,EAAC8C,GAAY,EAAA,MAAAjC,GAAY,MAAK,MAAK,WAAU,wBAAuB;AAAA,IAEnE,gBAAAU,EAAA,OAAA,EAAI,WAAWqB,EAAa,QAC5B,GAAA,UAAA;AAAA,MAAA,gBAAA5C,EAAC,QAAK,EAAA,WAAW4C,EAAa,QAAS,UAAMD,GAAA;AAAA,wBAC5CxB,GAAsB,EAAA,WAAWyB,EAAa,eAAgB,UAAYP,EAAA,CAAA;AAAA,IAAA,EAC5E,CAAA;AAAA,EAAA,GACD;AAEF;AAEAK,EAAqB,cAAc;"}
|
|
1
|
+
{"version":3,"file":"menu-item.js","sources":["../../src/components/menu-item/MenuItemAction.tsx","../../src/components/menu-item/components/menu-item-button/MenuItemButton.tsx","../../src/components/menu-item/components/menu-item-icon/MenuItemIcon.tsx","../../src/components/menu-item/components/menu-item-icon-button/MenuItemIconButton.tsx","../../src/components/menu-item/components/menu-item-secondary-text/MenuItemSecondaryText.tsx","../../src/components/menu-item/templates/menu-item-action-template/MenuItemActionTemplate.tsx","../../src/components/menu-item/templates/menu-item-common-template/MenuItemCommonTemplate.tsx","../../src/components/menu-item/templates/menu-item-info-template/MenuItemInfoTemplate.tsx","../../src/components/menu-item/templates/menu-item-interactive-template/MenuItemInteractiveTemplate.tsx","../../src/components/menu-item/templates/menu-item-rich-template/MenuItemRichTemplate.tsx"],"sourcesContent":["import { tv } from \"tailwind-variants\";\nimport { MenuItem, MenuItemProps } from \"./MenuItem\";\nimport { PropsWithChildren } from \"react\";\nimport React from \"react\";\n\nconst menuItemActionStyles = tv({\n\tbase: \"hover:cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\"\n});\n\nexport type MenuActionItemProps = MenuItemProps;\n\nexport const MenuItemAction = React.forwardRef<HTMLDivElement, PropsWithChildren<MenuActionItemProps>>(\n\t({ className, children, ...props }, ref) => (\n\t\t<MenuItem ref={ref} className={menuItemActionStyles({ className })} tabIndex={0} {...props}>\n\t\t\t{children}\n\t\t</MenuItem>\n\t)\n);\n\nMenuItemAction.displayName = \"MenuItemAction\";\n","import { Button } from \"@/components/button\";\nimport { ButtonProps } from \"@/components/button/button/Button\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\ntype MenuItemButtonProps = Omit<ButtonProps, \"variant\" | \"status\"> & {\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\n};\n\nexport const menuItemButtonVariants = tv({\n\tvariants: {\n\t\ttheme: {\n\t\t\tinverse: \"text-inverse-primary-fg\"\n\t\t},\n\t\tvariant: {\n\t\t\toutline: \"\",\n\t\t\tghost: \"\",\n\t\t\ttext: \"\",\n\t\t\tlink: \"\"\n\t\t}\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"outline\",\n\t\t\tclass: \"border-inverse-border bg-inverse-primary-bg active:border-inverse-border active:bg-inverse-hover lg:hover:border-inverse-border lg:hover:bg-inverse-hover\"\n\t\t},\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"ghost\",\n\t\t\tclass: \"active:bg-inverse-hover lg:hover:bg-inverse-hover\"\n\t\t},\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"text\",\n\t\t\tclass: \"active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\n\t\t},\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"link\",\n\t\t\tclass: \"text-inverse-muted underline active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\n\t\t}\n\t]\n});\n\nconst menuItemButtonStyles = tv({\n\textend: menuItemButtonVariants,\n\tbase: \"h-6 rounded-sm py-1\"\n});\n\nexport const MenuItemButton = React.forwardRef<HTMLButtonElement, MenuItemButtonProps>(\n\t({ className, variant = \"ghost\", ...props }, ref) => {\n\t\tconst { variant: componentVariant } = useComponentVariant();\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\tdata-menu-item-action\n\t\t\t\tsize=\"xs\"\n\t\t\t\tvariant={variant}\n\t\t\t\tclassName={menuItemButtonStyles({ className, theme, variant })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nMenuItemButton.displayName = \"MenuItemButton\";\n","import { Icon } from \"@/components/icon\";\nimport { IconProps } from \"@/components/icon/Icon\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport { tv } from \"tailwind-variants\";\n\nconst menuItemIconStyles = tv({\n\tbase: \"truncate text-sm text-primary-fg\",\n\tvariants: {\n\t\ttheme: {\n\t\t\tinverse: \"text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\ntype MenuItemIconProps = IconProps;\n\nexport const MenuItemIcon = ({ className, icon, ...props }: MenuItemIconProps) => {\n\tconst { variant } = useComponentVariant();\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\n\n\treturn <Icon icon={icon} className={menuItemIconStyles({ className, theme })} {...props} />;\n};\n\nMenuItemIcon.displayName = \"MenuItemIcon\";\n","import { IconButton } from \"@/components/button\";\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\nimport { tv } from \"tailwind-variants\";\nimport React from \"react\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport { menuItemButtonVariants } from \"../menu-item-button/MenuItemButton\";\n\ntype MenuItemIconProps = Omit<IconButtonProps, \"variant\" | \"status\"> & {\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\n};\n\nconst menuItemIconButtonStyles = tv({\n\textend: menuItemButtonVariants,\n\tbase: \"h-6 w-6 rounded-sm\"\n});\n\nexport const MenuItemIconButton = React.forwardRef<HTMLButtonElement, MenuItemIconProps>(\n\t({ className, icon, variant = \"ghost\", ...props }, ref) => {\n\t\tconst { variant: componentVariant } = useComponentVariant();\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\n\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\tref={ref}\n\t\t\t\ticon={icon}\n\t\t\t\tdata-menu-item-action\n\t\t\t\tsize=\"xs\"\n\t\t\t\tvariant={variant}\n\t\t\t\tstatus=\"default\"\n\t\t\t\tclassName={menuItemIconButtonStyles({ className, theme, variant })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nMenuItemIconButton.displayName = \"MenuItemIconButton\";\n","import { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport const menuItemSecondaryTextStyles = tv({\n\tbase: \"truncate text-xs text-muted\",\n\tvariants: {\n\t\ttheme: {\n\t\t\tinverse: \"text-inverse-muted\"\n\t\t}\n\t}\n});\n\ntype MenuItemTextProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const MenuItemSecondaryText = ({ className, children, ...props }: MenuItemTextProps) => {\n\tconst { variant } = useComponentVariant();\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\n\n\treturn (\n\t\t<span className={menuItemSecondaryTextStyles({ className, theme })} {...props}>\n\t\t\t{children}\n\t\t</span>\n\t);\n};\n\nMenuItemSecondaryText.displayName = \"MenuItemSecondaryText\";\n","import { PropsWithChildren } from \"react\";\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { MenuItemShortcut } from \"../../components/menu-item-shortcut/MenuItemShortcut\";\n\ntype MenuItemActionTemplateProps = {\n\ticon: LucideIcon;\n\ttext: string;\n\tshortcut?: string;\n};\n\nexport const MenuItemActionTemplate = ({ icon, text, shortcut }: PropsWithChildren<MenuItemActionTemplateProps>) => {\n\treturn (\n\t\t<>\n\t\t\t<MenuItemIcon icon={icon} />\n\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t{shortcut && <MenuItemShortcut>{shortcut}</MenuItemShortcut>}\n\t\t</>\n\t);\n};\n\nMenuItemActionTemplate.displayName = \"MenuItemActionTemplate\";\n","import { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { Icon } from \"@/components/icon\";\nimport { Check, LucideIcon } from \"lucide-react\";\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\nimport { cn } from \"@/lib/utils\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface MenuItemCommonTemplateVariants {\n\tisSelected?: boolean;\n}\n\nconst menuItemCommonTemplateStyles = tv({\n\tslots: {\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\n\t\tcheck: \"invisible\",\n\t\trightIcon: \"ml-auto\"\n\t},\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: {\n\t\t\t\tcheck: \"visible\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<MenuItemCommonTemplateVariants>\n});\n\ntype MenuItemCommonTemplateProps = MenuItemCommonTemplateVariants & {\n\ttext: string;\n\ticon: LucideIcon;\n\tshowStartCheck?: boolean;\n\tshowEndCheck?: boolean;\n};\n\nexport const MenuItemCommonTemplate = ({\n\ticon,\n\ttext,\n\tisSelected,\n\tshowStartCheck = false,\n\tshowEndCheck = false\n}: PropsWithChildren<MenuItemCommonTemplateProps>) => {\n\tconst styles = menuItemCommonTemplateStyles();\n\n\treturn (\n\t\t<div className={styles.wrapper()}>\n\t\t\t{showStartCheck && <Icon icon={Check} className={styles.check({ isSelected })} />}\n\t\t\t<div className={styles.contentWrapper()}>\n\t\t\t\t<MenuItemIcon icon={icon} />\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t</div>\n\t\t\t{showEndCheck && <Icon icon={Check} className={cn(styles.rightIcon(), styles.check({ isSelected }))} />}\n\t\t</div>\n\t);\n};\n\nMenuItemCommonTemplate.displayName = \"MenuItemCommonTemplate\";\n","import { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\nimport { Icon } from \"@/components/icon\";\nimport { Check } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface MenuItemInfoTemplateVariants {\n\tisSelected?: boolean;\n}\n\nconst menuItemInfoTemplateStyles = tv({\n\tslots: {\n\t\tcheck: \"invisible\"\n\t},\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: {\n\t\t\t\tcheck: \"visible\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<MenuItemInfoTemplateVariants>\n});\n\ntype MenuItemInfoTemplateProps = MenuItemInfoTemplateVariants & {\n\ttext: string;\n\tdescription?: string;\n};\n\nexport const MenuItemInfoTemplate = ({\n\tdescription,\n\ttext,\n\tisSelected\n}: PropsWithChildren<MenuItemInfoTemplateProps>) => {\n\tconst styles = menuItemInfoTemplateStyles();\n\n\treturn (\n\t\t<>\n\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\n\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t{description && <MenuItemSecondaryText>{description}</MenuItemSecondaryText>}\n\t\t</>\n\t);\n};\n\nMenuItemInfoTemplate.displayName = \"MenuItemInfoTemplate\";\n","import { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { Icon } from \"@/components/icon\";\nimport { Check, LucideIcon } from \"lucide-react\";\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\nimport { MenuItemIconButton } from \"../../components/menu-item-icon-button/MenuItemIconButton\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface MenuItemInteractiveTemplateVariants {\n\tisSelected?: boolean;\n}\n\nconst menuItemInteractiveTemplateStyles = tv({\n\tslots: {\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\n\t\tcheck: \"invisible\",\n\t\tbutton: \"ml-auto\"\n\t},\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: {\n\t\t\t\tcheck: \"visible\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<MenuItemInteractiveTemplateVariants>\n});\n\ntype MenuItemInteractiveTemplateProps = MenuItemInteractiveTemplateVariants & {\n\ttext: string;\n\ticon: LucideIcon;\n\tbuttonIcon: LucideIcon;\n\tbuttonOnClick?: (e: React.MouseEvent) => void;\n};\n\nexport const MenuItemInteractiveTemplate = ({\n\ttext,\n\ticon,\n\tbuttonIcon,\n\tbuttonOnClick,\n\tisSelected\n}: PropsWithChildren<MenuItemInteractiveTemplateProps>) => {\n\tconst styles = menuItemInteractiveTemplateStyles();\n\n\treturn (\n\t\t<div className={styles.wrapper()}>\n\t\t\t<div className={styles.contentWrapper()}>\n\t\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\n\t\t\t\t<MenuItemIcon icon={icon} />\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t</div>\n\t\t\t<MenuItemIconButton icon={buttonIcon} onClick={buttonOnClick} className={styles.button()} />\n\t\t</div>\n\t);\n};\n\nMenuItemInteractiveTemplate.displayName = \"MenuItemInteractiveTemplate\";\n","import { LucideIcon } from \"lucide-react\";\nimport { PropsWithChildren } from \"react\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { richButtonStyles } from \"@/components/button/rich-button/RichButton\";\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\n\nexport type MenuItemRichTemplateProps = {\n\ttitle: string;\n\tdescription: string;\n\ticon: LucideIcon;\n};\n\nexport const MenuItemRichTemplate = ({ icon, description, title }: PropsWithChildren<MenuItemRichTemplateProps>) => {\n\tconst buttonStyles = richButtonStyles();\n\treturn (\n\t\t<>\n\t\t\t<FeatureIcon icon={icon} size=\"sm\" className=\"bg-status-neutral-fg\" />\n\n\t\t\t<div className={buttonStyles.wrapper()}>\n\t\t\t\t<span className={buttonStyles.text()}>{title}</span>\n\t\t\t\t<MenuItemSecondaryText className={buttonStyles.description()}>{description}</MenuItemSecondaryText>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nMenuItemRichTemplate.displayName = \"MenuItemRichTemplate\";\n"],"names":["menuItemActionStyles","tv","MenuItemAction","React","className","children","props","ref","jsx","MenuItem","menuItemButtonVariants","menuItemButtonStyles","MenuItemButton","variant","componentVariant","useComponentVariant","theme","narrowVariant","Button","menuItemIconStyles","MenuItemIcon","icon","Icon","menuItemIconButtonStyles","MenuItemIconButton","IconButton","menuItemSecondaryTextStyles","MenuItemSecondaryText","MenuItemActionTemplate","text","shortcut","jsxs","Fragment","MenuItemText","MenuItemShortcut","menuItemCommonTemplateStyles","MenuItemCommonTemplate","isSelected","showStartCheck","showEndCheck","styles","Check","cn","menuItemInfoTemplateStyles","MenuItemInfoTemplate","description","menuItemInteractiveTemplateStyles","MenuItemInteractiveTemplate","buttonIcon","buttonOnClick","MenuItemRichTemplate","title","buttonStyles","richButtonStyles","FeatureIcon"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-state.js","sources":["../../src/components/page-state/context/PageStateContext.tsx","../../src/components/page-state/PageState.tsx","../../src/components/page-state/components/PageStateTitle.tsx","../../src/components/page-state/components/PageStateDescription.tsx","../../src/components/page-state/hooks/usePageStateButtonSize.tsx","../../src/components/page-state/components/PageStateCancel.tsx","../../src/components/page-state/components/PageStateAction.tsx","../../src/components/page-state/components/PageStateFeatureIcon.tsx","../../src/components/page-state/components/PageStateBoxSvg.tsx","../../src/components/page-state/components/PageStateFolderSvg.tsx","../../src/components/page-state/components/PageStateButtonGroup.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\r\n\r\nexport type PageStateSize = \"sm\" | \"md\" | \"lg\";\r\n\r\nexport interface PageStateVariants {\r\n\tsize?: PageStateSize;\r\n}\r\n\r\nconst PageStateContext = createContext<PageStateVariants | undefined>(undefined);\r\n\r\ninterface PageStateProviderProps {\r\n\tsize: PageStateSize;\r\n\tchildren: React.ReactNode;\r\n}\r\n\r\nexport const PageStateProvider: React.FC<PageStateProviderProps> = ({ size, children }) => {\r\n\treturn <PageStateContext.Provider value={{ size }}>{children}</PageStateContext.Provider>;\r\n};\r\n\r\nexport const usePageStateContext = (): PageStateVariants => {\r\n\tconst context = useContext(PageStateContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"usePageStateContext must be used within a PageStateProvider\");\r\n\t}\r\n\treturn context;\r\n};\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { PageStateProvider, PageStateSize } from \"./context/PageStateContext\";\r\n\r\nconst pageStateStyles = tv({\r\n\tbase: \"flex w-full flex-col items-center px-8\"\r\n});\r\n\r\nexport type PageStateProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\tsize?: PageStateSize;\r\n};\r\n\r\nexport const PageState = React.forwardRef<HTMLDivElement, PageStateProps>(\r\n\t({ className, children, size = \"md\", ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<PageStateProvider size={size}>\r\n\t\t\t\t<div ref={ref} className={pageStateStyles({ className })} {...props}>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</PageStateProvider>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPageState.displayName = \"PageState\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateTitleStyles = tv({\r\n\tbase: \"mt-5 font-semibold text-primary-fg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-base\",\r\n\t\t\tmd: \"text-xl\",\r\n\t\t\tlg: \"text-2xl\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\nexport type PageStateTitleProps = React.HTMLAttributes<HTMLHeadingElement> &\r\n\tPageStateVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const PageStateTitle = React.forwardRef<HTMLHeadingElement, PageStateTitleProps>(\r\n\t({ className, size: propSize, asChild = false, ...props }, ref) => {\r\n\t\tconst { size: contextSize } = usePageStateContext();\r\n\t\tconst size = propSize || contextSize;\r\n\r\n\t\tconst Comp = asChild ? Slot : \"h2\";\r\n\t\treturn <Comp ref={ref} className={pageStateTitleStyles({ className, size })} {...props} />;\r\n\t}\r\n);\r\n\r\nPageStateTitle.displayName = \"PageStateTitle\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateDescriptionStyles = tv({\r\n\tbase: \"mt-2.5 text-center text-muted\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-xs\",\r\n\t\t\tmd: \"text-sm\",\r\n\t\t\tlg: \"text-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\nexport type PageStateDescriptionProps = React.HTMLAttributes<HTMLDivElement> &\r\n\tPageStateVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const PageStateDescription = React.forwardRef<HTMLDivElement, PageStateDescriptionProps>(\r\n\t({ className, size: propSize, asChild = false, children, ...props }, ref) => {\r\n\t\tconst { size: contextSize } = usePageStateContext();\r\n\t\tconst size = propSize || contextSize;\r\n\r\n\t\tconst Comp = asChild ? Slot : \"div\";\r\n\t\treturn (\r\n\t\t\t<Comp ref={ref} className={pageStateDescriptionStyles({ className, size })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</Comp>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPageStateDescription.displayName = \"PageStateDescription\";\r\n","import { usePageStateContext } from \"../context/PageStateContext\";\r\n\r\ntype ButtonSize = \"md\" | \"lg\" | \"xl\";\r\n\r\nexport const usePageStateButtonSize = (): ButtonSize => {\r\n\tconst { size } = usePageStateContext();\r\n\r\n\tswitch (size) {\r\n\t\tcase \"sm\":\r\n\t\t\treturn \"md\";\r\n\t\tcase \"lg\":\r\n\t\t\treturn \"xl\";\r\n\t\tdefault:\r\n\t\t\treturn \"lg\";\r\n\t}\r\n};\r\n","import React from \"react\";\r\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\r\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\r\n\r\nexport const PageStateCancel = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\r\n\tconst buttonSize = usePageStateButtonSize();\r\n\r\n\treturn (\r\n\t\t<Button ref={ref} variant=\"outline\" size={size || buttonSize} {...props}>\r\n\t\t\t{children}\r\n\t\t</Button>\r\n\t);\r\n});\r\n\r\nPageStateCancel.displayName = \"PageStateCancel\";\r\n","import React from \"react\";\r\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\r\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\r\n\r\nexport const PageStateAction = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\r\n\tconst buttonSize = usePageStateButtonSize();\r\n\r\n\treturn (\r\n\t\t<Button ref={ref} variant=\"primary\" size={size || buttonSize} {...props}>\r\n\t\t\t{children}\r\n\t\t</Button>\r\n\t);\r\n});\r\n\r\nPageStateAction.displayName = \"PageStateAction\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { PageStateSize, PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { FeatureIcon } from \"@/components/icon\";\r\nimport { FeatureIconProps } from \"@/components/icon/feature-icon/FeatureIcon\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateFeatureIconStyles = tv({\r\n\tbase: \"rounded-full bg-alpha-high-80 p-3.5 text-secondary-bg backdrop-blur-sm\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-12 w-12\",\r\n\t\t\tmd: \"h-14 w-14 [&>svg]:size-[1.625rem]\",\r\n\t\t\tlg: \"h-14 w-14 [&>svg]:size-[1.625rem]\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\nexport type PageStateFeatureIconProps = Omit<FeatureIconProps, \"size\"> & { size?: PageStateSize } & PageStateVariants;\r\n\r\nexport const PageStateFeatureIcon: React.FC<PageStateFeatureIconProps> = ({\r\n\tclassName,\r\n\tsize: sizeProp,\r\n\ticon,\r\n\t...props\r\n}) => {\r\n\tconst { size } = usePageStateContext();\r\n\r\n\treturn (\r\n\t\t<FeatureIcon\r\n\t\t\ticon={icon}\r\n\t\t\tclassName={pageStateFeatureIconStyles({ className, size: sizeProp || size })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nPageStateFeatureIcon.displayName = \"PageStateFeatureIcon\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { usePageStateContext } from \"../context/PageStateContext\";\r\nimport { BoxSvg } from \"@/components/images/BoxSvg\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\r\n\r\nconst pageStateBoxSvgStyles = tv({\r\n\tbase: \"relative\",\r\n\tslots: {\r\n\t\ticon: \"absolute\",\r\n\t\tsvg: \"h-[168px] w-[220px]\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\tsvg: \"h-[124px] w-[164px]\",\r\n\t\t\t\ticon: \"bottom-2 right-14\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\tsvg: \"h-[140px] w-[168px]\",\r\n\t\t\t\ticon: \"bottom-2.5 right-[3.625rem]\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\ticon: \"bottom-4 right-20\"\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ninterface PageStateBoxSvgProps {\r\n\ticon?: LucideIcon;\r\n}\r\n\r\nexport const PageStateBoxSvg: React.FC<PageStateBoxSvgProps> = ({ icon }) => {\r\n\tconst { size } = usePageStateContext();\r\n\tconst styles = pageStateBoxSvgStyles({ size });\r\n\r\n\treturn (\r\n\t\t<div className={styles.base()}>\r\n\t\t\t<BoxSvg className={styles.svg()} />\r\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nPageStateBoxSvg.displayName = \"PageStateBoxSvg\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { FolderSvg } from \"@/components/images/FolderSvg\";\r\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateFolderSvgStyles = tv({\r\n\tbase: \"relative flex items-center justify-center\",\r\n\tslots: {\r\n\t\ticon: \"absolute\",\r\n\t\tsvg: \"h-[160px] w-[220px]\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\tsvg: \"h-[110px] w-[164px]\",\r\n\t\t\t\ticon: \"bottom-0 right-[3.625rem]\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\tsvg: \"h-[128px] w-[168px]\",\r\n\t\t\t\ticon: \"bottom-2 right-[3.625rem]\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\ticon: \"bottom-4 right-[5.125rem]\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\ninterface PageStateFolderSvgProps extends PageStateVariants {\r\n\ticon?: LucideIcon;\r\n}\r\n\r\nexport const PageStateFolderSvg: React.FC<PageStateFolderSvgProps> = ({ icon, size: sizeProp }) => {\r\n\tconst { size } = usePageStateContext();\r\n\tconst styles = pageStateFolderSvgStyles({ size: sizeProp || size });\r\n\r\n\treturn (\r\n\t\t<div className={styles.base()}>\r\n\t\t\t<FolderSvg className={styles.svg()} />\r\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nPageStateFolderSvg.displayName = \"PageStateFolderSvg\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst pageStateButtonGroupStyles = tv({\r\n\tbase: \"mt-8 flex w-full flex-row items-center justify-center gap-3\"\r\n});\r\n\r\nexport type PageStateButtonGroupProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const PageStateButtonGroup = React.forwardRef<HTMLDivElement, PageStateButtonGroupProps>(\r\n\t({ children, className, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={pageStateButtonGroupStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPageStateButtonGroup.displayName = \"PageStateButtonGroup\";\r\n"],"names":["PageStateContext","createContext","PageStateProvider","size","children","jsx","usePageStateContext","context","useContext","pageStateStyles","tv","PageState","React","className","props","ref","pageStateTitleStyles","PageStateTitle","propSize","asChild","contextSize","Slot","pageStateDescriptionStyles","PageStateDescription","usePageStateButtonSize","PageStateCancel","buttonSize","Button","PageStateAction","pageStateFeatureIconStyles","PageStateFeatureIcon","sizeProp","icon","FeatureIcon","pageStateBoxSvgStyles","PageStateBoxSvg","styles","jsxs","BoxSvg","pageStateFolderSvgStyles","PageStateFolderSvg","FolderSvg","pageStateButtonGroupStyles","PageStateButtonGroup"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-state.js","sources":["../../src/components/page-state/context/PageStateContext.tsx","../../src/components/page-state/PageState.tsx","../../src/components/page-state/components/PageStateTitle.tsx","../../src/components/page-state/components/PageStateDescription.tsx","../../src/components/page-state/hooks/usePageStateButtonSize.tsx","../../src/components/page-state/components/PageStateCancel.tsx","../../src/components/page-state/components/PageStateAction.tsx","../../src/components/page-state/components/PageStateFeatureIcon.tsx","../../src/components/page-state/components/PageStateBoxSvg.tsx","../../src/components/page-state/components/PageStateFolderSvg.tsx","../../src/components/page-state/components/PageStateButtonGroup.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport type PageStateSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface PageStateVariants {\n\tsize?: PageStateSize;\n}\n\nconst PageStateContext = createContext<PageStateVariants | undefined>(undefined);\n\ninterface PageStateProviderProps {\n\tsize: PageStateSize;\n\tchildren: React.ReactNode;\n}\n\nexport const PageStateProvider: React.FC<PageStateProviderProps> = ({ size, children }) => {\n\treturn <PageStateContext.Provider value={{ size }}>{children}</PageStateContext.Provider>;\n};\n\nexport const usePageStateContext = (): PageStateVariants => {\n\tconst context = useContext(PageStateContext);\n\tif (!context) {\n\t\tthrow new Error(\"usePageStateContext must be used within a PageStateProvider\");\n\t}\n\treturn context;\n};\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { PageStateProvider, PageStateSize } from \"./context/PageStateContext\";\n\nconst pageStateStyles = tv({\n\tbase: \"flex w-full flex-col items-center px-8\"\n});\n\nexport type PageStateProps = React.HTMLAttributes<HTMLDivElement> & {\n\tsize?: PageStateSize;\n};\n\nexport const PageState = React.forwardRef<HTMLDivElement, PageStateProps>(\n\t({ className, children, size = \"md\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<PageStateProvider size={size}>\n\t\t\t\t<div ref={ref} className={pageStateStyles({ className })} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</PageStateProvider>\n\t\t);\n\t}\n);\n\nPageState.displayName = \"PageState\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateTitleStyles = tv({\n\tbase: \"mt-5 font-semibold text-primary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-base\",\n\t\t\tmd: \"text-xl\",\n\t\t\tlg: \"text-2xl\"\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\nexport type PageStateTitleProps = React.HTMLAttributes<HTMLHeadingElement> &\n\tPageStateVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const PageStateTitle = React.forwardRef<HTMLHeadingElement, PageStateTitleProps>(\n\t({ className, size: propSize, asChild = false, ...props }, ref) => {\n\t\tconst { size: contextSize } = usePageStateContext();\n\t\tconst size = propSize || contextSize;\n\n\t\tconst Comp = asChild ? Slot : \"h2\";\n\t\treturn <Comp ref={ref} className={pageStateTitleStyles({ className, size })} {...props} />;\n\t}\n);\n\nPageStateTitle.displayName = \"PageStateTitle\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateDescriptionStyles = tv({\n\tbase: \"mt-2.5 text-center text-muted\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tmd: \"text-sm\",\n\t\t\tlg: \"text-base\"\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\nexport type PageStateDescriptionProps = React.HTMLAttributes<HTMLDivElement> &\n\tPageStateVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const PageStateDescription = React.forwardRef<HTMLDivElement, PageStateDescriptionProps>(\n\t({ className, size: propSize, asChild = false, children, ...props }, ref) => {\n\t\tconst { size: contextSize } = usePageStateContext();\n\t\tconst size = propSize || contextSize;\n\n\t\tconst Comp = asChild ? Slot : \"div\";\n\t\treturn (\n\t\t\t<Comp ref={ref} className={pageStateDescriptionStyles({ className, size })} {...props}>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t);\n\t}\n);\n\nPageStateDescription.displayName = \"PageStateDescription\";\n","import { usePageStateContext } from \"../context/PageStateContext\";\n\ntype ButtonSize = \"md\" | \"lg\" | \"xl\";\n\nexport const usePageStateButtonSize = (): ButtonSize => {\n\tconst { size } = usePageStateContext();\n\n\tswitch (size) {\n\t\tcase \"sm\":\n\t\t\treturn \"md\";\n\t\tcase \"lg\":\n\t\t\treturn \"xl\";\n\t\tdefault:\n\t\t\treturn \"lg\";\n\t}\n};\n","import React from \"react\";\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\n\nexport const PageStateCancel = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\n\tconst buttonSize = usePageStateButtonSize();\n\n\treturn (\n\t\t<Button ref={ref} variant=\"outline\" size={size || buttonSize} {...props}>\n\t\t\t{children}\n\t\t</Button>\n\t);\n});\n\nPageStateCancel.displayName = \"PageStateCancel\";\n","import React from \"react\";\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\n\nexport const PageStateAction = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\n\tconst buttonSize = usePageStateButtonSize();\n\n\treturn (\n\t\t<Button ref={ref} variant=\"primary\" size={size || buttonSize} {...props}>\n\t\t\t{children}\n\t\t</Button>\n\t);\n});\n\nPageStateAction.displayName = \"PageStateAction\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { PageStateSize, PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { FeatureIconProps } from \"@/components/icon/feature-icon/FeatureIcon\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateFeatureIconStyles = tv({\n\tbase: \"rounded-full bg-alpha-high-80 p-3.5 text-secondary-bg backdrop-blur-sm\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-12 w-12\",\n\t\t\tmd: \"h-14 w-14 [&>svg]:size-[1.625rem]\",\n\t\t\tlg: \"h-14 w-14 [&>svg]:size-[1.625rem]\"\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\nexport type PageStateFeatureIconProps = Omit<FeatureIconProps, \"size\"> & { size?: PageStateSize } & PageStateVariants;\n\nexport const PageStateFeatureIcon: React.FC<PageStateFeatureIconProps> = ({\n\tclassName,\n\tsize: sizeProp,\n\ticon,\n\t...props\n}) => {\n\tconst { size } = usePageStateContext();\n\n\treturn (\n\t\t<FeatureIcon\n\t\t\ticon={icon}\n\t\t\tclassName={pageStateFeatureIconStyles({ className, size: sizeProp || size })}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nPageStateFeatureIcon.displayName = \"PageStateFeatureIcon\";\n","import { tv } from \"tailwind-variants\";\nimport { usePageStateContext } from \"../context/PageStateContext\";\nimport { BoxSvg } from \"@/components/images/BoxSvg\";\nimport { LucideIcon } from \"lucide-react\";\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\n\nconst pageStateBoxSvgStyles = tv({\n\tbase: \"relative\",\n\tslots: {\n\t\ticon: \"absolute\",\n\t\tsvg: \"h-[168px] w-[220px]\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tsvg: \"h-[124px] w-[164px]\",\n\t\t\t\ticon: \"bottom-2 right-14\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tsvg: \"h-[140px] w-[168px]\",\n\t\t\t\ticon: \"bottom-2.5 right-[3.625rem]\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\ticon: \"bottom-4 right-20\"\n\t\t\t}\n\t\t}\n\t}\n});\n\ninterface PageStateBoxSvgProps {\n\ticon?: LucideIcon;\n}\n\nexport const PageStateBoxSvg: React.FC<PageStateBoxSvgProps> = ({ icon }) => {\n\tconst { size } = usePageStateContext();\n\tconst styles = pageStateBoxSvgStyles({ size });\n\n\treturn (\n\t\t<div className={styles.base()}>\n\t\t\t<BoxSvg className={styles.svg()} />\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\n\t\t</div>\n\t);\n};\n\nPageStateBoxSvg.displayName = \"PageStateBoxSvg\";\n","import { tv } from \"tailwind-variants\";\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { FolderSvg } from \"@/components/images/FolderSvg\";\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateFolderSvgStyles = tv({\n\tbase: \"relative flex items-center justify-center\",\n\tslots: {\n\t\ticon: \"absolute\",\n\t\tsvg: \"h-[160px] w-[220px]\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tsvg: \"h-[110px] w-[164px]\",\n\t\t\t\ticon: \"bottom-0 right-[3.625rem]\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tsvg: \"h-[128px] w-[168px]\",\n\t\t\t\ticon: \"bottom-2 right-[3.625rem]\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\ticon: \"bottom-4 right-[5.125rem]\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\ninterface PageStateFolderSvgProps extends PageStateVariants {\n\ticon?: LucideIcon;\n}\n\nexport const PageStateFolderSvg: React.FC<PageStateFolderSvgProps> = ({ icon, size: sizeProp }) => {\n\tconst { size } = usePageStateContext();\n\tconst styles = pageStateFolderSvgStyles({ size: sizeProp || size });\n\n\treturn (\n\t\t<div className={styles.base()}>\n\t\t\t<FolderSvg className={styles.svg()} />\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\n\t\t</div>\n\t);\n};\n\nPageStateFolderSvg.displayName = \"PageStateFolderSvg\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst pageStateButtonGroupStyles = tv({\n\tbase: \"mt-8 flex w-full flex-row items-center justify-center gap-3\"\n});\n\nexport type PageStateButtonGroupProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const PageStateButtonGroup = React.forwardRef<HTMLDivElement, PageStateButtonGroupProps>(\n\t({ children, className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={pageStateButtonGroupStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nPageStateButtonGroup.displayName = \"PageStateButtonGroup\";\n"],"names":["PageStateContext","createContext","PageStateProvider","size","children","jsx","usePageStateContext","context","useContext","pageStateStyles","tv","PageState","React","className","props","ref","pageStateTitleStyles","PageStateTitle","propSize","asChild","contextSize","Slot","pageStateDescriptionStyles","PageStateDescription","usePageStateButtonSize","PageStateCancel","buttonSize","Button","PageStateAction","pageStateFeatureIconStyles","PageStateFeatureIcon","sizeProp","icon","FeatureIcon","pageStateBoxSvgStyles","PageStateBoxSvg","styles","jsxs","BoxSvg","pageStateFolderSvgStyles","PageStateFolderSvg","FolderSvg","pageStateButtonGroupStyles","PageStateButtonGroup"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import * as t from "react";
|
|
3
3
|
import { c as f } from "../cn-dsXlqdJg.js";
|
|
4
|
-
import { p as r } from "../usePortalContainer-
|
|
5
|
-
import { u as d } from "../usePortalContainer-
|
|
4
|
+
import { p as r } from "../usePortalContainer-BAIp0kSF.js";
|
|
5
|
+
import { u as d } from "../usePortalContainer-BAIp0kSF.js";
|
|
6
6
|
const s = t.forwardRef(
|
|
7
7
|
({ children: o, className: a, ...e }, n) => (t.useEffect(() => (r.notify(!0), () => r.notify(!1)), []), /* @__PURE__ */ i("div", { ref: n, className: f("ui-kit fixed left-0 top-0", a), "data-portal-container": !0, ...e, children: o }))
|
|
8
8
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-container.js","sources":["../../src/components/portal-container/PortalContainer.tsx"],"sourcesContent":["import * as React from \"react\";\
|
|
1
|
+
{"version":3,"file":"portal-container.js","sources":["../../src/components/portal-container/PortalContainer.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { portalContainerEvents } from \"./portalContainerEvents\";\n\n/**\n * Компонент-контейнер для портала с поддержкой изолированных стилей.\n *\n * Предоставляет обёртку с классом 'ui-kit' и data-атрибутом для плавающего контента\n * (Dialog, Dropdown, Select, Popover, Drawer, Tooltip, Sheet, AlertDialog).\n *\n * Следует использовать только если применяются изолированные стили.\n */\nexport const PortalContainer = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<\"div\">>(\n\t({ children, className, ...props }, ref) => {\n\t\tReact.useEffect(() => {\n\t\t\tportalContainerEvents.notify(true);\n\t\t\treturn () => portalContainerEvents.notify(false);\n\t\t}, []);\n\n\t\treturn (\n\t\t\t<div ref={ref} className={cn(\"ui-kit fixed left-0 top-0\", className)} data-portal-container {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nPortalContainer.displayName = \"PortalContainer\";\n"],"names":["PortalContainer","React","children","className","props","ref","portalContainerEvents","jsx","cn"],"mappings":";;;;;AAYO,MAAMA,IAAkBC,EAAM;AAAA,EACpC,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAASC,OACnCJ,EAAM,UAAU,OACfK,EAAsB,OAAO,EAAI,GAC1B,MAAMA,EAAsB,OAAO,EAAK,IAC7C,EAAE,GAGH,gBAAAC,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWG,EAAG,6BAA6BL,CAAS,GAAG,yBAAqB,IAAE,GAAGC,GAC9F,UAAAF,EACF,CAAA;AAGH;AAEAF,EAAgB,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-circle.js","sources":["../../src/components/progress-circle/ProgressCircle.tsx","../../src/components/progress-circle/components/progress-circle-description/ProgressCircleDescription.tsx","../../src/components/progress-circle/components/progress-circle-text/ProgressCircleTitle.tsx","../../src/components/progress-circle/components/progress-circle-icon-button/ProgressCircleIconButton.tsx","../../src/components/progress-circle/templates/ProgressCircleTemplate.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nconst progressCircleVariants = tv({\r\n\tslots: {\r\n\t\tsvg: \"-rotate-90 transform\",\r\n\t\ttrack: \"fill-secondary-bg-hover\",\r\n\t\tindicator: \"fill-none stroke-current text-primary-accent transition-all duration-500 ease-out\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\txs: {\r\n\t\t\t\tsvg: \"h-10 w-10\"\r\n\t\t\t},\r\n\t\t\tsm: {\r\n\t\t\t\tsvg: \"h-[3.75rem] w-[3.75rem]\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\tsvg: \"h-20 w-20\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\tsvg: \"h-[7.5rem] w-[7.5rem]\"\r\n\t\t\t},\r\n\t\t\txl: {\r\n\t\t\t\tsvg: \"h-[11.25rem] w-[11.25rem]\"\r\n\t\t\t}\r\n\t\t},\r\n\t\tisIndeterminate: {\r\n\t\t\ttrue: {\r\n\t\t\t\tindicator: \"origin-center animate-spin duration-1000\"\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressCircleProps = VariantProps<typeof progressCircleVariants> &\r\n\tReact.HTMLAttributes<SVGSVGElement> & {\r\n\t\t/** Максимальное значение прогресса. По умолчанию 100 */\r\n\t\tmax?: number;\r\n\t\t/** Значение прогресса от 0 до max. Если не указано или null, считается равным 0 */\r\n\t\tvalue?: number | null;\r\n\t\t/** Индикатор неопределенного состояния прогресса */\r\n\t\tindeterminate?: boolean;\r\n\t\t/** Классы для индикатора */\r\n\t\tindicatorClassName?: string;\r\n\t};\r\n\r\nexport const ProgressCircle = React.forwardRef<SVGSVGElement, ProgressCircleProps>(\r\n\t({ size, max = 100, value, indeterminate = false, indicatorClassName }, ref) => {\r\n\t\tconst styles = progressCircleVariants({ size, isIndeterminate: indeterminate });\r\n\t\tconst currentValue = indeterminate ? null : (value ?? 0);\r\n\r\n\t\tconst radius = 84;\r\n\t\tconst circumference = 2 * Math.PI * radius;\r\n\r\n\t\tconst progressData = useMemo(() => {\r\n\t\t\tif (indeterminate) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tstrokeDasharray: `${circumference * 0.25} ${circumference * 0.75}`,\r\n\t\t\t\t\tstrokeDashoffset: 0,\r\n\t\t\t\t\tpercentage: 0\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tconst safeMax = max <= 0 ? 100 : max;\r\n\t\t\tconst safeValue = Math.max(0, Math.min(safeMax, currentValue ?? 0));\r\n\t\t\tconst percentage = (safeValue / safeMax) * 100;\r\n\t\t\tconst progress = (safeValue / safeMax) * circumference;\r\n\t\t\tconst dashOffset = circumference - progress;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tstrokeDasharray: circumference,\r\n\t\t\t\tstrokeDashoffset: dashOffset,\r\n\t\t\t\tpercentage: Math.round(percentage)\r\n\t\t\t};\r\n\t\t}, [circumference, currentValue, max, indeterminate]);\r\n\r\n\t\treturn (\r\n\t\t\t<svg\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={styles.svg()}\r\n\t\t\t\tviewBox=\"0 0 180 180\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\taria-valuenow={indeterminate ? undefined : progressData.percentage}\r\n\t\t\t\taria-valuemin={0}\r\n\t\t\t\taria-valuemax={100}\r\n\t\t\t\tdata-slot=\"progress-circle\"\r\n\t\t\t>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M180 90C180 139.706 139.706 180 90 180C40.2944 180 0 139.706 0 90C0 40.2944 40.2944 0 90 0C139.706 0 180 40.2944 180 90ZM11.997 90C11.997 133.08 46.9201 168.003 90 168.003C133.80 168.003 168.003 133.08 168.003 90C168.003 46.9201 133.08 11.997 90 11.997C46.9201 11.997 11.997 46.9201 11.997 90Z\"\r\n\t\t\t\t\tclassName={styles.track()}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t<circle\r\n\t\t\t\t\tclassName={styles.indicator({ className: indicatorClassName, isIndeterminate: indeterminate })}\r\n\t\t\t\t\tcx=\"90\"\r\n\t\t\t\t\tcy=\"90\"\r\n\t\t\t\t\tr=\"84\"\r\n\t\t\t\t\tstrokeWidth=\"12\"\r\n\t\t\t\t\tstrokeDasharray={progressData.strokeDasharray}\r\n\t\t\t\t\tstrokeDashoffset={progressData.strokeDashoffset}\r\n\t\t\t\t\tstrokeLinecap=\"round\"\r\n\t\t\t\t\tdata-slot=\"progress-circle-indicator\"\r\n\t\t\t\t/>\r\n\t\t\t</svg>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nProgressCircle.displayName = \"ProgressCircle\";\r\n","import React from \"react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst progressCircleDescriptionStyles = tv({\r\n\tbase: \"text-xs text-muted\"\r\n});\r\n\r\nexport type ProgressCircleDescriptionProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const ProgressCircleDescription = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tPropsWithChildren<ProgressCircleDescriptionProps>\r\n>(({ className, children, ...props }, ref) => {\r\n\treturn (\r\n\t\t<span className={progressCircleDescriptionStyles({ className })} ref={ref} {...props}>\r\n\t\t\t{children}\r\n\t\t</span>\r\n\t);\r\n});\r\n\r\nProgressCircleDescription.displayName = \"ProgressCircleDescription\";\r\n","import React from \"react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nconst progressCircleTitleStyles = tv({\r\n\tbase: \"font-semibold text-primary-fg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\txs: \"text-[0.625rem] leading-4\",\r\n\t\t\tsm: \"text-sm\",\r\n\t\t\tmd: \"text-base\",\r\n\t\t\tlg: \"text-2xl\",\r\n\t\t\txl: \"text-4xl\"\r\n\t\t}\r\n\t},\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressCircleTitleProps = VariantProps<typeof progressCircleTitleStyles> &\r\n\tReact.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const ProgressCircleTitle = React.forwardRef<HTMLDivElement, PropsWithChildren<ProgressCircleTitleProps>>(\r\n\t({ className, size, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<span className={progressCircleTitleStyles({ className, size })} ref={ref} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nProgressCircleTitle.displayName = \"ProgressCircleTitle\";\r\n","import { IconButton } from \"@/components/button\";\r\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\r\nimport React from \"react\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nconst progressCircleIconButtonVariants = tv({\r\n\tslots: {\r\n\t\tbase: \"p-0.5 text-muted\",\r\n\t\ticon: \"h-full w-full\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\txs: {\r\n\t\t\t\tbase: \"h-4 w-4\"\r\n\t\t\t},\r\n\t\t\tsm: {\r\n\t\t\t\tbase: \"h-5 w-5\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\tbase: \"h-[1.375rem] w-[1.375rem]\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\tbase: \"h-8 w-8\"\r\n\t\t\t},\r\n\t\t\txl: {\r\n\t\t\t\tbase: \"h-11 w-11\"\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressCircleIconButtonProps = VariantProps<typeof progressCircleIconButtonVariants> & IconButtonProps;\r\n\r\nexport const ProgressCircleIconButton: React.FC<ProgressCircleIconButtonProps> = ({\r\n\tclassName,\r\n\tsize,\r\n\ticon,\r\n\t...props\r\n}) => {\r\n\tconst styles = progressCircleIconButtonVariants();\r\n\treturn (\r\n\t\t<IconButton\r\n\t\t\ticon={icon}\r\n\t\t\tvariant=\"text\"\r\n\t\t\tclassName={styles.base({ className, size })}\r\n\t\t\ticonClassName={styles.icon()}\r\n\t\t\tsize={size}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nProgressCircleIconButton.displayName = \"ProgressCircleIconButton\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { ProgressCircle } from \"../ProgressCircle\";\r\nimport { ProgressCircleDescription } from \"../components/progress-circle-description/ProgressCircleDescription\";\r\nimport { ProgressCircleTitle } from \"../components/progress-circle-text/ProgressCircleTitle\";\r\nimport { ProgressCircleIconButton } from \"../components/progress-circle-icon-button/ProgressCircleIconButton\";\r\nimport { RotateCw } from \"lucide-react\";\r\n\r\nconst progressCircleTemplateStyles = tv({\r\n\tslots: {\r\n\t\twrap: \"relative w-fit\",\r\n\t\theader: \"absolute inset-0 z-10 flex flex-col items-center justify-center\"\r\n\t}\r\n});\r\n\r\nexport type ProgressCircleTemplateProps = {\r\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n\tvalue?: number;\r\n\tmax?: number;\r\n\tindeterminate?: boolean;\r\n\tdescription?: React.ReactNode;\r\n\ttitle?: React.ReactNode;\r\n\tonRetry?: (e: React.MouseEvent<HTMLElement>) => void;\r\n};\r\n\r\nexport const ProgressCircleTemplate = (props: ProgressCircleTemplateProps) => {\r\n\tconst { size, value, max, indeterminate, description, title, onRetry } = props;\r\n\tconst shouldShowDescription = description && ![\"xs\", \"sm\"].includes(size as string);\r\n\tconst styles = progressCircleTemplateStyles({ size });\r\n\r\n\treturn (\r\n\t\t<div className={styles.wrap()}>\r\n\t\t\t<ProgressCircle value={value} max={max} indeterminate={indeterminate} size={size} />\r\n\t\t\t<div className={styles.header()}>\r\n\t\t\t\t{title && <ProgressCircleTitle size={size}>{title}</ProgressCircleTitle>}\r\n\t\t\t\t{onRetry && <ProgressCircleIconButton size={size} icon={RotateCw} onClick={onRetry} />}\r\n\t\t\t\t{shouldShowDescription && <ProgressCircleDescription>{description}</ProgressCircleDescription>}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nProgressCircleTemplate.displayName = \"ProgressCircleTemplate\";\r\n"],"names":["progressCircleVariants","tv","ProgressCircle","React","size","max","value","indeterminate","indicatorClassName","ref","styles","currentValue","circumference","progressData","useMemo","safeMax","safeValue","percentage","progress","dashOffset","jsxs","jsx","progressCircleDescriptionStyles","ProgressCircleDescription","className","children","props","progressCircleTitleStyles","ProgressCircleTitle","progressCircleIconButtonVariants","ProgressCircleIconButton","icon","IconButton","progressCircleTemplateStyles","ProgressCircleTemplate","description","title","onRetry","shouldShowDescription","RotateCw"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"progress-circle.js","sources":["../../src/components/progress-circle/ProgressCircle.tsx","../../src/components/progress-circle/components/progress-circle-description/ProgressCircleDescription.tsx","../../src/components/progress-circle/components/progress-circle-text/ProgressCircleTitle.tsx","../../src/components/progress-circle/components/progress-circle-icon-button/ProgressCircleIconButton.tsx","../../src/components/progress-circle/templates/ProgressCircleTemplate.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { tv, VariantProps } from \"tailwind-variants\";\n\nconst progressCircleVariants = tv({\n\tslots: {\n\t\tsvg: \"-rotate-90 transform\",\n\t\ttrack: \"fill-secondary-bg-hover\",\n\t\tindicator: \"fill-none stroke-current text-primary-accent transition-all duration-500 ease-out\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: {\n\t\t\t\tsvg: \"h-10 w-10\"\n\t\t\t},\n\t\t\tsm: {\n\t\t\t\tsvg: \"h-[3.75rem] w-[3.75rem]\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tsvg: \"h-20 w-20\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\tsvg: \"h-[7.5rem] w-[7.5rem]\"\n\t\t\t},\n\t\t\txl: {\n\t\t\t\tsvg: \"h-[11.25rem] w-[11.25rem]\"\n\t\t\t}\n\t\t},\n\t\tisIndeterminate: {\n\t\t\ttrue: {\n\t\t\t\tindicator: \"origin-center animate-spin duration-1000\"\n\t\t\t}\n\t\t}\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressCircleProps = VariantProps<typeof progressCircleVariants> &\n\tReact.HTMLAttributes<SVGSVGElement> & {\n\t\t/** Максимальное значение прогресса. По умолчанию 100 */\n\t\tmax?: number;\n\t\t/** Значение прогресса от 0 до max. Если не указано или null, считается равным 0 */\n\t\tvalue?: number | null;\n\t\t/** Индикатор неопределенного состояния прогресса */\n\t\tindeterminate?: boolean;\n\t\t/** Классы для индикатора */\n\t\tindicatorClassName?: string;\n\t};\n\nexport const ProgressCircle = React.forwardRef<SVGSVGElement, ProgressCircleProps>(\n\t({ size, max = 100, value, indeterminate = false, indicatorClassName }, ref) => {\n\t\tconst styles = progressCircleVariants({ size, isIndeterminate: indeterminate });\n\t\tconst currentValue = indeterminate ? null : (value ?? 0);\n\n\t\tconst radius = 84;\n\t\tconst circumference = 2 * Math.PI * radius;\n\n\t\tconst progressData = useMemo(() => {\n\t\t\tif (indeterminate) {\n\t\t\t\treturn {\n\t\t\t\t\tstrokeDasharray: `${circumference * 0.25} ${circumference * 0.75}`,\n\t\t\t\t\tstrokeDashoffset: 0,\n\t\t\t\t\tpercentage: 0\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst safeMax = max <= 0 ? 100 : max;\n\t\t\tconst safeValue = Math.max(0, Math.min(safeMax, currentValue ?? 0));\n\t\t\tconst percentage = (safeValue / safeMax) * 100;\n\t\t\tconst progress = (safeValue / safeMax) * circumference;\n\t\t\tconst dashOffset = circumference - progress;\n\n\t\t\treturn {\n\t\t\t\tstrokeDasharray: circumference,\n\t\t\t\tstrokeDashoffset: dashOffset,\n\t\t\t\tpercentage: Math.round(percentage)\n\t\t\t};\n\t\t}, [circumference, currentValue, max, indeterminate]);\n\n\t\treturn (\n\t\t\t<svg\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles.svg()}\n\t\t\t\tviewBox=\"0 0 180 180\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\taria-valuenow={indeterminate ? undefined : progressData.percentage}\n\t\t\t\taria-valuemin={0}\n\t\t\t\taria-valuemax={100}\n\t\t\t\tdata-slot=\"progress-circle\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\td=\"M180 90C180 139.706 139.706 180 90 180C40.2944 180 0 139.706 0 90C0 40.2944 40.2944 0 90 0C139.706 0 180 40.2944 180 90ZM11.997 90C11.997 133.08 46.9201 168.003 90 168.003C133.80 168.003 168.003 133.08 168.003 90C168.003 46.9201 133.08 11.997 90 11.997C46.9201 11.997 11.997 46.9201 11.997 90Z\"\n\t\t\t\t\tclassName={styles.track()}\n\t\t\t\t/>\n\n\t\t\t\t<circle\n\t\t\t\t\tclassName={styles.indicator({ className: indicatorClassName, isIndeterminate: indeterminate })}\n\t\t\t\t\tcx=\"90\"\n\t\t\t\t\tcy=\"90\"\n\t\t\t\t\tr=\"84\"\n\t\t\t\t\tstrokeWidth=\"12\"\n\t\t\t\t\tstrokeDasharray={progressData.strokeDasharray}\n\t\t\t\t\tstrokeDashoffset={progressData.strokeDashoffset}\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tdata-slot=\"progress-circle-indicator\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t);\n\t}\n);\n\nProgressCircle.displayName = \"ProgressCircle\";\n","import React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst progressCircleDescriptionStyles = tv({\n\tbase: \"text-xs text-muted\"\n});\n\nexport type ProgressCircleDescriptionProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const ProgressCircleDescription = React.forwardRef<\n\tHTMLDivElement,\n\tPropsWithChildren<ProgressCircleDescriptionProps>\n>(({ className, children, ...props }, ref) => {\n\treturn (\n\t\t<span className={progressCircleDescriptionStyles({ className })} ref={ref} {...props}>\n\t\t\t{children}\n\t\t</span>\n\t);\n});\n\nProgressCircleDescription.displayName = \"ProgressCircleDescription\";\n","import React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { tv, VariantProps } from \"tailwind-variants\";\n\nconst progressCircleTitleStyles = tv({\n\tbase: \"font-semibold text-primary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"text-[0.625rem] leading-4\",\n\t\t\tsm: \"text-sm\",\n\t\t\tmd: \"text-base\",\n\t\t\tlg: \"text-2xl\",\n\t\t\txl: \"text-4xl\"\n\t\t}\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressCircleTitleProps = VariantProps<typeof progressCircleTitleStyles> &\n\tReact.HTMLAttributes<HTMLDivElement>;\n\nexport const ProgressCircleTitle = React.forwardRef<HTMLDivElement, PropsWithChildren<ProgressCircleTitleProps>>(\n\t({ className, size, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<span className={progressCircleTitleStyles({ className, size })} ref={ref} {...props}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nProgressCircleTitle.displayName = \"ProgressCircleTitle\";\n","import { IconButton } from \"@/components/button\";\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\nimport React from \"react\";\nimport { tv, VariantProps } from \"tailwind-variants\";\n\nconst progressCircleIconButtonVariants = tv({\n\tslots: {\n\t\tbase: \"p-0.5 text-muted\",\n\t\ticon: \"h-full w-full\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: {\n\t\t\t\tbase: \"h-4 w-4\"\n\t\t\t},\n\t\t\tsm: {\n\t\t\t\tbase: \"h-5 w-5\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tbase: \"h-[1.375rem] w-[1.375rem]\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\tbase: \"h-8 w-8\"\n\t\t\t},\n\t\t\txl: {\n\t\t\t\tbase: \"h-11 w-11\"\n\t\t\t}\n\t\t}\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressCircleIconButtonProps = VariantProps<typeof progressCircleIconButtonVariants> & IconButtonProps;\n\nexport const ProgressCircleIconButton: React.FC<ProgressCircleIconButtonProps> = ({\n\tclassName,\n\tsize,\n\ticon,\n\t...props\n}) => {\n\tconst styles = progressCircleIconButtonVariants();\n\treturn (\n\t\t<IconButton\n\t\t\ticon={icon}\n\t\t\tvariant=\"text\"\n\t\t\tclassName={styles.base({ className, size })}\n\t\t\ticonClassName={styles.icon()}\n\t\t\tsize={size}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nProgressCircleIconButton.displayName = \"ProgressCircleIconButton\";\n","import { tv } from \"tailwind-variants\";\nimport { ProgressCircle } from \"../ProgressCircle\";\nimport { ProgressCircleDescription } from \"../components/progress-circle-description/ProgressCircleDescription\";\nimport { ProgressCircleTitle } from \"../components/progress-circle-text/ProgressCircleTitle\";\nimport { ProgressCircleIconButton } from \"../components/progress-circle-icon-button/ProgressCircleIconButton\";\nimport { RotateCw } from \"lucide-react\";\n\nconst progressCircleTemplateStyles = tv({\n\tslots: {\n\t\twrap: \"relative w-fit\",\n\t\theader: \"absolute inset-0 z-10 flex flex-col items-center justify-center\"\n\t}\n});\n\nexport type ProgressCircleTemplateProps = {\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\tvalue?: number;\n\tmax?: number;\n\tindeterminate?: boolean;\n\tdescription?: React.ReactNode;\n\ttitle?: React.ReactNode;\n\tonRetry?: (e: React.MouseEvent<HTMLElement>) => void;\n};\n\nexport const ProgressCircleTemplate = (props: ProgressCircleTemplateProps) => {\n\tconst { size, value, max, indeterminate, description, title, onRetry } = props;\n\tconst shouldShowDescription = description && ![\"xs\", \"sm\"].includes(size as string);\n\tconst styles = progressCircleTemplateStyles({ size });\n\n\treturn (\n\t\t<div className={styles.wrap()}>\n\t\t\t<ProgressCircle value={value} max={max} indeterminate={indeterminate} size={size} />\n\t\t\t<div className={styles.header()}>\n\t\t\t\t{title && <ProgressCircleTitle size={size}>{title}</ProgressCircleTitle>}\n\t\t\t\t{onRetry && <ProgressCircleIconButton size={size} icon={RotateCw} onClick={onRetry} />}\n\t\t\t\t{shouldShowDescription && <ProgressCircleDescription>{description}</ProgressCircleDescription>}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nProgressCircleTemplate.displayName = \"ProgressCircleTemplate\";\n"],"names":["progressCircleVariants","tv","ProgressCircle","React","size","max","value","indeterminate","indicatorClassName","ref","styles","currentValue","circumference","progressData","useMemo","safeMax","safeValue","percentage","progress","dashOffset","jsxs","jsx","progressCircleDescriptionStyles","ProgressCircleDescription","className","children","props","progressCircleTitleStyles","ProgressCircleTitle","progressCircleIconButtonVariants","ProgressCircleIconButton","icon","IconButton","progressCircleTemplateStyles","ProgressCircleTemplate","description","title","onRetry","shouldShowDescription","RotateCw"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sources":["../../node_modules/.pnpm/@radix-ui+react-progress@1._e450f4067159ea39a98f6a5a08a96bbb/node_modules/@radix-ui/react-progress/dist/index.mjs","../../src/components/progress/ProgressBarStyles.ts","../../src/components/progress/Progress.tsx","../../src/components/progress/components/progress-icon/ProgressIcon.tsx","../../src/components/progress/components/progress-icon-button/ProgressIconButton.tsx","../../src/components/progress/components/progress-text/ProgressText.tsx","../../src/components/progress/templates/ProgressBlockTemplate.tsx"],"sourcesContent":["\"use client\";\n\n// src/progress.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PROGRESS_NAME = \"Progress\";\nvar DEFAULT_MAX = 100;\nvar [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);\nvar [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME);\nvar Progress = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeProgress,\n value: valueProp = null,\n max: maxProp,\n getValueLabel = defaultGetValueLabel,\n ...progressProps\n } = props;\n if ((maxProp || maxProp === 0) && !isValidMaxNumber(maxProp)) {\n console.error(getInvalidMaxError(`${maxProp}`, \"Progress\"));\n }\n const max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX;\n if (valueProp !== null && !isValidValueNumber(valueProp, max)) {\n console.error(getInvalidValueError(`${valueProp}`, \"Progress\"));\n }\n const value = isValidValueNumber(valueProp, max) ? valueProp : null;\n const valueLabel = isNumber(value) ? getValueLabel(value, max) : void 0;\n return /* @__PURE__ */ jsx(ProgressProvider, { scope: __scopeProgress, value, max, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-valuemax\": max,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": isNumber(value) ? value : void 0,\n \"aria-valuetext\": valueLabel,\n role: \"progressbar\",\n \"data-state\": getProgressState(value, max),\n \"data-value\": value ?? void 0,\n \"data-max\": max,\n ...progressProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nProgress.displayName = PROGRESS_NAME;\nvar INDICATOR_NAME = \"ProgressIndicator\";\nvar ProgressIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeProgress, ...indicatorProps } = props;\n const context = useProgressContext(INDICATOR_NAME, __scopeProgress);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getProgressState(context.value, context.max),\n \"data-value\": context.value ?? void 0,\n \"data-max\": context.max,\n ...indicatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nProgressIndicator.displayName = INDICATOR_NAME;\nfunction defaultGetValueLabel(value, max) {\n return `${Math.round(value / max * 100)}%`;\n}\nfunction getProgressState(value, maxValue) {\n return value == null ? \"indeterminate\" : value === maxValue ? \"complete\" : \"loading\";\n}\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isValidMaxNumber(max) {\n return isNumber(max) && !isNaN(max) && max > 0;\n}\nfunction isValidValueNumber(value, max) {\n return isNumber(value) && !isNaN(value) && value <= max && value >= 0;\n}\nfunction getInvalidMaxError(propValue, componentName) {\n return `Invalid prop \\`max\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`;\n}\nfunction getInvalidValueError(propValue, componentName) {\n return `Invalid prop \\`value\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`;\n}\nvar Root = Progress;\nvar Indicator = ProgressIndicator;\nexport {\n Indicator,\n Progress,\n ProgressIndicator,\n Root,\n createProgressScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface ProgressBarSizeVariants {\r\n\t/** Размер индикатора */\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nexport interface ProgressBarVariants extends ProgressBarSizeVariants {\r\n\t/** Индикатор неопределенного состояния прогресса */\r\n\tindeterminate?: boolean;\r\n}\r\n\r\nexport const progressBarStyles = tv({\r\n\tslots: {\r\n\t\ttrack: \"relative w-full overflow-hidden rounded-full bg-secondary-bg-hover\",\r\n\t\tindicator: \"h-full bg-primary-accent transition-transform !duration-500\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: { track: \"h-1\" },\r\n\t\t\tmd: { track: \"h-1.5\" },\r\n\t\t\tlg: { track: \"h-3\" }\r\n\t\t},\r\n\t\tindeterminate: {\r\n\t\t\ttrue: {\r\n\t\t\t\tindicator: \"!duration-1500 absolute w-full origin-left animate-indeterminate-bar rounded-full\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<ProgressBarVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n","import * as React from \"react\";\r\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\r\nimport { progressBarStyles, ProgressBarVariants } from \"./ProgressBarStyles\";\r\nimport { useMemo } from \"react\";\r\n\r\nexport type ProgressProps = React.ComponentProps<typeof ProgressPrimitive.Root> &\r\n\tProgressBarVariants & {\r\n\t\t/** Максимальное значение прогресса. По умолчанию 100 */\r\n\t\tmax?: number;\r\n\t\t/** Значение прогресса от 0 до max. Если не указано или null, считается равным 0 */\r\n\t\tvalue?: number | null;\r\n\t\t/** Классы для индикатора */\r\n\t\tindicatorClassName?: string;\r\n\t\t/** Функция для получения доступной текстовой метки, представляющей текущее значение в удобочитаемом формате. \r\n\tЕсли не указана, метка значения будет озвучена как числовое значение в процентах от максимального значения. */\r\n\t\tgetValueLabel?(value: number, max: number): string;\r\n\t};\r\n\r\nexport function Progress(props: ProgressProps) {\r\n\tconst { className, value, max = 100, size, indicatorClassName, indeterminate, ...rest } = props;\r\n\r\n\tconst styles = progressBarStyles({ size, indeterminate });\r\n\tconst currentValue = indeterminate ? null : (value ?? 0);\r\n\r\n\tconst indicatorStyle = useMemo(() => {\r\n\t\tif (indeterminate) return;\r\n\r\n\t\tconst safeMax = max <= 0 ? 100 : max;\r\n\t\tconst safeValue = Math.max(0, Math.min(safeMax, currentValue ?? 0));\r\n\t\tconst percentage = (safeValue / safeMax) * 100;\r\n\r\n\t\treturn { transform: `translateX(-${100 - percentage}%)` };\r\n\t}, [indeterminate, currentValue, max]);\r\n\r\n\treturn (\r\n\t\t<ProgressPrimitive.Root\r\n\t\t\tdata-slot=\"progress\"\r\n\t\t\tclassName={styles.track({ className })}\r\n\t\t\tvalue={currentValue}\r\n\t\t\tmax={max}\r\n\t\t\t{...rest}\r\n\t\t>\r\n\t\t\t<ProgressPrimitive.Indicator\r\n\t\t\t\tdata-slot=\"progress-indicator\"\r\n\t\t\t\tclassName={styles.indicator({ className: indicatorClassName })}\r\n\t\t\t\tstyle={indicatorStyle}\r\n\t\t\t/>\r\n\t\t</ProgressPrimitive.Root>\r\n\t);\r\n}\r\n","import { Icon } from \"@/components/icon\";\r\nimport { IconProps } from \"@/components/icon/Icon\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ProgressBarSizeVariants } from \"../../ProgressBarStyles\";\r\n\r\nconst progressIconVariants = tv({\r\n\tbase: \"text-secondary-fg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-4 w-4\",\r\n\t\t\tmd: \"h-4 w-4\",\r\n\t\t\tlg: \"h-5 w-5\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressIconProps = ProgressBarSizeVariants & IconProps;\r\n\r\nexport const ProgressIcon: React.FC<ProgressIconProps> = ({ className, size, icon, ...props }) => {\r\n\treturn <Icon icon={icon} className={progressIconVariants({ className, size })} {...props} />;\r\n};\r\n\r\nProgressIcon.displayName = \"ProgressIcon\";\r\n","import { IconButton } from \"@/components/button\";\r\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ProgressBarSizeVariants } from \"../../ProgressBarStyles\";\r\n\r\nconst progressIconButtonVariants = tv({\r\n\tslots: {\r\n\t\tbase: \"h-auto p-0 text-muted\",\r\n\t\ticon: \"\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\ticon: \"h-4 w-4\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\ticon: \"h-5 w-5\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\ticon: \"h-[1.375rem] w-[1.375rem]\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressIconButtonProps = ProgressBarSizeVariants & IconButtonProps;\r\n\r\nexport const ProgressIconButton: React.FC<ProgressIconButtonProps> = ({\r\n\tclassName,\r\n\tsize,\r\n\ticon,\r\n\ticonClassName,\r\n\t...props\r\n}) => {\r\n\tconst styles = progressIconButtonVariants({ size });\r\n\treturn (\r\n\t\t<IconButton\r\n\t\t\ticon={icon}\r\n\t\t\tvariant=\"text\"\r\n\t\t\tclassName={styles.base({ className })}\r\n\t\t\ticonClassName={styles.icon({ className: iconClassName })}\r\n\t\t\tsize={size}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nProgressIconButton.displayName = \"ProgressIconButton\";\r\n","import React from \"react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ProgressBarSizeVariants } from \"../../ProgressBarStyles\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst progressTextVariants = tv({\r\n\tbase: \"inline-block font-medium text-secondary-fg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-xs\",\r\n\t\t\tmd: \"text-sm\",\r\n\t\t\tlg: \"text-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressTextProps = ProgressBarSizeVariants & React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const ProgressText = React.forwardRef<HTMLDivElement, PropsWithChildren<ProgressTextProps>>(\r\n\t({ className, size, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<span className={progressTextVariants({ className, size })} ref={ref} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nProgressText.displayName = \"ProgressText\";\r\n","import { LucideIcon, RotateCw, X } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Progress } from \"../Progress\";\r\nimport { ProgressIconButton } from \"../components/progress-icon-button/ProgressIconButton\";\r\nimport { ProgressIcon } from \"../components/progress-icon/ProgressIcon\";\r\nimport { ProgressText } from \"../components/progress-text/ProgressText\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { ProgressBarSizeVariants } from \"../ProgressBarStyles\";\r\n\r\nconst progressBlockTemplateStyles = tv({\r\n\tslots: {\r\n\t\twrap: \"flex w-full flex-col\",\r\n\t\theader: \"flex items-center justify-between gap-2\",\r\n\t\ttitleWrapper: \"flex items-center\",\r\n\t\tactionsWrapper: \"flex items-center gap-2\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\twrap: \"gap-1\",\r\n\t\t\t\ttitleWrapper: \"gap-1\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\twrap: \"gap-1\",\r\n\t\t\t\ttitleWrapper: \"gap-1.5\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\twrap: \"gap-1.5\",\r\n\t\t\t\ttitleWrapper: \"gap-2\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type ProgressBlockTemplateProps = ProgressBarSizeVariants & {\r\n\tvalue?: number;\r\n\tmax?: number;\r\n\tindeterminate?: boolean;\r\n\ticon?: LucideIcon;\r\n\ttitle?: React.ReactNode;\r\n\tdescription?: React.ReactNode;\r\n\tonCancel?: (e: React.MouseEvent<HTMLElement>) => void;\r\n\tonRetry?: (e: React.MouseEvent<HTMLElement>) => void;\r\n};\r\n\r\nexport const ProgressBlockTemplate = (props: ProgressBlockTemplateProps) => {\r\n\tconst { size, value, max, indeterminate, icon, title, description, onCancel, onRetry } = props;\r\n\r\n\tconst styles = progressBlockTemplateStyles({ size });\r\n\r\n\treturn (\r\n\t\t<div className={styles.wrap()}>\r\n\t\t\t<div className={styles.header()}>\r\n\t\t\t\t<div className={styles.titleWrapper()}>\r\n\t\t\t\t\t{icon && <ProgressIcon size={size} icon={icon} />}\r\n\t\t\t\t\t{title && (\r\n\t\t\t\t\t\t<ProgressText size={size} className=\"mr-auto\">\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t</ProgressText>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className={styles.actionsWrapper()}>\r\n\t\t\t\t\t{description && <ProgressText size={size}>{description}</ProgressText>}\r\n\t\t\t\t\t{onRetry && (\r\n\t\t\t\t\t\t<ProgressIconButton\r\n\t\t\t\t\t\t\tsize={size}\r\n\t\t\t\t\t\t\ticon={RotateCw}\r\n\t\t\t\t\t\t\tonClick={onRetry}\r\n\t\t\t\t\t\t\ticonClassName=\"p-0.5 stroke-[2.3px]\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{onCancel && <ProgressIconButton size={size} icon={X} onClick={onCancel} />}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<Progress value={value} max={max} indeterminate={indeterminate} size={size} />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nProgressBlockTemplate.displayName = \"ProgressBlockTemplate\";\r\n"],"names":["PROGRESS_NAME","DEFAULT_MAX","createProgressContext","createProgressScope","createContextScope","ProgressProvider","useProgressContext","Progress","React","props","forwardedRef","__scopeProgress","valueProp","maxProp","getValueLabel","defaultGetValueLabel","progressProps","isValidMaxNumber","getInvalidMaxError","max","isValidValueNumber","getInvalidValueError","value","valueLabel","isNumber","jsx","Primitive","getProgressState","INDICATOR_NAME","ProgressIndicator","indicatorProps","context","maxValue","propValue","componentName","Root","Indicator","progressBarStyles","tv","className","size","indicatorClassName","indeterminate","rest","styles","currentValue","indicatorStyle","useMemo","safeMax","ProgressPrimitive.Root","ProgressPrimitive.Indicator","progressIconVariants","ProgressIcon","icon","Icon","progressIconButtonVariants","ProgressIconButton","iconClassName","IconButton","progressTextVariants","ProgressText","children","ref","progressBlockTemplateStyles","ProgressBlockTemplate","title","description","onCancel","onRetry","jsxs","RotateCw","X"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"progress.js","sources":["../../node_modules/.pnpm/@radix-ui+react-progress@1.1.8_@types+react-dom@18.3.6_@types+react@18.3.20__@types+rea_e450f4067159ea39a98f6a5a08a96bbb/node_modules/@radix-ui/react-progress/dist/index.mjs","../../src/components/progress/ProgressBarStyles.ts","../../src/components/progress/Progress.tsx","../../src/components/progress/components/progress-icon/ProgressIcon.tsx","../../src/components/progress/components/progress-icon-button/ProgressIconButton.tsx","../../src/components/progress/components/progress-text/ProgressText.tsx","../../src/components/progress/templates/ProgressBlockTemplate.tsx"],"sourcesContent":["\"use client\";\n\n// src/progress.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PROGRESS_NAME = \"Progress\";\nvar DEFAULT_MAX = 100;\nvar [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);\nvar [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME);\nvar Progress = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeProgress,\n value: valueProp = null,\n max: maxProp,\n getValueLabel = defaultGetValueLabel,\n ...progressProps\n } = props;\n if ((maxProp || maxProp === 0) && !isValidMaxNumber(maxProp)) {\n console.error(getInvalidMaxError(`${maxProp}`, \"Progress\"));\n }\n const max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX;\n if (valueProp !== null && !isValidValueNumber(valueProp, max)) {\n console.error(getInvalidValueError(`${valueProp}`, \"Progress\"));\n }\n const value = isValidValueNumber(valueProp, max) ? valueProp : null;\n const valueLabel = isNumber(value) ? getValueLabel(value, max) : void 0;\n return /* @__PURE__ */ jsx(ProgressProvider, { scope: __scopeProgress, value, max, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-valuemax\": max,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": isNumber(value) ? value : void 0,\n \"aria-valuetext\": valueLabel,\n role: \"progressbar\",\n \"data-state\": getProgressState(value, max),\n \"data-value\": value ?? void 0,\n \"data-max\": max,\n ...progressProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nProgress.displayName = PROGRESS_NAME;\nvar INDICATOR_NAME = \"ProgressIndicator\";\nvar ProgressIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeProgress, ...indicatorProps } = props;\n const context = useProgressContext(INDICATOR_NAME, __scopeProgress);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getProgressState(context.value, context.max),\n \"data-value\": context.value ?? void 0,\n \"data-max\": context.max,\n ...indicatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nProgressIndicator.displayName = INDICATOR_NAME;\nfunction defaultGetValueLabel(value, max) {\n return `${Math.round(value / max * 100)}%`;\n}\nfunction getProgressState(value, maxValue) {\n return value == null ? \"indeterminate\" : value === maxValue ? \"complete\" : \"loading\";\n}\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isValidMaxNumber(max) {\n return isNumber(max) && !isNaN(max) && max > 0;\n}\nfunction isValidValueNumber(value, max) {\n return isNumber(value) && !isNaN(value) && value <= max && value >= 0;\n}\nfunction getInvalidMaxError(propValue, componentName) {\n return `Invalid prop \\`max\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`;\n}\nfunction getInvalidValueError(propValue, componentName) {\n return `Invalid prop \\`value\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`;\n}\nvar Root = Progress;\nvar Indicator = ProgressIndicator;\nexport {\n Indicator,\n Progress,\n ProgressIndicator,\n Root,\n createProgressScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { VariantsConfig } from \"@/lib/utils/variants\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface ProgressBarSizeVariants {\n\t/** Размер индикатора */\n\tsize?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport interface ProgressBarVariants extends ProgressBarSizeVariants {\n\t/** Индикатор неопределенного состояния прогресса */\n\tindeterminate?: boolean;\n}\n\nexport const progressBarStyles = tv({\n\tslots: {\n\t\ttrack: \"relative w-full overflow-hidden rounded-full bg-secondary-bg-hover\",\n\t\tindicator: \"h-full bg-primary-accent transition-transform !duration-500\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: { track: \"h-1\" },\n\t\t\tmd: { track: \"h-1.5\" },\n\t\t\tlg: { track: \"h-3\" }\n\t\t},\n\t\tindeterminate: {\n\t\t\ttrue: {\n\t\t\t\tindicator: \"!duration-1500 absolute w-full origin-left animate-indeterminate-bar rounded-full\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<ProgressBarVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n","import * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\nimport { progressBarStyles, ProgressBarVariants } from \"./ProgressBarStyles\";\nimport { useMemo } from \"react\";\n\nexport type ProgressProps = React.ComponentProps<typeof ProgressPrimitive.Root> &\n\tProgressBarVariants & {\n\t\t/** Максимальное значение прогресса. По умолчанию 100 */\n\t\tmax?: number;\n\t\t/** Значение прогресса от 0 до max. Если не указано или null, считается равным 0 */\n\t\tvalue?: number | null;\n\t\t/** Классы для индикатора */\n\t\tindicatorClassName?: string;\n\t\t/** Функция для получения доступной текстовой метки, представляющей текущее значение в удобочитаемом формате. \n\tЕсли не указана, метка значения будет озвучена как числовое значение в процентах от максимального значения. */\n\t\tgetValueLabel?(value: number, max: number): string;\n\t};\n\nexport function Progress(props: ProgressProps) {\n\tconst { className, value, max = 100, size, indicatorClassName, indeterminate, ...rest } = props;\n\n\tconst styles = progressBarStyles({ size, indeterminate });\n\tconst currentValue = indeterminate ? null : (value ?? 0);\n\n\tconst indicatorStyle = useMemo(() => {\n\t\tif (indeterminate) return;\n\n\t\tconst safeMax = max <= 0 ? 100 : max;\n\t\tconst safeValue = Math.max(0, Math.min(safeMax, currentValue ?? 0));\n\t\tconst percentage = (safeValue / safeMax) * 100;\n\n\t\treturn { transform: `translateX(-${100 - percentage}%)` };\n\t}, [indeterminate, currentValue, max]);\n\n\treturn (\n\t\t<ProgressPrimitive.Root\n\t\t\tdata-slot=\"progress\"\n\t\t\tclassName={styles.track({ className })}\n\t\t\tvalue={currentValue}\n\t\t\tmax={max}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ProgressPrimitive.Indicator\n\t\t\t\tdata-slot=\"progress-indicator\"\n\t\t\t\tclassName={styles.indicator({ className: indicatorClassName })}\n\t\t\t\tstyle={indicatorStyle}\n\t\t\t/>\n\t\t</ProgressPrimitive.Root>\n\t);\n}\n","import { Icon } from \"@/components/icon\";\nimport { IconProps } from \"@/components/icon/Icon\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ProgressBarSizeVariants } from \"../../ProgressBarStyles\";\n\nconst progressIconVariants = tv({\n\tbase: \"text-secondary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-4 w-4\",\n\t\t\tmd: \"h-4 w-4\",\n\t\t\tlg: \"h-5 w-5\"\n\t\t}\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressIconProps = ProgressBarSizeVariants & IconProps;\n\nexport const ProgressIcon: React.FC<ProgressIconProps> = ({ className, size, icon, ...props }) => {\n\treturn <Icon icon={icon} className={progressIconVariants({ className, size })} {...props} />;\n};\n\nProgressIcon.displayName = \"ProgressIcon\";\n","import { IconButton } from \"@/components/button\";\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ProgressBarSizeVariants } from \"../../ProgressBarStyles\";\n\nconst progressIconButtonVariants = tv({\n\tslots: {\n\t\tbase: \"h-auto p-0 text-muted\",\n\t\ticon: \"\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\ticon: \"h-4 w-4\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\ticon: \"h-5 w-5\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\ticon: \"h-[1.375rem] w-[1.375rem]\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressIconButtonProps = ProgressBarSizeVariants & IconButtonProps;\n\nexport const ProgressIconButton: React.FC<ProgressIconButtonProps> = ({\n\tclassName,\n\tsize,\n\ticon,\n\ticonClassName,\n\t...props\n}) => {\n\tconst styles = progressIconButtonVariants({ size });\n\treturn (\n\t\t<IconButton\n\t\t\ticon={icon}\n\t\t\tvariant=\"text\"\n\t\t\tclassName={styles.base({ className })}\n\t\t\ticonClassName={styles.icon({ className: iconClassName })}\n\t\t\tsize={size}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nProgressIconButton.displayName = \"ProgressIconButton\";\n","import React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ProgressBarSizeVariants } from \"../../ProgressBarStyles\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst progressTextVariants = tv({\n\tbase: \"inline-block font-medium text-secondary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tmd: \"text-sm\",\n\t\t\tlg: \"text-base\"\n\t\t}\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressTextProps = ProgressBarSizeVariants & React.HTMLAttributes<HTMLDivElement>;\n\nexport const ProgressText = React.forwardRef<HTMLDivElement, PropsWithChildren<ProgressTextProps>>(\n\t({ className, size, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<span className={progressTextVariants({ className, size })} ref={ref} {...props}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nProgressText.displayName = \"ProgressText\";\n","import { LucideIcon, RotateCw, X } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\nimport { Progress } from \"../Progress\";\nimport { ProgressIconButton } from \"../components/progress-icon-button/ProgressIconButton\";\nimport { ProgressIcon } from \"../components/progress-icon/ProgressIcon\";\nimport { ProgressText } from \"../components/progress-text/ProgressText\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { ProgressBarSizeVariants } from \"../ProgressBarStyles\";\n\nconst progressBlockTemplateStyles = tv({\n\tslots: {\n\t\twrap: \"flex w-full flex-col\",\n\t\theader: \"flex items-center justify-between gap-2\",\n\t\ttitleWrapper: \"flex items-center\",\n\t\tactionsWrapper: \"flex items-center gap-2\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\twrap: \"gap-1\",\n\t\t\t\ttitleWrapper: \"gap-1\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\twrap: \"gap-1\",\n\t\t\t\ttitleWrapper: \"gap-1.5\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\twrap: \"gap-1.5\",\n\t\t\t\ttitleWrapper: \"gap-2\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<ProgressBarSizeVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ProgressBlockTemplateProps = ProgressBarSizeVariants & {\n\tvalue?: number;\n\tmax?: number;\n\tindeterminate?: boolean;\n\ticon?: LucideIcon;\n\ttitle?: React.ReactNode;\n\tdescription?: React.ReactNode;\n\tonCancel?: (e: React.MouseEvent<HTMLElement>) => void;\n\tonRetry?: (e: React.MouseEvent<HTMLElement>) => void;\n};\n\nexport const ProgressBlockTemplate = (props: ProgressBlockTemplateProps) => {\n\tconst { size, value, max, indeterminate, icon, title, description, onCancel, onRetry } = props;\n\n\tconst styles = progressBlockTemplateStyles({ size });\n\n\treturn (\n\t\t<div className={styles.wrap()}>\n\t\t\t<div className={styles.header()}>\n\t\t\t\t<div className={styles.titleWrapper()}>\n\t\t\t\t\t{icon && <ProgressIcon size={size} icon={icon} />}\n\t\t\t\t\t{title && (\n\t\t\t\t\t\t<ProgressText size={size} className=\"mr-auto\">\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</ProgressText>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<div className={styles.actionsWrapper()}>\n\t\t\t\t\t{description && <ProgressText size={size}>{description}</ProgressText>}\n\t\t\t\t\t{onRetry && (\n\t\t\t\t\t\t<ProgressIconButton\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\ticon={RotateCw}\n\t\t\t\t\t\t\tonClick={onRetry}\n\t\t\t\t\t\t\ticonClassName=\"p-0.5 stroke-[2.3px]\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{onCancel && <ProgressIconButton size={size} icon={X} onClick={onCancel} />}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Progress value={value} max={max} indeterminate={indeterminate} size={size} />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nProgressBlockTemplate.displayName = \"ProgressBlockTemplate\";\n"],"names":["PROGRESS_NAME","DEFAULT_MAX","createProgressContext","createProgressScope","createContextScope","ProgressProvider","useProgressContext","Progress","React","props","forwardedRef","__scopeProgress","valueProp","maxProp","getValueLabel","defaultGetValueLabel","progressProps","isValidMaxNumber","getInvalidMaxError","max","isValidValueNumber","getInvalidValueError","value","valueLabel","isNumber","jsx","Primitive","getProgressState","INDICATOR_NAME","ProgressIndicator","indicatorProps","context","maxValue","propValue","componentName","Root","Indicator","progressBarStyles","tv","className","size","indicatorClassName","indeterminate","rest","styles","currentValue","indicatorStyle","useMemo","safeMax","ProgressPrimitive.Root","ProgressPrimitive.Indicator","progressIconVariants","ProgressIcon","icon","Icon","progressIconButtonVariants","ProgressIconButton","iconClassName","IconButton","progressTextVariants","ProgressText","children","ref","progressBlockTemplateStyles","ProgressBlockTemplate","title","description","onCancel","onRetry","jsxs","RotateCw","X"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prose.js","sources":["../../src/components/prose/Prose.tsx"],"sourcesContent":["import { PropsWithChildren } from \"react\";\
|
|
1
|
+
{"version":3,"file":"prose.js","sources":["../../src/components/prose/Prose.tsx"],"sourcesContent":["import { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ProseProps = React.HTMLAttributes<HTMLDivElement> & {\n\tasChild?: boolean;\n};\n\nexport const Prose = React.forwardRef<HTMLDivElement, PropsWithChildren<ProseProps>>(\n\t({ className, children, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"div\";\n\n\t\treturn (\n\t\t\t<Comp className={cn(\"prose max-w-none\", className)} ref={ref} {...props}>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t);\n\t}\n);\n\nProse.displayName = \"Prose\";\n"],"names":["Prose","React","className","children","asChild","props","ref","jsx","Slot","cn"],"mappings":";;;;AASO,MAAMA,IAAQC,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,SAAAC,IAAU,IAAO,GAAGC,EAAM,GAAGC,MAInD,gBAAAC,EAHYH,IAAUI,IAAO,OAGvB,EAAA,WAAWC,EAAG,oBAAoBP,CAAS,GAAG,KAAAI,GAAW,GAAGD,GAChE,UAAAF,EACF,CAAA;AAGH;AAEAH,EAAM,cAAc;"}
|