@anker-in/headless-ui 1.3.21 → 1.3.22

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 (58) hide show
  1. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +1 -1
  2. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js +1 -1
  3. package/dist/cjs/biz-components/BuyOneGetOneShelf/ProductCard.js.map +3 -3
  4. package/dist/cjs/biz-components/BuyOneGetOneShelf/context.d.ts +4 -0
  5. package/dist/cjs/biz-components/BuyOneGetOneShelf/context.js +2 -0
  6. package/dist/cjs/biz-components/BuyOneGetOneShelf/context.js.map +7 -0
  7. package/dist/cjs/biz-components/BuyOneGetOneShelf/types.d.ts +1 -1
  8. package/dist/cjs/biz-components/BuyOneGetOneShelf/types.js.map +1 -1
  9. package/dist/cjs/biz-components/FooterNavigation/index.js +1 -1
  10. package/dist/cjs/biz-components/FooterNavigation/index.js.map +2 -2
  11. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  12. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  13. package/dist/cjs/components/alert.d.ts +1 -0
  14. package/dist/cjs/components/alert.js +1 -1
  15. package/dist/cjs/components/alert.js.map +2 -2
  16. package/dist/cjs/components/checkbox.js +1 -1
  17. package/dist/cjs/components/checkbox.js.map +2 -2
  18. package/dist/cjs/components/dialog.js +1 -1
  19. package/dist/cjs/components/dialog.js.map +3 -3
  20. package/dist/cjs/components/index.d.ts +1 -0
  21. package/dist/cjs/components/index.js +1 -1
  22. package/dist/cjs/components/index.js.map +3 -3
  23. package/dist/cjs/components/otp-input.d.ts +18 -0
  24. package/dist/cjs/components/otp-input.js +2 -0
  25. package/dist/cjs/components/otp-input.js.map +7 -0
  26. package/dist/cjs/helpers/utils.d.ts +7 -1
  27. package/dist/cjs/helpers/utils.js +1 -1
  28. package/dist/cjs/helpers/utils.js.map +3 -3
  29. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.d.ts +1 -1
  30. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js +1 -1
  31. package/dist/esm/biz-components/BuyOneGetOneShelf/ProductCard.js.map +3 -3
  32. package/dist/esm/biz-components/BuyOneGetOneShelf/context.d.ts +4 -0
  33. package/dist/esm/biz-components/BuyOneGetOneShelf/context.js +2 -0
  34. package/dist/esm/biz-components/BuyOneGetOneShelf/context.js.map +7 -0
  35. package/dist/esm/biz-components/BuyOneGetOneShelf/types.d.ts +1 -1
  36. package/dist/esm/biz-components/BuyOneGetOneShelf/types.js.map +1 -1
  37. package/dist/esm/biz-components/FooterNavigation/index.js +1 -1
  38. package/dist/esm/biz-components/FooterNavigation/index.js.map +2 -2
  39. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +1 -1
  40. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  41. package/dist/esm/components/alert.d.ts +1 -0
  42. package/dist/esm/components/alert.js +1 -1
  43. package/dist/esm/components/alert.js.map +2 -2
  44. package/dist/esm/components/checkbox.js +1 -1
  45. package/dist/esm/components/checkbox.js.map +2 -2
  46. package/dist/esm/components/dialog.js +1 -1
  47. package/dist/esm/components/dialog.js.map +3 -3
  48. package/dist/esm/components/index.d.ts +1 -0
  49. package/dist/esm/components/index.js +1 -1
  50. package/dist/esm/components/index.js.map +2 -2
  51. package/dist/esm/components/otp-input.d.ts +18 -0
  52. package/dist/esm/components/otp-input.js +2 -0
  53. package/dist/esm/components/otp-input.js.map +7 -0
  54. package/dist/esm/helpers/utils.d.ts +7 -1
  55. package/dist/esm/helpers/utils.js +1 -1
  56. package/dist/esm/helpers/utils.js.map +3 -3
  57. package/package.json +1 -1
  58. package/style.css +42 -3
