dgz-ui 1.4.7 → 1.4.9

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 (140) hide show
  1. package/dist/breadcrumb/index.cjs.js +1 -1
  2. package/dist/breadcrumb/index.es.js +1 -1
  3. package/dist/calendar/index.cjs.js +1 -1
  4. package/dist/calendar/index.es.js +1 -1
  5. package/dist/carousel/index.cjs.js +3 -3
  6. package/dist/carousel/index.cjs.js.map +1 -1
  7. package/dist/carousel/index.es.js +341 -340
  8. package/dist/carousel/index.es.js.map +1 -1
  9. package/dist/chunks/alert-dialog-CI_hZyxN.es.js.map +1 -1
  10. package/dist/chunks/alert-dialog-CYT3LDhH.cjs.js.map +1 -1
  11. package/dist/chunks/breadcrumb-BtO0mD2u.es.js +82 -0
  12. package/dist/chunks/breadcrumb-BtO0mD2u.es.js.map +1 -0
  13. package/dist/chunks/breadcrumb-DKVYizoh.cjs.js +2 -0
  14. package/dist/chunks/breadcrumb-DKVYizoh.cjs.js.map +1 -0
  15. package/dist/chunks/card-B87RYuvO.es.js.map +1 -1
  16. package/dist/chunks/card-Dokrjefn.cjs.js.map +1 -1
  17. package/dist/chunks/collapsible-CBOSWBKB.cjs.js.map +1 -1
  18. package/dist/chunks/collapsible-Ddd6kxXS.es.js.map +1 -1
  19. package/dist/chunks/dialog-Cb_DS5IV.es.js +105 -0
  20. package/dist/chunks/dialog-Cb_DS5IV.es.js.map +1 -0
  21. package/dist/chunks/dialog-pRz31cHo.cjs.js +2 -0
  22. package/dist/chunks/dialog-pRz31cHo.cjs.js.map +1 -0
  23. package/dist/chunks/dropdown-menu-BNURsvIJ.cjs.js.map +1 -1
  24. package/dist/chunks/dropdown-menu-CJTcrFP2.es.js.map +1 -1
  25. package/dist/chunks/pagination-CJiUbpUN.cjs.js +2 -0
  26. package/dist/chunks/pagination-CJiUbpUN.cjs.js.map +1 -0
  27. package/dist/chunks/pagination-aJ9Z0Ux9.es.js +113 -0
  28. package/dist/chunks/pagination-aJ9Z0Ux9.es.js.map +1 -0
  29. package/dist/chunks/popover-ChtTV2vy.es.js.map +1 -1
  30. package/dist/chunks/popover-cRDGBSyg.cjs.js.map +1 -1
  31. package/dist/chunks/scroll-area-sLp4wPce.cjs.js.map +1 -1
  32. package/dist/chunks/scroll-area-x2hiTYmL.es.js.map +1 -1
  33. package/dist/chunks/separator-DndNTVv8.es.js.map +1 -1
  34. package/dist/chunks/separator-uzP1VAwc.cjs.js.map +1 -1
  35. package/dist/chunks/sheet-BXSDa9XT.cjs.js +2 -0
  36. package/dist/chunks/sheet-BXSDa9XT.cjs.js.map +1 -0
  37. package/dist/chunks/{sheet-to_YuZ1x.es.js → sheet-hwgCcvpv.es.js} +35 -33
  38. package/dist/chunks/sheet-hwgCcvpv.es.js.map +1 -0
  39. package/dist/chunks/skeleton-DV_2OytH.es.js.map +1 -1
  40. package/dist/chunks/skeleton-ZHnXbbz7.cjs.js.map +1 -1
  41. package/dist/chunks/table-C-g7CjMt.cjs.js.map +1 -1
  42. package/dist/chunks/table-QbNlEa1M.es.js.map +1 -1
  43. package/dist/chunks/tabs-BNEY7wMF.cjs.js.map +1 -1
  44. package/dist/chunks/tabs-DUuliV4A.es.js.map +1 -1
  45. package/dist/chunks/textarea-C2I19p_j.cjs.js.map +1 -1
  46. package/dist/chunks/textarea-D9gE4ALW.es.js.map +1 -1
  47. package/dist/chunks/{timepicker-tBjjq8Ap.es.js → timepicker-BdDhd6Ax.es.js} +99 -99
  48. package/dist/chunks/{timepicker-tBjjq8Ap.es.js.map → timepicker-BdDhd6Ax.es.js.map} +1 -1
  49. package/dist/chunks/{timepicker-Ba47st2A.cjs.js → timepicker-C67I2BIy.cjs.js} +3 -3
  50. package/dist/chunks/{timepicker-Ba47st2A.cjs.js.map → timepicker-C67I2BIy.cjs.js.map} +1 -1
  51. package/dist/chunks/tooltip-DD-snel0.cjs.js.map +1 -1
  52. package/dist/chunks/tooltip-DHg9332v.es.js.map +1 -1
  53. package/dist/dialog/index.cjs.js +1 -1
  54. package/dist/dialog/index.es.js +1 -1
  55. package/dist/index.cjs.js +1 -1
  56. package/dist/index.es.js +5 -5
  57. package/dist/pagination/index.cjs.js +1 -1
  58. package/dist/pagination/index.es.js +1 -1
  59. package/dist/progress/index.cjs.js.map +1 -1
  60. package/dist/progress/index.es.js.map +1 -1
  61. package/dist/sheet/index.cjs.js +1 -1
  62. package/dist/sheet/index.es.js +1 -1
  63. package/dist/styles.css +1 -1
  64. package/dist/types/stories/Button.d.ts +15 -0
  65. package/dist/types/stories/Button.d.ts.map +1 -0
  66. package/dist/types/stories/Button.stories.d.ts +24 -0
  67. package/dist/types/stories/Button.stories.d.ts.map +1 -0
  68. package/dist/types/stories/Header.d.ts +12 -0
  69. package/dist/types/stories/Header.d.ts.map +1 -0
  70. package/dist/types/stories/Header.stories.d.ts +19 -0
  71. package/dist/types/stories/Header.stories.d.ts.map +1 -0
  72. package/dist/types/stories/Page.d.ts +3 -0
  73. package/dist/types/stories/Page.d.ts.map +1 -0
  74. package/dist/types/stories/Page.stories.d.ts +13 -0
  75. package/dist/types/stories/Page.stories.d.ts.map +1 -0
  76. package/dist/types/types/element-data.type.d.ts +4 -0
  77. package/dist/types/types/element-data.type.d.ts.map +1 -1
  78. package/dist/types/ui/alert-dialog/alert-dialog.d.ts +8 -0
  79. package/dist/types/ui/alert-dialog/alert-dialog.d.ts.map +1 -1
  80. package/dist/types/ui/breadcrumb/breadcrumb.d.ts +6 -4
  81. package/dist/types/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
  82. package/dist/types/ui/calendar/datepicker.d.ts +1 -1
  83. package/dist/types/ui/calendar/datepicker.d.ts.map +1 -1
  84. package/dist/types/ui/calendar/timepicker.d.ts +5 -2
  85. package/dist/types/ui/calendar/timepicker.d.ts.map +1 -1
  86. package/dist/types/ui/card/card.d.ts +8 -0
  87. package/dist/types/ui/card/card.d.ts.map +1 -1
  88. package/dist/types/ui/carousel/carousel.d.ts +53 -0
  89. package/dist/types/ui/carousel/carousel.d.ts.map +1 -1
  90. package/dist/types/ui/collapsible/collapsible.d.ts +3 -0
  91. package/dist/types/ui/collapsible/collapsible.d.ts.map +1 -1
  92. package/dist/types/ui/dialog/dialog.d.ts +19 -0
  93. package/dist/types/ui/dialog/dialog.d.ts.map +1 -1
  94. package/dist/types/ui/dropdown/dropdown-menu.d.ts +18 -0
  95. package/dist/types/ui/dropdown/dropdown-menu.d.ts.map +1 -1
  96. package/dist/types/ui/form/checkbox.d.ts +3 -1
  97. package/dist/types/ui/form/checkbox.d.ts.map +1 -1
  98. package/dist/types/ui/form/input.d.ts +13 -0
  99. package/dist/types/ui/form/input.d.ts.map +1 -1
  100. package/dist/types/ui/form/label.d.ts +1 -1
  101. package/dist/types/ui/form/radio-group.d.ts +2 -1
  102. package/dist/types/ui/form/radio-group.d.ts.map +1 -1
  103. package/dist/types/ui/form/select.d.ts +43 -0
  104. package/dist/types/ui/form/select.d.ts.map +1 -1
  105. package/dist/types/ui/form/switch.d.ts +3 -1
  106. package/dist/types/ui/form/switch.d.ts.map +1 -1
  107. package/dist/types/ui/form/textarea.d.ts +1 -0
  108. package/dist/types/ui/form/textarea.d.ts.map +1 -1
  109. package/dist/types/ui/pagination/pagination.d.ts +7 -7
  110. package/dist/types/ui/pagination/pagination.d.ts.map +1 -1
  111. package/dist/types/ui/popover/popover.d.ts +3 -1
  112. package/dist/types/ui/popover/popover.d.ts.map +1 -1
  113. package/dist/types/ui/progress/progress.d.ts +1 -1
  114. package/dist/types/ui/scroll-area/scroll-area.d.ts +2 -2
  115. package/dist/types/ui/separator/separator.d.ts +1 -1
  116. package/dist/types/ui/sheet/sheet.d.ts.map +1 -1
  117. package/dist/types/ui/skeleton/skeleton.d.ts +1 -0
  118. package/dist/types/ui/skeleton/skeleton.d.ts.map +1 -1
  119. package/dist/types/ui/tab/tabs.d.ts +3 -1
  120. package/dist/types/ui/tab/tabs.d.ts.map +1 -1
  121. package/dist/types/ui/table/table.d.ts +8 -0
  122. package/dist/types/ui/table/table.d.ts.map +1 -1
  123. package/dist/types/ui/tooltip/tooltip.d.ts +1 -0
  124. package/dist/types/ui/tooltip/tooltip.d.ts.map +1 -1
  125. package/package.json +17 -3
  126. package/dist/chunks/breadcrumb-D-Wgwp2Z.es.js +0 -78
  127. package/dist/chunks/breadcrumb-D-Wgwp2Z.es.js.map +0 -1
  128. package/dist/chunks/breadcrumb-RLwumNZG.cjs.js +0 -2
  129. package/dist/chunks/breadcrumb-RLwumNZG.cjs.js.map +0 -1
  130. package/dist/chunks/dialog-B3q0NLcE.es.js +0 -101
  131. package/dist/chunks/dialog-B3q0NLcE.es.js.map +0 -1
  132. package/dist/chunks/dialog-OejLEg29.cjs.js +0 -2
  133. package/dist/chunks/dialog-OejLEg29.cjs.js.map +0 -1
  134. package/dist/chunks/pagination-CLm98Oot.es.js +0 -103
  135. package/dist/chunks/pagination-CLm98Oot.es.js.map +0 -1
  136. package/dist/chunks/pagination-DsZd3LTv.cjs.js +0 -2
  137. package/dist/chunks/pagination-DsZd3LTv.cjs.js.map +0 -1
  138. package/dist/chunks/sheet-DvcqCxaD.cjs.js +0 -2
  139. package/dist/chunks/sheet-DvcqCxaD.cjs.js.map +0 -1
  140. package/dist/chunks/sheet-to_YuZ1x.es.js.map +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]}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),s=require("./index-CtCzh8NB.cjs.js");require("react");const l=require("react-i18next"),o=require("./index-BWS4jvS6.cjs.js"),d=require("./x-Ev63aQi_.cjs.js");function c({...t}){return e.jsx(s.Root,{"data-slot":"sheet",...t})}function u({...t}){return e.jsx(s.Trigger,{"data-slot":"sheet-trigger",...t})}function h({...t}){return e.jsx(s.Close,{"data-slot":"sheet-close",...t})}function f({...t}){return e.jsx(s.Portal,{"data-slot":"sheet-portal",...t})}function x({className:t,...a}){return e.jsx(s.Overlay,{"data-slot":"sheet-overlay",className:o.cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",t),...a})}function m({className:t,children:a,side:n="right",...r}){const{t:i}=l.useTranslation();return e.jsxs(f,{children:[e.jsx(x,{}),e.jsxs(s.Content,{"data-slot":"sheet-content",className:o.cn("data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",n==="right"&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",n==="left"&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",n==="top"&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",n==="bottom"&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",t),...r,children:[a,e.jsxs(s.Close,{className:"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-neutral-100 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800",children:[e.jsx(d.X,{className:"size-4"}),e.jsx("span",{className:"sr-only",children:i("Close")})]})]})]})}function p({className:t,...a}){return e.jsx("div",{"data-slot":"sheet-header",className:o.cn("flex flex-col gap-1.5 p-4",t),...a})}function g({className:t,...a}){return e.jsx("div",{"data-slot":"sheet-footer",className:o.cn("mt-auto flex flex-col gap-2 p-4",t),...a})}function S({className:t,...a}){return e.jsx(s.Title,{"data-slot":"sheet-title",className:o.cn("font-semibold text-neutral-950 dark:text-neutral-50",t),...a})}function b({className:t,...a}){return e.jsx(s.Description,{"data-slot":"sheet-description",className:o.cn("text-sm text-neutral-500 dark:text-neutral-400",t),...a})}exports.Sheet=c;exports.SheetClose=h;exports.SheetContent=m;exports.SheetDescription=b;exports.SheetFooter=g;exports.SheetHeader=p;exports.SheetTitle=S;exports.SheetTrigger=u;
2
+ //# sourceMappingURL=sheet-BXSDa9XT.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-BXSDa9XT.cjs.js","sources":["../../src/ui/sheet/sheet.tsx"],"sourcesContent":["'use client';\n\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { cn } from '../../lib';\n\n/**\n * Sheet - Drawer-style dialog built on Radix Dialog primitives.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Root>} props - Props for the component.\n */\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\n/**\n * SheetTrigger - Element that opens the Sheet when interacted with.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Trigger>} props - Props for the component.\n */\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/**\n * SheetClose - Element that closes the Sheet.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Close>} props - Props for the component.\n */\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n/**\n * SheetPortal - Renders sheet content in a React Portal.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Portal>} props - Props for the component.\n */\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\n/**\n * SheetOverlay - Full-screen overlay behind the Sheet content.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet overlay.\n */\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * SheetContent - The sliding panel content. Configurable side.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet content.\n * @param {React.ReactNode} [props.children] - The content to be rendered inside the sheet.\n * @param {'top' | 'right' | 'bottom' | 'left'} [props.side='right'] - The side of the screen where the sheet will appear.\n */\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n const { t } = useTranslation();\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-neutral-100 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">{t('Close')}</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\n/**\n * SheetHeader - Header area inside the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet header.\n */\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\n/**\n * SheetFooter - Footer area inside the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet footer.\n */\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\n/**\n * SheetTitle - Accessible title for the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet title.\n */\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\n 'font-semibold text-neutral-950 dark:text-neutral-50',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * SheetDescription - Additional descriptive text for the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet description.\n */\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\n 'text-sm text-neutral-500 dark:text-neutral-400',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"names":["Sheet","props","SheetPrimitive.Root","SheetTrigger","SheetPrimitive.Trigger","SheetClose","SheetPrimitive.Close","SheetPortal","SheetPrimitive.Portal","SheetOverlay","className","jsx","SheetPrimitive.Overlay","cn","SheetContent","children","side","t","useTranslation","jsxs","SheetPrimitive.Content","XIcon","SheetHeader","SheetFooter","SheetTitle","SheetPrimitive.Title","SheetDescription","SheetPrimitive.Description"],"mappings":"+MAaA,SAASA,EAAM,CAAE,GAAGC,GAA2D,CAC7E,aAAQC,EAAAA,KAAA,CAAoB,YAAU,QAAS,GAAGD,EAAO,CAC3D,CAOA,SAASE,EAAa,CACpB,GAAGF,CACL,EAAwD,CACtD,aAAQG,EAAAA,QAAA,CAAuB,YAAU,gBAAiB,GAAGH,EAAO,CACtE,CAOA,SAASI,EAAW,CAClB,GAAGJ,CACL,EAAsD,CACpD,aAAQK,EAAAA,MAAA,CAAqB,YAAU,cAAe,GAAGL,EAAO,CAClE,CAOA,SAASM,EAAY,CACnB,GAAGN,CACL,EAAuD,CACrD,aAAQO,EAAAA,OAAA,CAAsB,YAAU,eAAgB,GAAGP,EAAO,CACpE,CAQA,SAASQ,EAAa,CACpB,UAAAC,EACA,GAAGT,CACL,EAAwD,CACtD,OACEU,EAAAA,IAACC,EAAAA,QAAA,CACC,YAAU,gBACV,UAAWC,EAAAA,GACT,yJACAH,CAAA,EAED,GAAGT,CAAA,CAAA,CAGV,CAUA,SAASa,EAAa,CACpB,UAAAJ,EACA,SAAAK,EACA,KAAAC,EAAO,QACP,GAAGf,CACL,EAEG,CACD,KAAM,CAAE,EAAAgB,CAAA,EAAMC,iBAAA,EACd,cACGX,EAAA,CACC,SAAA,CAAAI,EAAAA,IAACF,EAAA,EAAa,EACdU,EAAAA,KAACC,EAAAA,QAAA,CACC,YAAU,gBACV,UAAWP,EAAAA,GACT,+LACAG,IAAS,SACP,mIACFA,IAAS,QACP,gIACFA,IAAS,OACP,2GACFA,IAAS,UACP,oHACFN,CAAA,EAED,GAAGT,EAEH,SAAA,CAAAc,EACDI,EAAAA,KAACb,EAAAA,MAAA,CAAqB,UAAU,gVAC9B,SAAA,CAAAK,EAAAA,IAACU,EAAAA,EAAA,CAAM,UAAU,QAAA,CAAS,QACzB,OAAA,CAAK,UAAU,UAAW,SAAAJ,EAAE,OAAO,CAAA,CAAE,CAAA,CAAA,CACxC,CAAA,CAAA,CAAA,CACF,EACF,CAEJ,CAQA,SAASK,EAAY,CAAE,UAAAZ,EAAW,GAAGT,GAAsC,CACzE,OACEU,EAAAA,IAAC,MAAA,CACC,YAAU,eACV,UAAWE,EAAAA,GAAG,4BAA6BH,CAAS,EACnD,GAAGT,CAAA,CAAA,CAGV,CAQA,SAASsB,EAAY,CAAE,UAAAb,EAAW,GAAGT,GAAsC,CACzE,OACEU,EAAAA,IAAC,MAAA,CACC,YAAU,eACV,UAAWE,EAAAA,GAAG,kCAAmCH,CAAS,EACzD,GAAGT,CAAA,CAAA,CAGV,CAQA,SAASuB,EAAW,CAClB,UAAAd,EACA,GAAGT,CACL,EAAsD,CACpD,OACEU,EAAAA,IAACc,EAAAA,MAAA,CACC,YAAU,cACV,UAAWZ,EAAAA,GACT,sDACAH,CAAA,EAED,GAAGT,CAAA,CAAA,CAGV,CAQA,SAASyB,EAAiB,CACxB,UAAAhB,EACA,GAAGT,CACL,EAA4D,CAC1D,OACEU,EAAAA,IAACgB,EAAAA,YAAA,CACC,YAAU,oBACV,UAAWd,EAAAA,GACT,iDACAH,CAAA,EAED,GAAGT,CAAA,CAAA,CAGV"}
@@ -1,32 +1,33 @@
1
1
  import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
- import { R as i, C as r, a as d, D as u, b as c, T as f, P as h, O as m } from "./index-xl-szYFX.es.js";
2
+ import { R as d, C as r, a as u, D as c, b as f, T as m, P as h, O as p } from "./index-xl-szYFX.es.js";
3
3
  import "react";
4
+ import { useTranslation as g } from "react-i18next";
4
5
  import { c as o } from "./index-D6dQK9i-.es.js";
5
- import { X as p } from "./x-8d8XBbXN.es.js";
6
- function k({ ...t }) {
7
- return /* @__PURE__ */ e(i, { "data-slot": "sheet", ...t });
6
+ import { X as x } from "./x-8d8XBbXN.es.js";
7
+ function T({ ...t }) {
8
+ return /* @__PURE__ */ e(d, { "data-slot": "sheet", ...t });
8
9
  }
9
- function w({
10
+ function z({
10
11
  ...t
11
12
  }) {
12
- return /* @__PURE__ */ e(f, { "data-slot": "sheet-trigger", ...t });
13
+ return /* @__PURE__ */ e(m, { "data-slot": "sheet-trigger", ...t });
13
14
  }
14
- function C({
15
+ function D({
15
16
  ...t
16
17
  }) {
17
18
  return /* @__PURE__ */ e(r, { "data-slot": "sheet-close", ...t });
18
19
  }
19
- function g({
20
+ function b({
20
21
  ...t
21
22
  }) {
22
23
  return /* @__PURE__ */ e(h, { "data-slot": "sheet-portal", ...t });
23
24
  }
24
- function x({
25
+ function S({
25
26
  className: t,
26
27
  ...a
27
28
  }) {
28
29
  return /* @__PURE__ */ e(
29
- m,
30
+ p,
30
31
  {
31
32
  "data-slot": "sheet-overlay",
32
33
  className: o(
@@ -37,16 +38,17 @@ function x({
37
38
  }
38
39
  );
39
40
  }
40
- function T({
41
+ function O({
41
42
  className: t,
42
43
  children: a,
43
44
  side: s = "right",
44
- ...l
45
+ ...i
45
46
  }) {
46
- return /* @__PURE__ */ n(g, { children: [
47
- /* @__PURE__ */ e(x, {}),
47
+ const { t: l } = g();
48
+ return /* @__PURE__ */ n(b, { children: [
49
+ /* @__PURE__ */ e(S, {}),
48
50
  /* @__PURE__ */ n(
49
- d,
51
+ u,
50
52
  {
51
53
  "data-slot": "sheet-content",
52
54
  className: o(
@@ -57,19 +59,19 @@ function T({
57
59
  s === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
58
60
  t
59
61
  ),
60
- ...l,
62
+ ...i,
61
63
  children: [
62
64
  a,
63
65
  /* @__PURE__ */ n(r, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-neutral-100 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800", children: [
64
- /* @__PURE__ */ e(p, { className: "size-4" }),
65
- /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
66
+ /* @__PURE__ */ e(x, { className: "size-4" }),
67
+ /* @__PURE__ */ e("span", { className: "sr-only", children: l("Close") })
66
68
  ] })
67
69
  ]
68
70
  }
69
71
  )
70
72
  ] });
71
73
  }
72
- function z({ className: t, ...a }) {
74
+ function P({ className: t, ...a }) {
73
75
  return /* @__PURE__ */ e(
74
76
  "div",
75
77
  {
@@ -79,7 +81,7 @@ function z({ className: t, ...a }) {
79
81
  }
80
82
  );
81
83
  }
82
- function D({ className: t, ...a }) {
84
+ function j({ className: t, ...a }) {
83
85
  return /* @__PURE__ */ e(
84
86
  "div",
85
87
  {
@@ -89,12 +91,12 @@ function D({ className: t, ...a }) {
89
91
  }
90
92
  );
91
93
  }
92
- function O({
94
+ function R({
93
95
  className: t,
94
96
  ...a
95
97
  }) {
96
98
  return /* @__PURE__ */ e(
97
- c,
99
+ f,
98
100
  {
99
101
  "data-slot": "sheet-title",
100
102
  className: o(
@@ -105,12 +107,12 @@ function O({
105
107
  }
106
108
  );
107
109
  }
108
- function P({
110
+ function F({
109
111
  className: t,
110
112
  ...a
111
113
  }) {
112
114
  return /* @__PURE__ */ e(
113
- u,
115
+ c,
114
116
  {
115
117
  "data-slot": "sheet-description",
116
118
  className: o(
@@ -122,13 +124,13 @@ function P({
122
124
  );
123
125
  }
124
126
  export {
125
- k as S,
126
- C as a,
127
- T as b,
128
- P as c,
129
- D as d,
130
- z as e,
131
- O as f,
132
- w as g
127
+ T as S,
128
+ D as a,
129
+ O as b,
130
+ F as c,
131
+ j as d,
132
+ P as e,
133
+ R as f,
134
+ z as g
133
135
  };
134
- //# sourceMappingURL=sheet-to_YuZ1x.es.js.map
136
+ //# sourceMappingURL=sheet-hwgCcvpv.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-hwgCcvpv.es.js","sources":["../../src/ui/sheet/sheet.tsx"],"sourcesContent":["'use client';\n\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { cn } from '../../lib';\n\n/**\n * Sheet - Drawer-style dialog built on Radix Dialog primitives.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Root>} props - Props for the component.\n */\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\n/**\n * SheetTrigger - Element that opens the Sheet when interacted with.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Trigger>} props - Props for the component.\n */\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\n/**\n * SheetClose - Element that closes the Sheet.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Close>} props - Props for the component.\n */\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n/**\n * SheetPortal - Renders sheet content in a React Portal.\n *\n * @param {React.ComponentProps<typeof SheetPrimitive.Portal>} props - Props for the component.\n */\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\n/**\n * SheetOverlay - Full-screen overlay behind the Sheet content.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet overlay.\n */\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * SheetContent - The sliding panel content. Configurable side.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet content.\n * @param {React.ReactNode} [props.children] - The content to be rendered inside the sheet.\n * @param {'top' | 'right' | 'bottom' | 'left'} [props.side='right'] - The side of the screen where the sheet will appear.\n */\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n const { t } = useTranslation();\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-neutral-100 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">{t('Close')}</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\n/**\n * SheetHeader - Header area inside the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet header.\n */\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\n/**\n * SheetFooter - Footer area inside the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet footer.\n */\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\n/**\n * SheetTitle - Accessible title for the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet title.\n */\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\n 'font-semibold text-neutral-950 dark:text-neutral-50',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * SheetDescription - Additional descriptive text for the Sheet.\n *\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the sheet description.\n */\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\n 'text-sm text-neutral-500 dark:text-neutral-400',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"names":["Sheet","props","SheetPrimitive.Root","SheetTrigger","SheetPrimitive.Trigger","SheetClose","SheetPrimitive.Close","SheetPortal","SheetPrimitive.Portal","SheetOverlay","className","jsx","SheetPrimitive.Overlay","cn","SheetContent","children","side","t","useTranslation","jsxs","SheetPrimitive.Content","XIcon","SheetHeader","SheetFooter","SheetTitle","SheetPrimitive.Title","SheetDescription","SheetPrimitive.Description"],"mappings":";;;;;;AAaA,SAASA,EAAM,EAAE,GAAGC,KAA2D;AAC7E,2BAAQC,GAAA,EAAoB,aAAU,SAAS,GAAGD,GAAO;AAC3D;AAOA,SAASE,EAAa;AAAA,EACpB,GAAGF;AACL,GAAwD;AACtD,2BAAQG,GAAA,EAAuB,aAAU,iBAAiB,GAAGH,GAAO;AACtE;AAOA,SAASI,EAAW;AAAA,EAClB,GAAGJ;AACL,GAAsD;AACpD,2BAAQK,GAAA,EAAqB,aAAU,eAAe,GAAGL,GAAO;AAClE;AAOA,SAASM,EAAY;AAAA,EACnB,GAAGN;AACL,GAAuD;AACrD,2BAAQO,GAAA,EAAsB,aAAU,gBAAgB,GAAGP,GAAO;AACpE;AAQA,SAASQ,EAAa;AAAA,EACpB,WAAAC;AAAA,EACA,GAAGT;AACL,GAAwD;AACtD,SACE,gBAAAU;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGV;AAUA,SAASa,EAAa;AAAA,EACpB,WAAAJ;AAAA,EACA,UAAAK;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGf;AACL,GAEG;AACD,QAAM,EAAE,GAAAgB,EAAA,IAAMC,EAAA;AACd,2BACGX,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAI,EAACF,GAAA,EAAa;AAAA,IACd,gBAAAU;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,aAAU;AAAA,QACV,WAAWP;AAAA,UACT;AAAA,UACAG,MAAS,WACP;AAAA,UACFA,MAAS,UACP;AAAA,UACFA,MAAS,SACP;AAAA,UACFA,MAAS,YACP;AAAA,UACFN;AAAA,QAAA;AAAA,QAED,GAAGT;AAAA,QAEH,UAAA;AAAA,UAAAc;AAAA,UACD,gBAAAI,EAACb,GAAA,EAAqB,WAAU,iVAC9B,UAAA;AAAA,YAAA,gBAAAK,EAACU,GAAA,EAAM,WAAU,SAAA,CAAS;AAAA,8BACzB,QAAA,EAAK,WAAU,WAAW,UAAAJ,EAAE,OAAO,EAAA,CAAE;AAAA,UAAA,EAAA,CACxC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAQA,SAASK,EAAY,EAAE,WAAAZ,GAAW,GAAGT,KAAsC;AACzE,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,6BAA6BH,CAAS;AAAA,MACnD,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGV;AAQA,SAASsB,EAAY,EAAE,WAAAb,GAAW,GAAGT,KAAsC;AACzE,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE,EAAG,mCAAmCH,CAAS;AAAA,MACzD,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGV;AAQA,SAASuB,EAAW;AAAA,EAClB,WAAAd;AAAA,EACA,GAAGT;AACL,GAAsD;AACpD,SACE,gBAAAU;AAAA,IAACc;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWZ;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGV;AAQA,SAASyB,EAAiB;AAAA,EACxB,WAAAhB;AAAA,EACA,GAAGT;AACL,GAA4D;AAC1D,SACE,gBAAAU;AAAA,IAACgB;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWd;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGT;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -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":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-DUuliV4A.es.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-DUuliV4A.es.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":"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","x_google_ignoreList":[0]}