@clicktap/ui 0.40.9 → 0.40.10
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/components/Accordion/Accordion.d.ts +1 -1
- package/components/Accordion/Accordion.js +1 -1
- package/components/Accordion/index.d.ts +2 -2
- package/components/Accordion/index.js +1 -1
- package/components/Badge/Badge.js +1 -1
- package/components/Badge/Badge.types.d.ts +1 -1
- package/components/Badge/index.js +1 -1
- package/components/Collection/CollectionFilters/CollectionFilters.js +1 -1
- package/components/Collection/CollectionFilters/index.js +1 -1
- package/components/Collection/index.js +1 -1
- package/components/Pagination/Pagination.d.ts +1 -1
- package/components/Pagination/Pagination.js +1 -1
- package/components/Pagination/index.js +1 -1
- package/components/Tooltip/Tooltip.d.ts +1 -1
- package/components/Tooltip/Tooltip.js +1 -1
- package/components/Tooltip/Tooltip.types.d.ts +1 -1
- package/components/Tooltip/index.js +1 -1
- package/docs/migrations/2026/05/2026-05-01-build-pdp-url-util.md +13 -0
- package/docs/migrations/2026/08/2026-08-02-nextui-to-heroui.md +65 -0
- package/package.json +7 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccordionProps } from '@
|
|
1
|
+
import { AccordionProps } from '@heroui/accordion';
|
|
2
2
|
export declare function Accordion({ children, variant, isCompact, className, itemClasses, ...props }: AccordionProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default Accordion;
|
|
4
4
|
export declare function AccordionItemArrow(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as d}from"react/jsx-runtime";import{Accordion as a}from"@
|
|
1
|
+
"use client";import{jsx as d}from"react/jsx-runtime";import{Accordion as a}from"@heroui/accordion";import{cn as r}from"../../utils/cn.js";import{DownArrow as u}from"../Icon/DownArrow.js";function x({children:n,variant:t,isCompact:o,className:l,itemClasses:e,...i}){return d(a,{variant:t,isCompact:o,dividerProps:{className:r("my-2 border-solid border-slate-200",t==="shadow"&&"border-slate-300")},className:r("px-0",t==="bordered"&&["px-4 py-4 rounded-xl border-2 border-slate-200"],t==="shadow"&&["px-4 py-4 rounded-xl bg-slate-100 shadow-slate-200 border border-slate-200"],l),itemClasses:{base:r("w-full py-2",'data-[disabled="true"]:pointer-events-none data-[disabled="true"]:opacity-50',t==="bordered"&&["rounded-xl py-0"],t==="splitted"&&["flex flex-col bg-slate-100 rounded-xl border border-slate-200"],o&&"py-0",e?.base),trigger:r("w-full h-full flex items-center gap-3 py-0 appearance-none cursor-pointer select-none",'data-[focus-visible="true"]:outline-2 data-[focus-visible="true"]:outline data-[focus-visible="true"]:outline-slate-100',"bg-transparent text-inherit",o&&["py-2"],e?.trigger),title:r("text-xl font-semibold",o&&"text-base",e?.title),subtitle:r("text-base",o&&"text-sm",e?.subtitle),titleWrapper:r("text-left",e?.titleWrapper),startContent:r("shrink-0",e?.startContent),content:r([o?"py-1":"py-2"],e?.content),indicator:e?.indicator,heading:e?.heading},...i,children:n})}function f(){return d(u,{className:"w-4 h-4"})}export{x as Accordion,f as AccordionItemArrow,x as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { Accordion, AccordionItemArrow } from './Accordion';
|
|
2
|
-
export { AccordionItem } from '@
|
|
3
|
-
export type { AccordionProps } from '@
|
|
2
|
+
export { AccordionItem } from '@heroui/accordion';
|
|
3
|
+
export type { AccordionProps } from '@heroui/accordion';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Accordion as i,AccordionItemArrow as p}from"./Accordion.js";import{AccordionItem as A}from"@
|
|
1
|
+
import{Accordion as i,AccordionItemArrow as p}from"./Accordion.js";import{AccordionItem as A}from"@heroui/accordion";import"react/jsx-runtime";import"../../utils/cn.js";import"../Icon/DownArrow.js";export{i as Accordion,A as AccordionItem,p as AccordionItemArrow};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as i}from"react/jsx-runtime";import{useId as y}from"react";import{AnimatePresence as V,motion as z}from"framer-motion";import{Badge as C}from"@
|
|
1
|
+
"use client";import{jsx as i}from"react/jsx-runtime";import{useId as y}from"react";import{AnimatePresence as V,motion as z}from"framer-motion";import{Badge as C}from"@heroui/badge";import{cn as l}from"../../utils/cn.js";const B={hidden:{opacity:0,scale:0},show:{opacity:1,scale:1}};function q({children:b,isInvisible:n,disableAnimation:d,placement:t="top-right",shape:o="rectangle",className:h,classNames:g,showOutline:x=!1,content:r,isDot:s,isOneChar:f,size:a="md",variant:e="solid",...m}){const c=y(),p=d?{duration:0}:{type:"spring",bounce:.3},_=String(r)?.length===1||f,w={sm:"text-xs",md:"text-sm",lg:"text-sm"},u=_?{sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"}[a]:{sm:"min-w-4 h-4",md:"min-w-5 h-5",lg:"min-w-6 h-6"}[a];return i(C,{...m,size:a,variant:e,isInvisible:n,isDot:s,classNames:{base:l("relative","inline-flex shrink-0",g?.base),badge:l("p-0","border-0","absolute z-10",[t==="top-right"&&o==="rectangle"&&"top-0.5 right-px",t==="top-right"&&o==="circle"&&"top-1 right-1",t==="bottom-right"&&o==="rectangle"&&"bottom-0.5 right-px",t==="bottom-right"&&o==="circle"&&"bottom-1 right-1",t==="top-left"&&o==="rectangle"&&"top-0.5 left-px",t==="top-left"&&o==="circle"&&"top-1 left-1",t==="bottom-left"&&o==="rectangle"&&"bottom-0.5 left-px",t==="bottom-left"&&o==="circle"&&"bottom-1 left-1"],[t==="top-right"&&"translate-x-1/2 -translate-y-1/2",t==="bottom-right"&&"translate-x-1/2 translate-y-1/2",t==="bottom-left"&&"-translate-x-1/2 translate-y-1/2",t==="top-left"&&"-translate-x-1/2 -translate-y-1/2"],g?.badge)},content:i(V,{children:!n&&i(z.span,{layout:!0,variants:B,initial:d?"show":"hidden",transition:p,animate:"show",exit:"hidden",className:l("flex flex-wrap","place-content-center","z-10","box-border","rounded-full","py-0 px-1","font-normal text-slate-900","select-none","whitespace-normal",e==="faded"?"text-slate-800":"text-white",!r||s?"w-3.5 h-3.5":u,typeof r=="string"&&r.length>1||s?"text-xs":w[a],[e==="solid"&&"bg-slate-800",e==="shadow"&&"bg-slate-800",e==="flat"&&"bg-slate-800/55",e==="faded"&&"bg-white"],[e==="faded"&&"border-2 border-solid border-slate-800",x&&e!=="faded"&&"border-2 border-solid border-white"],e==="shadow"&&"shadow-[0_0_0_0_rgba(0,0,0,0),_0_0_0_0_rgba(0,0,0,0),_0_10px_15px_-3px_rgba(30,41,59,0.3),_0_4px_6px_-4px_rgba(30,41,59,0.3)]",h),children:r},`badge-${c}`)}),children:b})}export{q as Badge,q as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { BadgeProps as NextBadgeProps } from '@
|
|
1
|
+
import { BadgeProps as NextBadgeProps } from '@heroui/badge';
|
|
2
2
|
export type BadgeProps = Omit<NextBadgeProps, 'color | disableOutline'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Badge as a}from"./Badge.js";import"react/jsx-runtime";import"react";import"framer-motion";import"@
|
|
1
|
+
import{Badge as a}from"./Badge.js";import"react/jsx-runtime";import"react";import"framer-motion";import"@heroui/badge";import"../../utils/cn.js";export{a as Badge};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsxs as o,Fragment as f,jsx as e}from"react/jsx-runtime";import{useMemo as b,Suspense as x,useState as v}from"react";import{Accordion as w}from"../../Accordion/Accordion.js";import{AccordionItem as g}from"@
|
|
1
|
+
"use client";import{jsxs as o,Fragment as f,jsx as e}from"react/jsx-runtime";import{useMemo as b,Suspense as x,useState as v}from"react";import{Accordion as w}from"../../Accordion/Accordion.js";import{AccordionItem as g}from"@heroui/accordion";import{Button as h}from"../../Button/Button.js";import"framer-motion";import{ModalOverlay as y}from"../../ModalOverlay/ModalOverlay.js";import{Modal as N}from"../../Modal/Modal.js";import{Drawer as k}from"../../Drawer/Drawer.js";import{Cross as C}from"../../Icon/Cross.js";import{CrossSmall as A}from"../../Icon/CrossSmall.js";import{Search as D}from"../../Icon/Search.js";import{FilterRenderer as I}from"../FilterRenderer/FilterRenderer.js";import{mergeFilters as S}from"../../../utils/collection/mergeFilters.js";import{FilterAccordionTitle as j}from"../FilterAccordionTitle/FilterAccordionTitle.js";import{EmptyResults as L}from"../EmptyResults/EmptyResults.js";import"../../../utils/cn.js";import"../../Icon/DownArrow.js";import"react-aria-components";import"../../DialogTrigger/DialogTrigger.js";import"../../../utils/env.js";import"../../../utils/swatch.js";import"../FilterRenderer/Renderer/Option.js";import"../../Checkbox/Checkbox.js";import"../FilterRenderer/Renderer/useOptionFilterToggle.js";import"../FilterRenderer/Renderer/Swatch.js";import"../FilterRenderer/Renderer/Swatch/SwatchColor.js";import"../../Icon/CheckIcon.js";import"../../../utils/color.js";import"../FilterRenderer/Renderer/Swatch/SwatchImage.js";import"../FilterRenderer/Renderer/Swatch/SwatchText.js";import"../FilterRenderer/Renderer/Boolean.js";import"../../RadioGroup/RadioGroup.js";import"../../Radio/Radio.js";import"../FilterRenderer/Renderer/Range.js";function M(){return e("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:e("path",{d:"M4 6L8 10L12 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function V({value:n,onChange:r}){const[l,c]=v(n),m=()=>{r(l.trim())};return o("div",{className:"relative",children:[e("input",{type:"search",value:l,onChange:i=>c(i.target.value),onKeyDown:i=>{i.key==="Enter"&&(i.preventDefault(),m())},onBlur:m,placeholder:"Search products...","aria-label":"Search products",autoComplete:"off",className:"w-full h-9 pl-8 pr-8 rounded-md border border-slate-300 bg-white text-sm text-slate-900 placeholder:text-slate-400 focus:outline-none focus:border-slate-400 [&::-webkit-search-cancel-button]:hidden"}),l&&e("button",{type:"button",onClick:()=>{c(""),r("")},"aria-label":"Clear search",className:"absolute right-2 top-1/2 -translate-y-1/2 p-0.5 rounded-full hover:bg-slate-100 transition-colors",children:e(A,{})}),e("span",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 [&>svg]:w-full [&>svg]:h-full text-slate-400",children:e(D,{})})]})}function he({availableFilters:n,appliedFilters:r,onFilterChange:l,showMobileFilters:c,setShowMobileFilters:m,searchQuery:s,onSearchChange:a,totalItems:i}){const p=b(()=>S(r,n).filter(t=>t.includeInFilters!==!1),[r,n]),d=a&&e(V,{value:s??"",onChange:a},s),u=()=>p.length>0&&e(w,{selectionMode:"multiple",defaultSelectedKeys:"all",className:"pt-2 mt-3",showDivider:!1,itemClasses:{base:"py-1",title:"text-sm font-medium leading-7",trigger:"py-2 border-b border-gray-200",indicator:'data-[open="true"]:rotate-180',content:"pt-2 pb-3"},children:p.map(t=>e(g,{textValue:t.label,title:e(j,{filter:t,appliedFilters:r,onFilterChange:l}),disableIndicatorAnimation:!0,indicator:M,children:e("div",{className:"pt-2",children:e(I,{filter:t,onFilterChange:l,appliedFilters:r,variant:"sidebar"})})},t.code))});return o(f,{children:[o("div",{className:"hidden lg:flex lg:flex-col lg:basis-[16.5rem] lg:shrink-0",children:[d,u(),r.length>0&&e("button",{type:"button",className:"text-sm text-slate-500 hover:text-slate-700 transition-colors mt-4 mb-8",onClick:()=>l([]),children:"Clear all filters"})]}),e("div",{className:"lg:hidden",children:e(x,{children:e(y,{isOpen:c,onOpenChange:t=>m(t),isDismissable:!0,children:e(N,{children:e(k,{size:"30rem",direction:"left","aria-label":"Filters",className:"p-5",children:({close:t})=>o("div",{className:"flex flex-col w-full h-full overflow-hidden",children:[o("div",{className:"flex items-center w-full justify-between",children:[e("span",{className:"text-xl font-bold text-slate-800",children:"Filters"}),e(h,{variant:"ghost","aria-label":"Close",onPress:()=>t(),className:"justify-start size-auto p-0",children:e(C,{})})]}),o("div",{className:"flex flex-col flex-1 overflow-x-hidden overflow-y-auto [scrollbar-width:none] [-webkit-overflow-scrolling:touch] [&::-webkit-scrollbar]:hidden",children:[d&&e("div",{className:"mt-3",children:d}),u(),i===0&&e(L,{searchQuery:s,hasFilters:r.length>0,onClearFilters:()=>l([]),onClearSearch:s&&a?()=>a(""):void 0})]}),o("div",{className:"shrink-0 pt-3 flex flex-col gap-3 border-t border-gray-200",children:[r.length>0&&e("button",{type:"button",className:"text-sm py-2 text-slate-500 hover:text-slate-700 transition-colors",onClick:()=>l([]),children:"Clear all"}),e(h,{className:"w-full py-6 text-base rounded-xl",variant:"primary",onPress:()=>t(),children:"View Results"})]})]})})})})})})]})}export{he as CollectionFilters};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CollectionFilters as L}from"./CollectionFilters.js";import"react/jsx-runtime";import"react";import"../../Accordion/Accordion.js";import"@
|
|
1
|
+
import{CollectionFilters as L}from"./CollectionFilters.js";import"react/jsx-runtime";import"react";import"../../Accordion/Accordion.js";import"@heroui/accordion";import"../../../utils/cn.js";import"../../Icon/DownArrow.js";import"../../Button/Button.js";import"react-aria-components";import"framer-motion";import"../../ModalOverlay/ModalOverlay.js";import"../../DialogTrigger/DialogTrigger.js";import"../../Modal/Modal.js";import"../../Drawer/Drawer.js";import"../../Icon/Cross.js";import"../../Icon/CrossSmall.js";import"../../Icon/Search.js";import"../FilterRenderer/FilterRenderer.js";import"../../../utils/env.js";import"../../../utils/swatch.js";import"../FilterRenderer/Renderer/Option.js";import"../../Checkbox/Checkbox.js";import"../FilterRenderer/Renderer/useOptionFilterToggle.js";import"../FilterRenderer/Renderer/Swatch.js";import"../FilterRenderer/Renderer/Swatch/SwatchColor.js";import"../../Icon/CheckIcon.js";import"../../../utils/color.js";import"../FilterRenderer/Renderer/Swatch/SwatchImage.js";import"../FilterRenderer/Renderer/Swatch/SwatchText.js";import"../FilterRenderer/Renderer/Boolean.js";import"../../RadioGroup/RadioGroup.js";import"../../Radio/Radio.js";import"../FilterRenderer/Renderer/Range.js";import"../../../utils/collection/mergeFilters.js";import"../FilterAccordionTitle/FilterAccordionTitle.js";import"../EmptyResults/EmptyResults.js";export{L as CollectionFilters};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{AttributeDataProvider as V,useAttributeData as W}from"./AttributeDataProvider/AttributeDataProvider.js";import{EmptyResults as Y}from"./EmptyResults/EmptyResults.js";import{ProductPrice as _}from"./ProductPrice/ProductPrice.js";import{FilterRenderer as rr}from"./FilterRenderer/FilterRenderer.js";import{CollectionFilterChips as tr}from"./CollectionFilterChips/CollectionFilterChips.js";import{FilterAccordionTitle as pr}from"./FilterAccordionTitle/FilterAccordionTitle.js";import{ProductCardSwatches as er}from"./ProductCardSwatches/ProductCardSwatches.js";import{CollectionFilters as cr}from"./CollectionFilters/CollectionFilters.js";import{CollectionToolbar as xr}from"./CollectionToolbar/CollectionToolbar.js";import"react/jsx-runtime";import"react";import"../../utils/env.js";import"../../utils/swatch.js";import"./FilterRenderer/Renderer/Option.js";import"../Checkbox/Checkbox.js";import"react-aria-components";import"../../utils/cn.js";import"./FilterRenderer/Renderer/useOptionFilterToggle.js";import"./FilterRenderer/Renderer/Swatch.js";import"./FilterRenderer/Renderer/Swatch/SwatchColor.js";import"../Icon/CheckIcon.js";import"../../utils/color.js";import"./FilterRenderer/Renderer/Swatch/SwatchImage.js";import"./FilterRenderer/Renderer/Swatch/SwatchText.js";import"./FilterRenderer/Renderer/Boolean.js";import"../RadioGroup/RadioGroup.js";import"../Radio/Radio.js";import"./FilterRenderer/Renderer/Range.js";import"../Button/Button.js";import"framer-motion";import"../Icon/CrossSmall.js";import"../../utils/collection/getAppliedFilterChips.js";import"../../utils/collection/removeFilterChip.js";import"../Accordion/Accordion.js";import"@
|
|
1
|
+
import{AttributeDataProvider as V,useAttributeData as W}from"./AttributeDataProvider/AttributeDataProvider.js";import{EmptyResults as Y}from"./EmptyResults/EmptyResults.js";import{ProductPrice as _}from"./ProductPrice/ProductPrice.js";import{FilterRenderer as rr}from"./FilterRenderer/FilterRenderer.js";import{CollectionFilterChips as tr}from"./CollectionFilterChips/CollectionFilterChips.js";import{FilterAccordionTitle as pr}from"./FilterAccordionTitle/FilterAccordionTitle.js";import{ProductCardSwatches as er}from"./ProductCardSwatches/ProductCardSwatches.js";import{CollectionFilters as cr}from"./CollectionFilters/CollectionFilters.js";import{CollectionToolbar as xr}from"./CollectionToolbar/CollectionToolbar.js";import"react/jsx-runtime";import"react";import"../../utils/env.js";import"../../utils/swatch.js";import"./FilterRenderer/Renderer/Option.js";import"../Checkbox/Checkbox.js";import"react-aria-components";import"../../utils/cn.js";import"./FilterRenderer/Renderer/useOptionFilterToggle.js";import"./FilterRenderer/Renderer/Swatch.js";import"./FilterRenderer/Renderer/Swatch/SwatchColor.js";import"../Icon/CheckIcon.js";import"../../utils/color.js";import"./FilterRenderer/Renderer/Swatch/SwatchImage.js";import"./FilterRenderer/Renderer/Swatch/SwatchText.js";import"./FilterRenderer/Renderer/Boolean.js";import"../RadioGroup/RadioGroup.js";import"../Radio/Radio.js";import"./FilterRenderer/Renderer/Range.js";import"../Button/Button.js";import"framer-motion";import"../Icon/CrossSmall.js";import"../../utils/collection/getAppliedFilterChips.js";import"../../utils/collection/removeFilterChip.js";import"../Accordion/Accordion.js";import"@heroui/accordion";import"../Icon/DownArrow.js";import"../ModalOverlay/ModalOverlay.js";import"../DialogTrigger/DialogTrigger.js";import"../Modal/Modal.js";import"../Drawer/Drawer.js";import"../Icon/Cross.js";import"../Icon/Search.js";import"../../utils/collection/mergeFilters.js";import"../Select/Option.js";import"react-stately";import"../Select/Select.js";import"../Select/ButtonSelect.js";import"react-aria";import"@react-aria/interactions";import"../Select/parts.js";import"../Select/ComboBoxSelect.js";import"../Loader/Pulse.js";import"../Select/MultiButtonSelect.js";import"../Icon/FilterIcon.js";export{V as AttributeDataProvider,tr as CollectionFilterChips,cr as CollectionFilters,xr as CollectionToolbar,Y as EmptyResults,pr as FilterAccordionTitle,rr as FilterRenderer,er as ProductCardSwatches,_ as ProductPrice,W as useAttributeData};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { PaginationProps } from '@
|
|
1
|
+
import { PaginationProps } from '@heroui/pagination';
|
|
2
2
|
export declare function Pagination({ showControls, className, classNames, ...rest }: PaginationProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default Pagination;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as s}from"react/jsx-runtime";import{Pagination as n}from"@
|
|
1
|
+
"use client";import{jsx as s}from"react/jsx-runtime";import{Pagination as n}from"@heroui/pagination";import{cn as t}from"../../utils/cn.js";const r=t("w-8 h-8 flex justify-center items-center cursor-pointer shadow-none","border border-slate-200 data-[disabled=true]:border-0",'rounded transition-colors duration-300 data-[focus-visible="true"]:outline-white data-[focus-visible="true"]:outline-offset-4',"hover:bg-slate-50 data-[disabled=true]:bg-slate-100 data-[disabled=true]:text-slate-400","[&>svg]:w-4.5 [&>svg]:h-auto");function c({showControls:a=!0,className:o,classNames:e,...i}){return s(n,{showControls:a,className:t("text-slate-600",o),classNames:{wrapper:t("flex flex-nowrap gap-2 lg:gap-3",e?.wrapper),item:t("w-8 h-8 flex text-sm justify-center items-center cursor-pointer rounded shadow-none","border-solid border border-slate-100 bg-transparent transition-colors duration-300",'data-[active=true]:bg-slate-500 data-[active=true]:text-white data-[focus-visible="true"]:outline-white data-[focus-visible="true"]:outline-offset-4',"[&[data-hover=true]:not([data-active=true])]:border-slate-200",e?.item),prev:t(r,e?.prev),next:t(r,e?.next),ellipsis:t("w-4 h-4.5 scale-110 translate-y-1",e?.ellipsis)},...i})}export{c as Pagination,c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Pagination as p}from"./Pagination.js";import"react/jsx-runtime";import"@
|
|
1
|
+
import{Pagination as p}from"./Pagination.js";import"react/jsx-runtime";import"@heroui/pagination";import"../../utils/cn.js";export{p as Pagination};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const Tooltip: import('react').ForwardRefExoticComponent<Omit<import('@
|
|
1
|
+
export declare const Tooltip: import('react').ForwardRefExoticComponent<Omit<import('@heroui/tooltip').TooltipProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
|
|
2
2
|
export default Tooltip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as n}from"react/jsx-runtime";import{forwardRef as f}from"react";import{Tooltip as b}from"@
|
|
1
|
+
"use client";import{jsx as n}from"react/jsx-runtime";import{forwardRef as f}from"react";import{Tooltip as b}from"@heroui/tooltip";import{cn as t}from"../../utils/cn.js";const i=f(function({classNames:e,placement:a,showArrow:o=!1,...r},l){return n(b,{classNames:{base:[t(["z-0 relative bg-transparent outline-none","focus-visible:z-10 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-500","before:absolute before:rotate-45 before:w-2.5 before:h-2.5 before:rounded-sm before:bg-slate-500 before:shadow-sm","before:hidden data-[arrow=true]:before:block","data-[placement=bottom]:before:-top-1 data-[placement=bottom]:before:left-1/2 data-[placement=bottom]:before:rotate-45 data-[placement=bottom]:before:-translate-x-1/2","data-[placement=bottom-end]:before:-top-1 data-[placement=bottom-end]:before:left-1/2 data-[placement=bottom-end]:before:rotate-45 data-[placement=bottom-end]:before:-translate-x-1/2","data-[placement=bottom-start]:before:-top-1 data-[placement=bottom-start]:before:left-1/2 data-[placement=bottom-start]:before:rotate-45 data-[placement=bottom-start]:before:-translate-x-1/2","data-[placement=left]:before:-right-1 data-[placement=left]:before:top-1/2 data-[placement=left]:before:-translate-y-1/2","data-[placement=left-end]:before:-right-1 data-[placement=left-end]:before:top-1/2 data-[placement=left-end]:before:-translate-y-1/2","data-[placement=left-start]:before:-right-1 data-[placement=left-start]:before:top-1/2 data-[placement=left-start]:before:-translate-y-1/2","data-[placement=right]:before:-left-1 data-[placement=right]:before:top-1/2 data-[placement=right]:before:-translate-y-1/2","data-[placement=right-end]:before:-left-1 data-[placement=right-end]:before:top-1/2 data-[placement=right-end]:before:-translate-y-1/2","data-[placement=right-start]:before:-left-1 data-[placement=right-start]:before:top-1/2 data-[placement=right-start]:before:-translate-y-1/2","data-[placement=top]:before:-bottom-1 data-[placement=top]:before:left-1/2 data-[placement=top]:before:rotate-45 data-[placement=top]:before:-translate-x-1/2","data-[placement=top-end]:before:-bottom-1 data-[placement=top-end]:before:left-1/2 data-[placement=top-end]:before:rotate-45 data-[placement=top-end]:before:-translate-x-1/2","data-[placement=top-start]:before:-bottom-1 data-[placement=top-start]:before:left-1/2 data-[placement=top-start]:before:rotate-45 data-[placement=top-start]:before:-translate-x-1/2",e?.base])],content:[t(["inline-flex flex-col items-center justify-center outline-none","w-full py-1 px-2.5 z-10 box-border bg-slate-500 rounded-md shadow-sm","text-sm text-white subpixel-antialiased",e?.content])]},placement:a,showArrow:o,...r,ref:l})});export{i as Tooltip,i as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { TooltipProps as UITooltipProps } from '@
|
|
1
|
+
import { TooltipProps as UITooltipProps } from '@heroui/tooltip';
|
|
2
2
|
export type TooltipProps = UITooltipProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Tooltip as e}from"./Tooltip.js";import"react/jsx-runtime";import"react";import"@
|
|
1
|
+
import{Tooltip as e}from"./Tooltip.js";import"react/jsx-runtime";import"react";import"@heroui/tooltip";import"../../utils/cn.js";export{e as Tooltip};
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
**Affects:** `@clicktap/ui/utils/buildPdpUrl` — new export
|
|
5
5
|
**Classification:** IMPROVEMENT
|
|
6
6
|
**Breaking:** No (additive)
|
|
7
|
+
**Status:** ⚠️ **Superseded — never shipped. Do not adopt.** (CTAP-1077)
|
|
8
|
+
**Superseded by:** the backend line-item `productUrl` fields — `QuoteItem.productUrl` / `OrderItem.productUrl` (see `2026-06-08-quote-item-product-url.md` and `2026-06-08-order-item-product-url.md` in the `quote-graphql` / `order-graphql` modules).
|
|
9
|
+
|
|
10
|
+
> ⚠️ **This export was never published.** As of `@clicktap/ui` **0.40.9** there is no
|
|
11
|
+
> `@clicktap/ui/utils/buildPdpUrl` — do not try to import it (there is no "shipped in X" version to check
|
|
12
|
+
> against). The problem it describes — a cart/order row linking to a PDP without the variant
|
|
13
|
+
> pre-selected — is solved better on the **backend**: `QuoteItem.productUrl` and `OrderItem.productUrl`
|
|
14
|
+
> return the product-page URL **with the variant selection already applied**. Prefer them: there's no
|
|
15
|
+
> client-side helper to keep in sync and no drift risk against `ProductTypeResolver.writeSelectionsToUrl`
|
|
16
|
+
> (the exact drift the design below tries to avoid by mirroring it). Select `productUrl` on your
|
|
17
|
+
> quote/order line-item fragment and link to it directly.
|
|
18
|
+
>
|
|
19
|
+
> The original design is retained below for history only.
|
|
7
20
|
|
|
8
21
|
## Dependencies
|
|
9
22
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# NextUI → HeroUI for `Accordion`, `Badge`, `Pagination`, `Tooltip`
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-08-02
|
|
4
|
+
**Affects:** `@clicktap/ui` peer dependencies — `Accordion`, `Badge`, `Pagination`, `Tooltip`
|
|
5
|
+
**Classification:** DEPENDENCY
|
|
6
|
+
**Breaking:** Yes (peer dependencies change; requires Tailwind 4 — see below)
|
|
7
|
+
|
|
8
|
+
## Dependencies
|
|
9
|
+
|
|
10
|
+
- **Requires Tailwind 4** (`@heroui/theme >= 2.4.24` peers `tailwindcss >= 4.0.0`). Do the
|
|
11
|
+
[Tailwind 3 → 4 upgrade](../../../../../apps/frontend/docs/migrations/2026/07/2026-07-31-tailwind-3-to-4.md)
|
|
12
|
+
first (or together with this).
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
|
|
16
|
+
`@clicktap/ui`'s `Accordion`, `Badge`, `Pagination` and `Tooltip` now build on the **`@heroui/*`**
|
|
17
|
+
packages instead of the **deprecated** `@nextui-org/*` ones. npm reports each `@nextui-org/*` as
|
|
18
|
+
deprecated (`Please use @heroui/<name> instead`), and NextUI no longer receives fixes — they land only
|
|
19
|
+
in the HeroUI line. Consumers were inheriting four un-actionable `Deprecated` warnings through
|
|
20
|
+
`@clicktap/ui`; this removes them.
|
|
21
|
+
|
|
22
|
+
The component **APIs are unchanged** — HeroUI is a straight rename-fork of NextUI. No source changes are
|
|
23
|
+
needed at your call sites; this is a dependency swap.
|
|
24
|
+
|
|
25
|
+
## What changed in `@clicktap/ui`
|
|
26
|
+
|
|
27
|
+
| Before (peer) | After (peer) |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `@nextui-org/accordion` | `@heroui/accordion` |
|
|
30
|
+
| `@nextui-org/badge` | `@heroui/badge` |
|
|
31
|
+
| `@nextui-org/pagination` | `@heroui/pagination` |
|
|
32
|
+
| `@nextui-org/tooltip` | `@heroui/tooltip` |
|
|
33
|
+
| *(implicit / unpinned)* | `@heroui/theme` `>= 2.4.24` (declared) |
|
|
34
|
+
| *(implicit / unpinned)* | `@heroui/system` `>= 2.4.18` (declared) |
|
|
35
|
+
|
|
36
|
+
`@heroui/theme` / `@heroui/system` are now declared explicitly so their versions are aligned and
|
|
37
|
+
satisfiable (previously the theme/system peers came in transitively and could resolve to versions the
|
|
38
|
+
components rejected — e.g. `@heroui/theme@>=2.4.24` unmet with `2.4.6` installed).
|
|
39
|
+
|
|
40
|
+
## ⚠️ Tailwind 4 is required
|
|
41
|
+
|
|
42
|
+
`@heroui/theme >= 2.4.24` peers **`tailwindcss >= 4.0.0`**. The HeroUI theme line has moved to Tailwind
|
|
43
|
+
4, so the components' **styles** will not compile correctly under Tailwind 3. If you are still on
|
|
44
|
+
Tailwind 3, complete the Tailwind 3 → 4 upgrade first; the two migrations belong together. (This is why
|
|
45
|
+
`@clicktap/ui`'s own reference frontend, still on Tailwind 3, adopts this alongside its Tailwind 4 move.)
|
|
46
|
+
The type/build surface is fine on either — the coupling is purely the generated CSS.
|
|
47
|
+
|
|
48
|
+
## Migration steps (consumer)
|
|
49
|
+
|
|
50
|
+
1. **Bump `@clicktap/ui`** to the release that ships this migration.
|
|
51
|
+
2. **Replace the peer packages** in your `package.json` — remove the four `@nextui-org/*` above, add the
|
|
52
|
+
four `@heroui/*` plus `@heroui/theme` (`>= 2.4.24`) and `@heroui/system` (`>= 2.4.18`). If you wrap
|
|
53
|
+
these components, update any direct `@nextui-org/{accordion,badge,pagination,tooltip}` imports in your
|
|
54
|
+
own code to `@heroui/*` (identical API).
|
|
55
|
+
3. **Be on Tailwind 4** (see the dependency note). Point your HeroUI Tailwind plugin at `@heroui/theme`
|
|
56
|
+
instead of `@nextui-org/theme` if you configure it directly.
|
|
57
|
+
4. Reinstall and verify: no `Deprecated` warnings for these four, and no `unmet peer @heroui/theme|system`
|
|
58
|
+
warnings.
|
|
59
|
+
|
|
60
|
+
## Not included
|
|
61
|
+
|
|
62
|
+
- `@nextui-org/avatar` and the `@nextui-org/theme` Tailwind plugin still exist in the clicktap **reference
|
|
63
|
+
frontend** (not in `@clicktap/ui`); migrating those is separate and pairs with the Tailwind 4 work.
|
|
64
|
+
- This is unrelated to the CTAP-1072 SSR-500 (that was the `tailwindcss/plugin.js` async external, not
|
|
65
|
+
these packages).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clicktap/ui",
|
|
3
|
-
"version": "0.40.
|
|
3
|
+
"version": "0.40.10",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Clicktap",
|
|
6
6
|
"description": "A library of React UI components and low-level hooks.",
|
|
@@ -76,10 +76,12 @@
|
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
78
|
"@floating-ui/react": "^0.27.0",
|
|
79
|
-
"@
|
|
80
|
-
"@
|
|
81
|
-
"@
|
|
82
|
-
"@
|
|
79
|
+
"@heroui/accordion": "^2.2.0",
|
|
80
|
+
"@heroui/badge": "^2.2.0",
|
|
81
|
+
"@heroui/pagination": "^2.2.0",
|
|
82
|
+
"@heroui/system": ">=2.4.18",
|
|
83
|
+
"@heroui/theme": ">=2.4.24",
|
|
84
|
+
"@heroui/tooltip": "^2.2.0",
|
|
83
85
|
"@types/react": "^18.0.0",
|
|
84
86
|
"framer-motion": "^11.18.0",
|
|
85
87
|
"react": "^18.0.0",
|