@@ -0,0 +1,2 @@
1
+ "use client";import{jsx as m,jsxs as P}from"react/jsx-runtime";import*as c from"react";import{cn as h}from"../helpers/index.js";const w=c.forwardRef(({length:s=6,value:r="",onChange:u,onComplete:g,onFocus:b,onBlur:E,onPaste:F,className:R,cellClassName:I,disabled:f=!1,error:y=!1,errorMessage:x,autoFocus:D=!1},k)=>{const i=c.useRef([]),[A,p]=c.useState(null),d=c.useRef(!1);c.useEffect(()=>{D&&i.current[0]?.focus()},[D]);const o=e=>{d.current=!0,i.current[e]?.focus()},a=c.useRef(null),v=(e,n)=>{const t=e<r.length;let l;t?l=r.slice(0,e)+n+r.slice(e+1):l=(r+n).slice(0,s),u?.(l),l.length===s?(g?.(l),o(t?Math.min(e+1,s-1):s-1)):o(l.length)},M=(e,n)=>{const t=n.replace(/\D/g,"");t&&v(e,t[0])},N=(e,n)=>{if(/^\d$/.test(e.key))e.preventDefault(),v(n,e.key);else if(e.key==="Backspace"){if(e.preventDefault(),a.current!==null&&a.current<r.length){const t=a.current,l=r.slice(0,t)+r.slice(t+1);u?.(l),o(t>0?t-1:0)}else if(r.length>0){const t=r.slice(0,-1);u?.(t),o(t.length>0?t.length-1:0)}}else if(e.key==="ArrowLeft"){const t=(a.current??0)-1;t>=0&&o(t)}else if(e.key==="ArrowRight"){const t=(a.current??0)+1;t<s&&o(t)}},C=e=>{e.preventDefault();const n=e.clipboardData.getData("text");F?.(n);const t=n.replace(/\D/g,"").slice(0,s);u?.(t),t.length===s&&g?.(t),o(Math.min(t.length,s-1))},O=e=>{if(d.current){d.current=!1,a.current=e,p(e),b?.(e);return}const n=Math.min(r.length,s-1);if(e>n){o(n);return}a.current=e,p(e),b?.(e)},B=()=>{p(null),requestAnimationFrame(()=>{i.current.some(n=>n===document.activeElement)||E?.()})},L=e=>y?"border-[#FF4D4D]":A===e?"border-info-primary":"border-lines-default";return P("div",{ref:k,className:h("otp-input-root flex flex-col gap-2",R),children:[m("div",{className:"laptop:gap-2 flex gap-1.5",children:Array.from({length:s}).map((e,n)=>m("input",{ref:t=>{i.current[n]=t},type:"text",inputMode:"numeric",maxLength:1,value:r[n]??"",disabled:f,readOnly:f,onChange:t=>M(n,t.target.value),onKeyDown:t=>N(t,n),onPaste:C,onFocus:()=>O(n),onBlur:B,className:h("otp-input-cell text-info-primary laptop:size-[54px] rounded-box-small size-[44px] border text-center text-base font-bold transition-colors focus:outline-none",L(n),f&&"text-info-quaternary cursor-not-allowed bg-[#EAEAEC]",I)},n))}),y&&x&&m("span",{className:"otp-input-error text-base font-bold leading-[1.4] tracking-[-0.02em] text-[#FF4D4D]",children:x})]})});w.displayName="OtpInput";var K=w;export{K as default};
2
+ //# sourceMappingURL=otp-input.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/otp-input.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { cn } from '../helpers/index.js'\n\nexport interface OtpInputProps {\n length?: number\n value?: string\n onChange?: (value: string) => void\n onComplete?: (value: string) => void\n onFocus?: (index: number) => void\n onBlur?: () => void\n onPaste?: (text: string) => void\n className?: string\n cellClassName?: string\n disabled?: boolean\n error?: boolean\n errorMessage?: string\n autoFocus?: boolean\n}\n\nconst OtpInput = React.forwardRef<HTMLDivElement, OtpInputProps>(\n (\n {\n length = 6,\n value = '',\n onChange,\n onComplete,\n onFocus,\n onBlur,\n onPaste,\n className,\n cellClassName,\n disabled = false,\n error = false,\n errorMessage,\n autoFocus = false,\n },\n ref\n ) => {\n const inputsRef = React.useRef<Array<HTMLInputElement | null>>([])\n const [focusedIndex, setFocusedIndex] = React.useState<number | null>(null)\n const programmaticFocusRef = React.useRef(false)\n\n React.useEffect(() => {\n if (autoFocus) {\n inputsRef.current[0]?.focus()\n }\n }, [autoFocus])\n\n const focusCell = (index: number) => {\n programmaticFocusRef.current = true\n inputsRef.current[index]?.focus()\n }\n\n const focusedIndexRef = React.useRef<number | null>(null)\n\n const applyDigit = (index: number, digit: string) => {\n const isOverwrite = index < value.length\n let newValue: string\n if (isOverwrite) {\n newValue = value.slice(0, index) + digit + value.slice(index + 1)\n } else {\n newValue = (value + digit).slice(0, length)\n }\n onChange?.(newValue)\n if (newValue.length === length) {\n onComplete?.(newValue)\n focusCell(isOverwrite ? Math.min(index + 1, length - 1) : length - 1)\n } else {\n focusCell(newValue.length)\n }\n }\n\n const handleChange = (index: number, char: string) => {\n const digit = char.replace(/\\D/g, '')\n if (!digit) return\n applyDigit(index, digit[0])\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n if (/^\\d$/.test(e.key)) {\n e.preventDefault()\n applyDigit(index, e.key)\n } else if (e.key === 'Backspace') {\n e.preventDefault()\n if (focusedIndexRef.current !== null && focusedIndexRef.current < value.length) {\n const i = focusedIndexRef.current\n const newValue = value.slice(0, i) + value.slice(i + 1)\n onChange?.(newValue)\n focusCell(i > 0 ? i - 1 : 0)\n } else if (value.length > 0) {\n const newValue = value.slice(0, -1)\n onChange?.(newValue)\n focusCell(newValue.length > 0 ? newValue.length - 1 : 0)\n }\n } else if (e.key === 'ArrowLeft') {\n const prev = (focusedIndexRef.current ?? 0) - 1\n if (prev >= 0) focusCell(prev)\n } else if (e.key === 'ArrowRight') {\n const next = (focusedIndexRef.current ?? 0) + 1\n if (next < length) focusCell(next)\n }\n }\n\n const handlePaste = (e: React.ClipboardEvent) => {\n e.preventDefault()\n const raw = e.clipboardData.getData('text')\n onPaste?.(raw)\n const pasted = raw.replace(/\\D/g, '').slice(0, length)\n onChange?.(pasted)\n if (pasted.length === length) {\n onComplete?.(pasted)\n }\n focusCell(Math.min(pasted.length, length - 1))\n }\n\n const handleFocus = (i: number) => {\n if (programmaticFocusRef.current) {\n programmaticFocusRef.current = false\n focusedIndexRef.current = i\n setFocusedIndex(i)\n onFocus?.(i)\n return\n }\n const firstEmpty = Math.min(value.length, length - 1)\n if (i > firstEmpty) {\n focusCell(firstEmpty)\n return\n }\n focusedIndexRef.current = i\n setFocusedIndex(i)\n onFocus?.(i)\n }\n\n const handleBlur = () => {\n setFocusedIndex(null)\n requestAnimationFrame(() => {\n const anyFocused = inputsRef.current.some(el => el === document.activeElement)\n if (!anyFocused) onBlur?.()\n })\n }\n\n const getCellBorderClass = (index: number) => {\n if (error) return 'border-[#FF4D4D]'\n if (focusedIndex === index) return 'border-info-primary'\n return 'border-lines-default'\n }\n\n return (\n <div ref={ref} className={cn('otp-input-root flex flex-col gap-2', className)}>\n <div className=\"laptop:gap-2 flex gap-1.5\">\n {Array.from({ length }).map((_, i) => (\n <input\n key={i}\n ref={el => {\n inputsRef.current[i] = el\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={1}\n value={value[i] ?? ''}\n disabled={disabled}\n readOnly={disabled}\n onChange={e => handleChange(i, e.target.value)}\n onKeyDown={e => handleKeyDown(e, i)}\n onPaste={handlePaste}\n onFocus={() => handleFocus(i)}\n onBlur={handleBlur}\n className={cn(\n 'otp-input-cell text-info-primary laptop:size-[54px] rounded-box-small size-[44px] border text-center text-base font-bold transition-colors focus:outline-none',\n getCellBorderClass(i),\n disabled && 'text-info-quaternary cursor-not-allowed bg-[#EAEAEC]',\n cellClassName\n )}\n />\n ))}\n </div>\n {error && errorMessage && (\n <span className=\"otp-input-error text-base font-bold leading-[1.4] tracking-[-0.02em] text-[#FF4D4D]\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n }\n)\n\nOtpInput.displayName = 'OtpInput'\n\nexport default OtpInput\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "React", "cn", "OtpInput", "length", "value", "onChange", "onComplete", "onFocus", "onBlur", "onPaste", "className", "cellClassName", "disabled", "error", "errorMessage", "autoFocus", "ref", "inputsRef", "focusedIndex", "setFocusedIndex", "programmaticFocusRef", "focusCell", "index", "focusedIndexRef", "applyDigit", "digit", "isOverwrite", "newValue", "handleChange", "char", "handleKeyDown", "i", "prev", "next", "handlePaste", "raw", "pasted", "handleFocus", "firstEmpty", "handleBlur", "el", "getCellBorderClass", "_", "e", "otp_input_default"]
7
+ }
@@ -57,5 +57,11 @@ export declare const highlightSearchWord: (text: string, searchText: string) =>
57
57
  * @example
