dgz-ui 1.4.7 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/breadcrumb/index.cjs.js +1 -1
  2. package/dist/breadcrumb/index.es.js +1 -1
  3. package/dist/carousel/index.cjs.js.map +1 -1
  4. package/dist/carousel/index.es.js.map +1 -1
  5. package/dist/chunks/alert-dialog-CI_hZyxN.es.js.map +1 -1
  6. package/dist/chunks/alert-dialog-CYT3LDhH.cjs.js.map +1 -1
  7. package/dist/chunks/{breadcrumb-RLwumNZG.cjs.js → breadcrumb-BoUD4-AY.cjs.js} +2 -2
  8. package/dist/chunks/breadcrumb-BoUD4-AY.cjs.js.map +1 -0
  9. package/dist/chunks/{breadcrumb-D-Wgwp2Z.es.js → breadcrumb-CRK9Ctmz.es.js} +6 -6
  10. package/dist/chunks/breadcrumb-CRK9Ctmz.es.js.map +1 -0
  11. package/dist/chunks/card-B87RYuvO.es.js.map +1 -1
  12. package/dist/chunks/card-Dokrjefn.cjs.js.map +1 -1
  13. package/dist/chunks/collapsible-CBOSWBKB.cjs.js.map +1 -1
  14. package/dist/chunks/collapsible-Ddd6kxXS.es.js.map +1 -1
  15. package/dist/chunks/dialog-B3q0NLcE.es.js.map +1 -1
  16. package/dist/chunks/dialog-OejLEg29.cjs.js.map +1 -1
  17. package/dist/chunks/dropdown-menu-BNURsvIJ.cjs.js.map +1 -1
  18. package/dist/chunks/dropdown-menu-CJTcrFP2.es.js.map +1 -1
  19. package/dist/chunks/pagination-CLm98Oot.es.js.map +1 -1
  20. package/dist/chunks/pagination-DsZd3LTv.cjs.js.map +1 -1
  21. package/dist/chunks/popover-ChtTV2vy.es.js.map +1 -1
  22. package/dist/chunks/popover-cRDGBSyg.cjs.js.map +1 -1
  23. package/dist/chunks/scroll-area-sLp4wPce.cjs.js.map +1 -1
  24. package/dist/chunks/scroll-area-x2hiTYmL.es.js.map +1 -1
  25. package/dist/chunks/separator-DndNTVv8.es.js.map +1 -1
  26. package/dist/chunks/separator-uzP1VAwc.cjs.js.map +1 -1
  27. package/dist/chunks/skeleton-DV_2OytH.es.js.map +1 -1
  28. package/dist/chunks/skeleton-ZHnXbbz7.cjs.js.map +1 -1
  29. package/dist/chunks/table-C-g7CjMt.cjs.js.map +1 -1
  30. package/dist/chunks/table-QbNlEa1M.es.js.map +1 -1
  31. package/dist/chunks/tabs-BNEY7wMF.cjs.js.map +1 -1
  32. package/dist/chunks/tabs-DUuliV4A.es.js.map +1 -1
  33. package/dist/chunks/textarea-C2I19p_j.cjs.js.map +1 -1
  34. package/dist/chunks/textarea-D9gE4ALW.es.js.map +1 -1
  35. package/dist/chunks/timepicker-Ba47st2A.cjs.js.map +1 -1
  36. package/dist/chunks/timepicker-tBjjq8Ap.es.js.map +1 -1
  37. package/dist/chunks/tooltip-DD-snel0.cjs.js.map +1 -1
  38. package/dist/chunks/tooltip-DHg9332v.es.js.map +1 -1
  39. package/dist/index.cjs.js +1 -1
  40. package/dist/index.es.js +1 -1
  41. package/dist/progress/index.cjs.js.map +1 -1
  42. package/dist/progress/index.es.js.map +1 -1
  43. package/dist/styles.css +1 -1
  44. package/dist/types/stories/Button.d.ts +15 -0
  45. package/dist/types/stories/Button.d.ts.map +1 -0
  46. package/dist/types/stories/Button.stories.d.ts +24 -0
  47. package/dist/types/stories/Button.stories.d.ts.map +1 -0
  48. package/dist/types/stories/Header.d.ts +12 -0
  49. package/dist/types/stories/Header.d.ts.map +1 -0
  50. package/dist/types/stories/Header.stories.d.ts +19 -0
  51. package/dist/types/stories/Header.stories.d.ts.map +1 -0
  52. package/dist/types/stories/Page.d.ts +3 -0
  53. package/dist/types/stories/Page.d.ts.map +1 -0
  54. package/dist/types/stories/Page.stories.d.ts +13 -0
  55. package/dist/types/stories/Page.stories.d.ts.map +1 -0
  56. package/dist/types/types/element-data.type.d.ts +4 -0
  57. package/dist/types/types/element-data.type.d.ts.map +1 -1
  58. package/dist/types/ui/alert-dialog/alert-dialog.d.ts +8 -0
  59. package/dist/types/ui/alert-dialog/alert-dialog.d.ts.map +1 -1
  60. package/dist/types/ui/breadcrumb/breadcrumb.d.ts +6 -4
  61. package/dist/types/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
  62. package/dist/types/ui/calendar/datepicker.d.ts +1 -1
  63. package/dist/types/ui/calendar/timepicker.d.ts +5 -2
  64. package/dist/types/ui/calendar/timepicker.d.ts.map +1 -1
  65. package/dist/types/ui/card/card.d.ts +8 -0
  66. package/dist/types/ui/card/card.d.ts.map +1 -1
  67. package/dist/types/ui/carousel/carousel.d.ts +53 -0
  68. package/dist/types/ui/carousel/carousel.d.ts.map +1 -1
  69. package/dist/types/ui/collapsible/collapsible.d.ts +3 -0
  70. package/dist/types/ui/collapsible/collapsible.d.ts.map +1 -1
  71. package/dist/types/ui/dialog/dialog.d.ts +19 -0
  72. package/dist/types/ui/dialog/dialog.d.ts.map +1 -1
  73. package/dist/types/ui/dropdown/dropdown-menu.d.ts +18 -0
  74. package/dist/types/ui/dropdown/dropdown-menu.d.ts.map +1 -1
  75. package/dist/types/ui/form/checkbox.d.ts +3 -1
  76. package/dist/types/ui/form/checkbox.d.ts.map +1 -1
  77. package/dist/types/ui/form/input.d.ts +13 -0
  78. package/dist/types/ui/form/input.d.ts.map +1 -1
  79. package/dist/types/ui/form/label.d.ts +1 -1
  80. package/dist/types/ui/form/radio-group.d.ts +2 -1
  81. package/dist/types/ui/form/radio-group.d.ts.map +1 -1
  82. package/dist/types/ui/form/select.d.ts +43 -0
  83. package/dist/types/ui/form/select.d.ts.map +1 -1
  84. package/dist/types/ui/form/switch.d.ts +3 -1
  85. package/dist/types/ui/form/switch.d.ts.map +1 -1
  86. package/dist/types/ui/form/textarea.d.ts +1 -0
  87. package/dist/types/ui/form/textarea.d.ts.map +1 -1
  88. package/dist/types/ui/pagination/pagination.d.ts +7 -7
  89. package/dist/types/ui/popover/popover.d.ts +3 -1
  90. package/dist/types/ui/popover/popover.d.ts.map +1 -1
  91. package/dist/types/ui/progress/progress.d.ts +1 -1
  92. package/dist/types/ui/scroll-area/scroll-area.d.ts +2 -2
  93. package/dist/types/ui/separator/separator.d.ts +1 -1
  94. package/dist/types/ui/skeleton/skeleton.d.ts +1 -0
  95. package/dist/types/ui/skeleton/skeleton.d.ts.map +1 -1
  96. package/dist/types/ui/tab/tabs.d.ts +3 -1
  97. package/dist/types/ui/tab/tabs.d.ts.map +1 -1
  98. package/dist/types/ui/table/table.d.ts +8 -0
  99. package/dist/types/ui/table/table.d.ts.map +1 -1
  100. package/dist/types/ui/tooltip/tooltip.d.ts +1 -0
  101. package/dist/types/ui/tooltip/tooltip.d.ts.map +1 -1
  102. package/package.json +17 -3
  103. package/dist/chunks/breadcrumb-D-Wgwp2Z.es.js.map +0 -1
  104. package/dist/chunks/breadcrumb-RLwumNZG.cjs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area-x2hiTYmL.es.js","sources":["../../node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../src/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * ScrollArea - Container providing custom scrollbars for overflowing content.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the scroll area.\n * @param {React.ReactNode} [props.children] - The content to be rendered inside the scroll area.\n */\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-auto', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\n/**\n * ScrollBar - Styled scrollbar that adapts to orientation.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the scrollbar.\n * @param {'vertical' | 'horizontal'} [props.orientation='vertical'] - The orientation of the scrollbar.\n */\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none transition-colors select-none',\n orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"bg-border relative flex-1 rounded-full\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n"],"names":["useStateMachine","initialState","machine","React","state","event","SCROLL_AREA_NAME","createScrollAreaContext","createContextScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","React2","props","forwardedRef","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","useComposedRefs","node","direction","useDirection","jsx","Primitive","VIEWPORT_NAME","ScrollAreaViewport","children","nonce","viewportProps","context","ref","jsxs","Fragment","SCROLLBAR_NAME","ScrollAreaScrollbar","forceMount","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","Presence","debounceScrollEnd","useDebounceCallback","send","scrollDirection","prevScrollPos","handleScroll","scrollPos","composeEventHandlers","handleResize","isOverflowX","isOverflowY","useResizeObserver","orientation","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","offset","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","composeRefs","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","useCallbackRef","handleThumbPositionChange","handleDragScroll","x","y","handleWheel","element","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","style","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","_a","width2","value","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","clamp","input","output","handler","prevPosition","rAF","loop","position","isHorizontalScroll","isVerticalScroll","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","Root","Viewport","Corner","className","ScrollAreaPrimitive.Root","cn","ScrollAreaPrimitive.Viewport","ScrollBar","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"scroll-area-x2hiTYmL.es.js","sources":["../../node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../../src/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * ScrollArea - Container providing custom scrollbars for overflowing content.\n * @returns {JSX.Element} The rendered ScrollArea component.\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the scroll area.\n * @param {React.ReactNode} [props.children] - The content to be rendered inside the scroll area.\n */\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn('relative overflow-auto', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\n/**\n * ScrollBar - Styled scrollbar that adapts to orientation.\n * @returns {JSX.Element} The rendered ScrollBar component.\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the scrollbar.\n * @param {'vertical' | 'horizontal'} [props.orientation='vertical'] - The orientation of the scrollbar.\n */\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n 'flex touch-none transition-colors select-none',\n orientation === 'vertical' &&\n 'h-full w-2.5 border-l border-l-transparent p-[1px]',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-[1px]',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"bg-border relative flex-1 rounded-full\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n"],"names":["useStateMachine","initialState","machine","React","state","event","SCROLL_AREA_NAME","createScrollAreaContext","createContextScope","ScrollAreaProvider","useScrollAreaContext","ScrollArea","React2","props","forwardedRef","__scopeScrollArea","type","dir","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","content","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","composedRefs","useComposedRefs","node","direction","useDirection","jsx","Primitive","VIEWPORT_NAME","ScrollAreaViewport","children","nonce","viewportProps","context","ref","jsxs","Fragment","SCROLLBAR_NAME","ScrollAreaScrollbar","forceMount","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","visible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","Presence","debounceScrollEnd","useDebounceCallback","send","scrollDirection","prevScrollPos","handleScroll","scrollPos","composeEventHandlers","handleResize","isOverflowX","isOverflowY","useResizeObserver","orientation","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","commonProps","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","offset","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","composeRefs","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","useCallbackRef","handleThumbPositionChange","handleDragScroll","x","y","handleWheel","element","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","style","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","listener","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","_a","width2","value","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","clamp","input","output","handler","prevPosition","rAF","loop","position","isHorizontalScroll","isVerticalScroll","callback","delay","handleCallback","debounceTimerRef","useLayoutEffect","resizeObserver","Root","Viewport","Corner","className","ScrollAreaPrimitive.Root","cn","ScrollAreaPrimitive.Viewport","ScrollBar","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"separator-DndNTVv8.es.js","sources":["../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/ui/separator/separator.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Separator - Visual divider for groups of content.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the separator.\n * @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - The orientation of the separator.\n * @param {boolean} [props.decorative=true] - Whether the separator is decorative or semantic.\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"names":["NODES","Primitive","primitive","node","Slot","createSlot","Node","React","props","forwardedRef","asChild","primitiveProps","Comp","jsx","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","className","ref","SeparatorPrimitive.Root","cn"],"mappings":";;;;;AAKA,IAAIA,IAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACIC,IAAYD,EAAM,OAAO,CAACE,GAAWC,MAAS;AAChD,QAAMC,IAAOC,EAAW,aAAaF,CAAI,EAAE,GACrCG,IAAOC,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACrD,UAAM,EAAE,SAAAC,GAAS,GAAGC,EAAc,IAAKH,GACjCI,IAAOF,IAAUN,IAAOD;AAC9B,WAAI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,UAAU,CAAC,IAAI,KAEZ,gBAAAU,EAAID,GAAM,EAAE,GAAGD,GAAgB,KAAKF,GAAc;AAAA,EAC3E,CAAC;AACD,SAAAH,EAAK,cAAc,aAAaH,CAAI,IAC7B,EAAE,GAAGD,GAAW,CAACC,CAAI,GAAGG,EAAI;AACrC,GAAG,EAAE,GChCDQ,IAAO,aACPC,IAAsB,cACtBC,IAAe,CAAC,cAAc,UAAU,GACxCC,IAAYV,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACxD,QAAM,EAAE,YAAAS,GAAY,aAAaC,IAAkBJ,GAAqB,GAAGK,EAAQ,IAAKZ,GAClFa,IAAcC,EAAmBH,CAAe,IAAIA,IAAkBJ,GAEtEQ,IAAgBL,IAAa,EAAE,MAAM,WAAW,EAAE,oBADhCG,MAAgB,aAAaA,IAAc,QAC0B,MAAM,YAAW;AAC9G,SAAuB,gBAAAR;AAAA,IACrBZ,EAAU;AAAA,IACV;AAAA,MACE,oBAAoBoB;AAAA,MACpB,GAAGE;AAAA,MACH,GAAGH;AAAA,MACH,KAAKX;AAAA,IACX;AAAA,EACA;AACA,CAAC;AACDQ,EAAU,cAAcH;AACxB,SAASQ,EAAmBD,GAAa;AACvC,SAAOL,EAAa,SAASK,CAAW;AAC1C;AACA,IAAIG,IAAOP;ACdX,MAAMA,IAAYV,EAAM;AAAA,EAItB,CACE,EAAE,WAAAkB,GAAW,aAAAJ,IAAc,cAAc,YAAAH,IAAa,IAAM,GAAGV,KAC/DkB,MAEA,gBAAAb;AAAA,IAACc;AAAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,YAAAR;AAAA,MACA,aAAAG;AAAA,MACA,WAAWO;AAAA,QACT;AAAA,QACAP,MAAgB,eAAe,mBAAmB;AAAA,QAClDI;AAAA,MAAA;AAAA,MAED,GAAGjB;AAAA,IAAA;AAAA,EAAA;AAGV;AACAS,EAAU,cAAcU,EAAwB;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"separator-DndNTVv8.es.js","sources":["../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/ui/separator/separator.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Separator - Visual divider for groups of content.\n * @returns {JSX.Element} The rendered Separator component.\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the separator.\n * @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - The orientation of the separator.\n * @param {boolean} [props.decorative=true] - Whether the separator is decorative or semantic.\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"names":["NODES","Primitive","primitive","node","Slot","createSlot","Node","React","props","forwardedRef","asChild","primitiveProps","Comp","jsx","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","className","ref","SeparatorPrimitive.Root","cn"],"mappings":";;;;;AAKA,IAAIA,IAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACIC,IAAYD,EAAM,OAAO,CAACE,GAAWC,MAAS;AAChD,QAAMC,IAAOC,EAAW,aAAaF,CAAI,EAAE,GACrCG,IAAOC,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACrD,UAAM,EAAE,SAAAC,GAAS,GAAGC,EAAc,IAAKH,GACjCI,IAAOF,IAAUN,IAAOD;AAC9B,WAAI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,UAAU,CAAC,IAAI,KAEZ,gBAAAU,EAAID,GAAM,EAAE,GAAGD,GAAgB,KAAKF,GAAc;AAAA,EAC3E,CAAC;AACD,SAAAH,EAAK,cAAc,aAAaH,CAAI,IAC7B,EAAE,GAAGD,GAAW,CAACC,CAAI,GAAGG,EAAI;AACrC,GAAG,EAAE,GChCDQ,IAAO,aACPC,IAAsB,cACtBC,IAAe,CAAC,cAAc,UAAU,GACxCC,IAAYV,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACxD,QAAM,EAAE,YAAAS,GAAY,aAAaC,IAAkBJ,GAAqB,GAAGK,EAAQ,IAAKZ,GAClFa,IAAcC,EAAmBH,CAAe,IAAIA,IAAkBJ,GAEtEQ,IAAgBL,IAAa,EAAE,MAAM,WAAW,EAAE,oBADhCG,MAAgB,aAAaA,IAAc,QAC0B,MAAM,YAAW;AAC9G,SAAuB,gBAAAR;AAAA,IACrBZ,EAAU;AAAA,IACV;AAAA,MACE,oBAAoBoB;AAAA,MACpB,GAAGE;AAAA,MACH,GAAGH;AAAA,MACH,KAAKX;AAAA,IACX;AAAA,EACA;AACA,CAAC;AACDQ,EAAU,cAAcH;AACxB,SAASQ,EAAmBD,GAAa;AACvC,SAAOL,EAAa,SAASK,CAAW;AAC1C;AACA,IAAIG,IAAOP;ACdX,MAAMA,IAAYV,EAAM;AAAA,EAItB,CACE,EAAE,WAAAkB,GAAW,aAAAJ,IAAc,cAAc,YAAAH,IAAa,IAAM,GAAGV,KAC/DkB,MAEA,gBAAAb;AAAA,IAACc;AAAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,YAAAR;AAAA,MACA,aAAAG;AAAA,MACA,WAAWO;AAAA,QACT;AAAA,QACAP,MAAgB,eAAe,mBAAmB;AAAA,QAClDI;AAAA,MAAA;AAAA,MAED,GAAGjB;AAAA,IAAA;AAAA,EAAA;AAGV;AACAS,EAAU,cAAcU,EAAwB;","x_google_ignoreList":[0,1]}
@@ -1 +1 @@
1
- {"version":3,"file":"separator-uzP1VAwc.cjs.js","sources":["../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/ui/separator/separator.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Separator - Visual divider for groups of content.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the separator.\n * @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - The orientation of the separator.\n * @param {boolean} [props.decorative=true] - Whether the separator is decorative or semantic.\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"names":["NODES","Primitive","primitive","node","Slot","createSlot","Node","React","props","forwardedRef","asChild","primitiveProps","Comp","jsx","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","className","ref","SeparatorPrimitive.Root","cn"],"mappings":"geAKA,IAAIA,EAAQ,CACV,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,SACA,OACA,MACA,IACF,EACIC,EAAYD,EAAM,OAAO,CAACE,EAAWC,IAAS,CAChD,MAAMC,EAAOC,EAAAA,WAAW,aAAaF,CAAI,EAAE,EACrCG,EAAOC,EAAM,WAAW,CAACC,EAAOC,IAAiB,CACrD,KAAM,CAAE,QAAAC,EAAS,GAAGC,CAAc,EAAKH,EACjCI,EAAOF,EAAUN,EAAOD,EAC9B,OAAI,OAAO,OAAW,MACpB,OAAO,OAAO,IAAI,UAAU,CAAC,EAAI,IAEZU,EAAAA,IAAID,EAAM,CAAE,GAAGD,EAAgB,IAAKF,EAAc,CAC3E,CAAC,EACD,OAAAH,EAAK,YAAc,aAAaH,CAAI,GAC7B,CAAE,GAAGD,EAAW,CAACC,CAAI,EAAGG,CAAI,CACrC,EAAG,EAAE,EChCDQ,EAAO,YACPC,EAAsB,aACtBC,EAAe,CAAC,aAAc,UAAU,EACxCC,EAAYV,EAAM,WAAW,CAACC,EAAOC,IAAiB,CACxD,KAAM,CAAE,WAAAS,EAAY,YAAaC,EAAkBJ,EAAqB,GAAGK,CAAQ,EAAKZ,EAClFa,EAAcC,EAAmBH,CAAe,EAAIA,EAAkBJ,EAEtEQ,EAAgBL,EAAa,CAAE,KAAM,QAAW,CAAE,mBADhCG,IAAgB,WAAaA,EAAc,OAC0B,KAAM,WAAW,EAC9G,OAAuBR,EAAAA,IACrBZ,EAAU,IACV,CACE,mBAAoBoB,EACpB,GAAGE,EACH,GAAGH,EACH,IAAKX,CACX,CACA,CACA,CAAC,EACDQ,EAAU,YAAcH,EACxB,SAASQ,EAAmBD,EAAa,CACvC,OAAOL,EAAa,SAASK,CAAW,CAC1C,CACA,IAAIG,EAAOP,ECdX,MAAMA,EAAYV,EAAM,WAItB,CACE,CAAE,UAAAkB,EAAW,YAAAJ,EAAc,aAAc,WAAAH,EAAa,GAAM,GAAGV,GAC/DkB,IAEAb,EAAAA,IAACc,EAAA,CACC,IAAAD,EACA,WAAAR,EACA,YAAAG,EACA,UAAWO,EAAAA,GACT,qBACAP,IAAgB,aAAe,iBAAmB,iBAClDI,CAAA,EAED,GAAGjB,CAAA,CAAA,CAGV,EACAS,EAAU,YAAcU,EAAwB","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"separator-uzP1VAwc.cjs.js","sources":["../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/ui/separator/separator.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Separator - Visual divider for groups of content.\n * @returns {JSX.Element} The rendered Separator component.\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the separator.\n * @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - The orientation of the separator.\n * @param {boolean} [props.decorative=true] - Whether the separator is decorative or semantic.\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"names":["NODES","Primitive","primitive","node","Slot","createSlot","Node","React","props","forwardedRef","asChild","primitiveProps","Comp","jsx","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","className","ref","SeparatorPrimitive.Root","cn"],"mappings":"geAKA,IAAIA,EAAQ,CACV,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,SACA,OACA,MACA,IACF,EACIC,EAAYD,EAAM,OAAO,CAACE,EAAWC,IAAS,CAChD,MAAMC,EAAOC,EAAAA,WAAW,aAAaF,CAAI,EAAE,EACrCG,EAAOC,EAAM,WAAW,CAACC,EAAOC,IAAiB,CACrD,KAAM,CAAE,QAAAC,EAAS,GAAGC,CAAc,EAAKH,EACjCI,EAAOF,EAAUN,EAAOD,EAC9B,OAAI,OAAO,OAAW,MACpB,OAAO,OAAO,IAAI,UAAU,CAAC,EAAI,IAEZU,EAAAA,IAAID,EAAM,CAAE,GAAGD,EAAgB,IAAKF,EAAc,CAC3E,CAAC,EACD,OAAAH,EAAK,YAAc,aAAaH,CAAI,GAC7B,CAAE,GAAGD,EAAW,CAACC,CAAI,EAAGG,CAAI,CACrC,EAAG,EAAE,EChCDQ,EAAO,YACPC,EAAsB,aACtBC,EAAe,CAAC,aAAc,UAAU,EACxCC,EAAYV,EAAM,WAAW,CAACC,EAAOC,IAAiB,CACxD,KAAM,CAAE,WAAAS,EAAY,YAAaC,EAAkBJ,EAAqB,GAAGK,CAAQ,EAAKZ,EAClFa,EAAcC,EAAmBH,CAAe,EAAIA,EAAkBJ,EAEtEQ,EAAgBL,EAAa,CAAE,KAAM,QAAW,CAAE,mBADhCG,IAAgB,WAAaA,EAAc,OAC0B,KAAM,WAAW,EAC9G,OAAuBR,EAAAA,IACrBZ,EAAU,IACV,CACE,mBAAoBoB,EACpB,GAAGE,EACH,GAAGH,EACH,IAAKX,CACX,CACA,CACA,CAAC,EACDQ,EAAU,YAAcH,EACxB,SAASQ,EAAmBD,EAAa,CACvC,OAAOL,EAAa,SAASK,CAAW,CAC1C,CACA,IAAIG,EAAOP,ECdX,MAAMA,EAAYV,EAAM,WAItB,CACE,CAAE,UAAAkB,EAAW,YAAAJ,EAAc,aAAc,WAAAH,EAAa,GAAM,GAAGV,GAC/DkB,IAEAb,EAAAA,IAACc,EAAA,CACC,IAAAD,EACA,WAAAR,EACA,YAAAG,EACA,UAAWO,EAAAA,GACT,qBACAP,IAAgB,aAAe,iBAAmB,iBAClDI,CAAA,EAED,GAAGjB,CAAA,CAAA,CAGV,EACAS,EAAU,YAAcU,EAAwB","x_google_ignoreList":[0,1]}
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-DV_2OytH.es.js","sources":["../../src/ui/skeleton/skeleton.tsx"],"sourcesContent":["import { cn } from '../../lib';\n\n/**\n * Skeleton - Placeholder element to indicate loading content.\n * @param {string} [className] - Additional classes for the skeleton component.\n * @param {React.HTMLAttributes<HTMLDivElement>} [props] - Additional HTML attributes for the skeleton component.\n */\nexport function Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('bg-muted animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAOO,SAASA,EAAS;AAAA,EACvB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyC;AACvC,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,qCAAqCH,CAAS;AAAA,MAC3D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"skeleton-DV_2OytH.es.js","sources":["../../src/ui/skeleton/skeleton.tsx"],"sourcesContent":["import { cn } from '../../lib';\n\n/**\n * Skeleton - Placeholder element to indicate loading content.\n * @returns {JSX.Element} The rendered Skeleton component.\n * @param {string} [className] - Additional classes for the skeleton component.\n * @param {React.HTMLAttributes<HTMLDivElement>} [props] - Additional HTML attributes for the skeleton component.\n */\nexport function Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('bg-muted animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAQO,SAASA,EAAS;AAAA,EACvB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyC;AACvC,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,qCAAqCH,CAAS;AAAA,MAC3D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-ZHnXbbz7.cjs.js","sources":["../../src/ui/skeleton/skeleton.tsx"],"sourcesContent":["import { cn } from '../../lib';\n\n/**\n * Skeleton - Placeholder element to indicate loading content.\n * @param {string} [className] - Additional classes for the skeleton component.\n * @param {React.HTMLAttributes<HTMLDivElement>} [props] - Additional HTML attributes for the skeleton component.\n */\nexport function Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('bg-muted animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":"uFAOO,SAASA,EAAS,CACvB,UAAAC,EACA,GAAGC,CACL,EAAyC,CACvC,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GAAG,oCAAqCH,CAAS,EAC3D,GAAGC,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"skeleton-ZHnXbbz7.cjs.js","sources":["../../src/ui/skeleton/skeleton.tsx"],"sourcesContent":["import { cn } from '../../lib';\n\n/**\n * Skeleton - Placeholder element to indicate loading content.\n * @returns {JSX.Element} The rendered Skeleton component.\n * @param {string} [className] - Additional classes for the skeleton component.\n * @param {React.HTMLAttributes<HTMLDivElement>} [props] - Additional HTML attributes for the skeleton component.\n */\nexport function Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('bg-muted animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":"uFAQO,SAASA,EAAS,CACvB,UAAAC,EACA,GAAGC,CACL,EAAyC,CACvC,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GAAG,oCAAqCH,CAAS,EAC3D,GAAGC,CAAA,CAAA,CAGV"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-C-g7CjMt.cjs.js","sources":["../../src/ui/table/table.tsx"],"sourcesContent":["import {\n forwardRef,\n type HTMLAttributes,\n type TdHTMLAttributes,\n type ThHTMLAttributes,\n} from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Table - Semantic table container with default styling.\n */\nconst Table = forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n )\n);\nTable.displayName = 'Table';\n\n/**\n * TableHeader - Wrapper for the thead element.\n */\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\n/**\n * TableBody - Wrapper for the tbody element.\n */\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\n/**\n * TableFooter - Wrapper for the tfoot element.\n */\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\n/**\n * TableRow - Styled tr element.\n */\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\n/**\n * TableHead - Styled th element.\n */\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\n/**\n * TableCell - Styled td element.\n */\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\n/**\n * TableCaption - Styled caption element.\n */\nconst TableCaption = forwardRef<\n HTMLTableCaptionElement,\n HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"names":["Table","forwardRef","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":"0GAWMA,EAAQC,EAAAA,WACZ,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IACxBC,EAAAA,IAAC,QAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CAAA,CAGV,EACAH,EAAM,YAAc,QAKpB,MAAMO,EAAcN,EAAAA,WAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,UACzB,QAAA,CAAM,IAAAA,EAAU,UAAWE,EAAAA,GAAG,kBAAmBJ,CAAS,EAAI,GAAGC,EAAO,CAC1E,EACDI,EAAY,YAAc,cAK1B,MAAMC,EAAYP,EAAAA,WAGhB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,QAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,6BAA8BJ,CAAS,EACpD,GAAGC,CAAA,CACN,CACD,EACDK,EAAU,YAAc,YAKxB,MAAMC,EAAcR,EAAAA,WAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,QAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,0DACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDM,EAAY,YAAc,cAK1B,MAAMC,EAAWT,EAAAA,WAGf,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,8EACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDO,EAAS,YAAc,WAKvB,MAAMC,EAAYV,EAAAA,WAGhB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,mGACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDQ,EAAU,YAAc,YAKxB,MAAMC,EAAYX,EAAAA,WAGhB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,iDAAkDJ,CAAS,EACxE,GAAGC,CAAA,CACN,CACD,EACDS,EAAU,YAAc,YAKxB,MAAMC,EAAeZ,EAAAA,WAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,UAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,qCAAsCJ,CAAS,EAC5D,GAAGC,CAAA,CACN,CACD,EACDU,EAAa,YAAc"}
1
+ {"version":3,"file":"table-C-g7CjMt.cjs.js","sources":["../../src/ui/table/table.tsx"],"sourcesContent":["import {\n forwardRef,\n type HTMLAttributes,\n type TdHTMLAttributes,\n type ThHTMLAttributes,\n} from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Table - Semantic table container with default styling.\n * @returns {JSX.Element} The rendered Table component.\n */\nconst Table = forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n )\n);\nTable.displayName = 'Table';\n\n/**\n * TableHeader - Wrapper for the thead element.\n * @returns {JSX.Element} The rendered TableHeader component.\n */\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\n/**\n * TableBody - Wrapper for the tbody element.\n * @returns {JSX.Element} The rendered TableBody component.\n */\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\n/**\n * TableFooter - Wrapper for the tfoot element.\n * @returns {JSX.Element} The rendered TableFooter component.\n */\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\n/**\n * TableRow - Styled tr element.\n * @returns {JSX.Element} The rendered TableRow component.\n */\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\n/**\n * TableHead - Styled th element.\n * @returns {JSX.Element} The rendered TableHead component.\n */\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\n/**\n * TableCell - Styled td element.\n * @returns {JSX.Element} The rendered TableCell component.\n */\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\n/**\n * TableCaption - Styled caption element.\n * @returns {JSX.Element} The rendered TableCaption component.\n */\nconst TableCaption = forwardRef<\n HTMLTableCaptionElement,\n HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"names":["Table","forwardRef","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":"0GAYMA,EAAQC,EAAAA,WACZ,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IACxBC,EAAAA,IAAC,QAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CAAA,CAGV,EACAH,EAAM,YAAc,QAMpB,MAAMO,EAAcN,EAAAA,WAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,UACzB,QAAA,CAAM,IAAAA,EAAU,UAAWE,EAAAA,GAAG,kBAAmBJ,CAAS,EAAI,GAAGC,EAAO,CAC1E,EACDI,EAAY,YAAc,cAM1B,MAAMC,EAAYP,EAAAA,WAGhB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,QAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,6BAA8BJ,CAAS,EACpD,GAAGC,CAAA,CACN,CACD,EACDK,EAAU,YAAc,YAMxB,MAAMC,EAAcR,EAAAA,WAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,QAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,0DACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDM,EAAY,YAAc,cAM1B,MAAMC,EAAWT,EAAAA,WAGf,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,8EACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDO,EAAS,YAAc,WAMvB,MAAMC,EAAYV,EAAAA,WAGhB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,mGACAJ,CAAA,EAED,GAAGC,CAAA,CACN,CACD,EACDQ,EAAU,YAAc,YAMxB,MAAMC,EAAYX,EAAAA,WAGhB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,iDAAkDJ,CAAS,EACxE,GAAGC,CAAA,CACN,CACD,EACDS,EAAU,YAAc,YAMxB,MAAMC,EAAeZ,EAAAA,WAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC1BC,EAAAA,IAAC,UAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,qCAAsCJ,CAAS,EAC5D,GAAGC,CAAA,CACN,CACD,EACDU,EAAa,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-QbNlEa1M.es.js","sources":["../../src/ui/table/table.tsx"],"sourcesContent":["import {\n forwardRef,\n type HTMLAttributes,\n type TdHTMLAttributes,\n type ThHTMLAttributes,\n} from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Table - Semantic table container with default styling.\n */\nconst Table = forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n )\n);\nTable.displayName = 'Table';\n\n/**\n * TableHeader - Wrapper for the thead element.\n */\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\n/**\n * TableBody - Wrapper for the tbody element.\n */\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\n/**\n * TableFooter - Wrapper for the tfoot element.\n */\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\n/**\n * TableRow - Styled tr element.\n */\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\n/**\n * TableHead - Styled th element.\n */\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\n/**\n * TableCell - Styled td element.\n */\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\n/**\n * TableCaption - Styled caption element.\n */\nconst TableCaption = forwardRef<\n HTMLTableCaptionElement,\n HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"names":["Table","forwardRef","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAWA,MAAMA,IAAQC;AAAA,EACZ,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,MACvD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAH,EAAM,cAAc;AAKpB,MAAMO,IAAcN,EAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,SAAA,EAAM,KAAAA,GAAU,WAAWE,EAAG,mBAAmBJ,CAAS,GAAI,GAAGC,GAAO,CAC1E;AACDI,EAAY,cAAc;AAK1B,MAAMC,IAAYP,EAGhB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,8BAA8BJ,CAAS;AAAA,IACpD,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAKxB,MAAMC,IAAcR,EAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAK1B,MAAMC,IAAWT,EAGf,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDO,EAAS,cAAc;AAKvB,MAAMC,IAAYV,EAGhB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAKxB,MAAMC,IAAYX,EAGhB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,kDAAkDJ,CAAS;AAAA,IACxE,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAKxB,MAAMC,IAAeZ,EAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,sCAAsCJ,CAAS;AAAA,IAC5D,GAAGC;AAAA,EAAA;AACN,CACD;AACDU,EAAa,cAAc;"}
1
+ {"version":3,"file":"table-QbNlEa1M.es.js","sources":["../../src/ui/table/table.tsx"],"sourcesContent":["import {\n forwardRef,\n type HTMLAttributes,\n type TdHTMLAttributes,\n type ThHTMLAttributes,\n} from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Table - Semantic table container with default styling.\n * @returns {JSX.Element} The rendered Table component.\n */\nconst Table = forwardRef<HTMLTableElement, HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n )\n);\nTable.displayName = 'Table';\n\n/**\n * TableHeader - Wrapper for the thead element.\n * @returns {JSX.Element} The rendered TableHeader component.\n */\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\n/**\n * TableBody - Wrapper for the tbody element.\n * @returns {JSX.Element} The rendered TableBody component.\n */\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\n/**\n * TableFooter - Wrapper for the tfoot element.\n * @returns {JSX.Element} The rendered TableFooter component.\n */\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\n/**\n * TableRow - Styled tr element.\n * @returns {JSX.Element} The rendered TableRow component.\n */\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\n/**\n * TableHead - Styled th element.\n * @returns {JSX.Element} The rendered TableHead component.\n */\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\n/**\n * TableCell - Styled td element.\n * @returns {JSX.Element} The rendered TableCell component.\n */\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\n/**\n * TableCaption - Styled caption element.\n * @returns {JSX.Element} The rendered TableCaption component.\n */\nconst TableCaption = forwardRef<\n HTMLTableCaptionElement,\n HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"names":["Table","forwardRef","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAYA,MAAMA,IAAQC;AAAA,EACZ,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,MACvD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAH,EAAM,cAAc;AAMpB,MAAMO,IAAcN,EAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,SAAA,EAAM,KAAAA,GAAU,WAAWE,EAAG,mBAAmBJ,CAAS,GAAI,GAAGC,GAAO,CAC1E;AACDI,EAAY,cAAc;AAM1B,MAAMC,IAAYP,EAGhB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,8BAA8BJ,CAAS;AAAA,IACpD,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAMxB,MAAMC,IAAcR,EAGlB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAM1B,MAAMC,IAAWT,EAGf,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDO,EAAS,cAAc;AAMvB,MAAMC,IAAYV,EAGhB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAMxB,MAAMC,IAAYX,EAGhB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,kDAAkDJ,CAAS;AAAA,IACxE,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAMxB,MAAMC,IAAeZ,EAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,sCAAsCJ,CAAS;AAAA,IAC5D,GAAGC;AAAA,EAAA;AACN,CACD;AACDU,EAAa,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-BNEY7wMF.cjs.js","sources":["../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/ui/tab/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 TabsPrimitive from '@radix-ui/react-tabs';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { cn } from '../../lib';\nimport { Button } from '../button';\n\n/**\n * Tabs root component from Radix UI.\n * Combines with TabsList, TabsTrigger, and TabsContent to build tabbed interfaces.\n */\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\n 'inline-flex items-center justify-center gap-1 p-1 text-secondary',\n {\n variants: {\n type: {\n default: '',\n segmented: 'bg-item-tertiary [&>button]:data-[state=active]:shadow-sm',\n line: \"[&>button]:data-[state=active]:after:absolute [&>button]:data-[state=active]:after:-bottom-1.5 [&>button]:data-[state=active]:after:content-[''] [&>button]:data-[state=active]:after:w-full [&>button]:data-[state=active]:after:h-0.5 [&>button]:data-[state=active]:after:bg-primary\",\n },\n variant: {\n default: '[&>button]:data-[state=active]:bg-background',\n soft: '[&>button]:data-[state=active]:bg-item-tertiary [&>button]:data-[state=active]:border [&>button]:data-[state=active]:border-alpha-strong',\n },\n rounded: {\n default: 'rounded-md [&>button]:rounded-md',\n pill: 'rounded-full [&>button]:rounded-full',\n },\n },\n defaultVariants: {\n type: 'default',\n variant: 'default',\n rounded: 'default',\n },\n }\n);\n\n/**\n * Props for TabsList component.\n * Extends Radix Tabs.List props and supports visual variants and behavior flags.\n *\n * @property {'default'|'segmented'|'line'} [type] - Visual style of the list.\n * @property {'default'|'soft'} [variant] - Coloring variant.\n * @property {'default'|'pill'} [rounded] - Border radius style.\n * @property {true} [full] - If provided, makes the list expand to full width.\n * @property {true} [scrollable] - Enables horizontal scroll with navigation buttons.\n * @property {string} [scrollButtonClassName] - Additional classes for scroll buttons.\n */\nexport interface TabsListProps\n extends ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {\n full?: true;\n scrollable?: true;\n scrollButtonClassName?: string;\n}\n\n/**\n * Displays a list of tab triggers with optional segmented, line, and scrollable variants.\n * When scrollable, left/right buttons appear when content overflows.\n *\n * @component\n */\nconst TabsList = forwardRef<\n ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(\n (\n {\n className,\n rounded,\n variant,\n type,\n full,\n scrollable,\n scrollButtonClassName,\n ...props\n },\n ref\n ) => {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [showLeftButton, setShowLeftButton] = useState(false);\n const [showRightButton, setShowRightButton] = useState(false);\n\n const checkScrollButtons = useCallback(() => {\n if (scrollContainerRef.current && scrollable) {\n const { scrollLeft, scrollWidth, clientWidth } =\n scrollContainerRef.current;\n setShowLeftButton(scrollLeft > 0);\n setShowRightButton(scrollLeft < scrollWidth - clientWidth - 1);\n }\n }, [scrollable]);\n\n useEffect(() => {\n if (scrollable) {\n checkScrollButtons();\n const handleResize = () => checkScrollButtons();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, [checkScrollButtons, scrollable]);\n\n const scrollLeft = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n }\n };\n\n const scrollRight = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n };\n\n if (scrollable) {\n return (\n <div className=\"relative flex items-center\">\n {/* Left Scroll Button */}\n {showLeftButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollLeft}\n className={cn(\n 'absolute left-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll left\"\n >\n <ChevronLeft className=\"text-secondary h-4 w-4\" />\n </Button>\n )}\n\n {/* Scrollable Container */}\n <div\n ref={scrollContainerRef}\n className=\"scrollbar-hide overflow-x-auto scroll-smooth\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n paddingLeft: showLeftButton ? '32px' : '0',\n paddingRight: showRightButton ? '32px' : '0',\n }}\n onScroll={checkScrollButtons}\n >\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n 'min-w-max',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n </div>\n\n {/* Right Scroll Button */}\n {showRightButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollRight}\n className={cn(\n 'absolute right-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll right\"\n >\n <ChevronRight className=\"text-secondary size-4\" />\n </Button>\n )}\n\n <style>{`\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n </div>\n );\n }\n\n return (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n );\n }\n);\nTabsList.displayName = TabsPrimitive.List.displayName;\n\n/**\n * A single tab trigger/button.\n * Forwards refs to Radix Tabs.Trigger.\n */\nconst TabsTrigger = forwardRef<\n ElementRef<typeof TabsPrimitive.Trigger>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'text-body-xs-medium relative box-border inline-flex h-7 flex-1 cursor-pointer items-center justify-center px-3 py-1 whitespace-nowrap transition-all outline-none disabled:pointer-events-none disabled:opacity-50',\n 'data-[state=inactive]:hover:!bg-item-tertiary-hover data-[state=inactive]:hover:text-primary',\n 'data-[state=active]:text-primary',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\n/**\n * Content panel associated with a TabsTrigger.\n * Forwards refs to Radix Tabs.Content.\n */\nconst TabsContent = forwardRef<\n ElementRef<typeof TabsPrimitive.Content>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"names":["TABS_NAME","createTabsContext","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","tabsListVariants","cva","forwardRef","className","rounded","variant","type","full","scrollable","scrollButtonClassName","ref","scrollContainerRef","useRef","showLeftButton","setShowLeftButton","useState","showRightButton","setShowRightButton","checkScrollButtons","useCallback","scrollLeft","scrollWidth","clientWidth","useEffect","handleResize","scrollRight","jsxs","Button","cn","ChevronLeft","TabsPrimitive.List","ChevronRight","TabsPrimitive.Trigger","TabsPrimitive.Content"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"tabs-BNEY7wMF.cjs.js","sources":["../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/ui/tab/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 TabsPrimitive from '@radix-ui/react-tabs';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { cn } from '../../lib';\nimport { Button } from '../button';\n\n/**\n * Tabs root component from Radix UI.\n * Combines with TabsList, TabsTrigger, and TabsContent to build tabbed interfaces.\n */\nconst Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\n 'inline-flex items-center justify-center gap-1 p-1 text-secondary',\n {\n variants: {\n type: {\n default: '',\n segmented: 'bg-item-tertiary [&>button]:data-[state=active]:shadow-sm',\n line: \"[&>button]:data-[state=active]:after:absolute [&>button]:data-[state=active]:after:-bottom-1.5 [&>button]:data-[state=active]:after:content-[''] [&>button]:data-[state=active]:after:w-full [&>button]:data-[state=active]:after:h-0.5 [&>button]:data-[state=active]:after:bg-primary\",\n },\n variant: {\n default: '[&>button]:data-[state=active]:bg-background',\n soft: '[&>button]:data-[state=active]:bg-item-tertiary [&>button]:data-[state=active]:border [&>button]:data-[state=active]:border-alpha-strong',\n },\n rounded: {\n default: 'rounded-md [&>button]:rounded-md',\n pill: 'rounded-full [&>button]:rounded-full',\n },\n },\n defaultVariants: {\n type: 'default',\n variant: 'default',\n rounded: 'default',\n },\n }\n);\n\n/**\n * Props for TabsList component.\n * Extends Radix Tabs.List props and supports visual variants and behavior flags.\n *\n * @property {'default'|'segmented'|'line'} [type] - Visual style of the list.\n * @property {'default'|'soft'} [variant] - Coloring variant.\n * @property {'default'|'pill'} [rounded] - Border radius style.\n * @property {true} [full] - If provided, makes the list expand to full width.\n * @property {true} [scrollable] - Enables horizontal scroll with navigation buttons.\n * @property {string} [scrollButtonClassName] - Additional classes for scroll buttons.\n */\nexport interface TabsListProps\n extends ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {\n full?: true;\n scrollable?: true;\n scrollButtonClassName?: string;\n}\n\n/**\n * Displays a list of tab triggers with optional segmented, line, and scrollable variants.\n * When scrollable, left/right buttons appear when content overflows.\n * @returns {JSX.Element} The rendered TabsList component.\n * @component\n */\nconst TabsList = forwardRef<\n ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(\n (\n {\n className,\n rounded,\n variant,\n type,\n full,\n scrollable,\n scrollButtonClassName,\n ...props\n },\n ref\n ) => {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const [showLeftButton, setShowLeftButton] = useState(false);\n const [showRightButton, setShowRightButton] = useState(false);\n\n const checkScrollButtons = useCallback(() => {\n if (scrollContainerRef.current && scrollable) {\n const { scrollLeft, scrollWidth, clientWidth } =\n scrollContainerRef.current;\n setShowLeftButton(scrollLeft > 0);\n setShowRightButton(scrollLeft < scrollWidth - clientWidth - 1);\n }\n }, [scrollable]);\n\n useEffect(() => {\n if (scrollable) {\n checkScrollButtons();\n const handleResize = () => checkScrollButtons();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, [checkScrollButtons, scrollable]);\n\n const scrollLeft = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: -200, behavior: 'smooth' });\n }\n };\n\n const scrollRight = () => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.scrollBy({ left: 200, behavior: 'smooth' });\n }\n };\n\n if (scrollable) {\n return (\n <div className=\"relative flex items-center\">\n {/* Left Scroll Button */}\n {showLeftButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollLeft}\n className={cn(\n 'absolute left-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll left\"\n >\n <ChevronLeft className=\"text-secondary h-4 w-4\" />\n </Button>\n )}\n\n {/* Scrollable Container */}\n <div\n ref={scrollContainerRef}\n className=\"scrollbar-hide overflow-x-auto scroll-smooth\"\n style={{\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n paddingLeft: showLeftButton ? '32px' : '0',\n paddingRight: showRightButton ? '32px' : '0',\n }}\n onScroll={checkScrollButtons}\n >\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n 'min-w-max',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n </div>\n\n {/* Right Scroll Button */}\n {showRightButton && (\n <Button\n type=\"button\"\n size={'icon'}\n variant=\"secondary\"\n onClick={scrollRight}\n className={cn(\n 'absolute right-0 z-10 h-full w-6',\n scrollButtonClassName\n )}\n aria-label=\"Scroll right\"\n >\n <ChevronRight className=\"text-secondary size-4\" />\n </Button>\n )}\n\n <style>{`\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n </div>\n );\n }\n\n return (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n full && '!flex',\n tabsListVariants({ rounded, variant, type, className })\n )}\n {...props}\n />\n );\n }\n);\nTabsList.displayName = TabsPrimitive.List.displayName;\n\n/**\n * A single tab trigger/button.\n * Forwards refs to Radix Tabs.Trigger.\n * @returns {JSX.Element} The rendered TabsTrigger component.\n */\nconst TabsTrigger = forwardRef<\n ElementRef<typeof TabsPrimitive.Trigger>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'text-body-xs-medium relative box-border inline-flex h-7 flex-1 cursor-pointer items-center justify-center px-3 py-1 whitespace-nowrap transition-all outline-none disabled:pointer-events-none disabled:opacity-50',\n 'data-[state=inactive]:hover:!bg-item-tertiary-hover data-[state=inactive]:hover:text-primary',\n 'data-[state=active]:text-primary',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\n/**\n * Content panel associated with a TabsTrigger.\n * Forwards refs to Radix Tabs.Content.\n * @returns {JSX.Element} The rendered TabsContent component.\n */\nconst TabsContent = forwardRef<\n ElementRef<typeof TabsPrimitive.Content>,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"names":["TABS_NAME","createTabsContext","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","tabsListVariants","cva","forwardRef","className","rounded","variant","type","full","scrollable","scrollButtonClassName","ref","scrollContainerRef","useRef","showLeftButton","setShowLeftButton","useState","showRightButton","setShowRightButton","checkScrollButtons","useCallback","scrollLeft","scrollWidth","clientWidth","useEffect","handleResize","scrollRight","jsxs","Button","cn","ChevronLeft","TabsPrimitive.List","ChevronRight","TabsPrimitive.Trigger","TabsPrimitive.Content"],"mappings":"wtBAcA,IAAIA,EAAY,OACZ,CAACC,CAAkC,EAAIC,EAAAA,mBAAmBF,EAAW,CACvEG,EAAAA,2BACF,CAAC,EACGC,EAA2BD,EAAAA,4BAA2B,EACtD,CAACE,EAAcC,CAAc,EAAIL,EAAkBD,CAAS,EAC5DO,EAAOC,EAAM,WACf,CAACC,EAAOC,IAAiB,CACvB,KAAM,CACJ,YAAAC,EACA,MAAOC,EACP,cAAAC,EACA,aAAAC,EACA,YAAAC,EAAc,aACd,IAAAC,EACA,eAAAC,EAAiB,YACjB,GAAGC,CACT,EAAQT,EACEU,EAAYC,EAAAA,aAAaJ,CAAG,EAC5B,CAACK,EAAOC,CAAQ,EAAIC,uBAAqB,CAC7C,KAAMX,EACN,SAAUC,EACV,YAAaC,GAAgB,GAC7B,OAAQd,CACd,CAAK,EACD,OAAuBwB,EAAAA,IACrBnB,EACA,CACE,MAAOM,EACP,OAAQc,EAAAA,MAAK,EACb,MAAAJ,EACA,cAAeC,EACf,YAAAP,EACA,IAAKI,EACL,eAAAF,EACA,SAA0BO,EAAAA,IACxBE,EAAAA,UAAU,IACV,CACE,IAAKP,EACL,mBAAoBJ,EACpB,GAAGG,EACH,IAAKR,CACjB,CACA,CACA,CACA,CACE,CACF,EACAH,EAAK,YAAcP,EACnB,IAAI2B,EAAgB,WAChBC,EAAWpB,EAAM,WACnB,CAACC,EAAOC,IAAiB,CACvB,KAAM,CAAE,YAAAC,EAAa,KAAAkB,EAAO,GAAM,GAAGC,CAAS,EAAKrB,EAC7CsB,EAAUzB,EAAeqB,EAAehB,CAAW,EACnDqB,EAAwB5B,EAAyBO,CAAW,EAClE,OAAuBa,EAAAA,IACrBS,EAAAA,KACA,CACE,QAAS,GACT,GAAGD,EACH,YAAaD,EAAQ,YACrB,IAAKA,EAAQ,IACb,KAAAF,EACA,SAA0BL,EAAAA,IACxBE,EAAAA,UAAU,IACV,CACE,KAAM,UACN,mBAAoBK,EAAQ,YAC5B,GAAGD,EACH,IAAKpB,CACjB,CACA,CACA,CACA,CACE,CACF,EACAkB,EAAS,YAAcD,EACvB,IAAIO,EAAe,cACfC,EAAc3B,EAAM,WACtB,CAACC,EAAOC,IAAiB,CACvB,KAAM,CAAE,YAAAC,EAAa,MAAAU,EAAO,SAAAe,EAAW,GAAO,GAAGC,CAAY,EAAK5B,EAC5DsB,EAAUzB,EAAe4B,EAAcvB,CAAW,EAClDqB,EAAwB5B,EAAyBO,CAAW,EAC5D2B,EAAYC,EAAcR,EAAQ,OAAQV,CAAK,EAC/CmB,EAAYC,EAAcV,EAAQ,OAAQV,CAAK,EAC/CqB,EAAarB,IAAUU,EAAQ,MACrC,OAAuBP,EAAAA,IACrBmB,EAAAA,KACA,CACE,QAAS,GACT,GAAGX,EACH,UAAW,CAACI,EACZ,OAAQM,EACR,SAA0BlB,EAAAA,IACxBE,EAAAA,UAAU,OACV,CACE,KAAM,SACN,KAAM,MACN,gBAAiBgB,EACjB,gBAAiBF,EACjB,aAAcE,EAAa,SAAW,WACtC,gBAAiBN,EAAW,GAAK,OACjC,SAAAA,EACA,GAAIE,EACJ,GAAGD,EACH,IAAK3B,EACL,YAAakC,EAAAA,qBAAqBnC,EAAM,YAAcoC,GAAU,CAC1D,CAACT,GAAYS,EAAM,SAAW,GAAKA,EAAM,UAAY,GACvDd,EAAQ,cAAcV,CAAK,EAE3BwB,EAAM,eAAc,CAExB,CAAC,EACD,UAAWD,EAAAA,qBAAqBnC,EAAM,UAAYoC,GAAU,CACtD,CAAC,IAAK,OAAO,EAAE,SAASA,EAAM,GAAG,GAAGd,EAAQ,cAAcV,CAAK,CACrE,CAAC,EACD,QAASuB,EAAAA,qBAAqBnC,EAAM,QAAS,IAAM,CACjD,MAAMqC,EAAwBf,EAAQ,iBAAmB,SACrD,CAACW,GAAc,CAACN,GAAYU,GAC9Bf,EAAQ,cAAcV,CAAK,CAE/B,CAAC,CACb,CACA,CACA,CACA,CACE,CACF,EACAc,EAAY,YAAcD,EAC1B,IAAIa,EAAe,cACfC,EAAcxC,EAAM,WACtB,CAACC,EAAOC,IAAiB,CACvB,KAAM,CAAE,YAAAC,EAAa,MAAAU,EAAO,WAAA4B,EAAY,SAAAC,EAAU,GAAGC,CAAY,EAAK1C,EAChEsB,EAAUzB,EAAeyC,EAAcpC,CAAW,EAClD2B,EAAYC,EAAcR,EAAQ,OAAQV,CAAK,EAC/CmB,EAAYC,EAAcV,EAAQ,OAAQV,CAAK,EAC/CqB,EAAarB,IAAUU,EAAQ,MAC/BqB,EAA+B5C,EAAM,OAAOkC,CAAU,EAC5DlC,OAAAA,EAAM,UAAU,IAAM,CACpB,MAAM6C,EAAM,sBAAsB,IAAMD,EAA6B,QAAU,EAAK,EACpF,MAAO,IAAM,qBAAqBC,CAAG,CACvC,EAAG,CAAA,CAAE,EACkB7B,EAAAA,IAAI8B,WAAU,CAAE,QAASL,GAAcP,EAAY,SAAU,CAAC,CAAE,QAAAa,CAAO,IAAuB/B,EAAAA,IACnHE,EAAAA,UAAU,IACV,CACE,aAAcgB,EAAa,SAAW,WACtC,mBAAoBX,EAAQ,YAC5B,KAAM,WACN,kBAAmBO,EACnB,OAAQ,CAACiB,EACT,GAAIf,EACJ,SAAU,EACV,GAAGW,EACH,IAAKzC,EACL,MAAO,CACL,GAAGD,EAAM,MACT,kBAAmB2C,EAA6B,QAAU,KAAO,MAC3E,EACQ,SAAUG,GAAWL,CAC7B,CACA,EAAO,CACL,CACF,EACAF,EAAY,YAAcD,EAC1B,SAASR,EAAciB,EAAQnC,EAAO,CACpC,MAAO,GAAGmC,CAAM,YAAYnC,CAAK,EACnC,CACA,SAASoB,EAAce,EAAQnC,EAAO,CACpC,MAAO,GAAGmC,CAAM,YAAYnC,CAAK,EACnC,CACA,IAAIoC,GAAQlD,EACRmD,EAAO9B,EACP+B,EAAUxB,EACVyB,EAAUZ,ECxKd,MAAMzC,GAAOsD,GAEPC,EAAmBC,EAAAA,IACvB,mEACA,CACE,SAAU,CACR,KAAM,CACJ,QAAS,GACT,UAAW,4DACX,KAAM,0RAAA,EAER,QAAS,CACP,QAAS,+CACT,KAAM,0IAAA,EAER,QAAS,CACP,QAAS,mCACT,KAAM,sCAAA,CACR,EAEF,gBAAiB,CACf,KAAM,UACN,QAAS,UACT,QAAS,SAAA,CACX,CAEJ,EA2BMnC,EAAWoC,EAAAA,WAIf,CACE,CACE,UAAAC,EACA,QAAAC,EACA,QAAAC,EACA,KAAAC,EACA,KAAAC,EACA,WAAAC,EACA,sBAAAC,EACA,GAAG9D,CAAA,EAEL+D,IACG,CACH,MAAMC,EAAqBC,EAAAA,OAAuB,IAAI,EAChD,CAACC,EAAgBC,CAAiB,EAAIC,EAAAA,SAAS,EAAK,EACpD,CAACC,EAAiBC,CAAkB,EAAIF,EAAAA,SAAS,EAAK,EAEtDG,EAAqBC,EAAAA,YAAY,IAAM,CAC3C,GAAIR,EAAmB,SAAWH,EAAY,CAC5C,KAAM,CAAE,WAAAY,EAAY,YAAAC,EAAa,YAAAC,CAAA,EAC/BX,EAAmB,QACrBG,EAAkBM,EAAa,CAAC,EAChCH,EAAmBG,EAAaC,EAAcC,EAAc,CAAC,CAC/D,CACF,EAAG,CAACd,CAAU,CAAC,EAEfe,EAAAA,UAAU,IAAM,CACd,GAAIf,EAAY,CACdU,EAAA,EACA,MAAMM,EAAe,IAAMN,EAAA,EAC3B,cAAO,iBAAiB,SAAUM,CAAY,EACvC,IAAM,OAAO,oBAAoB,SAAUA,CAAY,CAChE,CACF,EAAG,CAACN,EAAoBV,CAAU,CAAC,EAEnC,MAAMY,EAAa,IAAM,CACnBT,EAAmB,SACrBA,EAAmB,QAAQ,SAAS,CAAE,KAAM,KAAM,SAAU,SAAU,CAE1E,EAEMc,EAAc,IAAM,CACpBd,EAAmB,SACrBA,EAAmB,QAAQ,SAAS,CAAE,KAAM,IAAK,SAAU,SAAU,CAEzE,EAEA,OAAIH,EAEAkB,EAAAA,KAAC,MAAA,CAAI,UAAU,6BAEZ,SAAA,CAAAb,GACCnD,EAAAA,IAACiE,EAAAA,OAAA,CACC,KAAK,SACL,KAAM,OACN,QAAQ,YACR,QAASP,EACT,UAAWQ,EAAAA,GACT,kCACAnB,CAAA,EAEF,aAAW,cAEX,SAAA/C,EAAAA,IAACmE,EAAAA,YAAA,CAAY,UAAU,wBAAA,CAAyB,CAAA,CAAA,EAKpDnE,EAAAA,IAAC,MAAA,CACC,IAAKiD,EACL,UAAU,+CACV,MAAO,CACL,eAAgB,OAChB,gBAAiB,OACjB,YAAaE,EAAiB,OAAS,IACvC,aAAcG,EAAkB,OAAS,GAAA,EAE3C,SAAUE,EAEV,SAAAxD,EAAAA,IAACoE,EAAA,CACC,IAAApB,EACA,UAAWkB,EAAAA,GACTrB,GAAQ,QACR,YACAP,EAAiB,CAAE,QAAAI,EAAS,QAAAC,EAAS,KAAAC,EAAM,UAAAH,EAAW,CAAA,EAEvD,GAAGxD,CAAA,CAAA,CACN,CAAA,EAIDqE,GACCtD,EAAAA,IAACiE,EAAAA,OAAA,CACC,KAAK,SACL,KAAM,OACN,QAAQ,YACR,QAASF,EACT,UAAWG,EAAAA,GACT,mCACAnB,CAAA,EAEF,aAAW,eAEX,SAAA/C,EAAAA,IAACqE,EAAAA,aAAA,CAAa,UAAU,uBAAA,CAAwB,CAAA,CAAA,QAInD,QAAA,CAAO,SAAA;AAAA;AAAA;AAAA;AAAA,WAAA,CAIN,CAAA,EACJ,EAKFrE,EAAAA,IAACoE,EAAA,CACC,IAAApB,EACA,UAAWkB,EAAAA,GACTrB,GAAQ,QACRP,EAAiB,CAAE,QAAAI,EAAS,QAAAC,EAAS,KAAAC,EAAM,UAAAH,EAAW,CAAA,EAEvD,GAAGxD,CAAA,CAAA,CAGV,CACF,EACAmB,EAAS,YAAcgE,EAAmB,YAO1C,MAAMzD,EAAc6B,EAAAA,WAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGxD,CAAA,EAAS+D,IAC1BhD,EAAAA,IAACsE,EAAA,CACC,IAAAtB,EACA,UAAWkB,EAAAA,GACT,qNACA,+FACA,mCACAzB,CAAA,EAED,GAAGxD,CAAA,CACN,CACD,EACD0B,EAAY,YAAc2D,EAAsB,YAOhD,MAAM9C,EAAcgB,EAAAA,WAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGxD,CAAA,EAAS+D,IAC1BhD,EAAAA,IAACuE,EAAA,CACC,IAAAvB,EACA,UAAWkB,EAAAA,GACT,kIACAzB,CAAA,EAED,GAAGxD,CAAA,CACN,CACD,EACDuC,EAAY,YAAc+C,EAAsB","x_google_ignoreList":[0]}