ics-ui-kit 1.0.0 → 1.0.2
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 +73 -73
- package/dist/AlertContext-CxjW1LVL.js.map +1 -1
- package/dist/AlertIcon-BphnEYvV.js.map +1 -1
- package/dist/Button-_qdP4hSf.js.map +1 -1
- package/dist/ButtonBase-CbWrYcx-.js.map +1 -1
- package/dist/CalendarPreviousMonthButton-CHMp8bkd.js.map +1 -1
- package/dist/CheckboxField-xDqHgXHh.js.map +1 -1
- package/dist/Combination-DeIugdgY.js.map +1 -1
- package/dist/{Command-WsAKNQrY.js → Command-hVL9sUnd.js} +3 -3
- package/dist/Command-hVL9sUnd.js.map +1 -0
- package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
- package/dist/Description-BTPMlTT-.js.map +1 -1
- package/dist/{Dialog-i_Y-phdM.js → Dialog-BKCZO7T_.js} +2 -2
- package/dist/Dialog-BKCZO7T_.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-BcwUtgGr.js.map +1 -1
- package/dist/FieldLabel-DYu1AcGH.js.map +1 -1
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/{FormFooterTemplate-CHlas_Pp.js → FormFooterTemplate-CRkxi-Mh.js} +2 -2
- package/dist/FormFooterTemplate-CRkxi-Mh.js.map +1 -0
- package/dist/{FormHeader-PE63OqG9.js → FormHeader-CX2jsIcI.js} +2 -2
- package/dist/FormHeader-CX2jsIcI.js.map +1 -0
- package/dist/FormStack-DfoaOry7.js.map +1 -1
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/IconButton-DAg1oMwz.js.map +1 -1
- package/dist/IconTooltip-R6_6_f40.js.map +1 -1
- package/dist/Indicator-AqxHWPA9.js.map +1 -1
- package/dist/InputGroup-CW55G5nE.js.map +1 -1
- package/dist/InputOTP-DkVh6bBz.js.map +1 -1
- package/dist/Loader-BpHiL6W-.js.map +1 -1
- package/dist/MenuItem-C51uFz3V.js.map +1 -1
- package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
- package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
- package/dist/Overlay-E0UvxzIc.js.map +1 -1
- package/dist/Popover-XrJa7lyb.js.map +1 -1
- package/dist/RichButton-Bt0yUShU.js.map +1 -1
- package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
- package/dist/{ScrollShadowContainer-DdrnF8qU.js → ScrollShadowContainer-KUmqA25a.js} +11 -11
- package/dist/ScrollShadowContainer-KUmqA25a.js.map +1 -0
- package/dist/SearchSelectTag-Dp5_OvZp.js.map +1 -1
- package/dist/Select-DO02vXt3.js.map +1 -1
- package/dist/Sheet-C2UoHLL0.js.map +1 -1
- package/dist/Shortcut-D8L15_ed.js.map +1 -1
- package/dist/Skeleton-y6I-i9q5.js.map +1 -1
- package/dist/TableFillHandle-CHHoUi6s.js.map +1 -1
- package/dist/Tag-Cf6HftP-.js.map +1 -1
- package/dist/Text-DeBE8AKl.js.map +1 -1
- package/dist/TextInput-CoL8nOyt.js.map +1 -1
- package/dist/TextOverflowTooltip-XPDdO9Dz.js.map +1 -1
- package/dist/Toggle-CmalMf4O.js.map +1 -1
- package/dist/Tooltip-D2XvRS0c.js.map +1 -1
- package/dist/TriggerButton-CoAgB4lx.js.map +1 -1
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/cn-dsXlqdJg.js.map +1 -1
- 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-scroll.js +28 -27
- package/dist/components/calendar-scroll.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/collapsible.js.map +1 -1
- package/dist/components/color-tile.js.map +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/context-menu.js.map +1 -1
- 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 +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/error-state.js.map +1 -1
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/form.js +2 -2
- package/dist/components/form.js.map +1 -1
- package/dist/components/glass-toolbar.js.map +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/menu-item.js.map +1 -1
- package/dist/components/page-state.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.map +1 -1
- package/dist/components/resizable.js +26 -1530
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scheduler/components/hour-rows/HourRows.stories.d.ts +1 -1
- package/dist/components/scheduler/components/week-days/WeekDays.stories.d.ts +1 -0
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/scroll-shadow-container.js +1 -1
- package/dist/components/search-select.js +1 -1
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/sidebar.js +142 -141
- 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.js.map +1 -1
- package/dist/components/system-state.js.map +1 -1
- package/dist/components/table/tree.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-input.js.map +1 -1
- package/dist/components/textarea.js +30 -189
- 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/docs/tailwind-utilities/ScrollFade.stories.d.ts +1 -0
- package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -1
- package/dist/font-smoothing.css +4 -4
- package/dist/formatBytes-C4QXq5lC.js.map +1 -1
- package/dist/index-0ioNhtNM.js.map +1 -1
- package/dist/index-1SnkxfPR.js.map +1 -1
- 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.map +1 -1
- 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-CMxHunQ4.js.map +1 -1
- 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-CZwQWSub.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/opaqueCell-D95h1mFM.js.map +1 -1
- package/dist/scroll-fade-fix.css +120 -0
- package/dist/ssr.test.d.ts +1 -0
- package/dist/tailwind.css +408 -407
- package/dist/theme.css +360 -360
- package/dist/{treeModel-CUO1A5s7.js → treeModel-BH6Jg8rm.js} +2 -2
- package/dist/treeModel-BH6Jg8rm.js.map +1 -0
- package/dist/types/css.d.ts +4 -4
- package/dist/useBreakpoints-DHvp74UL.js.map +1 -1
- package/dist/useDebounce-BRah78CF.js.map +1 -1
- package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
- package/dist/useIsomorphicLayoutEffect-MNxJD61V.js +6 -0
- package/dist/useIsomorphicLayoutEffect-MNxJD61V.js.map +1 -0
- package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
- package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
- package/package.json +213 -210
- package/dist/Command-WsAKNQrY.js.map +0 -1
- package/dist/Dialog-i_Y-phdM.js.map +0 -1
- package/dist/FormFooterTemplate-CHlas_Pp.js.map +0 -1
- package/dist/FormHeader-PE63OqG9.js.map +0 -1
- package/dist/ScrollShadowContainer-DdrnF8qU.js.map +0 -1
- package/dist/design-tokens.source.json +0 -1
- package/dist/treeModel-CUO1A5s7.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sources":["../../node_modules/.pnpm/@radix-ui+react-switch@1.2._f3fb04ca0cb9718d2dd2dba40e11ef1d/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/switch/Switch.tsx","../../src/components/switch/switch-field/SwitchField.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\n\r\nexport interface SwitchVariants {\r\n\tsize?: \"xs\" | \"sm\" | \"md\";\r\n\ttheme?: \"inverse\" | \"glass\";\r\n}\r\n\r\n/**\r\n * Варианты стилей для компонента Switch\r\n */\r\nconst switchStyles = tv({\r\n\tslots: {\r\n\t\troot: [\r\n\t\t\t\"peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full\",\r\n\t\t\t\"transition-colors\",\r\n\t\t\t\"focus-visible:border-tertiary-accent focus-visible:shadow-focus focus-visible:outline-hidden\",\r\n\t\t\t\"disabled:cursor-not-allowed disabled:opacity-50\",\r\n\t\t\t\"data-[state=checked]:bg-primary-accent data-[state=unchecked]:bg-secondary-border\",\r\n\t\t\t\"data-[state=checked]:hover:enabled:bg-primary-accent-hover\",\r\n\t\t\t\"data-[state=unchecked]:hover:enabled:bg-primary-border\"\r\n\t\t],\r\n\t\tthumb: \"rounded-full bg-secondary-bg shadow-soft-base transition-transform\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\txs: {\r\n\t\t\t\troot: \"h-4 w-7\",\r\n\t\t\t\tthumb: \"h-3 w-3 data-[state=checked]:translate-x-[14px] data-[state=unchecked]:translate-x-0.5\"\r\n\t\t\t},\r\n\t\t\tsm: {\r\n\t\t\t\troot: \"h-5 w-9\",\r\n\t\t\t\tthumb: \"h-4 w-4 data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0.5\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\troot: \"h-6 w-11\",\r\n\t\t\t\tthumb: \"h-5 w-5 data-[state=checked]:translate-x-[22px] data-[state=unchecked]:translate-x-0.5\"\r\n\t\t\t}\r\n\t\t},\r\n\t\ttheme: {\r\n\t\t\tinverse: {\r\n\t\t\t\troot: [\r\n\t\t\t\t\t\"focus-visible:shadow-inverse-focus\",\r\n\t\t\t\t\t\"data-[state=unchecked]:bg-inverse-active data-[state=unchecked]:hover:enabled:bg-inverse-muted\",\r\n\t\t\t\t\t\"data-[state=checked]:bg-inverse-primary-fg data-[state=checked]:hover:enabled:bg-inverse-secondary-fg\"\r\n\t\t\t\t],\r\n\t\t\t\tthumb: \"bg-inverse-primary-bg\"\r\n\t\t\t},\r\n\t\t\tglass: {\r\n\t\t\t\troot: \"data-[state=unchecked]:bg-primary-border\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<SwitchVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\nexport type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchVariants;\r\n\r\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\r\n\t({ className, size, ...props }, ref) => {\r\n\t\tconst { variant } = useComponentVariant();\r\n\t\tconst theme = narrowVariant(variant, [\"inverse\", \"glass\"]);\r\n\t\tconst { root, thumb } = switchStyles({ size, theme });\r\n\r\n\t\treturn (\r\n\t\t\t<SwitchPrimitives.Root className={root({ className })} {...props} ref={ref}>\r\n\t\t\t\t<SwitchPrimitives.Thumb className={thumb()} />\r\n\t\t\t</SwitchPrimitives.Root>\r\n\t\t);\r\n\t}\r\n);\r\nSwitch.displayName = SwitchPrimitives.Root.displayName;\r\n\r\nexport { Switch };\r\n","import * as SwitchPrimitives from \"@radix-ui/react-checkbox\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport React, { useId } from \"react\";\r\nimport { FieldLabel } from \"@/components/label\";\r\nimport { Description } from \"@/components/description\";\r\nimport { Switch, SwitchProps } from \"../Switch\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface SwitchFieldVariants {\r\n\toutline?: boolean;\r\n\talignment?: \"left\" | \"right\";\r\n\tdisabled?: boolean;\r\n\terror?: boolean;\r\n}\r\n\r\nconst switchFieldStyles = tv({\r\n\tslots: {\r\n\t\tcontainer: \"flex cursor-pointer items-center gap-3\",\r\n\t\ttextContainer: \"flex flex-col gap-1\",\r\n\t\tlabelWrapper: \"flex h-4 items-center\",\r\n\t\tlabel: \"cursor-pointer\"\r\n\t},\r\n\tvariants: {\r\n\t\toutline: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer: \"rounded-lg border border-secondary-border p-3 px-4\"\r\n\t\t\t}\r\n\t\t},\r\n\t\tdisabled: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer: \"cursor-default\",\r\n\t\t\t\ttextContainer: \"opacity-50\",\r\n\t\t\t\tlabel: \"cursor-default text-primary-fg\",\r\n\t\t\t\tdescription: \"text-muted\"\r\n\t\t\t}\r\n\t\t},\r\n\t\terror: {\r\n\t\t\ttrue: {\r\n\t\t\t\tlabel: \"text-status-error\"\r\n\t\t\t}\r\n\t\t},\r\n\t\talignment: {\r\n\t\t\tleft: {},\r\n\t\t\tright: {\r\n\t\t\t\tcontainer: \"flex-row-reverse space-x-reverse\"\r\n\t\t\t}\r\n\t\t},\r\n\t\twithDescription: { true: { container: \"items-start\" } }\r\n\t} satisfies VariantsConfig<SwitchFieldVariants & { withDescription?: boolean }>,\r\n\tdefaultVariants: {\r\n\t\talignment: \"left\"\r\n\t}\r\n});\r\n\r\ntype SwitchFieldProps = SwitchProps &\r\n\tSwitchFieldVariants & {\r\n\t\tlabel?: string | React.ReactNode;\r\n\t\tdescription?: string;\r\n\t};\r\n\r\nconst SwitchField = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchFieldProps>(\r\n\t({ className, id, label, alignment: alignment, error, disabled, outline, description, ...props }, ref) => {\r\n\t\tconst {\r\n\t\t\tcontainer,\r\n\t\t\ttextContainer,\r\n\t\t\tlabel: labelStyles,\r\n\t\t\tlabelWrapper\r\n\t\t} = switchFieldStyles({ alignment, error, disabled, outline, withDescription: !!description });\r\n\r\n\t\tconst generatedId = useId();\r\n\t\tconst switchId = id || `switch-${generatedId}`;\r\n\r\n\t\treturn (\r\n\t\t\t<label htmlFor={switchId} className={container({ class: className })}>\r\n\t\t\t\t<Switch disabled={disabled} id={switchId} {...props} ref={ref} />\r\n\t\t\t\t{(label || description) && (\r\n\t\t\t\t\t<div className={textContainer()}>\r\n\t\t\t\t\t\t{label && (\r\n\t\t\t\t\t\t\t<div className={labelWrapper()}>\r\n\t\t\t\t\t\t\t\t<FieldLabel htmlFor={switchId} className={labelStyles()}>\r\n\t\t\t\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t\t\t</FieldLabel>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{description && <Description size=\"xs\">{description}</Description>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</label>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSwitchField.displayName = \"SwitchField\";\r\n\r\nexport { SwitchField };\r\n"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","BUBBLE_INPUT_NAME","control","bubbles","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","switchStyles","tv","className","size","variant","useComponentVariant","theme","narrowVariant","root","thumb","SwitchPrimitives.Root","SwitchPrimitives.Thumb","switchFieldStyles","SwitchField","id","label","alignment","error","outline","description","container","textContainer","labelStyles","labelWrapper","generatedId","useId","switchId","FieldLabel","Description"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"switch.js","sources":["../../node_modules/.pnpm/@radix-ui+react-switch@1.2.6_@types+react-dom@18.3.6_@types+react@18.3.20__@types+react_f3fb04ca0cb9718d2dd2dba40e11ef1d/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/switch/Switch.tsx","../../src/components/switch/switch-field/SwitchField.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { tv } from \"tailwind-variants\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\n\nexport interface SwitchVariants {\n\tsize?: \"xs\" | \"sm\" | \"md\";\n\ttheme?: \"inverse\" | \"glass\";\n}\n\n/**\n * Варианты стилей для компонента Switch\n */\nconst switchStyles = tv({\n\tslots: {\n\t\troot: [\n\t\t\t\"peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full\",\n\t\t\t\"transition-colors\",\n\t\t\t\"focus-visible:border-tertiary-accent focus-visible:shadow-focus focus-visible:outline-hidden\",\n\t\t\t\"disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\"data-[state=checked]:bg-primary-accent data-[state=unchecked]:bg-secondary-border\",\n\t\t\t\"data-[state=checked]:hover:enabled:bg-primary-accent-hover\",\n\t\t\t\"data-[state=unchecked]:hover:enabled:bg-primary-border\"\n\t\t],\n\t\tthumb: \"rounded-full bg-secondary-bg shadow-soft-base transition-transform\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: {\n\t\t\t\troot: \"h-4 w-7\",\n\t\t\t\tthumb: \"h-3 w-3 data-[state=checked]:translate-x-[14px] data-[state=unchecked]:translate-x-0.5\"\n\t\t\t},\n\t\t\tsm: {\n\t\t\t\troot: \"h-5 w-9\",\n\t\t\t\tthumb: \"h-4 w-4 data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0.5\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\troot: \"h-6 w-11\",\n\t\t\t\tthumb: \"h-5 w-5 data-[state=checked]:translate-x-[22px] data-[state=unchecked]:translate-x-0.5\"\n\t\t\t}\n\t\t},\n\t\ttheme: {\n\t\t\tinverse: {\n\t\t\t\troot: [\n\t\t\t\t\t\"focus-visible:shadow-inverse-focus\",\n\t\t\t\t\t\"data-[state=unchecked]:bg-inverse-active data-[state=unchecked]:hover:enabled:bg-inverse-muted\",\n\t\t\t\t\t\"data-[state=checked]:bg-inverse-primary-fg data-[state=checked]:hover:enabled:bg-inverse-secondary-fg\"\n\t\t\t\t],\n\t\t\t\tthumb: \"bg-inverse-primary-bg\"\n\t\t\t},\n\t\t\tglass: {\n\t\t\t\troot: \"data-[state=unchecked]:bg-primary-border\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<SwitchVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchVariants;\n\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n\t({ className, size, ...props }, ref) => {\n\t\tconst { variant } = useComponentVariant();\n\t\tconst theme = narrowVariant(variant, [\"inverse\", \"glass\"]);\n\t\tconst { root, thumb } = switchStyles({ size, theme });\n\n\t\treturn (\n\t\t\t<SwitchPrimitives.Root className={root({ className })} {...props} ref={ref}>\n\t\t\t\t<SwitchPrimitives.Thumb className={thumb()} />\n\t\t\t</SwitchPrimitives.Root>\n\t\t);\n\t}\n);\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as SwitchPrimitives from \"@radix-ui/react-checkbox\";\nimport { tv } from \"tailwind-variants\";\nimport React, { useId } from \"react\";\nimport { FieldLabel } from \"@/components/label\";\nimport { Description } from \"@/components/description\";\nimport { Switch, SwitchProps } from \"../Switch\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface SwitchFieldVariants {\n\toutline?: boolean;\n\talignment?: \"left\" | \"right\";\n\tdisabled?: boolean;\n\terror?: boolean;\n}\n\nconst switchFieldStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex cursor-pointer items-center gap-3\",\n\t\ttextContainer: \"flex flex-col gap-1\",\n\t\tlabelWrapper: \"flex h-4 items-center\",\n\t\tlabel: \"cursor-pointer\"\n\t},\n\tvariants: {\n\t\toutline: {\n\t\t\ttrue: {\n\t\t\t\tcontainer: \"rounded-lg border border-secondary-border p-3 px-4\"\n\t\t\t}\n\t\t},\n\t\tdisabled: {\n\t\t\ttrue: {\n\t\t\t\tcontainer: \"cursor-default\",\n\t\t\t\ttextContainer: \"opacity-50\",\n\t\t\t\tlabel: \"cursor-default text-primary-fg\",\n\t\t\t\tdescription: \"text-muted\"\n\t\t\t}\n\t\t},\n\t\terror: {\n\t\t\ttrue: {\n\t\t\t\tlabel: \"text-status-error\"\n\t\t\t}\n\t\t},\n\t\talignment: {\n\t\t\tleft: {},\n\t\t\tright: {\n\t\t\t\tcontainer: \"flex-row-reverse space-x-reverse\"\n\t\t\t}\n\t\t},\n\t\twithDescription: { true: { container: \"items-start\" } }\n\t} satisfies VariantsConfig<SwitchFieldVariants & { withDescription?: boolean }>,\n\tdefaultVariants: {\n\t\talignment: \"left\"\n\t}\n});\n\ntype SwitchFieldProps = SwitchProps &\n\tSwitchFieldVariants & {\n\t\tlabel?: string | React.ReactNode;\n\t\tdescription?: string;\n\t};\n\nconst SwitchField = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchFieldProps>(\n\t({ className, id, label, alignment: alignment, error, disabled, outline, description, ...props }, ref) => {\n\t\tconst {\n\t\t\tcontainer,\n\t\t\ttextContainer,\n\t\t\tlabel: labelStyles,\n\t\t\tlabelWrapper\n\t\t} = switchFieldStyles({ alignment, error, disabled, outline, withDescription: !!description });\n\n\t\tconst generatedId = useId();\n\t\tconst switchId = id || `switch-${generatedId}`;\n\n\t\treturn (\n\t\t\t<label htmlFor={switchId} className={container({ class: className })}>\n\t\t\t\t<Switch disabled={disabled} id={switchId} {...props} ref={ref} />\n\t\t\t\t{(label || description) && (\n\t\t\t\t\t<div className={textContainer()}>\n\t\t\t\t\t\t{label && (\n\t\t\t\t\t\t\t<div className={labelWrapper()}>\n\t\t\t\t\t\t\t\t<FieldLabel htmlFor={switchId} className={labelStyles()}>\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t</FieldLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{description && <Description size=\"xs\">{description}</Description>}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</label>\n\t\t);\n\t}\n);\n\nSwitchField.displayName = \"SwitchField\";\n\nexport { SwitchField };\n"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","BUBBLE_INPUT_NAME","control","bubbles","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","switchStyles","tv","className","size","variant","useComponentVariant","theme","narrowVariant","root","thumb","SwitchPrimitives.Root","SwitchPrimitives.Thumb","switchFieldStyles","SwitchField","id","label","alignment","error","outline","description","container","textContainer","labelStyles","labelWrapper","generatedId","useId","switchId","FieldLabel","Description"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-state.js","sources":["../../src/components/system-state/SystemState.tsx","../../src/components/system-state/components/SystemStateCode.tsx","../../src/components/system-state/components/SystemStateTitle.tsx","../../src/components/system-state/components/SystemStateDescription.tsx","../../src/components/system-state/components/SystemStateActions.tsx"],"sourcesContent":["import React from \"react\";\
|
|
1
|
+
{"version":3,"file":"system-state.js","sources":["../../src/components/system-state/SystemState.tsx","../../src/components/system-state/components/SystemStateCode.tsx","../../src/components/system-state/components/SystemStateTitle.tsx","../../src/components/system-state/components/SystemStateDescription.tsx","../../src/components/system-state/components/SystemStateActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst systemStateStyles = tv({\n\tbase: \"flex w-full max-w-[343px] flex-col items-center text-center lg:max-w-[672px]\"\n});\n\nexport type SystemStateProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SystemState = React.forwardRef<HTMLDivElement, SystemStateProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={systemStateStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemState.displayName = \"SystemState\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst codeStyles = tv({\n\tbase: \"mb-8 align-middle text-sm font-medium text-muted\"\n});\n\nexport type SystemStateCodeProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SystemStateCode = React.forwardRef<HTMLDivElement, SystemStateCodeProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={codeStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemStateCode.displayName = \"SystemStateCode\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst titleStyles = tv({\n\tbase: \"leading-3xl lg:leading-5xl letter-spacing-[-0.02em] pb-4 text-center align-middle text-3xl font-bold lg:text-5xl\"\n});\n\nexport type SystemStateTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const SystemStateTitle = React.forwardRef<HTMLHeadingElement, SystemStateTitleProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn <h2 ref={ref} className={titleStyles({ className })} {...props} />;\n\t}\n);\n\nSystemStateTitle.displayName = \"SystemStateTitle\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst descriptionStyles = tv({\n\tbase: \"leading-base max-w-s text-base font-normal text-muted lg:max-w-xl\"\n});\n\nexport type SystemStateDescriptionProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const SystemStateDescription = React.forwardRef<HTMLDivElement, SystemStateDescriptionProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={descriptionStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemStateDescription.displayName = \"SystemStateDescription\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\n\nconst actionsStyles = tv({\n\tslots: {\n\t\tcontainer: \"mt-8 flex w-full flex-col items-center gap-3 lg:flex-row lg:justify-center\",\n\t\tbutton: \"w-full lg:w-auto\"\n\t}\n});\n\nexport interface SystemStateActionsProps {\n\tclassName?: string;\n\tprimaryButton?: React.ReactNode;\n\tprimaryButtonProps?: ButtonProps;\n\tsecondaryButton?: React.ReactNode;\n\tsecondaryButtonProps?: ButtonProps;\n}\n\nexport const SystemStateActions = React.forwardRef<HTMLDivElement, SystemStateActionsProps>(\n\t({ className, primaryButton, secondaryButton, primaryButtonProps, secondaryButtonProps }, ref) => {\n\t\tconst isMobile = useIsMobile();\n\t\tconst { container, button } = actionsStyles();\n\n\t\tif (isMobile) {\n\t\t\tprimaryButtonProps = { ...primaryButtonProps, size: \"xl\", className: button({ className: className }) };\n\t\t\tsecondaryButtonProps = { ...secondaryButtonProps, size: \"xl\", className: button({ className: className }) };\n\t\t}\n\n\t\tconst primaryButtonElement = primaryButton && (\n\t\t\t<Button key=\"primary-button\" variant=\"primary\" {...primaryButtonProps}>\n\t\t\t\t{primaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\tconst secondaryButtonElement = secondaryButton && (\n\t\t\t<Button key=\"secondary-button\" variant=\"outline\" {...secondaryButtonProps}>\n\t\t\t\t{secondaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn (\n\t\t\t<div ref={ref} className={container({ class: className })}>\n\t\t\t\t{isMobile\n\t\t\t\t\t? [primaryButtonElement, secondaryButtonElement]\n\t\t\t\t\t: [secondaryButtonElement, primaryButtonElement]}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nSystemStateActions.displayName = \"SystemStateActions\";\n"],"names":["systemStateStyles","tv","SystemState","React","className","children","props","ref","jsx","codeStyles","SystemStateCode","titleStyles","SystemStateTitle","descriptionStyles","SystemStateDescription","actionsStyles","SystemStateActions","primaryButton","secondaryButton","primaryButtonProps","secondaryButtonProps","isMobile","useIsMobile","container","button","primaryButtonElement","Button","secondaryButtonElement"],"mappings":";;;;;AAGA,MAAMA,IAAoBC,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAIYC,IAAcC,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWP,EAAkB,EAAE,WAAAI,GAAW,GAAI,GAAGE,GAC9D,UAAAD,EACF,CAAA;AAGH;AAEAH,EAAY,cAAc;AChB1B,MAAMO,IAAaR,EAAG;AAAA,EACrB,MAAM;AACP,CAAC,GAIYS,IAAkBP,EAAM;AAAA,EACpC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWE,EAAW,EAAE,WAAAL,GAAW,GAAI,GAAGE,GACvD,UAAAD,EACF,CAAA;AAGH;AAEAK,EAAgB,cAAc;AChB9B,MAAMC,IAAcV,EAAG;AAAA,EACtB,MAAM;AACP,CAAC,GAIYW,IAAmBT,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAA,GAASC,MAClB,gBAAAC,EAAC,MAAG,EAAA,KAAAD,GAAU,WAAWI,EAAY,EAAE,WAAAP,EAAW,CAAA,GAAI,GAAGE,GAAO;AAEzE;AAEAM,EAAiB,cAAc;ACZ/B,MAAMC,IAAoBZ,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAIYa,IAAyBX,EAAM;AAAA,EAC3C,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWM,EAAkB,EAAE,WAAAT,GAAW,GAAI,GAAGE,GAC9D,UAAAD,EACF,CAAA;AAGH;AAEAS,EAAuB,cAAc;ACdrC,MAAMC,IAAgBd,EAAG;AAAA,EACxB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEV,CAAC,GAUYe,IAAqBb,EAAM;AAAA,EACvC,CAAC,EAAE,WAAAC,GAAW,eAAAa,GAAe,iBAAAC,GAAiB,oBAAAC,GAAoB,sBAAAC,KAAwBb,MAAQ;AACjG,UAAMc,IAAWC,EAAY,GACvB,EAAE,WAAAC,GAAW,QAAAC,EAAO,IAAIT,EAAc;AAE5C,IAAIM,MACkBF,IAAA,EAAE,GAAGA,GAAoB,MAAM,MAAM,WAAWK,EAAO,EAAE,WAAApB,EAAqB,CAAC,EAAE,GAC/EgB,IAAA,EAAE,GAAGA,GAAsB,MAAM,MAAM,WAAWI,EAAO,EAAE,WAAApB,EAAqB,CAAC,EAAE;AAGrG,UAAAqB,IAAuBR,KAC3B,gBAAAT,EAAAkB,GAAA,EAA4B,SAAQ,WAAW,GAAGP,GACjD,UAAAF,EAAA,GADU,gBAEZ,GAGKU,IAAyBT,KAC7B,gBAAAV,EAAAkB,GAAA,EAA8B,SAAQ,WAAW,GAAGN,GACnD,UAAAF,EAAA,GADU,kBAEZ;AAGD,6BACE,OAAI,EAAA,KAAAX,GAAU,WAAWgB,EAAU,EAAE,OAAOnB,EAAU,CAAC,GACtD,UAAAiB,IACE,CAACI,GAAsBE,CAAsB,IAC7C,CAACA,GAAwBF,CAAoB,GACjD;AAAA,EAAA;AAGH;AAEAT,EAAmB,cAAc;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as a, o as E, p as s, u as l, r, q as _, v as R, j as t, k as L, m as N, l as O, x as n, w as G, n as i, t as b } from "../../treeModel-
|
|
1
|
+
import { s as a, o as E, p as s, u as l, r, q as _, v as R, j as t, k as L, m as N, l as O, x as n, w as G, n as i, t as b } from "../../treeModel-BH6Jg8rm.js";
|
|
2
2
|
export {
|
|
3
3
|
a as TREE_CONNECTOR_Y,
|
|
4
4
|
E as TREE_INDENT,
|
package/dist/components/table.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s, o as T, p as l, u as E, r as t, q as o, v as R, T as r, b as _, c as n, h as i, g as C, d as b, e as d, a as L, i as O, f as S, j as A, k as N, m as c, l as f, x as g, w as m, n as u, t as p } from "../treeModel-
|
|
1
|
+
import { s, o as T, p as l, u as E, r as t, q as o, v as R, T as r, b as _, c as n, h as i, g as C, d as b, e as d, a as L, i as O, f as S, j as A, k as N, m as c, l as f, x as g, w as m, n as u, t as p } from "../treeModel-BH6Jg8rm.js";
|
|
2
2
|
import { C as I, g as G, u as x } from "../useColumnResize-wjfEyBBg.js";
|
|
3
3
|
import { C as F, u as H } from "../useColumnReorder-tE5pMONm.js";
|
|
4
4
|
import { T as W, a as h, b as k, o as w, t as z } from "../opaqueCell-D95h1mFM.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../node_modules/.pnpm/@radix-ui+react-tabs@1.1.13_21753808045192b908d4757aa4b73066/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst Tabs = TabsPrimitive.Root;\r\n\r\nconst tabsListStyles = tv({\r\n\tbase: \"inline-flex h-10 items-center justify-center rounded-lg bg-secondary-bg-hover p-1 text-muted lg:h-9\"\r\n});\r\n\r\nconst TabsList = React.forwardRef<\r\n\tReact.ElementRef<typeof TabsPrimitive.List>,\r\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n\t<TabsPrimitive.List ref={ref} className={tabsListStyles({ className })} {...props} />\r\n));\r\nTabsList.displayName = TabsPrimitive.List.displayName;\r\n\r\nconst tabsTriggerStyles = tv({\r\n\tbase: [\r\n\t\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all lg:py-1\",\r\n\t\t\"hover:text-secondary-fg\",\r\n\t\t\"focus-visible:shadow-focus! focus-visible:outline-hidden\",\r\n\t\t\"disabled:pointer-events-none disabled:opacity-50\",\r\n\t\t\"data-[state=active]:bg-secondary-bg data-[state=active]:text-primary-fg data-[state=active]:shadow-soft-base\"\r\n\t]\r\n});\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof TabsPrimitive.Trigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n\t<TabsPrimitive.Trigger ref={ref} className={tabsTriggerStyles({ className })} {...props} />\r\n));\r\n\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\r\n\r\nconst tabsContentStyles = tv({\r\n\tbase: \"mt-2 ring-offset-background focus-visible:shadow-focus focus-visible:outline-hidden\"\r\n});\r\n\r\nconst TabsContent = React.forwardRef<\r\n\tReact.ElementRef<typeof TabsPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n\t<TabsPrimitive.Content ref={ref} className={tabsContentStyles({ className })} {...props} />\r\n));\r\nTabsContent.displayName = TabsPrimitive.Content.displayName;\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\r\n"],"names":["TABS_NAME","createTabsContext","createTabsScope","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabsPrimitive.Root","tabsListStyles","tv","className","ref","TabsPrimitive.List","tabsTriggerStyles","TabsPrimitive.Trigger","tabsContentStyles","TabsPrimitive.Content"],"mappings":";;;;;;;;;;AAcA,IAAIA,IAAY,QACZ,CAACC,GAAmBC,EAAe,IAAIC,EAAmBH,GAAW;AAAA,EACvEI;AACF,CAAC,GACGC,IAA2BD,EAA6B,GACxD,CAACE,GAAcC,CAAc,IAAIN,EAAkBD,CAAS,GAC5DQ,IAAOC,EAAM;AAAA,EACf,CAACC,GAAOC,MAAiB;AACvB,UAAM;AAAA,MACJ,aAAAC;AAAA,MACA,OAAOC;AAAA,MACP,eAAAC;AAAA,MACA,cAAAC;AAAA,MACA,aAAAC,IAAc;AAAA,MACd,KAAAC;AAAA,MACA,gBAAAC,IAAiB;AAAA,MACjB,GAAGC;AAAA,IACT,IAAQT,GACEU,IAAYC,EAAaJ,CAAG,GAC5B,CAACK,GAAOC,CAAQ,IAAIC,EAAqB;AAAA,MAC7C,MAAMX;AAAA,MACN,UAAUC;AAAA,MACV,aAAaC,KAAgB;AAAA,MAC7B,QAAQf;AAAA,IACd,CAAK;AACD,WAAuB,gBAAAyB;AAAA,MACrBnB;AAAA,MACA;AAAA,QACE,OAAOM;AAAA,QACP,QAAQc,EAAO;AAAA,QACf,OAAAJ;AAAA,QACA,eAAeC;AAAA,QACf,aAAAP;AAAA,QACA,KAAKI;AAAA,QACL,gBAAAF;AAAA,QACA,UAA0B,gBAAAO;AAAA,UACxBE,EAAU;AAAA,UACV;AAAA,YACE,KAAKP;AAAA,YACL,oBAAoBJ;AAAA,YACpB,GAAGG;AAAA,YACH,KAAKR;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAH,EAAK,cAAcR;AACnB,IAAI4B,IAAgB,YAChBC,IAAWpB,EAAM;AAAA,EACnB,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,MAAAkB,IAAO,IAAM,GAAGC,EAAW,IAAGrB,GAC7CsB,IAAUzB,EAAeqB,GAAehB,CAAW,GACnDqB,IAAwB5B,EAAyBO,CAAW;AAClE,WAAuB,gBAAAa;AAAA,MACrBS;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGD;AAAA,QACH,aAAaD,EAAQ;AAAA,QACrB,KAAKA,EAAQ;AAAA,QACb,MAAAF;AAAA,QACA,UAA0B,gBAAAL;AAAA,UACxBE,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,oBAAoBK,EAAQ;AAAA,YAC5B,GAAGD;AAAA,YACH,KAAKpB;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAkB,EAAS,cAAcD;AACvB,IAAIO,IAAe,eACfC,IAAc3B,EAAM;AAAA,EACtB,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,OAAAU,GAAO,UAAAe,IAAW,IAAO,GAAGC,EAAY,IAAK5B,GAC5DsB,IAAUzB,EAAe4B,GAAcvB,CAAW,GAClDqB,IAAwB5B,EAAyBO,CAAW,GAC5D2B,IAAYC,EAAcR,EAAQ,QAAQV,CAAK,GAC/CmB,IAAYC,EAAcV,EAAQ,QAAQV,CAAK,GAC/CqB,IAAarB,MAAUU,EAAQ;AACrC,WAAuB,gBAAAP;AAAA,MACrBmB;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGX;AAAA,QACH,WAAW,CAACI;AAAA,QACZ,QAAQM;AAAA,QACR,UAA0B,gBAAAlB;AAAA,UACxBE,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,iBAAiBgB;AAAA,YACjB,iBAAiBF;AAAA,YACjB,cAAcE,IAAa,WAAW;AAAA,YACtC,iBAAiBN,IAAW,KAAK;AAAA,YACjC,UAAAA;AAAA,YACA,IAAIE;AAAA,YACJ,GAAGD;AAAA,YACH,KAAK3B;AAAA,YACL,aAAakC,EAAqBnC,EAAM,aAAa,CAACoC,MAAU;AAC9D,cAAI,CAACT,KAAYS,EAAM,WAAW,KAAKA,EAAM,YAAY,KACvDd,EAAQ,cAAcV,CAAK,IAE3BwB,EAAM,eAAgB;AAAA,YAEtC,CAAa;AAAA,YACD,WAAWD,EAAqBnC,EAAM,WAAW,CAACoC,MAAU;AAC1D,cAAI,CAAC,KAAK,OAAO,EAAE,SAASA,EAAM,GAAG,KAAGd,EAAQ,cAAcV,CAAK;AAAA,YACjF,CAAa;AAAA,YACD,SAASuB,EAAqBnC,EAAM,SAAS,MAAM;AACjD,oBAAMqC,IAAwBf,EAAQ,mBAAmB;AACzD,cAAI,CAACW,KAAc,CAACN,KAAYU,KAC9Bf,EAAQ,cAAcV,CAAK;AAAA,YAE9B,CAAA;AAAA,UACb;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAc,EAAY,cAAcD;AAC1B,IAAIa,IAAe,eACfC,IAAcxC,EAAM;AAAA,EACtB,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,OAAAU,GAAO,YAAA4B,GAAY,UAAAC,GAAU,GAAGC,EAAY,IAAK1C,GAChEsB,IAAUzB,EAAeyC,GAAcpC,CAAW,GAClD2B,IAAYC,EAAcR,EAAQ,QAAQV,CAAK,GAC/CmB,IAAYC,EAAcV,EAAQ,QAAQV,CAAK,GAC/CqB,IAAarB,MAAUU,EAAQ,OAC/BqB,IAA+B5C,EAAM,OAAOkC,CAAU;AAC5D,WAAAlC,EAAM,UAAU,MAAM;AACpB,YAAM6C,IAAM,sBAAsB,MAAMD,EAA6B,UAAU,EAAK;AACpF,aAAO,MAAM,qBAAqBC,CAAG;AAAA,IACtC,GAAE,EAAE,GACkB,gBAAA7B,EAAI8B,GAAU,EAAE,SAASL,KAAcP,GAAY,UAAU,CAAC,EAAE,SAAAa,EAAO,MAAuB,gBAAA/B;AAAA,MACnHE,EAAU;AAAA,MACV;AAAA,QACE,cAAcgB,IAAa,WAAW;AAAA,QACtC,oBAAoBX,EAAQ;AAAA,QAC5B,MAAM;AAAA,QACN,mBAAmBO;AAAA,QACnB,QAAQ,CAACiB;AAAA,QACT,IAAIf;AAAA,QACJ,UAAU;AAAA,QACV,GAAGW;AAAA,QACH,KAAKzC;AAAA,QACL,OAAO;AAAA,UACL,GAAGD,EAAM;AAAA,UACT,mBAAmB2C,EAA6B,UAAU,OAAO;AAAA,QAClE;AAAA,QACD,UAAUG,KAAWL;AAAA,MAC7B;AAAA,IACA,GAAO;AAAA,EACP;AACA;AACAF,EAAY,cAAcD;AAC1B,SAASR,EAAciB,GAAQnC,GAAO;AACpC,SAAO,GAAGmC,CAAM,YAAYnC,CAAK;AACnC;AACA,SAASoB,EAAce,GAAQnC,GAAO;AACpC,SAAO,GAAGmC,CAAM,YAAYnC,CAAK;AACnC;AACA,IAAIoC,IAAQlD,GACRmD,IAAO9B,GACP+B,IAAUxB,GACVyB,IAAUZ;ACvLd,MAAMzC,KAAOsD,GAEPC,IAAiBC,EAAG;AAAA,EACzB,MAAM;AACP,CAAC,GAEKnC,IAAWpB,EAAM,WAGrB,CAAC,EAAE,WAAAwD,GAAW,GAAGvD,EAAM,GAAGwD,MAC3B,gBAAAzC,EAAC0C,GAAA,EAAmB,KAAAD,GAAU,WAAWH,EAAe,EAAE,WAAAE,GAAW,GAAI,GAAGvD,GAAO,CACnF;AACDmB,EAAS,cAAcsC,EAAmB;AAE1C,MAAMC,IAAoBJ,EAAG;AAAA,EAC5B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEK5B,IAAc3B,EAAM,WAGxB,CAAC,EAAE,WAAAwD,GAAW,GAAGvD,EAAM,GAAGwD,MAC3B,gBAAAzC,EAAC4C,GAAA,EAAsB,KAAAH,GAAU,WAAWE,EAAkB,EAAE,WAAAH,GAAW,GAAI,GAAGvD,GAAO,CACzF;AAED0B,EAAY,cAAciC,EAAsB;AAEhD,MAAMC,IAAoBN,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAEKf,IAAcxC,EAAM,WAGxB,CAAC,EAAE,WAAAwD,GAAW,GAAGvD,EAAM,GAAGwD,MAC3B,gBAAAzC,EAAC8C,GAAA,EAAsB,KAAAL,GAAU,WAAWI,EAAkB,EAAE,WAAAL,GAAW,GAAI,GAAGvD,GAAO,CACzF;AACDuC,EAAY,cAAcsB,EAAsB;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../node_modules/.pnpm/@radix-ui+react-tabs@1.1.13_@types+react-dom@18.3.6_@types+react@18.3.20__@types+react@_21753808045192b908d4757aa4b73066/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { tv } from \"tailwind-variants\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListStyles = tv({\n\tbase: \"inline-flex h-10 items-center justify-center rounded-lg bg-secondary-bg-hover p-1 text-muted lg:h-9\"\n});\n\nconst TabsList = React.forwardRef<\n\tReact.ElementRef<typeof TabsPrimitive.List>,\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n\t<TabsPrimitive.List ref={ref} className={tabsListStyles({ className })} {...props} />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst tabsTriggerStyles = tv({\n\tbase: [\n\t\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all lg:py-1\",\n\t\t\"hover:text-secondary-fg\",\n\t\t\"focus-visible:shadow-focus! focus-visible:outline-hidden\",\n\t\t\"disabled:pointer-events-none disabled:opacity-50\",\n\t\t\"data-[state=active]:bg-secondary-bg data-[state=active]:text-primary-fg data-[state=active]:shadow-soft-base\"\n\t]\n});\n\nconst TabsTrigger = React.forwardRef<\n\tReact.ElementRef<typeof TabsPrimitive.Trigger>,\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n\t<TabsPrimitive.Trigger ref={ref} className={tabsTriggerStyles({ className })} {...props} />\n));\n\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst tabsContentStyles = tv({\n\tbase: \"mt-2 ring-offset-background focus-visible:shadow-focus focus-visible:outline-hidden\"\n});\n\nconst TabsContent = React.forwardRef<\n\tReact.ElementRef<typeof TabsPrimitive.Content>,\n\tReact.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n\t<TabsPrimitive.Content ref={ref} className={tabsContentStyles({ className })} {...props} />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":["TABS_NAME","createTabsContext","createTabsScope","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","TabsPrimitive.Root","tabsListStyles","tv","className","ref","TabsPrimitive.List","tabsTriggerStyles","TabsPrimitive.Trigger","tabsContentStyles","TabsPrimitive.Content"],"mappings":";;;;;;;;;;AAcA,IAAIA,IAAY,QACZ,CAACC,GAAmBC,EAAe,IAAIC,EAAmBH,GAAW;AAAA,EACvEI;AACF,CAAC,GACGC,IAA2BD,EAA6B,GACxD,CAACE,GAAcC,CAAc,IAAIN,EAAkBD,CAAS,GAC5DQ,IAAOC,EAAM;AAAA,EACf,CAACC,GAAOC,MAAiB;AACvB,UAAM;AAAA,MACJ,aAAAC;AAAA,MACA,OAAOC;AAAA,MACP,eAAAC;AAAA,MACA,cAAAC;AAAA,MACA,aAAAC,IAAc;AAAA,MACd,KAAAC;AAAA,MACA,gBAAAC,IAAiB;AAAA,MACjB,GAAGC;AAAA,IACT,IAAQT,GACEU,IAAYC,EAAaJ,CAAG,GAC5B,CAACK,GAAOC,CAAQ,IAAIC,EAAqB;AAAA,MAC7C,MAAMX;AAAA,MACN,UAAUC;AAAA,MACV,aAAaC,KAAgB;AAAA,MAC7B,QAAQf;AAAA,IACd,CAAK;AACD,WAAuB,gBAAAyB;AAAA,MACrBnB;AAAA,MACA;AAAA,QACE,OAAOM;AAAA,QACP,QAAQc,EAAO;AAAA,QACf,OAAAJ;AAAA,QACA,eAAeC;AAAA,QACf,aAAAP;AAAA,QACA,KAAKI;AAAA,QACL,gBAAAF;AAAA,QACA,UAA0B,gBAAAO;AAAA,UACxBE,EAAU;AAAA,UACV;AAAA,YACE,KAAKP;AAAA,YACL,oBAAoBJ;AAAA,YACpB,GAAGG;AAAA,YACH,KAAKR;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAH,EAAK,cAAcR;AACnB,IAAI4B,IAAgB,YAChBC,IAAWpB,EAAM;AAAA,EACnB,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,MAAAkB,IAAO,IAAM,GAAGC,EAAW,IAAGrB,GAC7CsB,IAAUzB,EAAeqB,GAAehB,CAAW,GACnDqB,IAAwB5B,EAAyBO,CAAW;AAClE,WAAuB,gBAAAa;AAAA,MACrBS;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGD;AAAA,QACH,aAAaD,EAAQ;AAAA,QACrB,KAAKA,EAAQ;AAAA,QACb,MAAAF;AAAA,QACA,UAA0B,gBAAAL;AAAA,UACxBE,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,oBAAoBK,EAAQ;AAAA,YAC5B,GAAGD;AAAA,YACH,KAAKpB;AAAA,UACjB;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAkB,EAAS,cAAcD;AACvB,IAAIO,IAAe,eACfC,IAAc3B,EAAM;AAAA,EACtB,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,OAAAU,GAAO,UAAAe,IAAW,IAAO,GAAGC,EAAY,IAAK5B,GAC5DsB,IAAUzB,EAAe4B,GAAcvB,CAAW,GAClDqB,IAAwB5B,EAAyBO,CAAW,GAC5D2B,IAAYC,EAAcR,EAAQ,QAAQV,CAAK,GAC/CmB,IAAYC,EAAcV,EAAQ,QAAQV,CAAK,GAC/CqB,IAAarB,MAAUU,EAAQ;AACrC,WAAuB,gBAAAP;AAAA,MACrBmB;AAAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,GAAGX;AAAA,QACH,WAAW,CAACI;AAAA,QACZ,QAAQM;AAAA,QACR,UAA0B,gBAAAlB;AAAA,UACxBE,EAAU;AAAA,UACV;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,iBAAiBgB;AAAA,YACjB,iBAAiBF;AAAA,YACjB,cAAcE,IAAa,WAAW;AAAA,YACtC,iBAAiBN,IAAW,KAAK;AAAA,YACjC,UAAAA;AAAA,YACA,IAAIE;AAAA,YACJ,GAAGD;AAAA,YACH,KAAK3B;AAAA,YACL,aAAakC,EAAqBnC,EAAM,aAAa,CAACoC,MAAU;AAC9D,cAAI,CAACT,KAAYS,EAAM,WAAW,KAAKA,EAAM,YAAY,KACvDd,EAAQ,cAAcV,CAAK,IAE3BwB,EAAM,eAAgB;AAAA,YAEtC,CAAa;AAAA,YACD,WAAWD,EAAqBnC,EAAM,WAAW,CAACoC,MAAU;AAC1D,cAAI,CAAC,KAAK,OAAO,EAAE,SAASA,EAAM,GAAG,KAAGd,EAAQ,cAAcV,CAAK;AAAA,YACjF,CAAa;AAAA,YACD,SAASuB,EAAqBnC,EAAM,SAAS,MAAM;AACjD,oBAAMqC,IAAwBf,EAAQ,mBAAmB;AACzD,cAAI,CAACW,KAAc,CAACN,KAAYU,KAC9Bf,EAAQ,cAAcV,CAAK;AAAA,YAE9B,CAAA;AAAA,UACb;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACAc,EAAY,cAAcD;AAC1B,IAAIa,IAAe,eACfC,IAAcxC,EAAM;AAAA,EACtB,CAACC,GAAOC,MAAiB;AACvB,UAAM,EAAE,aAAAC,GAAa,OAAAU,GAAO,YAAA4B,GAAY,UAAAC,GAAU,GAAGC,EAAY,IAAK1C,GAChEsB,IAAUzB,EAAeyC,GAAcpC,CAAW,GAClD2B,IAAYC,EAAcR,EAAQ,QAAQV,CAAK,GAC/CmB,IAAYC,EAAcV,EAAQ,QAAQV,CAAK,GAC/CqB,IAAarB,MAAUU,EAAQ,OAC/BqB,IAA+B5C,EAAM,OAAOkC,CAAU;AAC5D,WAAAlC,EAAM,UAAU,MAAM;AACpB,YAAM6C,IAAM,sBAAsB,MAAMD,EAA6B,UAAU,EAAK;AACpF,aAAO,MAAM,qBAAqBC,CAAG;AAAA,IACtC,GAAE,EAAE,GACkB,gBAAA7B,EAAI8B,GAAU,EAAE,SAASL,KAAcP,GAAY,UAAU,CAAC,EAAE,SAAAa,EAAO,MAAuB,gBAAA/B;AAAA,MACnHE,EAAU;AAAA,MACV;AAAA,QACE,cAAcgB,IAAa,WAAW;AAAA,QACtC,oBAAoBX,EAAQ;AAAA,QAC5B,MAAM;AAAA,QACN,mBAAmBO;AAAA,QACnB,QAAQ,CAACiB;AAAA,QACT,IAAIf;AAAA,QACJ,UAAU;AAAA,QACV,GAAGW;AAAA,QACH,KAAKzC;AAAA,QACL,OAAO;AAAA,UACL,GAAGD,EAAM;AAAA,UACT,mBAAmB2C,EAA6B,UAAU,OAAO;AAAA,QAClE;AAAA,QACD,UAAUG,KAAWL;AAAA,MAC7B;AAAA,IACA,GAAO;AAAA,EACP;AACA;AACAF,EAAY,cAAcD;AAC1B,SAASR,EAAciB,GAAQnC,GAAO;AACpC,SAAO,GAAGmC,CAAM,YAAYnC,CAAK;AACnC;AACA,SAASoB,EAAce,GAAQnC,GAAO;AACpC,SAAO,GAAGmC,CAAM,YAAYnC,CAAK;AACnC;AACA,IAAIoC,IAAQlD,GACRmD,IAAO9B,GACP+B,IAAUxB,GACVyB,IAAUZ;ACvLd,MAAMzC,KAAOsD,GAEPC,IAAiBC,EAAG;AAAA,EACzB,MAAM;AACP,CAAC,GAEKnC,IAAWpB,EAAM,WAGrB,CAAC,EAAE,WAAAwD,GAAW,GAAGvD,EAAM,GAAGwD,MAC3B,gBAAAzC,EAAC0C,GAAA,EAAmB,KAAAD,GAAU,WAAWH,EAAe,EAAE,WAAAE,GAAW,GAAI,GAAGvD,GAAO,CACnF;AACDmB,EAAS,cAAcsC,EAAmB;AAE1C,MAAMC,IAAoBJ,EAAG;AAAA,EAC5B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAEK5B,IAAc3B,EAAM,WAGxB,CAAC,EAAE,WAAAwD,GAAW,GAAGvD,EAAM,GAAGwD,MAC3B,gBAAAzC,EAAC4C,GAAA,EAAsB,KAAAH,GAAU,WAAWE,EAAkB,EAAE,WAAAH,GAAW,GAAI,GAAGvD,GAAO,CACzF;AAED0B,EAAY,cAAciC,EAAsB;AAEhD,MAAMC,IAAoBN,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAEKf,IAAcxC,EAAM,WAGxB,CAAC,EAAE,WAAAwD,GAAW,GAAGvD,EAAM,GAAGwD,MAC3B,gBAAAzC,EAAC8C,GAAA,EAAsB,KAAAL,GAAU,WAAWI,EAAkB,EAAE,WAAAL,GAAW,GAAI,GAAGvD,GAAO,CACzF;AACDuC,EAAY,cAAcsB,EAAsB;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-input.js","sources":["../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import { SearchSelectTag } from \"@/components/search-select/components/SearchSelectTag\";\r\nimport { useControllableState } from \"@/hooks/useControllableState\";\r\nimport { useItemsKeyboardNavigation } from \"@/hooks/useItemsKeyboardNavigation\";\r\nimport React, { KeyboardEvent, useCallback, useRef, useState } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { InputGroup, InputGroupInput, InputGroupContentEditable } from \"../input\";\r\nimport { selectTriggerStyles } from \"../select/Select\";\r\n\r\nconst tagInputStyles = tv({\r\n\textend: selectTriggerStyles,\r\n\tbase: \"group/search-select-trigger flex h-auto min-h-10 flex-wrap items-center gap-1 py-[0.3125rem]! px-1.5 lg:h-auto lg:min-h-9 lg:px-1.5\"\r\n});\r\n\r\nconst inputStyles = tv({\r\n\tbase: \"min-w-28 rounded-none p-0 px-1.5 leading-6 read-only:w-0 read-only:min-w-0 lg:p-0 lg:px-1.5\"\r\n});\r\n\r\nconst editingDivStyles = tv({\r\n\tbase: \"p-0 px-1.5 outline-hidden lg:p-0 lg:px-1.5\"\r\n});\r\n\r\n/**\r\n * Пропсы для рендера тега\r\n */\r\nexport type RenderTagProps = {\r\n\t/** Значение тега (строка) */\r\n\ttag: string;\r\n\t/** Индекс тега в массиве */\r\n\tindex: number;\r\n\t/** Функция для удаления тега */\r\n\tonClose?: () => void;\r\n\t/** Функция для начала редактирования тега */\r\n\tonEdit?: () => void;\r\n\t/** Фокус на теге (для навигации с клавиатуры) */\r\n\tisFocused: boolean;\r\n\t/** Отключен ли компонент */\r\n\treadonly: boolean;\r\n};\r\n\r\n/**\r\n * Функция валидации тега по умолчанию\r\n */\r\nconst defaultValidateTag = (tag: string, allTags: string[], editingIndex?: number): boolean | string => {\r\n\tif (!tag.trim()) return \"Тег не может быть пустым\";\r\n\r\n\tif (editingIndex === undefined) {\r\n\t\t// Добавление нового тега\r\n\t\tif (allTags.includes(tag)) return \"Такой тег уже существует\";\r\n\t} else {\r\n\t\t// Редактирование существующего\r\n\t\tconst otherTags = allTags.filter((_, i) => i !== editingIndex);\r\n\t\tif (otherTags.includes(tag)) return \"Такой тег уже существует\";\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\nexport interface TagInputProps {\r\n\t/** Текущие выбранные опции (controlled режим) */\r\n\tvalue?: string[];\r\n\t/** Опции по умолчанию (uncontrolled режим) */\r\n\tdefaultValue?: string[];\r\n\t/** Callback при изменении выбранных опций */\r\n\tonChange?: (options: string[]) => void;\r\n\t/** Placeholder для input */\r\n\tplaceholder?: string;\r\n\t/** Отключить компонент */\r\n\treadonly?: boolean;\r\n\t/** CSS класс для контейнера */\r\n\tclassName?: string;\r\n\t/** Функция валидации тега. Если null - валидация отключена, если не передана - используется валидация по умолчанию */\r\n\tvalidateTag?: ((tag: string, allTags: string[], editingIndex?: number) => boolean | string) | null;\r\n\t/** Состояние ошибки */\r\n\tinvalid?: boolean;\r\n\t/** Кастомная функция рендера тега */\r\n\trenderOption?: (props: RenderTagProps) => React.ReactNode;\r\n}\r\n\r\n/**\r\n * Компонент для ввода и отображения тегов\r\n */\r\nexport const TagInput = React.forwardRef<HTMLDivElement, TagInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue = [],\r\n\t\t\tonChange,\r\n\t\t\tplaceholder = \"Добавить тег...\",\r\n\t\t\treadonly = false,\r\n\t\t\tclassName,\r\n\t\t\tvalidateTag,\r\n\t\t\tinvalid,\r\n\t\t\trenderOption\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\t// Состояние для ввода нового тега\r\n\t\tconst [inputValue, setInputValue] = useState(\"\");\r\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\r\n\t\t// Управление тегами\r\n\t\tconst [tags = [], setTags] = useControllableState<string[]>({ value, defaultValue, onChange });\r\n\r\n\t\tconst styles = tagInputStyles({ className, invalid });\r\n\t\tconst removeTag = useCallback(\r\n\t\t\t(index: number) => {\r\n\t\t\t\tif (readonly) return;\r\n\t\t\t\tsetTags(tags.filter((_, i) => i !== index));\r\n\t\t\t},\r\n\t\t\t[tags, setTags, readonly]\r\n\t\t);\r\n\r\n\t\t// Состояние для режима редактирования существующих тегов\r\n\t\tconst [editingIndex, setEditingIndex] = useState<number | null>(null);\r\n\t\tconst editingRef = useRef<HTMLDivElement>(null);\r\n\r\n\t\t/**\r\n\t\t * Функция валидации тега\r\n\t\t */\r\n\t\tconst validateTagValue = useCallback(\r\n\t\t\t(tag: string, editingIndex?: number): boolean => {\r\n\t\t\t\tif (validateTag === null) return true;\r\n\r\n\t\t\t\tconst validator = validateTag || defaultValidateTag;\r\n\t\t\t\tconst result = validator(tag, tags, editingIndex);\r\n\r\n\t\t\t\treturn result === true;\r\n\t\t\t},\r\n\t\t\t[validateTag, tags]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Переключение в режим редактирования существующего тега\r\n\t\t */\r\n\t\tconst startEditing = useCallback(\r\n\t\t\t(index: number) => {\r\n\t\t\t\tif (readonly) return;\r\n\t\t\t\tsetEditingIndex(index);\r\n\t\t\t\t// Фокусируем элемент после обновления состояния\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (editingRef.current) {\r\n\t\t\t\t\t\t// Устанавливаем содержимое напрямую, без использования React state\r\n\t\t\t\t\t\teditingRef.current.textContent = tags[index];\r\n\t\t\t\t\t\teditingRef.current.focus();\r\n\t\t\t\t\t\t// Выделяем весь текст\r\n\t\t\t\t\t\tconst range = document.createRange();\r\n\t\t\t\t\t\trange.selectNodeContents(editingRef.current);\r\n\t\t\t\t\t\tconst selection = window.getSelection();\r\n\t\t\t\t\t\tselection?.removeAllRanges();\r\n\t\t\t\t\t\tselection?.addRange(range);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 0);\r\n\t\t\t},\r\n\t\t\t[tags, setEditingIndex, readonly]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Отмена редактирования тега\r\n\t\t */\r\n\t\tconst cancelEditing = useCallback(() => {\r\n\t\t\tsetEditingIndex(null);\r\n\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\r\n\t\t}, [setEditingIndex]);\r\n\r\n\t\t/**\r\n\t\t * Обработчик нажатия Enter на теге: переключает текущий тег в режим редактирования\r\n\t\t */\r\n\t\tconst onEnter = useCallback((_: string, index: number) => startEditing(index), [startEditing]);\r\n\r\n\t\tconst handleDeleteTag = useCallback((_: string, index: number) => removeTag(index), [removeTag]);\r\n\r\n\t\t/**\r\n\t\t * Хук для навигации по тегам с помощью клавиатуры (вперед/назад)\r\n\t\t */\r\n\t\tconst { handleKeyDown: handleTagsKeyDown, isFocused } = useItemsKeyboardNavigation({\r\n\t\t\titems: tags,\r\n\t\t\tonEnter,\r\n\t\t\tonDelete: handleDeleteTag,\r\n\t\t\tcycleNavigation: true\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Сохранение изменений в текущем теге\r\n\t\t */\r\n\t\tconst saveEditing = useCallback(() => {\r\n\t\t\tif (editingIndex !== null && editingRef.current) {\r\n\t\t\t\tconst newValue = editingRef.current.textContent?.trim() || \"\";\r\n\r\n\t\t\t\tif (newValue && validateTagValue(newValue, editingIndex)) {\r\n\t\t\t\t\tconst newTags = [...tags];\r\n\t\t\t\t\tnewTags[editingIndex] = newValue;\r\n\t\t\t\t\tsetTags(newTags);\r\n\t\t\t\t\tsetEditingIndex(null);\r\n\t\t\t\t\t// Возвращаем фокус в input и устанавливаем фокус на отредактированный элемент\r\n\t\t\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, [editingIndex, editingRef, tags, setEditingIndex, setTags, validateTagValue]);\r\n\r\n\t\t/**\r\n\t\t * Добавление нового тега\r\n\t\t */\r\n\t\tconst addNewTag = useCallback(\r\n\t\t\t(tagValue: string) => {\r\n\t\t\t\tconst trimmedTag = tagValue.trim();\r\n\t\t\t\tif (trimmedTag && validateTagValue(trimmedTag)) {\r\n\t\t\t\t\tsetTags([...tags, trimmedTag]);\r\n\t\t\t\t\tsetInputValue(\"\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[tags, setTags, setInputValue, validateTagValue]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Обработчик нажатия клавиш на input:\r\n\t\t * - Если нажат Enter и input не пустой, добавляет новый тег\r\n\t\t * - Если input пустой, обрабатывает навигацию по тегам\r\n\t\t */\r\n\t\tconst handleInputKeyDown = useCallback(\r\n\t\t\t(e: KeyboardEvent<HTMLInputElement>) => {\r\n\t\t\t\tif (e.key === \"Enter\" && inputValue.trim()) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\taddNewTag(inputValue);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!inputValue.trim()) {\r\n\t\t\t\t\thandleTagsKeyDown(e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[inputValue, handleTagsKeyDown, addNewTag]\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * Обработчик потери фокуса input - добавляет тег если он не пустой\r\n\t\t */\r\n\t\tconst handleInputBlur = useCallback(() => {\r\n\t\t\tif (inputValue.trim()) {\r\n\t\t\t\taddNewTag(inputValue);\r\n\t\t\t}\r\n\t\t}, [inputValue, addNewTag]);\r\n\r\n\t\tconst handleEditingKeyDown = useCallback(\r\n\t\t\t(e: KeyboardEvent<HTMLDivElement>) => {\r\n\t\t\t\tif (e.key === \"Enter\") {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tsaveEditing();\r\n\t\t\t\t} else if (e.key === \"Escape\") {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tcancelEditing();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[saveEditing, cancelEditing]\r\n\t\t);\r\n\r\n\t\tconst renderTags = useCallback(() => {\r\n\t\t\treturn tags.map((tag, index) => {\r\n\t\t\t\tif (editingIndex === index) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<InputGroupContentEditable\r\n\t\t\t\t\t\t\tkey={`editing-${index}`}\r\n\t\t\t\t\t\t\tref={editingRef}\r\n\t\t\t\t\t\t\tclassName={editingDivStyles()}\r\n\t\t\t\t\t\t\tonKeyDown={handleEditingKeyDown}\r\n\t\t\t\t\t\t\tonBlur={cancelEditing}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (renderOption) {\r\n\t\t\t\t\tconst item = renderOption({\r\n\t\t\t\t\t\ttag,\r\n\t\t\t\t\t\tindex,\r\n\t\t\t\t\t\tonClose: () => removeTag(index),\r\n\t\t\t\t\t\tonEdit: () => startEditing(index),\r\n\t\t\t\t\t\tisFocused: !readonly && isFocused(index),\r\n\t\t\t\t\t\treadonly\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (item !== undefined) {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<SearchSelectTag\r\n\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\tonLabelClick={() => startEditing(index)}\r\n\t\t\t\t\t\tonClose={() => removeTag(index)}\r\n\t\t\t\t\t\treadonly={readonly}\r\n\t\t\t\t\t\tisFocused={!readonly && isFocused(index)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{tag}\r\n\t\t\t\t\t</SearchSelectTag>\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}, [\r\n\t\t\teditingIndex,\r\n\t\t\teditingRef,\r\n\t\t\thandleEditingKeyDown,\r\n\t\t\tcancelEditing,\r\n\t\t\ttags,\r\n\t\t\treadonly,\r\n\t\t\tisFocused,\r\n\t\t\tremoveTag,\r\n\t\t\tstartEditing,\r\n\t\t\trenderOption\r\n\t\t]);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup ref={ref} className={styles.base()}>\r\n\t\t\t\t{renderTags()}\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\tvalue={inputValue}\r\n\t\t\t\t\tonChange={(e) => setInputValue(e.target.value)}\r\n\t\t\t\t\tonKeyDown={handleInputKeyDown}\r\n\t\t\t\t\tonBlur={handleInputBlur}\r\n\t\t\t\t\tplaceholder={readonly ? \"\" : placeholder}\r\n\t\t\t\t\tclassName={inputStyles()}\r\n\t\t\t\t\treadOnly={readonly}\r\n\t\t\t\t\taria-invalid={invalid}\r\n\t\t\t\t/>\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nTagInput.displayName = \"TagInput\";\r\n"],"names":["tagInputStyles","tv","selectTriggerStyles","inputStyles","editingDivStyles","defaultValidateTag","tag","allTags","editingIndex","_","i","TagInput","React","value","defaultValue","onChange","placeholder","readonly","className","validateTag","invalid","renderOption","ref","inputValue","setInputValue","useState","inputRef","useRef","tags","setTags","useControllableState","styles","removeTag","useCallback","index","setEditingIndex","editingRef","validateTagValue","startEditing","range","selection","cancelEditing","onEnter","handleDeleteTag","handleTagsKeyDown","isFocused","useItemsKeyboardNavigation","saveEditing","newValue","newTags","addNewTag","tagValue","trimmedTag","handleInputKeyDown","e","handleInputBlur","handleEditingKeyDown","renderTags","jsx","InputGroupContentEditable","item","SearchSelectTag","InputGroup","InputGroupInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tag-input.js","sources":["../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import { SearchSelectTag } from \"@/components/search-select/components/SearchSelectTag\";\nimport { useControllableState } from \"@/hooks/useControllableState\";\nimport { useItemsKeyboardNavigation } from \"@/hooks/useItemsKeyboardNavigation\";\nimport React, { KeyboardEvent, useCallback, useRef, useState } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { InputGroup, InputGroupInput, InputGroupContentEditable } from \"../input\";\nimport { selectTriggerStyles } from \"../select/Select\";\n\nconst tagInputStyles = tv({\n\textend: selectTriggerStyles,\n\tbase: \"group/search-select-trigger flex h-auto min-h-10 flex-wrap items-center gap-1 py-[0.3125rem]! px-1.5 lg:h-auto lg:min-h-9 lg:px-1.5\"\n});\n\nconst inputStyles = tv({\n\tbase: \"min-w-28 rounded-none p-0 px-1.5 leading-6 read-only:w-0 read-only:min-w-0 lg:p-0 lg:px-1.5\"\n});\n\nconst editingDivStyles = tv({\n\tbase: \"p-0 px-1.5 outline-hidden lg:p-0 lg:px-1.5\"\n});\n\n/**\n * Пропсы для рендера тега\n */\nexport type RenderTagProps = {\n\t/** Значение тега (строка) */\n\ttag: string;\n\t/** Индекс тега в массиве */\n\tindex: number;\n\t/** Функция для удаления тега */\n\tonClose?: () => void;\n\t/** Функция для начала редактирования тега */\n\tonEdit?: () => void;\n\t/** Фокус на теге (для навигации с клавиатуры) */\n\tisFocused: boolean;\n\t/** Отключен ли компонент */\n\treadonly: boolean;\n};\n\n/**\n * Функция валидации тега по умолчанию\n */\nconst defaultValidateTag = (tag: string, allTags: string[], editingIndex?: number): boolean | string => {\n\tif (!tag.trim()) return \"Тег не может быть пустым\";\n\n\tif (editingIndex === undefined) {\n\t\t// Добавление нового тега\n\t\tif (allTags.includes(tag)) return \"Такой тег уже существует\";\n\t} else {\n\t\t// Редактирование существующего\n\t\tconst otherTags = allTags.filter((_, i) => i !== editingIndex);\n\t\tif (otherTags.includes(tag)) return \"Такой тег уже существует\";\n\t}\n\n\treturn true;\n};\n\nexport interface TagInputProps {\n\t/** Текущие выбранные опции (controlled режим) */\n\tvalue?: string[];\n\t/** Опции по умолчанию (uncontrolled режим) */\n\tdefaultValue?: string[];\n\t/** Callback при изменении выбранных опций */\n\tonChange?: (options: string[]) => void;\n\t/** Placeholder для input */\n\tplaceholder?: string;\n\t/** Отключить компонент */\n\treadonly?: boolean;\n\t/** CSS класс для контейнера */\n\tclassName?: string;\n\t/** Функция валидации тега. Если null - валидация отключена, если не передана - используется валидация по умолчанию */\n\tvalidateTag?: ((tag: string, allTags: string[], editingIndex?: number) => boolean | string) | null;\n\t/** Состояние ошибки */\n\tinvalid?: boolean;\n\t/** Кастомная функция рендера тега */\n\trenderOption?: (props: RenderTagProps) => React.ReactNode;\n}\n\n/**\n * Компонент для ввода и отображения тегов\n */\nexport const TagInput = React.forwardRef<HTMLDivElement, TagInputProps>(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tdefaultValue = [],\n\t\t\tonChange,\n\t\t\tplaceholder = \"Добавить тег...\",\n\t\t\treadonly = false,\n\t\t\tclassName,\n\t\t\tvalidateTag,\n\t\t\tinvalid,\n\t\t\trenderOption\n\t\t},\n\t\tref\n\t) => {\n\t\t// Состояние для ввода нового тега\n\t\tconst [inputValue, setInputValue] = useState(\"\");\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\t\t// Управление тегами\n\t\tconst [tags = [], setTags] = useControllableState<string[]>({ value, defaultValue, onChange });\n\n\t\tconst styles = tagInputStyles({ className, invalid });\n\t\tconst removeTag = useCallback(\n\t\t\t(index: number) => {\n\t\t\t\tif (readonly) return;\n\t\t\t\tsetTags(tags.filter((_, i) => i !== index));\n\t\t\t},\n\t\t\t[tags, setTags, readonly]\n\t\t);\n\n\t\t// Состояние для режима редактирования существующих тегов\n\t\tconst [editingIndex, setEditingIndex] = useState<number | null>(null);\n\t\tconst editingRef = useRef<HTMLDivElement>(null);\n\n\t\t/**\n\t\t * Функция валидации тега\n\t\t */\n\t\tconst validateTagValue = useCallback(\n\t\t\t(tag: string, editingIndex?: number): boolean => {\n\t\t\t\tif (validateTag === null) return true;\n\n\t\t\t\tconst validator = validateTag || defaultValidateTag;\n\t\t\t\tconst result = validator(tag, tags, editingIndex);\n\n\t\t\t\treturn result === true;\n\t\t\t},\n\t\t\t[validateTag, tags]\n\t\t);\n\n\t\t/**\n\t\t * Переключение в режим редактирования существующего тега\n\t\t */\n\t\tconst startEditing = useCallback(\n\t\t\t(index: number) => {\n\t\t\t\tif (readonly) return;\n\t\t\t\tsetEditingIndex(index);\n\t\t\t\t// Фокусируем элемент после обновления состояния\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (editingRef.current) {\n\t\t\t\t\t\t// Устанавливаем содержимое напрямую, без использования React state\n\t\t\t\t\t\teditingRef.current.textContent = tags[index];\n\t\t\t\t\t\teditingRef.current.focus();\n\t\t\t\t\t\t// Выделяем весь текст\n\t\t\t\t\t\tconst range = document.createRange();\n\t\t\t\t\t\trange.selectNodeContents(editingRef.current);\n\t\t\t\t\t\tconst selection = window.getSelection();\n\t\t\t\t\t\tselection?.removeAllRanges();\n\t\t\t\t\t\tselection?.addRange(range);\n\t\t\t\t\t}\n\t\t\t\t}, 0);\n\t\t\t},\n\t\t\t[tags, setEditingIndex, readonly]\n\t\t);\n\n\t\t/**\n\t\t * Отмена редактирования тега\n\t\t */\n\t\tconst cancelEditing = useCallback(() => {\n\t\t\tsetEditingIndex(null);\n\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\n\t\t}, [setEditingIndex]);\n\n\t\t/**\n\t\t * Обработчик нажатия Enter на теге: переключает текущий тег в режим редактирования\n\t\t */\n\t\tconst onEnter = useCallback((_: string, index: number) => startEditing(index), [startEditing]);\n\n\t\tconst handleDeleteTag = useCallback((_: string, index: number) => removeTag(index), [removeTag]);\n\n\t\t/**\n\t\t * Хук для навигации по тегам с помощью клавиатуры (вперед/назад)\n\t\t */\n\t\tconst { handleKeyDown: handleTagsKeyDown, isFocused } = useItemsKeyboardNavigation({\n\t\t\titems: tags,\n\t\t\tonEnter,\n\t\t\tonDelete: handleDeleteTag,\n\t\t\tcycleNavigation: true\n\t\t});\n\n\t\t/**\n\t\t * Сохранение изменений в текущем теге\n\t\t */\n\t\tconst saveEditing = useCallback(() => {\n\t\t\tif (editingIndex !== null && editingRef.current) {\n\t\t\t\tconst newValue = editingRef.current.textContent?.trim() || \"\";\n\n\t\t\t\tif (newValue && validateTagValue(newValue, editingIndex)) {\n\t\t\t\t\tconst newTags = [...tags];\n\t\t\t\t\tnewTags[editingIndex] = newValue;\n\t\t\t\t\tsetTags(newTags);\n\t\t\t\t\tsetEditingIndex(null);\n\t\t\t\t\t// Возвращаем фокус в input и устанавливаем фокус на отредактированный элемент\n\t\t\t\t\tsetTimeout(() => inputRef.current?.focus(), 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}, [editingIndex, editingRef, tags, setEditingIndex, setTags, validateTagValue]);\n\n\t\t/**\n\t\t * Добавление нового тега\n\t\t */\n\t\tconst addNewTag = useCallback(\n\t\t\t(tagValue: string) => {\n\t\t\t\tconst trimmedTag = tagValue.trim();\n\t\t\t\tif (trimmedTag && validateTagValue(trimmedTag)) {\n\t\t\t\t\tsetTags([...tags, trimmedTag]);\n\t\t\t\t\tsetInputValue(\"\");\n\t\t\t\t}\n\t\t\t},\n\t\t\t[tags, setTags, setInputValue, validateTagValue]\n\t\t);\n\n\t\t/**\n\t\t * Обработчик нажатия клавиш на input:\n\t\t * - Если нажат Enter и input не пустой, добавляет новый тег\n\t\t * - Если input пустой, обрабатывает навигацию по тегам\n\t\t */\n\t\tconst handleInputKeyDown = useCallback(\n\t\t\t(e: KeyboardEvent<HTMLInputElement>) => {\n\t\t\t\tif (e.key === \"Enter\" && inputValue.trim()) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\taddNewTag(inputValue);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!inputValue.trim()) {\n\t\t\t\t\thandleTagsKeyDown(e);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[inputValue, handleTagsKeyDown, addNewTag]\n\t\t);\n\n\t\t/**\n\t\t * Обработчик потери фокуса input - добавляет тег если он не пустой\n\t\t */\n\t\tconst handleInputBlur = useCallback(() => {\n\t\t\tif (inputValue.trim()) {\n\t\t\t\taddNewTag(inputValue);\n\t\t\t}\n\t\t}, [inputValue, addNewTag]);\n\n\t\tconst handleEditingKeyDown = useCallback(\n\t\t\t(e: KeyboardEvent<HTMLDivElement>) => {\n\t\t\t\tif (e.key === \"Enter\") {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsaveEditing();\n\t\t\t\t} else if (e.key === \"Escape\") {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tcancelEditing();\n\t\t\t\t}\n\t\t\t},\n\t\t\t[saveEditing, cancelEditing]\n\t\t);\n\n\t\tconst renderTags = useCallback(() => {\n\t\t\treturn tags.map((tag, index) => {\n\t\t\t\tif (editingIndex === index) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<InputGroupContentEditable\n\t\t\t\t\t\t\tkey={`editing-${index}`}\n\t\t\t\t\t\t\tref={editingRef}\n\t\t\t\t\t\t\tclassName={editingDivStyles()}\n\t\t\t\t\t\t\tonKeyDown={handleEditingKeyDown}\n\t\t\t\t\t\t\tonBlur={cancelEditing}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (renderOption) {\n\t\t\t\t\tconst item = renderOption({\n\t\t\t\t\t\ttag,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tonClose: () => removeTag(index),\n\t\t\t\t\t\tonEdit: () => startEditing(index),\n\t\t\t\t\t\tisFocused: !readonly && isFocused(index),\n\t\t\t\t\t\treadonly\n\t\t\t\t\t});\n\t\t\t\t\tif (item !== undefined) {\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<SearchSelectTag\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tonLabelClick={() => startEditing(index)}\n\t\t\t\t\t\tonClose={() => removeTag(index)}\n\t\t\t\t\t\treadonly={readonly}\n\t\t\t\t\t\tisFocused={!readonly && isFocused(index)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tag}\n\t\t\t\t\t</SearchSelectTag>\n\t\t\t\t);\n\t\t\t});\n\t\t}, [\n\t\t\teditingIndex,\n\t\t\teditingRef,\n\t\t\thandleEditingKeyDown,\n\t\t\tcancelEditing,\n\t\t\ttags,\n\t\t\treadonly,\n\t\t\tisFocused,\n\t\t\tremoveTag,\n\t\t\tstartEditing,\n\t\t\trenderOption\n\t\t]);\n\n\t\treturn (\n\t\t\t<InputGroup ref={ref} className={styles.base()}>\n\t\t\t\t{renderTags()}\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\tonChange={(e) => setInputValue(e.target.value)}\n\t\t\t\t\tonKeyDown={handleInputKeyDown}\n\t\t\t\t\tonBlur={handleInputBlur}\n\t\t\t\t\tplaceholder={readonly ? \"\" : placeholder}\n\t\t\t\t\tclassName={inputStyles()}\n\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\taria-invalid={invalid}\n\t\t\t\t/>\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nTagInput.displayName = \"TagInput\";\n"],"names":["tagInputStyles","tv","selectTriggerStyles","inputStyles","editingDivStyles","defaultValidateTag","tag","allTags","editingIndex","_","i","TagInput","React","value","defaultValue","onChange","placeholder","readonly","className","validateTag","invalid","renderOption","ref","inputValue","setInputValue","useState","inputRef","useRef","tags","setTags","useControllableState","styles","removeTag","useCallback","index","setEditingIndex","editingRef","validateTagValue","startEditing","range","selection","cancelEditing","onEnter","handleDeleteTag","handleTagsKeyDown","isFocused","useItemsKeyboardNavigation","saveEditing","newValue","newTags","addNewTag","tagValue","trimmedTag","handleInputKeyDown","e","handleInputBlur","handleEditingKeyDown","renderTags","jsx","InputGroupContentEditable","item","SearchSelectTag","InputGroup","InputGroupInput"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { u as
|
|
6
|
-
import
|
|
7
|
-
const
|
|
8
|
-
extend:
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import l, { useRef as m } from "react";
|
|
3
|
+
import { T as u } from "../index-BVqs-uqP.js";
|
|
4
|
+
import { u as d } from "../useMergeRefs-qoKniYqT.js";
|
|
5
|
+
import { u as x, a as c } from "../inputBaseStyles-CZwQWSub.js";
|
|
6
|
+
import p from "react-textarea-autosize";
|
|
7
|
+
const z = u({
|
|
8
|
+
extend: c,
|
|
9
9
|
base: "min-h-14",
|
|
10
10
|
variants: {
|
|
11
11
|
resize: {
|
|
@@ -18,200 +18,41 @@ const _ = k({
|
|
|
18
18
|
defaultVariants: {
|
|
19
19
|
resize: "vertical"
|
|
20
20
|
}
|
|
21
|
-
}),
|
|
22
|
-
({ className:
|
|
23
|
-
const
|
|
24
|
-
return
|
|
21
|
+
}), y = l.forwardRef(
|
|
22
|
+
({ className: r, error: e, resize: t, ...s }, o) => {
|
|
23
|
+
const a = m(null), i = d(a, o);
|
|
24
|
+
return x(a, e), /* @__PURE__ */ n(
|
|
25
25
|
"textarea",
|
|
26
26
|
{
|
|
27
|
-
className:
|
|
28
|
-
ref:
|
|
27
|
+
className: z({ resize: t, className: r }),
|
|
28
|
+
ref: i,
|
|
29
29
|
"aria-invalid": !!e,
|
|
30
|
-
...
|
|
30
|
+
...s
|
|
31
31
|
}
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
for (var e = 1; e < arguments.length; e++) {
|
|
39
|
-
var r = arguments[e];
|
|
40
|
-
for (var t in r) ({}).hasOwnProperty.call(r, t) && (n[t] = r[t]);
|
|
41
|
-
}
|
|
42
|
-
return n;
|
|
43
|
-
}, w.apply(null, arguments);
|
|
44
|
-
}
|
|
45
|
-
function G(n, e) {
|
|
46
|
-
if (n == null) return {};
|
|
47
|
-
var r = {};
|
|
48
|
-
for (var t in n) if ({}.hasOwnProperty.call(n, t)) {
|
|
49
|
-
if (e.indexOf(t) !== -1) continue;
|
|
50
|
-
r[t] = n[t];
|
|
51
|
-
}
|
|
52
|
-
return r;
|
|
53
|
-
}
|
|
54
|
-
var V = P, Y = function(e) {
|
|
55
|
-
var r = m.useRef(e);
|
|
56
|
-
return V(function() {
|
|
57
|
-
r.current = e;
|
|
58
|
-
}), r;
|
|
59
|
-
}, T = function(e, r) {
|
|
60
|
-
if (typeof e == "function") {
|
|
61
|
-
e(r);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
e.current = r;
|
|
65
|
-
}, q = function(e, r) {
|
|
66
|
-
var t = m.useRef();
|
|
67
|
-
return m.useCallback(function(i) {
|
|
68
|
-
e.current = i, t.current && T(t.current, null), t.current = r, r && T(r, i);
|
|
69
|
-
}, [r]);
|
|
70
|
-
}, E = {
|
|
71
|
-
"min-height": "0",
|
|
72
|
-
"max-height": "none",
|
|
73
|
-
height: "0",
|
|
74
|
-
visibility: "hidden",
|
|
75
|
-
overflow: "hidden",
|
|
76
|
-
position: "absolute",
|
|
77
|
-
"z-index": "-1000",
|
|
78
|
-
top: "0",
|
|
79
|
-
right: "0",
|
|
80
|
-
display: "block"
|
|
81
|
-
}, U = function(e) {
|
|
82
|
-
Object.keys(E).forEach(function(r) {
|
|
83
|
-
e.style.setProperty(r, E[r], "important");
|
|
84
|
-
});
|
|
85
|
-
}, F = U, a = null, W = function(e, r) {
|
|
86
|
-
var t = e.scrollHeight;
|
|
87
|
-
return r.sizingStyle.boxSizing === "border-box" ? t + r.borderSize : t - r.paddingSize;
|
|
88
|
-
};
|
|
89
|
-
function X(n, e, r, t) {
|
|
90
|
-
r === void 0 && (r = 1), t === void 0 && (t = 1 / 0), a || (a = document.createElement("textarea"), a.setAttribute("tabindex", "-1"), a.setAttribute("aria-hidden", "true"), F(a)), a.parentNode === null && document.body.appendChild(a);
|
|
91
|
-
var i = n.paddingSize, u = n.borderSize, o = n.sizingStyle, f = o.boxSizing;
|
|
92
|
-
Object.keys(o).forEach(function(l) {
|
|
93
|
-
var x = l;
|
|
94
|
-
a.style[x] = o[x];
|
|
95
|
-
}), F(a), a.value = e;
|
|
96
|
-
var d = W(a, n);
|
|
97
|
-
a.value = e, d = W(a, n), a.value = "x";
|
|
98
|
-
var v = a.scrollHeight - i, h = v * r;
|
|
99
|
-
f === "border-box" && (h = h + i + u), d = Math.max(h, d);
|
|
100
|
-
var g = v * t;
|
|
101
|
-
return f === "border-box" && (g = g + i + u), d = Math.min(g, d), [d, v];
|
|
102
|
-
}
|
|
103
|
-
var A = function() {
|
|
104
|
-
}, Z = function(e, r) {
|
|
105
|
-
return e.reduce(function(t, i) {
|
|
106
|
-
return t[i] = r[i], t;
|
|
107
|
-
}, {});
|
|
108
|
-
}, D = [
|
|
109
|
-
"borderBottomWidth",
|
|
110
|
-
"borderLeftWidth",
|
|
111
|
-
"borderRightWidth",
|
|
112
|
-
"borderTopWidth",
|
|
113
|
-
"boxSizing",
|
|
114
|
-
"fontFamily",
|
|
115
|
-
"fontSize",
|
|
116
|
-
"fontStyle",
|
|
117
|
-
"fontWeight",
|
|
118
|
-
"letterSpacing",
|
|
119
|
-
"lineHeight",
|
|
120
|
-
"paddingBottom",
|
|
121
|
-
"paddingLeft",
|
|
122
|
-
"paddingRight",
|
|
123
|
-
"paddingTop",
|
|
124
|
-
// non-standard
|
|
125
|
-
"tabSize",
|
|
126
|
-
"textIndent",
|
|
127
|
-
// non-standard
|
|
128
|
-
"textRendering",
|
|
129
|
-
"textTransform",
|
|
130
|
-
"width",
|
|
131
|
-
"wordBreak",
|
|
132
|
-
"wordSpacing",
|
|
133
|
-
"scrollbarGutter"
|
|
134
|
-
], J = !!document.documentElement.currentStyle, K = function(e) {
|
|
135
|
-
var r = window.getComputedStyle(e);
|
|
136
|
-
if (r === null)
|
|
137
|
-
return null;
|
|
138
|
-
var t = Z(D, r), i = t.boxSizing;
|
|
139
|
-
if (i === "")
|
|
140
|
-
return null;
|
|
141
|
-
J && i === "border-box" && (t.width = parseFloat(t.width) + parseFloat(t.borderRightWidth) + parseFloat(t.borderLeftWidth) + parseFloat(t.paddingRight) + parseFloat(t.paddingLeft) + "px");
|
|
142
|
-
var u = parseFloat(t.paddingBottom) + parseFloat(t.paddingTop), o = parseFloat(t.borderBottomWidth) + parseFloat(t.borderTopWidth);
|
|
143
|
-
return {
|
|
144
|
-
sizingStyle: t,
|
|
145
|
-
paddingSize: u,
|
|
146
|
-
borderSize: o
|
|
147
|
-
};
|
|
148
|
-
}, Q = K;
|
|
149
|
-
function L(n, e, r) {
|
|
150
|
-
var t = Y(r);
|
|
151
|
-
c.useLayoutEffect(function() {
|
|
152
|
-
var i = function(o) {
|
|
153
|
-
return t.current(o);
|
|
154
|
-
};
|
|
155
|
-
if (n)
|
|
156
|
-
return n.addEventListener(e, i), function() {
|
|
157
|
-
return n.removeEventListener(e, i);
|
|
158
|
-
};
|
|
159
|
-
}, []);
|
|
160
|
-
}
|
|
161
|
-
var ee = function(e, r) {
|
|
162
|
-
L(document.body, "reset", function(t) {
|
|
163
|
-
e.current.form === t.target && r(t);
|
|
164
|
-
});
|
|
165
|
-
}, te = function(e) {
|
|
166
|
-
L(window, "resize", e);
|
|
167
|
-
}, re = function(e) {
|
|
168
|
-
L(document.fonts, "loadingdone", e);
|
|
169
|
-
}, ne = ["cacheMeasurements", "maxRows", "minRows", "onChange", "onHeightChange"], ie = function(e, r) {
|
|
170
|
-
var t = e.cacheMeasurements, i = e.maxRows, u = e.minRows, o = e.onChange, f = o === void 0 ? A : o, d = e.onHeightChange, v = d === void 0 ? A : d, h = G(e, ne), g = h.value !== void 0, l = c.useRef(null), x = q(l, r), C = c.useRef(0), S = c.useRef(), p = function() {
|
|
171
|
-
var s = l.current, z = t && S.current ? S.current : Q(s);
|
|
172
|
-
if (z) {
|
|
173
|
-
S.current = z;
|
|
174
|
-
var H = X(z, s.value || s.placeholder || "x", u, i), b = H[0], M = H[1];
|
|
175
|
-
C.current !== b && (C.current = b, s.style.setProperty("height", b + "px", "important"), v(b, {
|
|
176
|
-
rowHeight: M
|
|
177
|
-
}));
|
|
178
|
-
}
|
|
179
|
-
}, I = function(s) {
|
|
180
|
-
g || p(), f(s);
|
|
181
|
-
};
|
|
182
|
-
return c.useLayoutEffect(p), ee(l, function() {
|
|
183
|
-
if (!g) {
|
|
184
|
-
var y = l.current.value;
|
|
185
|
-
requestAnimationFrame(function() {
|
|
186
|
-
var s = l.current;
|
|
187
|
-
s && y !== s.value && p();
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
}), te(p), re(p), /* @__PURE__ */ c.createElement("textarea", w({}, h, {
|
|
191
|
-
onChange: I,
|
|
192
|
-
ref: x
|
|
193
|
-
}));
|
|
194
|
-
}, ae = /* @__PURE__ */ c.forwardRef(ie);
|
|
195
|
-
const oe = k({
|
|
196
|
-
extend: B,
|
|
35
|
+
y.displayName = "Textarea";
|
|
36
|
+
const R = u({
|
|
37
|
+
extend: c,
|
|
197
38
|
base: "resize-none leading-[1.125rem]"
|
|
198
|
-
}),
|
|
199
|
-
({ className:
|
|
200
|
-
const
|
|
201
|
-
|
|
39
|
+
}), g = l.forwardRef(
|
|
40
|
+
({ className: r, minRows: e = 2, error: t, ...s }, o) => {
|
|
41
|
+
const a = m(null), i = d(a, o);
|
|
42
|
+
x(a, t);
|
|
202
43
|
const f = {
|
|
203
|
-
className:
|
|
204
|
-
ref:
|
|
205
|
-
"aria-invalid": !!
|
|
44
|
+
className: R({ className: r }),
|
|
45
|
+
ref: i,
|
|
46
|
+
"aria-invalid": !!t,
|
|
206
47
|
minRows: e,
|
|
207
|
-
...
|
|
48
|
+
...s
|
|
208
49
|
};
|
|
209
|
-
return typeof document > "u" ? /* @__PURE__ */
|
|
50
|
+
return typeof document > "u" ? /* @__PURE__ */ n("textarea", { ...f, rows: e }) : /* @__PURE__ */ n(p, { ...f });
|
|
210
51
|
}
|
|
211
52
|
);
|
|
212
|
-
|
|
53
|
+
g.displayName = "AutogrowTextarea";
|
|
213
54
|
export {
|
|
214
|
-
|
|
215
|
-
|
|
55
|
+
g as AutogrowTextarea,
|
|
56
|
+
y as Textarea
|
|
216
57
|
};
|
|
217
58
|
//# sourceMappingURL=textarea.js.map
|