58
58
  * // 空路径处理
59
59
  * getLocalizedPath('', 'uk') // => ''
60
+ *
61
+ * @example
62
+ * // appendParams 会自动判断用 ? 还是 &
63
+ * getLocalizedPath('/products', 'us', 'ref=footer') // => '/products?ref=footer'
64
+ * getLocalizedPath('https://example.com/page', 'us', 'ref=footer') // => 'https://example.com/page?ref=footer'
65
+ * getLocalizedPath('https://example.com/page?app=foo', 'us', 'ref=footer') // => 'https://example.com/page?app=foo&ref=footer'
60
66
  */
61
- export declare const getLocalizedPath: (path: string, locale: string) => string;
67
+ export declare const getLocalizedPath: (path: string, locale: string, appendParams?: string) => string;
@@ -1,2 +1,2 @@
1
- import{clsx as s}from"clsx";import{extendTailwindMerge as o}from"tailwind-merge";const a=o({extend:{theme:{borderRadius:["btn"]},classGroups:{"font-size":["text-heading-1","text-heading-2","text-heading-3","text-heading-4","text-heading-5","text-text-3","text-text-2","text-text-1"],"text-color":["text-info-primary","text-info-secondary","text-info-tertiary","text-info-quaternary","text-info-white"],leading:["leading-tight","leading-normal","leading-loose"]}}});function l(...t){return a(s(t))}function p(){}function f(t){return t&&typeof t=="string"&&t.includes("/")?t.split("/").pop()?.split("?")?.shift():t}const u=t=>t?.replace(/\s+/g,"-"),g=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=(t,e)=>{try{if(!t||!e)return t;const r=g(e),n=new RegExp(r,"gi");return t.replace(n,i=>`<span class='text-brand-0 font-bold'>${i}</span>`)}catch(r){return console.error("highlightSearchWord error:",r),t}},d=(t,e)=>{if(!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("#"))return t;const r=t.split("/").filter(Boolean);return r.length===0?e==="us"?"/":`/${e}`:r[0]===e?`/${r.join("/")}`:`${e==="us"?"":`/${e}`}/${r.join("/")}`};export{f as atobID,l as cn,d as getLocalizedPath,h as highlightSearchWord,p as noop,u as spaceToHyphen};
1
+ import{clsx as g}from"clsx";import{extendTailwindMerge as c}from"tailwind-merge";const x=c({extend:{theme:{borderRadius:["btn"]},classGroups:{"font-size":["text-heading-1","text-heading-2","text-heading-3","text-heading-4","text-heading-5","text-text-3","text-text-2","text-text-1"],"text-color":["text-info-primary","text-info-secondary","text-info-tertiary","text-info-quaternary","text-info-white"],leading:["leading-tight","leading-normal","leading-loose"]}}});function h(...t){return x(g(t))}function $(){}function a(t){return t&&typeof t=="string"&&t.includes("/")?t.split("/").pop()?.split("?")?.shift():t}const d=t=>t?.replace(/\s+/g,"-"),l=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),y=(t,r)=>{try{if(!t||!r)return t;const e=l(r),n=new RegExp(e,"gi");return t.replace(n,o=>`<span class='text-brand-0 font-bold'>${o}</span>`)}catch(e){return console.error("highlightSearchWord error:",e),t}},b=(t,r,e)=>{if(!t)return t;if(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("#"))return e?t.includes("?")?`${t}&${e}`:`${t}?${e}`:t;const n=t.split("/").filter(Boolean);if(n.length===0){const i=r==="us"?"/":`/${r}`;return e?`${i}?${e}`:i}if(n[0]===r){const i=`/${n.join("/")}`;return e?`${i}?${e}`:i}const s=`${r==="us"?"":`/${r}`}/${n.join("/")}`;return e?`${s}?${e}`:s};export{a as atobID,h as cn,b as getLocalizedPath,y as highlightSearchWord,$ as noop,d as spaceToHyphen};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/utils.ts"],
4
- "sourcesContent": ["import { clsx, type ClassValue } from 'clsx'\nimport { extendTailwindMerge } from 'tailwind-merge'\n\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n borderRadius: ['btn'],\n },\n classGroups: {\n 'font-size': [\n 'text-heading-1',\n 'text-heading-2',\n 'text-heading-3',\n 'text-heading-4',\n 'text-heading-5',\n 'text-text-3',\n 'text-text-2',\n 'text-text-1',\n ],\n 'text-color': [\n 'text-info-primary',\n 'text-info-secondary',\n 'text-info-tertiary',\n 'text-info-quaternary',\n 'text-info-white',\n ],\n leading: ['leading-tight', 'leading-normal', 'leading-loose'],\n },\n },\n})\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function noop(): any {}\n\nexport function atobID(id: string) {\n if (id && typeof id === 'string' && id.includes('/')) {\n return id.split('/').pop()?.split('?')?.shift()\n } else {\n return id\n }\n}\nexport const spaceToHyphen = (str: string) => str?.replace(/\\s+/g, '-')\n\n/**\n * \u8F6C\u4E49\u6B63\u5219\u8868\u8FBE\u5F0F\u7279\u6B8A\u5B57\u7B26\n * @param str \u9700\u8981\u8F6C\u4E49\u7684\u5B57\u7B26\u4E32\n * @returns \u8F6C\u4E49\u540E\u7684\u5B57\u7B26\u4E32\n */\nconst escapeRegExp = (str: string): string => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n}\n\n/**\n * \u9AD8\u4EAE\u641C\u7D22\u5173\u952E\u8BCD\n * @param text \u539F\u59CB\u6587\u672C\n * @param searchText \u641C\u7D22\u5173\u952E\u8BCD\n * @returns \u9AD8\u4EAE\u540E\u7684 HTML \u5B57\u7B26\u4E32\n */\nexport const highlightSearchWord = (text: string, searchText: string) => {\n try {\n if (!text || !searchText) {\n return text\n }\n\n // \u8F6C\u4E49\u641C\u7D22\u6587\u672C\u4E2D\u7684\u6B63\u5219\u8868\u8FBE\u5F0F\u7279\u6B8A\u5B57\u7B26\n const escapedSearchText = escapeRegExp(searchText)\n const regex = new RegExp(escapedSearchText, 'gi')\n\n // \u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u7684\u5339\u914D\u7ED3\u679C\u6765\u4FDD\u6301\u539F\u59CB\u5927\u5C0F\u5199\n return text.replace(regex, match => `<span class='text-brand-0 font-bold'>${match}</span>`)\n } catch (e) {\n console.error('highlightSearchWord error:', e)\n return text\n }\n}\n\n/**\n * \u83B7\u53D6\u672C\u5730\u5316\u8DEF\u5F84\n *\n * \u6839\u636E\u8BED\u8A00\u6807\u8BC6\u4E3A\u8DEF\u5F84\u6DFB\u52A0\u5BF9\u5E94\u7684 locale \u524D\u7F00\u3002\n * - 'us' \u4E3A\u9ED8\u8BA4\u8BED\u8A00\uFF0C\u4E0D\u6DFB\u52A0\u524D\u7F00\n * - \u5176\u4ED6\u8BED\u8A00\u4F1A\u6DFB\u52A0 `/{locale}` \u524D\u7F00\n * - \u5B8C\u6574 URL\uFF08http/https\uFF09\u4E0D\u505A\u5904\u7406\n * - \u81EA\u52A8\u5904\u7406\u8DEF\u5F84\u683C\u5F0F\uFF08\u8865\u5145\u524D\u5BFC\u659C\u6760\u3001\u79FB\u9664\u5C3E\u90E8\u659C\u6760\uFF09\n *\n * @param path - \u539F\u59CB\u8DEF\u5F84\n * @param locale - \u8BED\u8A00\u6807\u8BC6\uFF08\u5982 'us', 'uk', 'de', 'jp' \u7B49\uFF09\n * @returns \u672C\u5730\u5316\u540E\u7684\u8DEF\u5F84\n *\n * @example\n * // \u57FA\u672C\u7528\u6CD5 - \u9ED8\u8BA4\u8BED\u8A00 'us' \u4E0D\u6DFB\u52A0\u524D\u7F00\n * getLocalizedPath('/products', 'us') // => '/products'\n * getLocalizedPath('/about', 'us') // => '/about'\n *\n * @example\n * // \u5176\u4ED6\u8BED\u8A00\u6DFB\u52A0\u524D\u7F00\n * getLocalizedPath('/products', 'uk') // => '/uk/products'\n * getLocalizedPath('/about/team', 'de') // => '/de/about/team'\n * getLocalizedPath('/contact', 'jp') // => '/jp/contact'\n *\n * @example\n * // \u6839\u8DEF\u5F84\u5904\u7406\n * getLocalizedPath('/', 'us') // => '/'\n * getLocalizedPath('/', 'uk') // => '/uk'\n *\n * @example\n * // \u81EA\u52A8\u683C\u5F0F\u5316\u8DEF\u5F84\n * getLocalizedPath('products', 'uk') // => '/uk/products' (\u8865\u5145\u524D\u5BFC\u659C\u6760)\n * getLocalizedPath('/products/', 'uk') // => '/uk/products' (\u79FB\u9664\u5C3E\u90E8\u659C\u6760)\n * getLocalizedPath('//products//detail/', 'uk') // => '/uk/products/detail' (\u79FB\u9664\u591A\u4F59\u659C\u6760)\n *\n * @example\n * // \u5DF2\u5305\u542B locale \u7684\u8DEF\u5F84\u4E0D\u91CD\u590D\u6DFB\u52A0\n * getLocalizedPath('/uk/products', 'uk') // => '/uk/products'\n *\n * @example\n * // \u5B8C\u6574 URL \u4E0D\u5904\u7406\n * getLocalizedPath('https://example.com/page', 'uk') // => 'https://example.com/page'\n * getLocalizedPath('http://example.com', 'de') // => 'http://example.com'\n *\n * @example\n * // \u7A7A\u8DEF\u5F84\u5904\u7406\n * getLocalizedPath('', 'uk') // => ''\n */\nexport const getLocalizedPath = (path: string, locale: string): string => {\n if (!path) return path\n\n // \u5982\u679C\u662F\u5B8C\u6574 URL\uFF08http:// \u6216 https://\uFF09\u6216\u951A\u70B9\u94FE\u63A5\uFF08#\uFF09\uFF0C\u4E0D\u5904\u7406\n if (path.startsWith('http://') || path.startsWith('https://') || path.startsWith('#')) {\n return path\n }\n\n // \u5206\u5272\u8DEF\u5F84\u5E76\u8FC7\u6EE4\u7A7A\u6BB5\uFF08\u5904\u7406\u591A\u4E2A\u8FDE\u7EED\u659C\u6760\u7684\u60C5\u51B5\uFF09\n const pathSegments = path.split('/').filter(Boolean)\n\n // \u5982\u679C\u6CA1\u6709\u6709\u6548\u8DEF\u5F84\u6BB5\uFF0C\u8FD4\u56DE locale \u524D\u7F00\u6216 '/'\n if (pathSegments.length === 0) {\n return locale === 'us' ? '/' : `/${locale}`\n }\n\n // \u68C0\u67E5\u8DEF\u5F84\u662F\u5426\u5DF2\u7ECF\u5305\u542B locale\n if (pathSegments[0] === locale) {\n return `/${pathSegments.join('/')}`\n }\n\n // \u83B7\u53D6 locale \u524D\u7F00\u5E76\u62FC\u63A5\n const localePrefix = locale === 'us' ? '' : `/${locale}`\n return `${localePrefix}/${pathSegments.join('/')}`\n}\n"],
5
- "mappings": "AAAA,OAAS,QAAAA,MAA6B,OACtC,OAAS,uBAAAC,MAA2B,iBAEpC,MAAMC,EAAUD,EAAoB,CAClC,OAAQ,CACN,MAAO,CACL,aAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,YAAa,CACX,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,aACF,EACA,aAAc,CACZ,oBACA,sBACA,qBACA,uBACA,iBACF,EACA,QAAS,CAAC,gBAAiB,iBAAkB,eAAe,CAC9D,CACF,CACF,CAAC,EAEM,SAASE,KAAMC,EAAsB,CAC1C,OAAOF,EAAQF,EAAKI,CAAM,CAAC,CAC7B,CAEO,SAASC,GAAY,CAAC,CAEtB,SAASC,EAAOC,EAAY,CACjC,OAAIA,GAAM,OAAOA,GAAO,UAAYA,EAAG,SAAS,GAAG,EAC1CA,EAAG,MAAM,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,GAAG,MAAM,EAEvCA,CAEX,CACO,MAAMC,EAAiBC,GAAgBA,GAAK,QAAQ,OAAQ,GAAG,EAOhEC,EAAgBD,GACbA,EAAI,QAAQ,sBAAuB,MAAM,EASrCE,EAAsB,CAACC,EAAcC,IAAuB,CACvE,GAAI,CACF,GAAI,CAACD,GAAQ,CAACC,EACZ,OAAOD,EAIT,MAAME,EAAoBJ,EAAaG,CAAU,EAC3CE,EAAQ,IAAI,OAAOD,EAAmB,IAAI,EAGhD,OAAOF,EAAK,QAAQG,EAAOC,GAAS,wCAAwCA,CAAK,SAAS,CAC5F,OAASC,EAAG,CACV,eAAQ,MAAM,6BAA8BA,CAAC,EACtCL,CACT,CACF,EAkDaM,EAAmB,CAACC,EAAcC,IAA2B,CAIxE,GAHI,CAACD,GAGDA,EAAK,WAAW,SAAS,GAAKA,EAAK,WAAW,UAAU,GAAKA,EAAK,WAAW,GAAG,EAClF,OAAOA,EAIT,MAAME,EAAeF,EAAK,MAAM,GAAG,EAAE,OAAO,OAAO,EAGnD,OAAIE,EAAa,SAAW,EACnBD,IAAW,KAAO,IAAM,IAAIA,CAAM,GAIvCC,EAAa,CAAC,IAAMD,EACf,IAAIC,EAAa,KAAK,GAAG,CAAC,GAK5B,GADcD,IAAW,KAAO,GAAK,IAAIA,CAAM,EAChC,IAAIC,EAAa,KAAK,GAAG,CAAC,EAClD",
6
- "names": ["clsx", "extendTailwindMerge", "twMerge", "cn", "inputs", "noop", "atobID", "id", "spaceToHyphen", "str", "escapeRegExp", "highlightSearchWord", "text", "searchText", "escapedSearchText", "regex", "match", "e", "getLocalizedPath", "path", "locale", "pathSegments"]
4
+ "sourcesContent": ["import { clsx, type ClassValue } from 'clsx'\nimport { extendTailwindMerge } from 'tailwind-merge'\n\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n borderRadius: ['btn'],\n },\n classGroups: {\n 'font-size': [\n 'text-heading-1',\n 'text-heading-2',\n 'text-heading-3',\n 'text-heading-4',\n 'text-heading-5',\n 'text-text-3',\n 'text-text-2',\n 'text-text-1',\n ],\n 'text-color': [\n 'text-info-primary',\n 'text-info-secondary',\n 'text-info-tertiary',\n 'text-info-quaternary',\n 'text-info-white',\n ],\n leading: ['leading-tight', 'leading-normal', 'leading-loose'],\n },\n },\n})\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function noop(): any {}\n\nexport function atobID(id: string) {\n if (id && typeof id === 'string' && id.includes('/')) {\n return id.split('/').pop()?.split('?')?.shift()\n } else {\n return id\n }\n}\nexport const spaceToHyphen = (str: string) => str?.replace(/\\s+/g, '-')\n\n/**\n * \u8F6C\u4E49\u6B63\u5219\u8868\u8FBE\u5F0F\u7279\u6B8A\u5B57\u7B26\n * @param str \u9700\u8981\u8F6C\u4E49\u7684\u5B57\u7B26\u4E32\n * @returns \u8F6C\u4E49\u540E\u7684\u5B57\u7B26\u4E32\n */\nconst escapeRegExp = (str: string): string => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n}\n\n/**\n * \u9AD8\u4EAE\u641C\u7D22\u5173\u952E\u8BCD\n * @param text \u539F\u59CB\u6587\u672C\n * @param searchText \u641C\u7D22\u5173\u952E\u8BCD\n * @returns \u9AD8\u4EAE\u540E\u7684 HTML \u5B57\u7B26\u4E32\n */\nexport const highlightSearchWord = (text: string, searchText: string) => {\n try {\n if (!text || !searchText) {\n return text\n }\n\n // \u8F6C\u4E49\u641C\u7D22\u6587\u672C\u4E2D\u7684\u6B63\u5219\u8868\u8FBE\u5F0F\u7279\u6B8A\u5B57\u7B26\n const escapedSearchText = escapeRegExp(searchText)\n const regex = new RegExp(escapedSearchText, 'gi')\n\n // \u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u7684\u5339\u914D\u7ED3\u679C\u6765\u4FDD\u6301\u539F\u59CB\u5927\u5C0F\u5199\n return text.replace(regex, match => `<span class='text-brand-0 font-bold'>${match}</span>`)\n } catch (e) {\n console.error('highlightSearchWord error:', e)\n return text\n }\n}\n\n/**\n * \u83B7\u53D6\u672C\u5730\u5316\u8DEF\u5F84\n *\n * \u6839\u636E\u8BED\u8A00\u6807\u8BC6\u4E3A\u8DEF\u5F84\u6DFB\u52A0\u5BF9\u5E94\u7684 locale \u524D\u7F00\u3002\n * - 'us' \u4E3A\u9ED8\u8BA4\u8BED\u8A00\uFF0C\u4E0D\u6DFB\u52A0\u524D\u7F00\n * - \u5176\u4ED6\u8BED\u8A00\u4F1A\u6DFB\u52A0 `/{locale}` \u524D\u7F00\n * - \u5B8C\u6574 URL\uFF08http/https\uFF09\u4E0D\u505A\u5904\u7406\n * - \u81EA\u52A8\u5904\u7406\u8DEF\u5F84\u683C\u5F0F\uFF08\u8865\u5145\u524D\u5BFC\u659C\u6760\u3001\u79FB\u9664\u5C3E\u90E8\u659C\u6760\uFF09\n *\n * @param path - \u539F\u59CB\u8DEF\u5F84\n * @param locale - \u8BED\u8A00\u6807\u8BC6\uFF08\u5982 'us', 'uk', 'de', 'jp' \u7B49\uFF09\n * @returns \u672C\u5730\u5316\u540E\u7684\u8DEF\u5F84\n *\n * @example\n * // \u57FA\u672C\u7528\u6CD5 - \u9ED8\u8BA4\u8BED\u8A00 'us' \u4E0D\u6DFB\u52A0\u524D\u7F00\n * getLocalizedPath('/products', 'us') // => '/products'\n * getLocalizedPath('/about', 'us') // => '/about'\n *\n * @example\n * // \u5176\u4ED6\u8BED\u8A00\u6DFB\u52A0\u524D\u7F00\n * getLocalizedPath('/products', 'uk') // => '/uk/products'\n * getLocalizedPath('/about/team', 'de') // => '/de/about/team'\n * getLocalizedPath('/contact', 'jp') // => '/jp/contact'\n *\n * @example\n * // \u6839\u8DEF\u5F84\u5904\u7406\n * getLocalizedPath('/', 'us') // => '/'\n * getLocalizedPath('/', 'uk') // => '/uk'\n *\n * @example\n * // \u81EA\u52A8\u683C\u5F0F\u5316\u8DEF\u5F84\n * getLocalizedPath('products', 'uk') // => '/uk/products' (\u8865\u5145\u524D\u5BFC\u659C\u6760)\n * getLocalizedPath('/products/', 'uk') // => '/uk/products' (\u79FB\u9664\u5C3E\u90E8\u659C\u6760)\n * getLocalizedPath('//products//detail/', 'uk') // => '/uk/products/detail' (\u79FB\u9664\u591A\u4F59\u659C\u6760)\n *\n * @example\n * // \u5DF2\u5305\u542B locale \u7684\u8DEF\u5F84\u4E0D\u91CD\u590D\u6DFB\u52A0\n * getLocalizedPath('/uk/products', 'uk') // => '/uk/products'\n *\n * @example\n * // \u5B8C\u6574 URL \u4E0D\u5904\u7406\n * getLocalizedPath('https://example.com/page', 'uk') // => 'https://example.com/page'\n * getLocalizedPath('http://example.com', 'de') // => 'http://example.com'\n *\n * @example\n * // \u7A7A\u8DEF\u5F84\u5904\u7406\n * getLocalizedPath('', 'uk') // => ''\n *\n * @example\n * // appendParams \u4F1A\u81EA\u52A8\u5224\u65AD\u7528 ? \u8FD8\u662F &\n * getLocalizedPath('/products', 'us', 'ref=footer') // => '/products?ref=footer'\n * getLocalizedPath('https://example.com/page', 'us', 'ref=footer') // => 'https://example.com/page?ref=footer'\n * getLocalizedPath('https://example.com/page?app=foo', 'us', 'ref=footer') // => 'https://example.com/page?app=foo&ref=footer'\n */\nexport const getLocalizedPath = (path: string, locale: string, appendParams?: string): string => {\n if (!path) return path\n\n // \u5982\u679C\u662F\u5B8C\u6574 URL\uFF08http:// \u6216 https://\uFF09\u6216\u951A\u70B9\u94FE\u63A5\uFF08#\uFF09\uFF0C\u4E0D\u5904\u7406 locale\uFF0C\u4F46\u9700\u5904\u7406 appendParams\n if (path.startsWith('http://') || path.startsWith('https://') || path.startsWith('#')) {\n if (!appendParams) return path\n return path.includes('?') ? `${path}&${appendParams}` : `${path}?${appendParams}`\n }\n\n // \u5206\u5272\u8DEF\u5F84\u5E76\u8FC7\u6EE4\u7A7A\u6BB5\uFF08\u5904\u7406\u591A\u4E2A\u8FDE\u7EED\u659C\u6760\u7684\u60C5\u51B5\uFF09\n const pathSegments = path.split('/').filter(Boolean)\n\n // \u5982\u679C\u6CA1\u6709\u6709\u6548\u8DEF\u5F84\u6BB5\uFF0C\u8FD4\u56DE locale \u524D\u7F00\u6216 '/'\n if (pathSegments.length === 0) {\n const base = locale === 'us' ? '/' : `/${locale}`\n return appendParams ? `${base}?${appendParams}` : base\n }\n\n // \u68C0\u67E5\u8DEF\u5F84\u662F\u5426\u5DF2\u7ECF\u5305\u542B locale\n if (pathSegments[0] === locale) {\n const base = `/${pathSegments.join('/')}`\n return appendParams ? `${base}?${appendParams}` : base\n }\n\n // \u83B7\u53D6 locale \u524D\u7F00\u5E76\u62FC\u63A5\n const localePrefix = locale === 'us' ? '' : `/${locale}`\n const base = `${localePrefix}/${pathSegments.join('/')}`\n return appendParams ? `${base}?${appendParams}` : base\n}\n"],
5
+ "mappings": "AAAA,OAAS,QAAAA,MAA6B,OACtC,OAAS,uBAAAC,MAA2B,iBAEpC,MAAMC,EAAUD,EAAoB,CAClC,OAAQ,CACN,MAAO,CACL,aAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,YAAa,CACX,iBACA,iBACA,iBACA,iBACA,iBACA,cACA,cACA,aACF,EACA,aAAc,CACZ,oBACA,sBACA,qBACA,uBACA,iBACF,EACA,QAAS,CAAC,gBAAiB,iBAAkB,eAAe,CAC9D,CACF,CACF,CAAC,EAEM,SAASE,KAAMC,EAAsB,CAC1C,OAAOF,EAAQF,EAAKI,CAAM,CAAC,CAC7B,CAEO,SAASC,GAAY,CAAC,CAEtB,SAASC,EAAOC,EAAY,CACjC,OAAIA,GAAM,OAAOA,GAAO,UAAYA,EAAG,SAAS,GAAG,EAC1CA,EAAG,MAAM,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,GAAG,MAAM,EAEvCA,CAEX,CACO,MAAMC,EAAiBC,GAAgBA,GAAK,QAAQ,OAAQ,GAAG,EAOhEC,EAAgBD,GACbA,EAAI,QAAQ,sBAAuB,MAAM,EASrCE,EAAsB,CAACC,EAAcC,IAAuB,CACvE,GAAI,CACF,GAAI,CAACD,GAAQ,CAACC,EACZ,OAAOD,EAIT,MAAME,EAAoBJ,EAAaG,CAAU,EAC3CE,EAAQ,IAAI,OAAOD,EAAmB,IAAI,EAGhD,OAAOF,EAAK,QAAQG,EAAOC,GAAS,wCAAwCA,CAAK,SAAS,CAC5F,OAAS,EAAG,CACV,eAAQ,MAAM,6BAA8B,CAAC,EACtCJ,CACT,CACF,EAwDaK,EAAmB,CAACC,EAAcC,EAAgBC,IAAkC,CAC/F,GAAI,CAACF,EAAM,OAAOA,EAGlB,GAAIA,EAAK,WAAW,SAAS,GAAKA,EAAK,WAAW,UAAU,GAAKA,EAAK,WAAW,GAAG,EAClF,OAAKE,EACEF,EAAK,SAAS,GAAG,EAAI,GAAGA,CAAI,IAAIE,CAAY,GAAK,GAAGF,CAAI,IAAIE,CAAY,GADrDF,EAK5B,MAAMG,EAAeH,EAAK,MAAM,GAAG,EAAE,OAAO,OAAO,EAGnD,GAAIG,EAAa,SAAW,EAAG,CAC7B,MAAMC,EAAOH,IAAW,KAAO,IAAM,IAAIA,CAAM,GAC/C,OAAOC,EAAe,GAAGE,CAAI,IAAIF,CAAY,GAAKE,CACpD,CAGA,GAAID,EAAa,CAAC,IAAMF,EAAQ,CAC9B,MAAMG,EAAO,IAAID,EAAa,KAAK,GAAG,CAAC,GACvC,OAAOD,EAAe,GAAGE,CAAI,IAAIF,CAAY,GAAKE,CACpD,CAIA,MAAMA,EAAO,GADQH,IAAW,KAAO,GAAK,IAAIA,CAAM,EAC1B,IAAIE,EAAa,KAAK,GAAG,CAAC,GACtD,OAAOD,EAAe,GAAGE,CAAI,IAAIF,CAAY,GAAKE,CACpD",
6
+ "names": ["clsx", "extendTailwindMerge", "twMerge", "cn", "inputs", "noop", "atobID", "id", "spaceToHyphen", "str", "escapeRegExp", "highlightSearchWord", "text", "searchText", "escapedSearchText", "regex", "match", "getLocalizedPath", "path", "locale", "appendParams", "pathSegments", "base"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/headless-ui",
3
- "version": "1.3.21",
3
+ "version": "1.3.22",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
package/style.css CHANGED
@@ -1322,6 +1322,10 @@ video {
1322
1322
  width: 40px;
1323
1323
  height: 40px;
1324
1324
  }
1325
+ .size-\[44px\] {
1326
+ width: 44px;
1327
+ height: 44px;
1328
+ }
1325
1329
  .size-\[45px\] {
1326
1330
  width: 45px;
1327
1331
  height: 45px;
@@ -2660,6 +2664,10 @@ video {
2660
2664
  --tw-border-opacity: 1;
2661
2665
  border-color: rgb(232 232 232 / var(--tw-border-opacity, 1));
2662
2666
  }
2667
+ .border-\[\#FF4D4D\] {
2668
+ --tw-border-opacity: 1;
2669
+ border-color: rgb(255 77 77 / var(--tw-border-opacity, 1));
2670
+ }
2663
2671
  .border-\[\#dadce0\] {
2664
2672
  --tw-border-opacity: 1;
2665
2673
  border-color: rgb(218 220 224 / var(--tw-border-opacity, 1));
@@ -2772,6 +2780,10 @@ video {
2772
2780
  --tw-bg-opacity: 1;
2773
2781
  background-color: rgb(76 175 80 / var(--tw-bg-opacity, 1));
2774
2782
  }
2783
+ .bg-\[\#626263\] {
2784
+ --tw-bg-opacity: 1;
2785
+ background-color: rgb(98 98 99 / var(--tw-bg-opacity, 1));
2786
+ }
2775
2787
  .bg-\[\#75787F\] {
2776
2788
  --tw-bg-opacity: 1;
2777
2789
  background-color: rgb(117 120 127 / var(--tw-bg-opacity, 1));
@@ -2784,6 +2796,10 @@ video {
2784
2796
  --tw-bg-opacity: 1;
2785
2797
  background-color: rgb(182 182 186 / var(--tw-bg-opacity, 1));
2786
2798
  }
2799
+ .bg-\[\#D6F4DE\] {
2800
+ --tw-bg-opacity: 1;
2801
+ background-color: rgb(214 244 222 / var(--tw-bg-opacity, 1));
2802
+ }
2787
2803
  .bg-\[\#D79941\] {
2788
2804
  --tw-bg-opacity: 1;
2789
2805
  background-color: rgb(215 153 65 / var(--tw-bg-opacity, 1));
@@ -2832,6 +2848,14 @@ video {
2832
2848
  --tw-bg-opacity: 1;
2833
2849
  background-color: rgb(246 205 78 / var(--tw-bg-opacity, 1));
2834
2850
  }
2851
+ .bg-\[\#F6DBD8\] {
2852
+ --tw-bg-opacity: 1;
2853
+ background-color: rgb(246 219 216 / var(--tw-bg-opacity, 1));
2854
+ }
2855
+ .bg-\[\#F6EAD0\] {
2856
+ --tw-bg-opacity: 1;
2857
+ background-color: rgb(246 234 208 / var(--tw-bg-opacity, 1));
2858
+ }
2835
2859
  .bg-\[\#F7F8F9\] {
2836
2860
  --tw-bg-opacity: 1;
2837
2861
  background-color: rgb(247 248 249 / var(--tw-bg-opacity, 1));
@@ -3813,6 +3837,10 @@ video {
3813
3837
  --tw-text-opacity: 1;
3814
3838
  color: rgb(248 77 79 / var(--tw-text-opacity, 1));
3815
3839
  }
3840
+ .text-\[\#FF4D4D\] {
3841
+ --tw-text-opacity: 1;
3842
+ color: rgb(255 77 77 / var(--tw-text-opacity, 1));
3843
+ }
3816
3844
  .text-\[\#FF6B00\] {
3817
3845
  --tw-text-opacity: 1;
3818
3846
  color: rgb(255 107 0 / var(--tw-text-opacity, 1));
@@ -4771,6 +4799,9 @@ video {
4771
4799
  --tw-text-opacity: 1;
4772
4800
  color: rgb(29 29 31 / var(--tw-text-opacity, 1));
4773
4801
  }
4802
+ .data-\[state\=checked\]\:text-info-white[data-state="checked"] {
4803
+ color: var(--info-white-color);
4804
+ }
4774
4805
  .data-\[state\=checked\]\:text-primary-foreground[data-state="checked"] {
4775
4806
  color: var(--info-white-color);
4776
4807
  }
@@ -5133,6 +5164,10 @@ video {
5133
5164
  width: 1.25rem;
5134
5165
  height: 1.25rem;
5135
5166
  }
5167
+ .tablet\:size-6 {
5168
+ width: 1.5rem;
5169
+ height: 1.5rem;
5170
+ }
5136
5171
  .tablet\:size-8 {
5137
5172
  width: 2rem;
5138
5173
  height: 2rem;
@@ -5802,6 +5837,10 @@ video {
5802
5837
  width: 48px;
5803
5838
  height: 48px;
5804
5839
  }
5840
+ .laptop\:size-\[54px\] {
5841
+ width: 54px;
5842
+ height: 54px;
5843
+ }
5805
5844
  .laptop\:size-\[64px\] {
5806
5845
  width: 64px;
5807
5846
  height: 64px;
@@ -6021,6 +6060,9 @@ video {
6021
6060
  .laptop\:max-w-\[563px\] {
6022
6061
  max-width: 563px;
6023
6062
  }
6063
+ .laptop\:max-w-\[824px\] {
6064
+ max-width: 824px;
6065
+ }
6024
6066
  .laptop\:max-w-full {
6025
6067
  max-width: 100%;
6026
6068
  }
@@ -8172,9 +8214,6 @@ video {
8172
8214
  padding-bottom: 1rem;
8173
8215
  }
8174
8216
  }
8175
- .\[\&_p\]\:leading-relaxed p {
8176
- line-height: 1.625;
8177
- }
8178
8217
  .\[\&_span\]\:text-\[\#080A0F\] span {
8179
8218
  --tw-text-opacity: 1;
8180
8219
  color: rgb(8 10 15 / var(--tw-text-opacity, 1));