@fanvue/ui 3.5.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/charts.d.ts +1 -1
- package/dist/cjs/components/Chart/ChartCard.cjs +2 -2
- package/dist/cjs/components/Chart/ChartCard.cjs.map +1 -1
- package/dist/cjs/components/ChatInput/ChatInput.cjs +128 -92
- package/dist/cjs/components/ChatInput/ChatInput.cjs.map +1 -1
- package/dist/cjs/components/Chip/Chip.cjs +46 -10
- package/dist/cjs/components/Chip/Chip.cjs.map +1 -1
- package/dist/cjs/components/Drawer/Drawer.cjs +6 -3
- package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +20 -4
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
- package/dist/cjs/components/Icons/TickIcon.cjs +3 -1
- package/dist/cjs/components/Icons/TickIcon.cjs.map +1 -1
- package/dist/cjs/components/Logo/Logo.cjs +107 -33
- package/dist/cjs/components/Logo/Logo.cjs.map +1 -1
- package/dist/cjs/components/Logo/agenciesIcon.cjs +6 -0
- package/dist/cjs/components/Logo/agenciesIcon.cjs.map +1 -0
- package/dist/cjs/components/Tabs/TabsList.cjs +20 -12
- package/dist/cjs/components/Tabs/TabsList.cjs.map +1 -1
- package/dist/cjs/components/Tabs/TabsTrigger.cjs +8 -7
- package/dist/cjs/components/Tabs/TabsTrigger.cjs.map +1 -1
- package/dist/components/Chart/ChartCard.mjs +2 -2
- package/dist/components/Chart/ChartCard.mjs.map +1 -1
- package/dist/components/ChatInput/ChatInput.mjs +128 -92
- package/dist/components/ChatInput/ChatInput.mjs.map +1 -1
- package/dist/components/Chip/Chip.mjs +46 -10
- package/dist/components/Chip/Chip.mjs.map +1 -1
- package/dist/components/Drawer/Drawer.mjs +6 -3
- package/dist/components/Drawer/Drawer.mjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.mjs +20 -4
- package/dist/components/DropdownMenu/DropdownMenu.mjs.map +1 -1
- package/dist/components/Icons/TickIcon.mjs +3 -1
- package/dist/components/Icons/TickIcon.mjs.map +1 -1
- package/dist/components/Logo/Logo.mjs +107 -33
- package/dist/components/Logo/Logo.mjs.map +1 -1
- package/dist/components/Logo/agenciesIcon.mjs +6 -0
- package/dist/components/Logo/agenciesIcon.mjs.map +1 -0
- package/dist/components/Tabs/TabsList.mjs +20 -12
- package/dist/components/Tabs/TabsList.mjs.map +1 -1
- package/dist/components/Tabs/TabsTrigger.mjs +8 -7
- package/dist/components/Tabs/TabsTrigger.mjs.map +1 -1
- package/dist/index.d.ts +61 -6
- package/package.json +8 -4
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const AGENCIES_ICON_SVG = '<svg width="100%" height="100%" style="display:block" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g clip-path="url(#a)"><path fill="#49f264" d="M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z"/><path fill="url(#b)" d="M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z" style="mix-blend-mode:lighten"/><path fill="url(#c)" d="M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z"/><g style="mix-blend-mode:color-dodge"><mask id="e" width="32" height="32" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="url(#d)" d="M0 0h32v32H0z"/></mask><g mask="url(#e)"><path fill="url(#f)" d="M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z"/></g></g><path stroke="url(#g)" stroke-width=".384064" d="M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z"/><path stroke="url(#h)" stroke-width=".384064" d="M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z"/><path stroke="url(#i)" stroke-width=".384064" d="M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z"/><path stroke="url(#j)" stroke-width=".384064" d="M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z"/><g fill-rule="evenodd" clip-rule="evenodd" filter="url(#k)"><path fill="url(#l)" d="M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z"/><path fill="url(#m)" d="M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z" style="mix-blend-mode:lighten"/></g><path fill="#000" fill-opacity=".01" fill-rule="evenodd" clip-rule="evenodd" d="M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z" clip-rule="evenodd"/><path stroke="url(#n)" stroke-width=".2" d="M19.1363 7.80664h7.3975c.5165.00015.8647.43888.8642.91602-.0004.2358-.0878.47842-.2832.6748-.1956.19642-.5063.35292-.9639.40527-.2461.02816-.6967.09198-1.3154.17579-.6197.08398-1.4106.18888-2.3398.30078h-.001c-.8847.1115-2.3314.3019-3.3623.7881-.5151.2429-.944.5683-1.1377 1.0107-.1965.4495-.1391.9935.2598 1.6446l.0039.0068.0058.0068c.6027.6904 1.5336.9866 2.3584 1.21.4178.1131.8057.2068 1.127.3223.3232.1161.5549.2466.6758.4189l.0009.002c.1808.2467.1905.4956.1075.7177-.0849.2269-.2685.4285-.4747.5606-.3192.2017-.7339.351-1.2226.4853-.4895.1345-1.0406.2513-1.6367.3955-1.1874.2873-2.5304.677-3.7832 1.5059-.8547.5703-1.6243 1.4859-2.2471 2.3564-.6205.8674-1.1094 1.7126-1.3828 2.1231l-.001.001c-.197.299-.4627.5907-.7607.8066-.2989.2166-.623.3516-.9375.3516h-.0137c-.31124 0-.53407-.1321-.66602-.3272-.13357-.1975-.1799-.4687-.11524-.7539v-.001c.0446-.206.13595-.5142.24024-.8867.10355-.3699.21853-.7984.30468-1.2363.08607-.4375.14448-.8885.13575-1.3027-.00875-.413-.08519-.7999-.27735-1.1016-.54613-.8525-1.49407-1.2105-2.35156-1.4609-.43536-.1272-.84117-.2245-1.18164-.3448-.34146-.1206-.58746-.2553-.71485-.4375-.19178-.2797-.19985-.5478-.09863-.7871.10381-.2452.32707-.4687.6084-.6377l.00195-.001c.31549-.2015.70908-.3411 1.16797-.4619.46026-.1211.97354-.2206 1.53321-.3476 1.04421-.2371 2.22539-.565 3.40139-1.294l.2343-.1513c1.3906-.9091 2.6595-2.7466 3.3711-3.83598.5042-.7709.8527-1.21602 1.3262-1.47558.4739-.25964 1.0875-.34179 2.1426-.3418Z"/><path stroke="url(#o)" stroke-width=".2" d="M19.1363 7.80664h7.3975c.5165.00015.8647.43888.8642.91602-.0004.2358-.0878.47842-.2832.6748-.1956.19642-.5063.35292-.9639.40527-.2461.02816-.6967.09198-1.3154.17579-.6197.08398-1.4106.18888-2.3398.30078h-.001c-.8847.1115-2.3314.3019-3.3623.7881-.5151.2429-.944.5683-1.1377 1.0107-.1965.4495-.1391.9935.2598 1.6446l.0039.0068.0058.0068c.6027.6904 1.5336.9866 2.3584 1.21.4178.1131.8057.2068 1.127.3223.3232.1161.5549.2466.6758.4189l.0009.002c.1808.2467.1905.4956.1075.7177-.0849.2269-.2685.4285-.4747.5606-.3192.2017-.7339.351-1.2226.4853-.4895.1345-1.0406.2513-1.6367.3955-1.1874.2873-2.5304.677-3.7832 1.5059-.8547.5703-1.6243 1.4859-2.2471 2.3564-.6205.8674-1.1094 1.7126-1.3828 2.1231l-.001.001c-.197.299-.4627.5907-.7607.8066-.2989.2166-.623.3516-.9375.3516h-.0137c-.31124 0-.53407-.1321-.66602-.3272-.13357-.1975-.1799-.4687-.11524-.7539v-.001c.0446-.206.13595-.5142.24024-.8867.10355-.3699.21853-.7984.30468-1.2363.08607-.4375.14448-.8885.13575-1.3027-.00875-.413-.08519-.7999-.27735-1.1016-.54613-.8525-1.49407-1.2105-2.35156-1.4609-.43536-.1272-.84117-.2245-1.18164-.3448-.34146-.1206-.58746-.2553-.71485-.4375-.19178-.2797-.19985-.5478-.09863-.7871.10381-.2452.32707-.4687.6084-.6377l.00195-.001c.31549-.2015.70908-.3411 1.16797-.4619.46026-.1211.97354-.2206 1.53321-.3476 1.04421-.2371 2.22539-.565 3.40139-1.294l.2343-.1513c1.3906-.9091 2.6595-2.7466 3.3711-3.83598.5042-.7709.8527-1.21602 1.3262-1.47558.4739-.25964 1.0875-.34179 2.1426-.3418Z"/><mask id="q" width="32" height="32" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="url(#p)" d="M0 0h32v32H0z"/></mask><g mask="url(#q)"><path fill="url(#r)" fill-rule="evenodd" clip-rule="evenodd" d="M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z" clip-rule="evenodd"/></g><rect width="32" height="32" fill="#9772ff" rx="9" style="mix-blend-mode:hue"/></g><defs><radialGradient id="b" cx="0" cy="0" r="1" gradientTransform="matrix(0 23.9175 -30.8218 0 16.1649 0)" gradientUnits="userSpaceOnUse"><stop stop-color="#80f593"/><stop offset="1" stop-color="#49f264"/></radialGradient><radialGradient id="c" cx="0" cy="0" r="1" gradientTransform="matrix(0 -8.2 26.3263 0 16 32)" gradientUnits="userSpaceOnUse"><stop stop-color="#0ec833"/><stop offset="1" stop-color="#49f264" stop-opacity="0"/></radialGradient><radialGradient id="g" cx="0" cy="0" r="1" gradientTransform="rotate(90 8 8)scale(16 216.921)" gradientUnits="userSpaceOnUse"><stop stop-color="#acf6b9"/><stop offset="1" stop-color="#49f264"/></radialGradient><radialGradient id="h" cx="0" cy="0" r="1" gradientTransform="matrix(0 -16 194.49 0 16 32)" gradientUnits="userSpaceOnUse"><stop stop-color="#80f593"/><stop offset="1" stop-color="#49f264" stop-opacity="0"/></radialGradient><radialGradient id="m" cx="0" cy="0" r="1" gradientTransform="matrix(-.05865 17.4934 -29.59743 -.09923 16.4 7.6)" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" stop-opacity=".05"/><stop offset=".746382" stop-color="#fff" stop-opacity=".2"/></radialGradient><radialGradient id="n" cx="0" cy="0" r="1" gradientTransform="matrix(0 3.4 -19.5245 0 16.4 7.6)" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" stop-opacity=".4"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></radialGradient><radialGradient id="o" cx="0" cy="0" r="1" gradientTransform="matrix(.4 -12.20004 70.05845 2.29703 16 25.2)" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" stop-opacity=".1"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></radialGradient><linearGradient id="f" x1="16" x2="16" y1="0" y2="32" gradientUnits="userSpaceOnUse"><stop stop-color="#fff" stop-opacity=".95"/><stop offset=".317308" stop-color="#fff" stop-opacity=".5"/><stop offset="1" stop-color="#fff" stop-opacity=".95"/></linearGradient><linearGradient id="i" x1="16" x2="16" y1="32" y2="31.6" gradientUnits="userSpaceOnUse"><stop stop-color="#acf6b9"/><stop offset="1" stop-color="#49f264" stop-opacity="0"/></linearGradient><linearGradient id="j" x1="16" x2="16" y1=".4" y2="0" gradientUnits="userSpaceOnUse"><stop stop-color="#49f264" stop-opacity="0"/><stop offset="1" stop-color="#d4f7da"/></linearGradient><linearGradient id="l" x1="16.4" x2="16.4" y1="7.6" y2="20.2" gradientUnits="userSpaceOnUse"><stop stop-color="#2e2e2e"/><stop offset="1" stop-color="#151515"/></linearGradient><linearGradient id="r" x1="16.4" x2="16.4" y1="2.4" y2="25.2" gradientUnits="userSpaceOnUse"><stop stop-color="#737373"/><stop offset="1" stop-color="#333"/></linearGradient><pattern id="d" width="1" height="1" patternContentUnits="objectBoundingBox"><use xlink:href="#s" transform="scale(.00156)"/></pattern><pattern id="p" width="1" height="1" patternContentUnits="objectBoundingBox"><use xlink:href="#s" transform="scale(.00156)"/></pattern><clipPath id="a"><path fill="#fff" d="M0 0h32v32H0z"/></clipPath><filter id="k" width="29.9125" height="27.7864" x="4.38512" y="7.30703" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dy=".4"/><feGaussianBlur stdDeviation=".4"/><feColorMatrix values="0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.48 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_7301_30525"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dx=".8" dy="1.2"/><feGaussianBlur stdDeviation=".8"/><feColorMatrix values="0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.42 0"/><feBlend in2="effect1_dropShadow_7301_30525" result="effect2_dropShadow_7301_30525"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dx="1.6" dy="2.8"/><feGaussianBlur stdDeviation="1"/><feColorMatrix values="0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.24 0"/><feBlend in2="effect2_dropShadow_7301_30525" result="effect3_dropShadow_7301_30525"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dx="2.8" dy="4.8"/><feGaussianBlur stdDeviation="1.2"/><feColorMatrix values="0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.07 0"/><feBlend in2="effect3_dropShadow_7301_30525" result="effect4_dropShadow_7301_30525"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset dx="4.4" dy="7.6"/><feGaussianBlur stdDeviation="1.2"/><feColorMatrix values="0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.01 0"/><feBlend in2="effect4_dropShadow_7301_30525" result="effect5_dropShadow_7301_30525"/><feBlend in="SourceGraphic" in2="effect5_dropShadow_7301_30525" result="shape"/></filter></defs></svg>';
|
|
3
|
+
export {
|
|
4
|
+
AGENCIES_ICON_SVG
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=agenciesIcon.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agenciesIcon.mjs","sources":["../../../src/components/Logo/agenciesIcon.ts"],"sourcesContent":["// Fanvue Agencies gradient icon, exported from Figma (vector, raster stripped). The purple\n// is produced by a `mix-blend-mode:hue` layer over the green base, matching the brand spec.\nexport const AGENCIES_ICON_SVG =\n '<svg width=\"100%\" height=\"100%\" style=\"display:block\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g clip-path=\"url(#a)\"><path fill=\"#49f264\" d=\"M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z\"/><path fill=\"url(#b)\" d=\"M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z\" style=\"mix-blend-mode:lighten\"/><path fill=\"url(#c)\" d=\"M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z\"/><g style=\"mix-blend-mode:color-dodge\"><mask id=\"e\" width=\"32\" height=\"32\" x=\"0\" y=\"0\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\"><path fill=\"url(#d)\" d=\"M0 0h32v32H0z\"/></mask><g mask=\"url(#e)\"><path fill=\"url(#f)\" d=\"M0 9.21753C0 4.12683 4.12683 0 9.21753 0H22.7825C27.8732 0 32 4.12683 32 9.21753V22.7825C32 27.8732 27.8732 32 22.7825 32H9.21753C4.12683 32 0 27.8732 0 22.7825z\"/></g></g><path stroke=\"url(#g)\" stroke-width=\".384064\" d=\"M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z\"/><path stroke=\"url(#h)\" stroke-width=\".384064\" d=\"M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z\"/><path stroke=\"url(#i)\" stroke-width=\".384064\" d=\"M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z\"/><path stroke=\"url(#j)\" stroke-width=\".384064\" d=\"M9.21777.192383H22.7822c4.9847 0 9.0254 4.040747 9.0254 9.025387V22.7822c0 4.9847-4.0407 9.0254-9.0254 9.0254H9.21777c-4.98464 0-9.025387-4.0407-9.025387-9.0254V9.21777c0-4.98464 4.040747-9.025387 9.025387-9.025387Z\"/><g fill-rule=\"evenodd\" clip-rule=\"evenodd\" filter=\"url(#k)\"><path fill=\"url(#l)\" d=\"M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z\"/><path fill=\"url(#m)\" d=\"M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z\" style=\"mix-blend-mode:lighten\"/></g><path fill=\"#000\" fill-opacity=\".01\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z\" clip-rule=\"evenodd\"/><path stroke=\"url(#n)\" stroke-width=\".2\" d=\"M19.1363 7.80664h7.3975c.5165.00015.8647.43888.8642.91602-.0004.2358-.0878.47842-.2832.6748-.1956.19642-.5063.35292-.9639.40527-.2461.02816-.6967.09198-1.3154.17579-.6197.08398-1.4106.18888-2.3398.30078h-.001c-.8847.1115-2.3314.3019-3.3623.7881-.5151.2429-.944.5683-1.1377 1.0107-.1965.4495-.1391.9935.2598 1.6446l.0039.0068.0058.0068c.6027.6904 1.5336.9866 2.3584 1.21.4178.1131.8057.2068 1.127.3223.3232.1161.5549.2466.6758.4189l.0009.002c.1808.2467.1905.4956.1075.7177-.0849.2269-.2685.4285-.4747.5606-.3192.2017-.7339.351-1.2226.4853-.4895.1345-1.0406.2513-1.6367.3955-1.1874.2873-2.5304.677-3.7832 1.5059-.8547.5703-1.6243 1.4859-2.2471 2.3564-.6205.8674-1.1094 1.7126-1.3828 2.1231l-.001.001c-.197.299-.4627.5907-.7607.8066-.2989.2166-.623.3516-.9375.3516h-.0137c-.31124 0-.53407-.1321-.66602-.3272-.13357-.1975-.1799-.4687-.11524-.7539v-.001c.0446-.206.13595-.5142.24024-.8867.10355-.3699.21853-.7984.30468-1.2363.08607-.4375.14448-.8885.13575-1.3027-.00875-.413-.08519-.7999-.27735-1.1016-.54613-.8525-1.49407-1.2105-2.35156-1.4609-.43536-.1272-.84117-.2245-1.18164-.3448-.34146-.1206-.58746-.2553-.71485-.4375-.19178-.2797-.19985-.5478-.09863-.7871.10381-.2452.32707-.4687.6084-.6377l.00195-.001c.31549-.2015.70908-.3411 1.16797-.4619.46026-.1211.97354-.2206 1.53321-.3476 1.04421-.2371 2.22539-.565 3.40139-1.294l.2343-.1513c1.3906-.9091 2.6595-2.7466 3.3711-3.83598.5042-.7709.8527-1.21602 1.3262-1.47558.4739-.25964 1.0875-.34179 2.1426-.3418Z\"/><path stroke=\"url(#o)\" stroke-width=\".2\" d=\"M19.1363 7.80664h7.3975c.5165.00015.8647.43888.8642.91602-.0004.2358-.0878.47842-.2832.6748-.1956.19642-.5063.35292-.9639.40527-.2461.02816-.6967.09198-1.3154.17579-.6197.08398-1.4106.18888-2.3398.30078h-.001c-.8847.1115-2.3314.3019-3.3623.7881-.5151.2429-.944.5683-1.1377 1.0107-.1965.4495-.1391.9935.2598 1.6446l.0039.0068.0058.0068c.6027.6904 1.5336.9866 2.3584 1.21.4178.1131.8057.2068 1.127.3223.3232.1161.5549.2466.6758.4189l.0009.002c.1808.2467.1905.4956.1075.7177-.0849.2269-.2685.4285-.4747.5606-.3192.2017-.7339.351-1.2226.4853-.4895.1345-1.0406.2513-1.6367.3955-1.1874.2873-2.5304.677-3.7832 1.5059-.8547.5703-1.6243 1.4859-2.2471 2.3564-.6205.8674-1.1094 1.7126-1.3828 2.1231l-.001.001c-.197.299-.4627.5907-.7607.8066-.2989.2166-.623.3516-.9375.3516h-.0137c-.31124 0-.53407-.1321-.66602-.3272-.13357-.1975-.1799-.4687-.11524-.7539v-.001c.0446-.206.13595-.5142.24024-.8867.10355-.3699.21853-.7984.30468-1.2363.08607-.4375.14448-.8885.13575-1.3027-.00875-.413-.08519-.7999-.27735-1.1016-.54613-.8525-1.49407-1.2105-2.35156-1.4609-.43536-.1272-.84117-.2245-1.18164-.3448-.34146-.1206-.58746-.2553-.71485-.4375-.19178-.2797-.19985-.5478-.09863-.7871.10381-.2452.32707-.4687.6084-.6377l.00195-.001c.31549-.2015.70908-.3411 1.16797-.4619.46026-.1211.97354-.2206 1.53321-.3476 1.04421-.2371 2.22539-.565 3.40139-1.294l.2343-.1513c1.3906-.9091 2.6595-2.7466 3.3711-3.83598.5042-.7709.8527-1.21602 1.3262-1.47558.4739-.25964 1.0875-.34179 2.1426-.3418Z\"/><mask id=\"q\" width=\"32\" height=\"32\" x=\"0\" y=\"0\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\"><path fill=\"url(#p)\" d=\"M0 0h32v32H0z\"/></mask><g mask=\"url(#q)\"><path fill=\"url(#r)\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.0735 25.0934c-.68532 0-1.01866-.588-.8788-1.2039.18182-.8399 1.1306-3.3317.41726-4.4516-1.04897-1.6378-3.65855-1.3998-4.24597-2.2398-.42339-.6163-.04608-1.2161.53963-1.5678 1.3147-.8399 3.86019-.602 6.33578-2.2538 1.3706-.8959 2.6294-2.7157 3.3427-3.80764 1.007-1.53986 1.4405-1.86183 3.5525-1.86183h7.3969c1.1649 0 1.5298 1.97802-.3712 2.19546-.4895.056-1.7949.25201-3.6551.47591-1.7762.224-5.7203.7583-4.1679 3.2921 1.1609 1.3298 3.6085 1.1619 4.1679 1.9598.4047.5523.0467 1.1398-.3939 1.422-1.3287.8399-4.1656.7478-6.6411 2.3856-1.6784 1.1199-3.0432 3.6117-3.6026 4.4516-.4056.6159-1.0968 1.2039-1.7821 1.2039z\" clip-rule=\"evenodd\"/></g><rect width=\"32\" height=\"32\" fill=\"#9772ff\" rx=\"9\" style=\"mix-blend-mode:hue\"/></g><defs><radialGradient id=\"b\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"matrix(0 23.9175 -30.8218 0 16.1649 0)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#80f593\"/><stop offset=\"1\" stop-color=\"#49f264\"/></radialGradient><radialGradient id=\"c\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"matrix(0 -8.2 26.3263 0 16 32)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#0ec833\"/><stop offset=\"1\" stop-color=\"#49f264\" stop-opacity=\"0\"/></radialGradient><radialGradient id=\"g\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"rotate(90 8 8)scale(16 216.921)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#acf6b9\"/><stop offset=\"1\" stop-color=\"#49f264\"/></radialGradient><radialGradient id=\"h\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"matrix(0 -16 194.49 0 16 32)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#80f593\"/><stop offset=\"1\" stop-color=\"#49f264\" stop-opacity=\"0\"/></radialGradient><radialGradient id=\"m\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"matrix(-.05865 17.4934 -29.59743 -.09923 16.4 7.6)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#fff\" stop-opacity=\".05\"/><stop offset=\".746382\" stop-color=\"#fff\" stop-opacity=\".2\"/></radialGradient><radialGradient id=\"n\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"matrix(0 3.4 -19.5245 0 16.4 7.6)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#fff\" stop-opacity=\".4\"/><stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\"0\"/></radialGradient><radialGradient id=\"o\" cx=\"0\" cy=\"0\" r=\"1\" gradientTransform=\"matrix(.4 -12.20004 70.05845 2.29703 16 25.2)\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#fff\" stop-opacity=\".1\"/><stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\"0\"/></radialGradient><linearGradient id=\"f\" x1=\"16\" x2=\"16\" y1=\"0\" y2=\"32\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#fff\" stop-opacity=\".95\"/><stop offset=\".317308\" stop-color=\"#fff\" stop-opacity=\".5\"/><stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\".95\"/></linearGradient><linearGradient id=\"i\" x1=\"16\" x2=\"16\" y1=\"32\" y2=\"31.6\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#acf6b9\"/><stop offset=\"1\" stop-color=\"#49f264\" stop-opacity=\"0\"/></linearGradient><linearGradient id=\"j\" x1=\"16\" x2=\"16\" y1=\".4\" y2=\"0\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#49f264\" stop-opacity=\"0\"/><stop offset=\"1\" stop-color=\"#d4f7da\"/></linearGradient><linearGradient id=\"l\" x1=\"16.4\" x2=\"16.4\" y1=\"7.6\" y2=\"20.2\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#2e2e2e\"/><stop offset=\"1\" stop-color=\"#151515\"/></linearGradient><linearGradient id=\"r\" x1=\"16.4\" x2=\"16.4\" y1=\"2.4\" y2=\"25.2\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#737373\"/><stop offset=\"1\" stop-color=\"#333\"/></linearGradient><pattern id=\"d\" width=\"1\" height=\"1\" patternContentUnits=\"objectBoundingBox\"><use xlink:href=\"#s\" transform=\"scale(.00156)\"/></pattern><pattern id=\"p\" width=\"1\" height=\"1\" patternContentUnits=\"objectBoundingBox\"><use xlink:href=\"#s\" transform=\"scale(.00156)\"/></pattern><clipPath id=\"a\"><path fill=\"#fff\" d=\"M0 0h32v32H0z\"/></clipPath><filter id=\"k\" width=\"29.9125\" height=\"27.7864\" x=\"4.38512\" y=\"7.30703\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/><feOffset dy=\".4\"/><feGaussianBlur stdDeviation=\".4\"/><feColorMatrix values=\"0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.48 0\"/><feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_7301_30525\"/><feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/><feOffset dx=\".8\" dy=\"1.2\"/><feGaussianBlur stdDeviation=\".8\"/><feColorMatrix values=\"0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.42 0\"/><feBlend in2=\"effect1_dropShadow_7301_30525\" result=\"effect2_dropShadow_7301_30525\"/><feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/><feOffset dx=\"1.6\" dy=\"2.8\"/><feGaussianBlur stdDeviation=\"1\"/><feColorMatrix values=\"0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.24 0\"/><feBlend in2=\"effect2_dropShadow_7301_30525\" result=\"effect3_dropShadow_7301_30525\"/><feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/><feOffset dx=\"2.8\" dy=\"4.8\"/><feGaussianBlur stdDeviation=\"1.2\"/><feColorMatrix values=\"0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.07 0\"/><feBlend in2=\"effect3_dropShadow_7301_30525\" result=\"effect4_dropShadow_7301_30525\"/><feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/><feOffset dx=\"4.4\" dy=\"7.6\"/><feGaussianBlur stdDeviation=\"1.2\"/><feColorMatrix values=\"0 0 0 0 0.12549 0 0 0 0 0.352941 0 0 0 0 0.172549 0 0 0 0.01 0\"/><feBlend in2=\"effect4_dropShadow_7301_30525\" result=\"effect5_dropShadow_7301_30525\"/><feBlend in=\"SourceGraphic\" in2=\"effect5_dropShadow_7301_30525\" result=\"shape\"/></filter></defs></svg>';\n"],"names":[],"mappings":";AAEO,MAAM,oBACX;"}
|
|
@@ -10,14 +10,16 @@ const alignLeftClasses = {
|
|
|
10
10
|
lg: "[&>[role=tab]]:lg:flex-initial",
|
|
11
11
|
xl: "[&>[role=tab]]:xl:flex-initial"
|
|
12
12
|
};
|
|
13
|
-
function getLayoutClass(fullWidth, alignLeft) {
|
|
13
|
+
function getLayoutClass(variant, fullWidth, alignLeft) {
|
|
14
|
+
if (variant === "hug") return "inline-flex";
|
|
15
|
+
if (variant === "fill") return "flex w-full [&>[role=tab]]:flex-1";
|
|
14
16
|
if (!fullWidth) return "inline-flex";
|
|
15
17
|
const base = "flex w-full [&>[role=tab]]:flex-1";
|
|
16
18
|
if (alignLeft === true) return `${base} ${alignLeftClasses.always}`;
|
|
17
19
|
if (typeof alignLeft === "string") return `${base} ${alignLeftClasses[alignLeft]}`;
|
|
18
20
|
return base;
|
|
19
21
|
}
|
|
20
|
-
const TabsList = React.forwardRef(({ className, children, fullWidth = true, alignLeft, ...props }, ref) => {
|
|
22
|
+
const TabsList = React.forwardRef(({ className, children, fullWidth = true, alignLeft, variant, ...props }, ref) => {
|
|
21
23
|
const innerRef = React.useRef(null);
|
|
22
24
|
const indicatorRef = React.useRef(null);
|
|
23
25
|
React.useImperativeHandle(ref, () => innerRef.current);
|
|
@@ -33,15 +35,21 @@ const TabsList = React.forwardRef(({ className, children, fullWidth = true, alig
|
|
|
33
35
|
const isVertical = list.dataset.orientation === "vertical";
|
|
34
36
|
indicator.style.opacity = "1";
|
|
35
37
|
if (isVertical) {
|
|
36
|
-
indicator.style.
|
|
37
|
-
indicator.style.
|
|
38
|
+
indicator.style.background = "linear-gradient(180deg, var(--color-buttons-tertiary-default) 0%, var(--color-tab-active) 50%, var(--color-buttons-tertiary-default) 100%)";
|
|
39
|
+
indicator.style.inset = `0 -1px auto auto`;
|
|
40
|
+
indicator.style.width = "1px";
|
|
38
41
|
indicator.style.height = `${activeTab.offsetHeight}px`;
|
|
39
42
|
indicator.style.transform = `translateY(${activeTab.offsetTop}px)`;
|
|
40
43
|
} else {
|
|
41
|
-
indicator.style.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
indicator.style.background = "linear-gradient(90deg, var(--color-buttons-tertiary-default) 0%, var(--color-tab-active) 50%, var(--color-buttons-tertiary-default) 100%)";
|
|
45
|
+
const textSpan = activeTab.querySelector("span");
|
|
46
|
+
const textWidth = (textSpan ?? activeTab).getBoundingClientRect().width;
|
|
47
|
+
const tabCenter = activeTab.offsetLeft + activeTab.offsetWidth / 2;
|
|
48
|
+
const indicatorLeft = tabCenter - textWidth / 2;
|
|
49
|
+
indicator.style.inset = "auto auto 0 0";
|
|
50
|
+
indicator.style.height = "1px";
|
|
51
|
+
indicator.style.width = `${textWidth}px`;
|
|
52
|
+
indicator.style.transform = `translateX(${indicatorLeft}px)`;
|
|
45
53
|
}
|
|
46
54
|
}, []);
|
|
47
55
|
React.useLayoutEffect(() => {
|
|
@@ -79,9 +87,9 @@ const TabsList = React.forwardRef(({ className, children, fullWidth = true, alig
|
|
|
79
87
|
ref: innerRef,
|
|
80
88
|
className: cn(
|
|
81
89
|
"relative",
|
|
82
|
-
getLayoutClass(fullWidth, alignLeft),
|
|
83
|
-
"data-[orientation=horizontal]:items-center data-[orientation=horizontal]:shadow-[inset_0_-1px_0_0_var(--color-
|
|
84
|
-
"data-[orientation=vertical]:flex-col data-[orientation=vertical]:shadow-[inset_-1px_0_0_0_var(--color-
|
|
90
|
+
getLayoutClass(variant, fullWidth, alignLeft),
|
|
91
|
+
"data-[orientation=horizontal]:items-center data-[orientation=horizontal]:shadow-[inset_0_-1px_0_0_var(--color-border-primary)]",
|
|
92
|
+
"data-[orientation=vertical]:flex-col data-[orientation=vertical]:shadow-[inset_-1px_0_0_0_var(--color-border-primary)]",
|
|
85
93
|
className
|
|
86
94
|
),
|
|
87
95
|
...props,
|
|
@@ -92,7 +100,7 @@ const TabsList = React.forwardRef(({ className, children, fullWidth = true, alig
|
|
|
92
100
|
{
|
|
93
101
|
ref: indicatorRef,
|
|
94
102
|
"aria-hidden": true,
|
|
95
|
-
className: "pointer-events-none absolute rounded-full
|
|
103
|
+
className: "pointer-events-none absolute z-10 rounded-full motion-safe:transition-[transform,width,height] motion-safe:duration-200 motion-safe:ease-in-out",
|
|
96
104
|
style: { opacity: 0 }
|
|
97
105
|
}
|
|
98
106
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsList.mjs","sources":["../../../src/components/Tabs/TabsList.tsx"],"sourcesContent":["import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Breakpoint values for responsive props. */\ntype Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nconst alignLeftClasses: Record<Breakpoint | \"always\", string> = {\n always: \"[&>[role=tab]]:flex-initial\",\n sm: \"[&>[role=tab]]:sm:flex-initial\",\n md: \"[&>[role=tab]]:md:flex-initial\",\n lg: \"[&>[role=tab]]:lg:flex-initial\",\n xl: \"[&>[role=tab]]:xl:flex-initial\",\n};\n\nfunction getLayoutClass(fullWidth: boolean
|
|
1
|
+
{"version":3,"file":"TabsList.mjs","sources":["../../../src/components/Tabs/TabsList.tsx"],"sourcesContent":["import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Breakpoint values for responsive props. */\ntype Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nconst alignLeftClasses: Record<Breakpoint | \"always\", string> = {\n always: \"[&>[role=tab]]:flex-initial\",\n sm: \"[&>[role=tab]]:sm:flex-initial\",\n md: \"[&>[role=tab]]:md:flex-initial\",\n lg: \"[&>[role=tab]]:lg:flex-initial\",\n xl: \"[&>[role=tab]]:xl:flex-initial\",\n};\n\nfunction getLayoutClass(\n variant: \"fill\" | \"hug\" | undefined,\n fullWidth: boolean,\n alignLeft?: boolean | Breakpoint,\n): string {\n if (variant === \"hug\") return \"inline-flex\";\n if (variant === \"fill\") return \"flex w-full [&>[role=tab]]:flex-1\";\n\n if (!fullWidth) return \"inline-flex\";\n\n const base = \"flex w-full [&>[role=tab]]:flex-1\";\n if (alignLeft === true) return `${base} ${alignLeftClasses.always}`;\n if (typeof alignLeft === \"string\") return `${base} ${alignLeftClasses[alignLeft]}`;\n return base;\n}\n\n/** Props for the {@link TabsList} component. */\nexport type TabsListProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & {\n /** When `true` (the default), the tab list spans the full width of its container and each tab grows equally. Set to `false` for inline sizing. */\n fullWidth?: boolean;\n /**\n * Controls tab alignment within a full-width container.\n * - `false` (default): tabs spread evenly\n * - `true`: tabs left-aligned, sized to content\n * - `\"md\"` (breakpoint): spread on mobile, left-aligned at breakpoint and up\n */\n alignLeft?: boolean | Breakpoint;\n /** Explicit layout variant. `\"hug\"` sizes the list to its content; `\"fill\"` stretches it full-width with equal-width tabs. Takes precedence over `fullWidth`/`alignLeft`. */\n variant?: \"fill\" | \"hug\";\n};\n\n/** Container for {@link TabsTrigger} elements. Renders a sliding active-tab indicator that animates between tabs. */\nexport const TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, children, fullWidth = true, alignLeft, variant, ...props }, ref) => {\n const innerRef = React.useRef<HTMLDivElement>(null);\n const indicatorRef = React.useRef<HTMLSpanElement>(null);\n\n React.useImperativeHandle(ref, () => innerRef.current as HTMLDivElement);\n\n const updateIndicator = React.useCallback(() => {\n const list = innerRef.current;\n const indicator = indicatorRef.current;\n if (!list || !indicator) return;\n\n const activeTab = list.querySelector<HTMLElement>('[data-state=\"active\"]');\n if (!activeTab) {\n indicator.style.opacity = \"0\";\n return;\n }\n\n const isVertical = list.dataset.orientation === \"vertical\";\n\n indicator.style.opacity = \"1\";\n\n if (isVertical) {\n indicator.style.background =\n \"linear-gradient(180deg, var(--color-buttons-tertiary-default) 0%, var(--color-tab-active) 50%, var(--color-buttons-tertiary-default) 100%)\";\n indicator.style.inset = `0 -1px auto auto`;\n indicator.style.width = \"1px\";\n indicator.style.height = `${activeTab.offsetHeight}px`;\n indicator.style.transform = `translateY(${activeTab.offsetTop}px)`;\n } else {\n indicator.style.background =\n \"linear-gradient(90deg, var(--color-buttons-tertiary-default) 0%, var(--color-tab-active) 50%, var(--color-buttons-tertiary-default) 100%)\";\n const textSpan = activeTab.querySelector(\"span\");\n const textWidth = (textSpan ?? activeTab).getBoundingClientRect().width;\n const tabCenter = activeTab.offsetLeft + activeTab.offsetWidth / 2;\n const indicatorLeft = tabCenter - textWidth / 2;\n indicator.style.inset = \"auto auto 0 0\";\n indicator.style.height = \"1px\";\n indicator.style.width = `${textWidth}px`;\n indicator.style.transform = `translateX(${indicatorLeft}px)`;\n }\n }, []);\n\n React.useLayoutEffect(() => {\n const list = innerRef.current;\n const indicator = indicatorRef.current;\n if (!list || !indicator) return;\n\n indicator.style.transitionDuration = \"0s\";\n updateIndicator();\n indicator.getBoundingClientRect();\n indicator.style.transitionDuration = \"\";\n\n const mutationObserver = new MutationObserver(updateIndicator);\n mutationObserver.observe(list, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n childList: true,\n subtree: true,\n });\n\n const resizeObserver = new ResizeObserver(updateIndicator);\n resizeObserver.observe(list);\n\n let cancelled = false;\n if (document.fonts?.status !== \"loaded\") {\n document.fonts?.ready.then(() => {\n if (!cancelled) updateIndicator();\n });\n }\n\n return () => {\n cancelled = true;\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n };\n }, [updateIndicator]);\n\n return (\n <TabsPrimitive.List\n ref={innerRef}\n className={cn(\n \"relative\",\n getLayoutClass(variant, fullWidth, alignLeft),\n \"data-[orientation=horizontal]:items-center data-[orientation=horizontal]:shadow-[inset_0_-1px_0_0_var(--color-border-primary)]\",\n \"data-[orientation=vertical]:flex-col data-[orientation=vertical]:shadow-[inset_-1px_0_0_0_var(--color-border-primary)]\",\n className,\n )}\n {...props}\n >\n {children}\n <span\n ref={indicatorRef}\n aria-hidden\n className=\"pointer-events-none absolute z-10 rounded-full motion-safe:transition-[transform,width,height] motion-safe:duration-200 motion-safe:ease-in-out\"\n style={{ opacity: 0 }}\n />\n </TabsPrimitive.List>\n );\n});\n\nTabsList.displayName = \"TabsList\";\n"],"names":[],"mappings":";;;;;AAOA,MAAM,mBAA0D;AAAA,EAC9D,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,SAAS,eACP,SACA,WACA,WACQ;AACR,MAAI,YAAY,MAAO,QAAO;AAC9B,MAAI,YAAY,OAAQ,QAAO;AAE/B,MAAI,CAAC,UAAW,QAAO;AAEvB,QAAM,OAAO;AACb,MAAI,cAAc,KAAM,QAAO,GAAG,IAAI,IAAI,iBAAiB,MAAM;AACjE,MAAI,OAAO,cAAc,SAAU,QAAO,GAAG,IAAI,IAAI,iBAAiB,SAAS,CAAC;AAChF,SAAO;AACT;AAkBO,MAAM,WAAW,MAAM,WAG5B,CAAC,EAAE,WAAW,UAAU,YAAY,MAAM,WAAW,SAAS,GAAG,MAAA,GAAS,QAAQ;AAClF,QAAM,WAAW,MAAM,OAAuB,IAAI;AAClD,QAAM,eAAe,MAAM,OAAwB,IAAI;AAEvD,QAAM,oBAAoB,KAAK,MAAM,SAAS,OAAyB;AAEvE,QAAM,kBAAkB,MAAM,YAAY,MAAM;AAC9C,UAAM,OAAO,SAAS;AACtB,UAAM,YAAY,aAAa;AAC/B,QAAI,CAAC,QAAQ,CAAC,UAAW;AAEzB,UAAM,YAAY,KAAK,cAA2B,uBAAuB;AACzE,QAAI,CAAC,WAAW;AACd,gBAAU,MAAM,UAAU;AAC1B;AAAA,IACF;AAEA,UAAM,aAAa,KAAK,QAAQ,gBAAgB;AAEhD,cAAU,MAAM,UAAU;AAE1B,QAAI,YAAY;AACd,gBAAU,MAAM,aACd;AACF,gBAAU,MAAM,QAAQ;AACxB,gBAAU,MAAM,QAAQ;AACxB,gBAAU,MAAM,SAAS,GAAG,UAAU,YAAY;AAClD,gBAAU,MAAM,YAAY,cAAc,UAAU,SAAS;AAAA,IAC/D,OAAO;AACL,gBAAU,MAAM,aACd;AACF,YAAM,WAAW,UAAU,cAAc,MAAM;AAC/C,YAAM,aAAa,YAAY,WAAW,sBAAA,EAAwB;AAClE,YAAM,YAAY,UAAU,aAAa,UAAU,cAAc;AACjE,YAAM,gBAAgB,YAAY,YAAY;AAC9C,gBAAU,MAAM,QAAQ;AACxB,gBAAU,MAAM,SAAS;AACzB,gBAAU,MAAM,QAAQ,GAAG,SAAS;AACpC,gBAAU,MAAM,YAAY,cAAc,aAAa;AAAA,IACzD;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAM,gBAAgB,MAAM;AAC1B,UAAM,OAAO,SAAS;AACtB,UAAM,YAAY,aAAa;AAC/B,QAAI,CAAC,QAAQ,CAAC,UAAW;AAEzB,cAAU,MAAM,qBAAqB;AACrC,oBAAA;AACA,cAAU,sBAAA;AACV,cAAU,MAAM,qBAAqB;AAErC,UAAM,mBAAmB,IAAI,iBAAiB,eAAe;AAC7D,qBAAiB,QAAQ,MAAM;AAAA,MAC7B,YAAY;AAAA,MACZ,iBAAiB,CAAC,YAAY;AAAA,MAC9B,WAAW;AAAA,MACX,SAAS;AAAA,IAAA,CACV;AAED,UAAM,iBAAiB,IAAI,eAAe,eAAe;AACzD,mBAAe,QAAQ,IAAI;AAE3B,QAAI,YAAY;AAChB,QAAI,SAAS,OAAO,WAAW,UAAU;AACvC,eAAS,OAAO,MAAM,KAAK,MAAM;AAC/B,YAAI,CAAC,UAAW,iBAAA;AAAA,MAClB,CAAC;AAAA,IACH;AAEA,WAAO,MAAM;AACX,kBAAY;AACZ,uBAAiB,WAAA;AACjB,qBAAe,WAAA;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,SACE;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,KAAK;AAAA,MACL,WAAW;AAAA,QACT;AAAA,QACA,eAAe,SAAS,WAAW,SAAS;AAAA,QAC5C;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,eAAW;AAAA,YACX,WAAU;AAAA,YACV,OAAO,EAAE,SAAS,EAAA;AAAA,UAAE;AAAA,QAAA;AAAA,MACtB;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAED,SAAS,cAAc;"}
|
|
@@ -9,18 +9,19 @@ const TabsTrigger = React.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
9
9
|
ref,
|
|
10
10
|
className: cn(
|
|
11
11
|
"inline-flex min-w-0 items-center justify-center",
|
|
12
|
-
"
|
|
13
|
-
"typography-body-default-16px-semibold cursor-pointer text-content-primary",
|
|
12
|
+
"typography-body-default-16px-semibold cursor-pointer",
|
|
14
13
|
"motion-safe:transition-colors motion-safe:duration-150 motion-safe:ease-in-out",
|
|
15
14
|
"data-[orientation=horizontal]:px-4 data-[orientation=horizontal]:py-3",
|
|
16
15
|
"data-[orientation=vertical]:justify-start data-[orientation=vertical]:px-4 data-[orientation=vertical]:py-3",
|
|
17
|
-
"data-[state=active]:
|
|
18
|
-
"data-[state=inactive]:
|
|
19
|
-
"data-[state=active]:
|
|
20
|
-
"data-[state=inactive]:
|
|
16
|
+
"data-[state=active]:text-content-primary",
|
|
17
|
+
"data-[state=inactive]:text-content-tertiary",
|
|
18
|
+
"data-[state=active]:hover:text-content-primary/70",
|
|
19
|
+
"data-[state=inactive]:hover:text-content-primary",
|
|
20
|
+
"data-[state=active]:active:text-content-primary/70",
|
|
21
|
+
"data-[state=inactive]:active:text-content-primary",
|
|
21
22
|
"data-disabled:pointer-events-none",
|
|
22
23
|
"data-disabled:data-[state=active]:text-content-tertiary",
|
|
23
|
-
"data-disabled:data-[state=inactive]:text-neutral-alphas-
|
|
24
|
+
"data-disabled:data-[state=inactive]:text-neutral-alphas-200",
|
|
24
25
|
"focus-visible:shadow-focus-ring focus-visible:outline-none",
|
|
25
26
|
className
|
|
26
27
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsTrigger.mjs","sources":["../../../src/components/Tabs/TabsTrigger.tsx"],"sourcesContent":["import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Props for the {@link TabsTrigger} button component. */\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;\n\n/** An interactive tab button that activates its associated {@link TabsContent} panel when clicked. */\nexport const TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, children, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex min-w-0 items-center justify-center\",\n \"
|
|
1
|
+
{"version":3,"file":"TabsTrigger.mjs","sources":["../../../src/components/Tabs/TabsTrigger.tsx"],"sourcesContent":["import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Props for the {@link TabsTrigger} button component. */\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;\n\n/** An interactive tab button that activates its associated {@link TabsContent} panel when clicked. */\nexport const TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, children, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex min-w-0 items-center justify-center\",\n \"typography-body-default-16px-semibold cursor-pointer\",\n \"motion-safe:transition-colors motion-safe:duration-150 motion-safe:ease-in-out\",\n \"data-[orientation=horizontal]:px-4 data-[orientation=horizontal]:py-3\",\n \"data-[orientation=vertical]:justify-start data-[orientation=vertical]:px-4 data-[orientation=vertical]:py-3\",\n \"data-[state=active]:text-content-primary\",\n \"data-[state=inactive]:text-content-tertiary\",\n \"data-[state=active]:hover:text-content-primary/70\",\n \"data-[state=inactive]:hover:text-content-primary\",\n \"data-[state=active]:active:text-content-primary/70\",\n \"data-[state=inactive]:active:text-content-primary\",\n \"data-disabled:pointer-events-none\",\n \"data-disabled:data-[state=active]:text-content-tertiary\",\n \"data-disabled:data-[state=inactive]:text-neutral-alphas-200\",\n \"focus-visible:shadow-focus-ring focus-visible:outline-none\",\n className,\n )}\n {...props}\n >\n <span className=\"min-w-0 truncate\">{children}</span>\n </TabsPrimitive.Trigger>\n));\n\nTabsTrigger.displayName = \"TabsTrigger\";\n"],"names":[],"mappings":";;;;;AAQO,MAAM,cAAc,MAAM,WAG/B,CAAC,EAAE,WAAW,UAAU,GAAG,SAAS,QACpC;AAAA,EAAC,cAAc;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,IAEJ,UAAA,oBAAC,QAAA,EAAK,WAAU,oBAAoB,SAAA,CAAS;AAAA,EAAA;AAC/C,CACD;AAED,YAAY,cAAc;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1104,6 +1104,21 @@ export declare interface ChatInputProps extends Omit<React_2.TextareaHTMLAttribu
|
|
|
1104
1104
|
* Ignored when `toolbarRight` is provided.
|
|
1105
1105
|
*/
|
|
1106
1106
|
selectOptions?: ChatInputSelectOption[];
|
|
1107
|
+
/**
|
|
1108
|
+
* How the built-in selector presents its options:
|
|
1109
|
+
* - `"menu"` (default) — a dropdown anchored to the trigger, for pointer/desktop.
|
|
1110
|
+
* - `"sheet"` — a bottom sheet, for mobile/touch viewports.
|
|
1111
|
+
*
|
|
1112
|
+
* The viewport decision belongs to the consumer (it owns the breakpoint
|
|
1113
|
+
* source of truth), so pass e.g. `selectVariant={isDesktop ? "menu" : "sheet"}`.
|
|
1114
|
+
* @default "menu"
|
|
1115
|
+
*/
|
|
1116
|
+
selectVariant?: "menu" | "sheet";
|
|
1117
|
+
/**
|
|
1118
|
+
* Title shown at the top of the `"sheet"` variant of the built-in selector
|
|
1119
|
+
* (e.g. "Switch AI Model"). @default "Select an option"
|
|
1120
|
+
*/
|
|
1121
|
+
selectMenuTitle?: string;
|
|
1107
1122
|
/** Currently selected value for the built-in dropdown. Should match one of `selectOptions[].value`. */
|
|
1108
1123
|
selectValue?: string;
|
|
1109
1124
|
/** When `true`, disables only the built-in dropdown selector. @default false */
|
|
@@ -1133,8 +1148,15 @@ export declare interface ChatInputProps extends Omit<React_2.TextareaHTMLAttribu
|
|
|
1133
1148
|
export declare interface ChatInputSelectOption {
|
|
1134
1149
|
/** Unique value for this option. */
|
|
1135
1150
|
value: string;
|
|
1136
|
-
/**
|
|
1151
|
+
/** Short label shown on the collapsed trigger button (e.g. "Sonnet 4.6"). */
|
|
1137
1152
|
label: string;
|
|
1153
|
+
/**
|
|
1154
|
+
* Optional longer title shown on the option's row inside the open menu/sheet
|
|
1155
|
+
* (e.g. "Claude Sonnet 4.6"). Falls back to {@link label} when omitted.
|
|
1156
|
+
*/
|
|
1157
|
+
menuLabel?: string;
|
|
1158
|
+
/** Optional secondary text shown below the label in the dropdown menu. */
|
|
1159
|
+
description?: string;
|
|
1138
1160
|
/** Optional icon rendered to the left of the label. */
|
|
1139
1161
|
icon?: React_2.ReactNode;
|
|
1140
1162
|
}
|
|
@@ -1296,7 +1318,8 @@ export declare interface ChipProps extends React_2.HTMLAttributes<HTMLElement> {
|
|
|
1296
1318
|
leftDot?: boolean;
|
|
1297
1319
|
/**
|
|
1298
1320
|
* Whether the chip uses a dashed border for add/create affordances.
|
|
1299
|
-
*
|
|
1321
|
+
* When `selected`, it becomes a subtle filled state with a solid border.
|
|
1322
|
+
* Has no effect when `variant="dark"`.
|
|
1300
1323
|
* @default false
|
|
1301
1324
|
*/
|
|
1302
1325
|
dotted?: boolean;
|
|
@@ -1961,6 +1984,11 @@ export declare interface DrawerContentProps extends React_2.ComponentPropsWithou
|
|
|
1961
1984
|
* @default "sm"
|
|
1962
1985
|
*/
|
|
1963
1986
|
size?: DrawerSize;
|
|
1987
|
+
/**
|
|
1988
|
+
* Visual treatment of the panel. Use `"sheet"` (with `position="bottom"`) for
|
|
1989
|
+
* a bottom sheet with the modal surface treatment. @default "panel"
|
|
1990
|
+
*/
|
|
1991
|
+
variant?: DrawerVariant;
|
|
1964
1992
|
/**
|
|
1965
1993
|
* Whether to render the default {@link DrawerOverlay} behind the content.
|
|
1966
1994
|
* Set to `false` to provide your own overlay or omit it entirely.
|
|
@@ -2063,6 +2091,16 @@ export declare const DrawerTrigger: React_2.ForwardRefExoticComponent<Omit<Dialo
|
|
|
2063
2091
|
/** Props for the {@link DrawerTrigger} component. */
|
|
2064
2092
|
export declare type DrawerTriggerProps = React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
|
|
2065
2093
|
|
|
2094
|
+
/**
|
|
2095
|
+
* Visual treatment of the drawer panel.
|
|
2096
|
+
*
|
|
2097
|
+
* - `"panel"` (default) — the standard edge-anchored surface.
|
|
2098
|
+
* - `"sheet"` — a bottom-sheet treatment matching the modal surface: large
|
|
2099
|
+
* top-only radius (32px), modal background/stroke, and menu blur+shadow.
|
|
2100
|
+
* Intended for `position="bottom"`.
|
|
2101
|
+
*/
|
|
2102
|
+
export declare type DrawerVariant = "panel" | "sheet";
|
|
2103
|
+
|
|
2066
2104
|
/** Root component that manages open/close state for a dropdown menu. */
|
|
2067
2105
|
export declare function DropdownMenu({ open: openProp, defaultOpen, onOpenChange, children, ...props }: DropdownMenuProps): JSX.Element;
|
|
2068
2106
|
|
|
@@ -2179,6 +2217,12 @@ export declare interface DropdownMenuItemProps extends React_2.ComponentPropsWit
|
|
|
2179
2217
|
leadingIcon?: React_2.ReactNode;
|
|
2180
2218
|
/** Icon (or other node) rendered after the label. */
|
|
2181
2219
|
trailingIcon?: React_2.ReactNode;
|
|
2220
|
+
/**
|
|
2221
|
+
* Optional secondary text rendered on a second line below the label. When
|
|
2222
|
+
* provided, the row switches to a two-line layout and the leading/trailing
|
|
2223
|
+
* icons align to the title line (top) rather than the row's vertical centre.
|
|
2224
|
+
*/
|
|
2225
|
+
description?: React_2.ReactNode;
|
|
2182
2226
|
/** Marks the item as the current selection in a single-select menu. @default false */
|
|
2183
2227
|
selected?: boolean;
|
|
2184
2228
|
}
|
|
@@ -2913,12 +2957,14 @@ export declare const LockerOnIcon: React_2.ForwardRefExoticComponent<React_2.SVG
|
|
|
2913
2957
|
} & React_2.RefAttributes<SVGSVGElement>>;
|
|
2914
2958
|
|
|
2915
2959
|
/**
|
|
2916
|
-
* The Fanvue brand logo. Supports full (icon + wordmark), icon-only, wordmark-only,
|
|
2917
|
-
*
|
|
2960
|
+
* The Fanvue brand logo. Supports full (icon + wordmark), icon-only, wordmark-only, and
|
|
2961
|
+
* portrait (stacked) layouts with multiple colour schemes. `version="agencies"` renders the
|
|
2962
|
+
* sub-brand lockup: a glossy purple icon and an "AGENCIES" label beneath the wordmark.
|
|
2918
2963
|
*
|
|
2919
2964
|
* @example
|
|
2920
2965
|
* ```tsx
|
|
2921
|
-
* <Logo
|
|
2966
|
+
* <Logo variant="full" color="fullColour" />
|
|
2967
|
+
* <Logo variant="full" version="agencies" />
|
|
2922
2968
|
* ```
|
|
2923
2969
|
*/
|
|
2924
2970
|
export declare const Logo: React_2.ForwardRefExoticComponent<LogoProps & React_2.RefAttributes<HTMLDivElement>>;
|
|
@@ -2931,10 +2977,12 @@ export declare interface LogoProps extends React_2.HTMLAttributes<HTMLDivElement
|
|
|
2931
2977
|
variant?: LogoVariant;
|
|
2932
2978
|
/** Colour scheme of the logo. @default "fullColour" */
|
|
2933
2979
|
color?: LogoColor;
|
|
2980
|
+
/** Sub-brand version of the logo. @default "default" */
|
|
2981
|
+
version?: LogoVersion;
|
|
2934
2982
|
/** Height of the logo in pixels. @default "32" (or "40" when `variant="icon"`) */
|
|
2935
2983
|
size?: LogoSize;
|
|
2936
2984
|
/**
|
|
2937
|
-
* Accessible label for the logo. Required when `
|
|
2985
|
+
* Accessible label for the logo. Required when `variant` is `"icon"` and
|
|
2938
2986
|
* the logo is used inside interactive contexts (links, buttons).
|
|
2939
2987
|
*
|
|
2940
2988
|
* @example "Fanvue home"
|
|
@@ -2961,6 +3009,9 @@ export declare type LogoutIconProps = BaseIconProps;
|
|
|
2961
3009
|
/** Layout variant of the logo. */
|
|
2962
3010
|
export declare type LogoVariant = "full" | "icon" | "wordmark" | "portrait";
|
|
2963
3011
|
|
|
3012
|
+
/** Sub-brand version of the logo. */
|
|
3013
|
+
declare type LogoVersion = "default" | "agencies";
|
|
3014
|
+
|
|
2964
3015
|
/**
|
|
2965
3016
|
* Love icon. Renders at sizes 16, 24, or 32 px with outlined and filled variants.
|
|
2966
3017
|
*
|
|
@@ -4458,6 +4509,8 @@ export declare const TabsList: React_2.ForwardRefExoticComponent<Omit<TabsPrimit
|
|
|
4458
4509
|
* - `"md"` (breakpoint): spread on mobile, left-aligned at breakpoint and up
|
|
4459
4510
|
*/
|
|
4460
4511
|
alignLeft?: boolean | Breakpoint;
|
|
4512
|
+
/** Explicit layout variant. `"hug"` sizes the list to its content; `"fill"` stretches it full-width with equal-width tabs. Takes precedence over `fullWidth`/`alignLeft`. */
|
|
4513
|
+
variant?: "fill" | "hug";
|
|
4461
4514
|
} & React_2.RefAttributes<HTMLDivElement>>;
|
|
4462
4515
|
|
|
4463
4516
|
/** Props for the {@link TabsList} component. */
|
|
@@ -4471,6 +4524,8 @@ export declare type TabsListProps = React_2.ComponentPropsWithoutRef<typeof Tabs
|
|
|
4471
4524
|
* - `"md"` (breakpoint): spread on mobile, left-aligned at breakpoint and up
|
|
4472
4525
|
*/
|
|
4473
4526
|
alignLeft?: boolean | Breakpoint;
|
|
4527
|
+
/** Explicit layout variant. `"hug"` sizes the list to its content; `"fill"` stretches it full-width with equal-width tabs. Takes precedence over `fullWidth`/`alignLeft`. */
|
|
4528
|
+
variant?: "fill" | "hug";
|
|
4474
4529
|
};
|
|
4475
4530
|
|
|
4476
4531
|
/** Props for the {@link Tabs} root component. Extends Radix `Tabs.Root` props. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fanvue/ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.0",
|
|
4
4
|
"description": "React component library built with Tailwind CSS for Fanvue ecosystem",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org",
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"svgo": "4.0.1",
|
|
154
154
|
"tailwindcss": "4.1.18",
|
|
155
155
|
"typescript": "5.9.3",
|
|
156
|
-
"vite": "7.3.
|
|
156
|
+
"vite": "7.3.5",
|
|
157
157
|
"vite-plugin-dts": "4.5.4",
|
|
158
158
|
"vitest": "4.1.8",
|
|
159
159
|
"vitest-axe": "1.0.0-pre.3"
|
|
@@ -167,9 +167,13 @@
|
|
|
167
167
|
"brace-expansion": ">=5.0.5",
|
|
168
168
|
"yaml": ">=2.8.3",
|
|
169
169
|
"postcss": ">=8.5.10",
|
|
170
|
-
"tmp": ">=0.2.
|
|
170
|
+
"tmp": ">=0.2.7",
|
|
171
171
|
"ws": ">=8.20.1",
|
|
172
|
-
"qs": ">=6.15.2"
|
|
172
|
+
"qs": ">=6.15.2",
|
|
173
|
+
"esbuild": ">=0.28.1",
|
|
174
|
+
"vite": "^7.3.5",
|
|
175
|
+
"js-yaml": ">=4.2.0",
|
|
176
|
+
"@babel/core": ">=7.29.6"
|
|
173
177
|
}
|
|
174
178
|
},
|
|
175
179
|
"size-limit": [
|