@purpur/library 9.4.0 → 9.4.3
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/CHANGELOG.json +45 -0
- package/CHANGELOG.md +25 -1
- package/dist/LICENSE.txt +8 -1
- package/dist/calendar-BXQ3v62X.js +2 -0
- package/dist/{calendar-CBBV8n3x.js.map → calendar-BXQ3v62X.js.map} +1 -1
- package/dist/{calendar-DEXw83mu.mjs → calendar-d53vgYqR.mjs} +481 -465
- package/dist/{calendar-DEXw83mu.mjs.map → calendar-d53vgYqR.mjs.map} +1 -1
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.es.js +3 -3
- package/dist/comparison-table-C74IAVqz.js +2 -0
- package/dist/comparison-table-C74IAVqz.js.map +1 -0
- package/dist/comparison-table-DctKxmX9.mjs +267 -0
- package/dist/comparison-table-DctKxmX9.mjs.map +1 -0
- package/dist/comparison-table.cjs.js +1 -1
- package/dist/comparison-table.es.js +1 -1
- package/dist/components/calendar/src/calendar.d.ts +4 -11
- package/dist/components/calendar/src/calendar.d.ts.map +1 -1
- package/dist/components/comparison-table/src/comparison-table.d.ts.map +1 -1
- package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts +2 -1
- package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts.map +1 -1
- package/dist/components/comparison-table/src/components/ScrollProgress/scroll-progress.d.ts +1 -2
- package/dist/components/comparison-table/src/components/ScrollProgress/scroll-progress.d.ts.map +1 -1
- package/dist/components/date-field/src/date-field.d.ts.map +1 -1
- package/dist/components/date-picker/src/date-picker.d.ts +11 -2
- package/dist/components/date-picker/src/date-picker.d.ts.map +1 -1
- package/dist/components/date-range-field/src/date-range-field.d.ts +27 -0
- package/dist/components/date-range-field/src/date-range-field.d.ts.map +1 -0
- package/dist/components-metadata.js +10 -0
- package/dist/date-field-BKKty89_.js +2 -0
- package/dist/{date-field-BJaomFjs.js.map → date-field-BKKty89_.js.map} +1 -1
- package/dist/{date-field-D3rTtf9Y.mjs → date-field-Cv5CKR1y.mjs} +276 -268
- package/dist/{date-field-D3rTtf9Y.mjs.map → date-field-Cv5CKR1y.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/date-picker-CzxhZxsw.mjs +1611 -0
- package/dist/date-picker-CzxhZxsw.mjs.map +1 -0
- package/dist/date-picker-uyPKJulK.js +2 -0
- package/dist/date-picker-uyPKJulK.js.map +1 -0
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/date-range-field-CFcjprIl.mjs +142 -0
- package/dist/date-range-field-CFcjprIl.mjs.map +1 -0
- package/dist/date-range-field-D8vLeSwp.js +2 -0
- package/dist/date-range-field-D8vLeSwp.js.map +1 -0
- package/dist/date-range-field.cjs.js +2 -0
- package/dist/date-range-field.cjs.js.map +1 -0
- package/dist/date-range-field.es.js +5 -0
- package/dist/date-range-field.es.js.map +1 -0
- package/dist/{floating-ui.react-dom-gsHLgcoR.mjs → floating-ui.react-dom-EredA301.mjs} +3 -3
- package/dist/{floating-ui.react-dom-gsHLgcoR.mjs.map → floating-ui.react-dom-EredA301.mjs.map} +1 -1
- package/dist/{format-DpkYPs7O.mjs → format-CWOXI-dC.mjs} +8 -8
- package/dist/{format-DpkYPs7O.mjs.map → format-CWOXI-dC.mjs.map} +1 -1
- package/dist/libraries/library/src/date-range-field.d.ts +6 -0
- package/dist/libraries/library/src/date-range-field.d.ts.map +1 -0
- package/dist/libraries/library/src/library.d.ts +1 -0
- package/dist/libraries/library/src/library.d.ts.map +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +636 -633
- package/dist/library.es.js.map +1 -1
- package/dist/notification-banner-BxHwTFnH.js +2 -0
- package/dist/{notification-banner-jY8rQH2M.js.map → notification-banner-BxHwTFnH.js.map} +1 -1
- package/dist/{notification-banner-BOclxqFu.mjs → notification-banner-CZTQZ5Le.mjs} +29 -29
- package/dist/{notification-banner-BOclxqFu.mjs.map → notification-banner-CZTQZ5Le.mjs.map} +1 -1
- package/dist/notification-banner.cjs.js +1 -1
- package/dist/notification-banner.es.js +1 -1
- package/dist/{popover-_xJATlhN.mjs → popover-I26xNbTz.mjs} +2 -2
- package/dist/{popover-_xJATlhN.mjs.map → popover-I26xNbTz.mjs.map} +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/{stepper-CNnx_NiR.mjs → stepper-CWR2vGPj.mjs} +2 -2
- package/dist/{stepper-CNnx_NiR.mjs.map → stepper-CWR2vGPj.mjs.map} +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-D_sdSJyr.mjs → table-g_n68i4s.mjs} +2 -2
- package/dist/{table-D_sdSJyr.mjs.map → table-g_n68i4s.mjs.map} +1 -1
- package/dist/table.es.js +1 -1
- package/dist/{tooltip-VlURN8H3.mjs → tooltip-LU2Cy-QC.mjs} +2 -2
- package/dist/{tooltip-VlURN8H3.mjs.map → tooltip-LU2Cy-QC.mjs.map} +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/{zh-TW-oiRD71xW.mjs → zh-TW-DrQ6h7hA.mjs} +2 -2
- package/dist/{zh-TW-oiRD71xW.mjs.map → zh-TW-DrQ6h7hA.mjs.map} +1 -1
- package/package.json +29 -28
- package/src/aliases.ts +7 -0
- package/src/date-range-field.ts +6 -0
- package/src/entries.js +1 -0
- package/src/library.ts +2 -0
- package/dist/calendar-CBBV8n3x.js +0 -2
- package/dist/comparison-table-8bOJmz-L.mjs +0 -275
- package/dist/comparison-table-8bOJmz-L.mjs.map +0 -1
- package/dist/comparison-table-mKL2IHXW.js +0 -2
- package/dist/comparison-table-mKL2IHXW.js.map +0 -1
- package/dist/date-field-BJaomFjs.js +0 -2
- package/dist/date-picker-CbUNbOhn.mjs +0 -1415
- package/dist/date-picker-CbUNbOhn.mjs.map +0 -1
- package/dist/date-picker-DYXNB5aU.js +0 -2
- package/dist/date-picker-DYXNB5aU.js.map +0 -1
- package/dist/notification-banner-jY8rQH2M.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const r=require("react/jsx-runtime"),u=require("react"),I=require("./bind-DeUYJ6m9.js"),L=require("./checkmark.es-lYntWFA3.js"),F=require("./minus.es-DtXArdKK.js"),R=require("./chevron-down.es-BMjgiS3F.js"),q=require("./paragraph-By4jMjnH.js"),O=require("./badge-CQ0SS_t8.js"),D=require("./button-DmybVApa.js"),B=require("./heading-drD5ugCC.js"),V=require("./arrow-left.es-CCWJyrcQ.js"),H=require("./arrow-right.es-eH-IgGi9.js"),K={"purpur-comparison-table__wrapper":"_purpur-comparison-table__wrapper_1udkj_1","purpur-comparison-table":"_purpur-comparison-table_1udkj_1","purpur-comparison-table--primary":"_purpur-comparison-table--primary_1udkj_11","purpur-comparison-table--secondary":"_purpur-comparison-table--secondary_1udkj_15","purpur-comparison-table__feature-row":"_purpur-comparison-table__feature-row_1udkj_32","purpur-comparison-table__cards":"_purpur-comparison-table__cards_1udkj_32","purpur-comparison-table__separator":"_purpur-comparison-table__separator_1udkj_49"},W={"purpur-comparison-table-cell":"_purpur-comparison-table-cell_117pb_1","purpur-comparison-table-cell--check":"_purpur-comparison-table-cell--check_117pb_16","purpur-comparison-table-cell--minus":"_purpur-comparison-table-cell--minus_117pb_19","purpur-comparison-table-cell__icon":"_purpur-comparison-table-cell__icon_117pb_22"},T=I.c.bind(W),z="purpur-comparison-table-cell",G=({value:a})=>{const t=u.isValidElement(a)||["string","number"].includes(typeof a),m=T(z,[t?"":`${z}--${a?"check":"minus"}`]),c=a?L.a:F.e;return r.jsx("span",{className:T(m),children:t?a:r.jsx(c,{size:"xs",className:T(`${z}__icon`)})})},J={"purpur-comparison-table-lead-cell":"_purpur-comparison-table-lead-cell_1vild_1","purpur-comparison-table-lead-cell__description":"_purpur-comparison-table-lead-cell__description_1vild_5","purpur-comparison-table-lead-cell__summary":"_purpur-comparison-table-lead-cell__summary_1vild_40","purpur-comparison-table-lead-cell__summary-title":"_purpur-comparison-table-lead-cell__summary-title_1vild_48","purpur-comparison-table-lead-cell__summary-icon":"_purpur-comparison-table-lead-cell__summary-icon_1vild_51"},k=I.c.bind(J),C="purpur-comparison-table-lead-cell",Q=({title:a,description:t})=>{const l=typeof t=="string",m=k(C);return r.jsxs("details",{className:m,"data-is-expandable":l,children:[r.jsxs("summary",{className:k(`${C}__summary`),tabIndex:l?0:-1,children:[r.jsx(q.Paragraph,{className:k(`${C}__summary-title`),variant:"paragraph-100-bold",children:a}),r.jsx(R.l,{className:k(`${C}__summary-icon`),size:"sm"})]}),t&&r.jsx(q.Paragraph,{variant:"paragraph-100",className:k(`${C}__description`),children:t})]})},U={"purpur-comparison-table-option-card":"_purpur-comparison-table-option-card_15113_1","purpur-comparison-table-option-card--highlighted":"_purpur-comparison-table-option-card--highlighted_15113_11","purpur-comparison-table-option-card__badge":"_purpur-comparison-table-option-card__badge_15113_14","purpur-comparison-table-option-card__main-content":"_purpur-comparison-table-option-card__main-content_15113_19","purpur-comparison-table-option-card__image":"_purpur-comparison-table-option-card__image_15113_25","purpur-comparison-table-option-card__body":"_purpur-comparison-table-option-card__body_15113_31","purpur-comparison-table-option-card__description":"_purpur-comparison-table-option-card__description_15113_36","purpur-comparison-table-option-card__description-text":"_purpur-comparison-table-option-card__description-text_15113_41","purpur-comparison-table-option-card__read-more":"_purpur-comparison-table-option-card__read-more_15113_50","purpur-comparison-table-option-card__read-more-icon":"_purpur-comparison-table-option-card__read-more-icon_15113_54","purpur-comparison-table-option-card__footer":"_purpur-comparison-table-option-card__footer_15113_62","purpur-comparison-table-option-card__price":"_purpur-comparison-table-option-card__price_15113_67","purpur-comparison-table-option-card--show-full-descriptions":"_purpur-comparison-table-option-card--show-full-descriptions_15113_74","purpur-comparison-table-option-card--first-card":"_purpur-comparison-table-option-card--first-card_15113_107"},_=I.c.bind(U),p="purpur-comparison-table-option-card",X=({id:a,description:t,variablePriceText:l,price:m,isHighlighted:c,ariaLabels:g,badge:h,actions:x,isFirstCard:j,image:f,title:w,showFullDescriptions:e,toggleShowFullDescriptions:i})=>{const d=_(p,{[`${p}--highlighted`]:c,[`${p}--first-card`]:j,[`${p}--show-full-descriptions`]:e}),b=()=>{if(!t)return null;const n=t.length>50;return r.jsxs("div",{className:_(`${p}__description`),children:[r.jsx(q.Paragraph,{variant:"paragraph-100",className:_(`${p}__description-text`),children:t}),n&&r.jsxs(D.Button,{variant:"text",size:"xs",className:_(`${p}__read-more`),onClick:i,children:[r.jsx("span",{className:_(`${p}__read-more-text`),children:e?g.readLess:g.readMore}),r.jsx(R.l,{className:_(`${p}__read-more-icon`),size:"xs"})]})]})};return r.jsxs("article",{className:d,"data-card-id":a,children:[h&&r.jsx(O.Badge,{...h,className:_(`${p}__badge`)}),r.jsxs("section",{className:_(`${p}__main-content`),children:[r.jsx("img",{src:f.src,alt:f.alt,className:_(`${p}__image`)}),r.jsxs("div",{className:_(`${p}__body`),children:[r.jsx(B.Heading,{tag:"h3",variant:"title-200",className:_(`${p}__title`),children:w}),b()]})]}),r.jsxs("footer",{className:_(`${p}__footer`),children:[r.jsxs("span",{className:_(`${p}__price`),id:a,children:[r.jsx(q.Paragraph,{variant:"paragraph-100",children:l}),r.jsx(q.Paragraph,{variant:"paragraph-100-bold",children:m})]}),x]})]})},Y="_active_ybbe8_44",Z={"purpur-comparison-table-scroll-progress":"_purpur-comparison-table-scroll-progress_ybbe8_1","purpur-comparison-table-scroll-progress__indicators":"_purpur-comparison-table-scroll-progress__indicators_ybbe8_15","purpur-comparison-table-scroll-progress__indicator":"_purpur-comparison-table-scroll-progress__indicator_ybbe8_15",active:Y,"purpur-comparison-table-scroll-progress__buttons":"_purpur-comparison-table-scroll-progress__buttons_ybbe8_48","purpur-comparison-table-scroll-progress__button":"_purpur-comparison-table-scroll-progress__button_ybbe8_48","purpur-comparison-table-scroll-progress__button-icon":"_purpur-comparison-table-scroll-progress__button-icon_ybbe8_57"},$=I.c.bind(Z),y="purpur-comparison-table-scroll-progress",rr=({items:a,container:t,parentId:l,ariaLabels:m})=>{const[c,g]=u.useState(new Set),h=u.useCallback(e=>{const i=window.matchMedia("(prefers-reduced-motion: reduce)").matches;document.querySelector(`[data-card-id="${e}-${l}"]`)?.scrollIntoView({behavior:i?"instant":"smooth",block:"nearest"})},[l]),x=u.useCallback(()=>{if(c.size===0)return;const i=Math.min(...Array.from(c))-1;i<0||h(i)},[c,h]),j=u.useCallback(()=>{if(c.size===0)return;const i=Math.max(...Array.from(c))+1;i>=a.length||h(i)},[c,a.length,h]),f=u.useCallback(e=>{(e.key==="ArrowRight"||e.key==="ArrowLeft")&&(e.preventDefault(),e.key==="ArrowRight"?j():e.key==="ArrowLeft"&&x())},[j,x]);u.useEffect(()=>{const e=t.current;if(!e)return;const i=new IntersectionObserver(d=>{g(b=>{const o=new Set(b);return d.forEach(n=>{let s=n.target.getAttribute("data-card-id")?.match(new RegExp(`(\\d+)-${l}`))?.[1];s&&(s=parseInt(s,10),n.isIntersecting?o.add(s):o.delete(s))}),o})},{root:e,threshold:.5});return a.forEach((d,b)=>{const o=document.querySelector(`[data-card-id="${b}-${l}"]`);o&&i.observe(o)}),()=>i.disconnect()},[t,a,l]),u.useEffect(()=>{const e=t.current;if(e)return e.addEventListener("keydown",f),()=>e.removeEventListener("keydown",f)},[t,f]);const w=()=>{if(c.size===0)return;const e=[],i=c.size,d=Math.min(...Array.from(c)),b=a.slice(0,d).length,o=a.slice(d+i).length;let n=0;for(let s=0;s<a.length;s++){if(b+1!==s&&b<=s&&s<a.length-o)continue;let N="active";(s<b||s>a.length-1-o)&&(N=""),e.push(r.jsx("li",{className:$(`${y}__indicator`,N)},`indicator-${n++}`))}return e.length<2?null:e};return r.jsxs("li",{className:$(y),children:[r.jsx("ul",{className:$(`${y}__indicators`),children:w()}),r.jsxs("div",{className:$(`${y}__buttons`),children:[r.jsx(D.Button,{"aria-label":m.previous,variant:"secondary",iconOnly:!0,className:$(`${y}__button`),disabled:c.has(0),onClick:x,children:r.jsx(V.l,{className:$(`${y}__button-icon`),size:"xs"})}),r.jsx(D.Button,{"aria-label":m.next,variant:"secondary",iconOnly:!0,className:$(`${y}__button`),disabled:c.has(a.length-1),onClick:j,children:r.jsx(H.i,{className:$(`${y}__button-icon`),size:"xs"})})]})]})},S=I.c.bind(K),v="purpur-comparison-table",A=({classname:a,features:t,items:l,ariaLabels:m,variant:c="primary"})=>{const g=u.useId(),h=S(a,v,`${v}--${c}`),x=u.useRef(null),[j,f]=u.useState(!1),w=u.useCallback(()=>{f(o=>!o)},[]),e=()=>r.jsxs("li",{className:S(`${v}__cards`),children:[r.jsx("div",{className:S(`${v}__separator`)}),l.map((o,n)=>u.createElement(X,{...o,showFullDescriptions:j,toggleShowFullDescriptions:w,key:n,isFirstCard:n===0,ariaLabels:m,id:`${n}-${g}`}))]}),i=()=>Object.entries(t).map(([o,n],s)=>r.jsxs("li",{className:S(`${v}__feature-row`),children:[r.jsx(Q,{title:o,description:n}),l.map((N,E)=>r.jsx(G,{value:N.features[o]??!1},E))]},s)),d=u.useRef(0),b=o=>{const n=o.currentTarget,s=n.querySelector("[data-card-id]")?.clientWidth??0,N=Math.round(n.scrollLeft/s),E=N*s+N,M=o.timeStamp-d.current,P=Math.abs(n.scrollLeft-E);d.current&&M<200||P<10||(d.current=o.timeStamp,n.scrollTo({left:E,behavior:"smooth"}))};return r.jsx("div",{className:S(v+"__wrapper"),children:r.jsxs("ul",{id:v+`-${g}`,ref:x,className:h,onScrollEnd:b,style:{"--initial-columns":l.length+1},children:[r.jsx(rr,{items:l,container:x,ariaLabels:m,parentId:CSS.escape(g)}),e(),i()]})})};A.displayName="ComparisonTable";exports.ComparisonTable=A;
|
|
2
|
-
//# sourceMappingURL=comparison-table-mKL2IHXW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comparison-table-mKL2IHXW.js","sources":["../../../components/comparison-table/src/components/Cell/cell.tsx","../../../components/comparison-table/src/components/LeadCell/lead-cell.tsx","../../../components/comparison-table/src/components/OptionCard/option-card.tsx","../../../components/comparison-table/src/components/ScrollProgress/scroll-progress.tsx","../../../components/comparison-table/src/comparison-table.tsx"],"sourcesContent":["import React, { isValidElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport { IconMinus } from \"@purpur/icon/minus\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./cell.module.scss\";\n\ntype CellProps = {\n value: boolean | ReactNode;\n};\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table-cell\";\n\nexport const Cell = ({ value }: CellProps) => {\n const isReactNode = isValidElement(value) || [\"string\", \"number\"].includes(typeof value);\n\n const getClassName = () => {\n if (isReactNode) return \"\";\n return `${rootClassName}--${value ? \"check\" : \"minus\"}`;\n };\n\n const classes = cx(rootClassName, [getClassName()]);\n\n const Icon = value ? IconCheckmark : IconMinus;\n\n return (\n <span className={cx(classes)}>\n {isReactNode ? value : <Icon size=\"xs\" className={cx(`${rootClassName}__icon`)} />}\n </span>\n );\n};\n","import React, { type ReactNode } from \"react\";\nimport { IconChevronDown } from \"@purpur/icon/chevron-down\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./lead-cell.module.scss\";\n\ntype LeadCellProps = {\n title: string;\n description?: ReactNode;\n};\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table-lead-cell\";\n\nexport const LeadCell = ({ title, description }: LeadCellProps) => {\n const isExpandable = typeof description === \"string\";\n const classes = cx(rootClassName);\n\n return (\n <details className={classes} data-is-expandable={isExpandable}>\n <summary className={cx(`${rootClassName}__summary`)} tabIndex={isExpandable ? 0 : -1}>\n <Paragraph className={cx(`${rootClassName}__summary-title`)} variant=\"paragraph-100-bold\">\n {title}\n </Paragraph>\n <IconChevronDown className={cx(`${rootClassName}__summary-icon`)} size=\"sm\" />\n </summary>\n {description && (\n <Paragraph variant=\"paragraph-100\" className={cx(`${rootClassName}__description`)}>\n {description}\n </Paragraph>\n )}\n </details>\n );\n};\n","import React, { type ReactNode } from \"react\";\nimport { Badge, type BadgeProps } from \"@purpur/badge\";\nimport { Button } from \"@purpur/button\";\nimport { Heading } from \"@purpur/heading\";\nimport { IconChevronDown } from \"@purpur/icon/chevron-down\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport { type ComparisonTableProps } from \"../../comparison-table\";\nimport styles from \"./option-card.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table-option-card\";\n\nexport type OptionCardProps = {\n image: {\n src: string;\n alt: string;\n };\n\n title: string;\n description: string;\n variablePriceText: string;\n price: string;\n\n actions: ReactNode;\n\n badge?: BadgeProps;\n isHighlighted?: boolean;\n};\n\ntype OptionCardPropsAdditions = {\n id: string;\n isFirstCard: boolean;\n ariaLabels: ComparisonTableProps[\"ariaLabels\"];\n\n showFullDescriptions: boolean;\n toggleShowFullDescriptions: () => void;\n};\n\nexport const OptionCard = ({\n id,\n description,\n variablePriceText,\n price,\n isHighlighted,\n ariaLabels,\n badge,\n actions,\n isFirstCard,\n image,\n title,\n showFullDescriptions,\n toggleShowFullDescriptions,\n}: OptionCardProps & OptionCardPropsAdditions) => {\n const classes = cx(rootClassName, {\n [`${rootClassName}--highlighted`]: isHighlighted,\n [`${rootClassName}--first-card`]: isFirstCard,\n [`${rootClassName}--show-full-descriptions`]: showFullDescriptions,\n });\n\n const renderDescription = () => {\n if (!description) return null;\n\n const longThreshold = 50;\n const longDescription = description.length > longThreshold;\n\n return (\n <div className={cx(`${rootClassName}__description`)}>\n <Paragraph variant=\"paragraph-100\" className={cx(`${rootClassName}__description-text`)}>\n {description}\n </Paragraph>\n {longDescription && (\n <Button\n variant=\"text\"\n size=\"xs\"\n className={cx(`${rootClassName}__read-more`)}\n onClick={toggleShowFullDescriptions}\n >\n <span className={cx(`${rootClassName}__read-more-text`)}>\n {showFullDescriptions ? ariaLabels.readLess : ariaLabels.readMore}\n </span>\n <IconChevronDown className={cx(`${rootClassName}__read-more-icon`)} size=\"xs\" />\n </Button>\n )}\n </div>\n );\n };\n\n return (\n <article className={classes} data-card-id={id}>\n {badge && <Badge {...badge} className={cx(`${rootClassName}__badge`)} />}\n\n <section className={cx(`${rootClassName}__main-content`)}>\n <img src={image.src} alt={image.alt} className={cx(`${rootClassName}__image`)} />\n\n <div className={cx(`${rootClassName}__body`)}>\n <Heading tag=\"h3\" variant=\"title-200\" className={cx(`${rootClassName}__title`)}>\n {title}\n </Heading>\n {renderDescription()}\n </div>\n </section>\n\n <footer className={cx(`${rootClassName}__footer`)}>\n <span className={cx(`${rootClassName}__price`)} id={id}>\n <Paragraph variant=\"paragraph-100\">{variablePriceText}</Paragraph>\n <Paragraph variant=\"paragraph-100-bold\">{price}</Paragraph>\n </span>\n\n {actions}\n </footer>\n </article>\n );\n};\n","import React, { type RefObject, useCallback, useEffect, useState } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport c from \"classnames/bind\";\n\nimport { type ComparisonTableProps, type Features, type Item } from \"../../comparison-table\";\nimport styles from \"./scroll-progress.module.scss\";\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-comparison-table-scroll-progress\";\n\ntype ScrollProgressProps = {\n items: Array<Item<Features>>;\n container: RefObject<HTMLUListElement | null>;\n parentId: string;\n ariaLabels: ComparisonTableProps[\"ariaLabels\"];\n};\n\nexport const ScrollProgress = ({ items, container, parentId, ariaLabels }: ScrollProgressProps) => {\n const [inViewSet, setInViewSet] = useState<Set<number>>(new Set());\n\n const scrollToCard = useCallback(\n (index: number) => {\n const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n const card = document.querySelector(\n `[data-card-id=\"${index}-${parentId}\"]`\n ) as HTMLElement | null;\n card?.scrollIntoView({ behavior: reduceMotion ? \"instant\" : \"smooth\", block: \"nearest\" });\n },\n [parentId]\n );\n\n const previousCard = useCallback(() => {\n if (inViewSet.size === 0) return;\n\n const leftmostactiveIndex = Math.min(...Array.from(inViewSet));\n const targetIndex = leftmostactiveIndex - 1;\n\n if (targetIndex < 0) return;\n\n scrollToCard(targetIndex);\n }, [inViewSet, scrollToCard]);\n\n const nextCard = useCallback(() => {\n if (inViewSet.size === 0) return;\n\n const rightmostactiveIndex = Math.max(...Array.from(inViewSet));\n const targetIndex = rightmostactiveIndex + 1;\n\n if (targetIndex >= items.length) return;\n\n scrollToCard(targetIndex);\n }, [inViewSet, items.length, scrollToCard]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n\n if (e.key === \"ArrowRight\") nextCard();\n else if (e.key === \"ArrowLeft\") previousCard();\n }\n },\n [nextCard, previousCard]\n );\n\n useEffect(() => {\n const root = container.current;\n\n if (!root) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n setInViewSet((prev) => {\n const next = new Set(prev);\n\n entries.forEach((entry) => {\n let index: number | string | undefined = entry.target\n .getAttribute(\"data-card-id\")\n ?.match(new RegExp(`(\\\\d+)-${parentId}`))?.[1];\n\n if (!index) return;\n\n index = parseInt(index, 10);\n\n if (entry.isIntersecting) {\n next.add(index);\n } else {\n next.delete(index);\n }\n });\n return next;\n });\n },\n { root, threshold: 0.5 }\n );\n\n items.forEach((_, index) => {\n const card = document.querySelector(\n `[data-card-id=\"${index}-${parentId}\"]`\n ) as HTMLElement | null;\n\n if (card) observer.observe(card);\n });\n\n return () => observer.disconnect();\n }, [container, items, parentId]);\n\n useEffect(() => {\n const root = container.current;\n\n if (!root) return;\n\n root.addEventListener(\"keydown\", handleKeyDown);\n\n return () => root.removeEventListener(\"keydown\", handleKeyDown);\n }, [container, handleKeyDown]);\n\n const renderIndicators = () => {\n if (inViewSet.size === 0) return;\n\n const indicators = [];\n const viewCapacity = inViewSet.size;\n const leftmostActiveIndex = Math.min(...Array.from(inViewSet));\n const head = items.slice(0, leftmostActiveIndex).length;\n const trail = items.slice(leftmostActiveIndex + viewCapacity).length;\n\n let key = 0;\n\n for (let i = 0; i < items.length; i++) {\n if (head + 1 !== i && head <= i && i < items.length - trail) continue;\n\n let status = \"active\";\n\n if (i < head || i > items.length - 1 - trail) status = \"\";\n\n indicators.push(\n <li key={`indicator-${key++}`} className={cx(`${rootClassName}__indicator`, status)} />\n );\n }\n\n if (indicators.length < 2) return null;\n\n return indicators;\n };\n\n return (\n <li className={cx(rootClassName)}>\n <ul className={cx(`${rootClassName}__indicators`)}>{renderIndicators()}</ul>\n\n <div className={cx(`${rootClassName}__buttons`)}>\n <Button\n aria-label={ariaLabels.previous}\n variant=\"secondary\"\n iconOnly\n className={cx(`${rootClassName}__button`)}\n disabled={inViewSet.has(0)}\n onClick={previousCard}\n >\n <IconArrowLeft className={cx(`${rootClassName}__button-icon`)} size=\"xs\" />\n </Button>\n <Button\n aria-label={ariaLabels.next}\n variant=\"secondary\"\n iconOnly\n className={cx(`${rootClassName}__button`)}\n disabled={inViewSet.has(items.length - 1)}\n onClick={nextCard}\n >\n <IconArrowRight className={cx(`${rootClassName}__button-icon`)} size=\"xs\" />\n </Button>\n </div>\n </li>\n );\n};\n","import React, { type ReactNode, type UIEvent, useCallback, useId, useRef, useState } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./comparison-table.module.scss\";\nimport { Cell } from \"./components/Cell/cell\";\nimport { LeadCell } from \"./components/LeadCell/lead-cell\";\nimport { OptionCard, type OptionCardProps } from \"./components/OptionCard/option-card\";\nimport { ScrollProgress } from \"./components/ScrollProgress/scroll-progress\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table\";\n\nexport type Features = Record<string, ReactNode | null>;\n\nexport type Item<TFeatures extends Features = Features> = OptionCardProps & {\n features: Partial<Record<keyof TFeatures, ReactNode | string | boolean>>;\n};\n\nexport type ComparisonTableProps<TFeatures extends Features = Features> = {\n /** List of features that can be supported by the comparison table\n *\n * string = description of the feature that can be viewed by expanding cell.\n *\n * null = no description\n *\n {\n [featureName]: ReactNode | null\n }\n */\n features: TFeatures;\n\n /** List of items to be displayed in the comparison table\n *\n *\n Item = {\n image: {\n src: string;\n alt: string;\n };\n\n title: string;\n description: string;\n variablePriceText: string;\n price: string;\n actions: ReactNode;\n badge?: BadgeProps;\n isHighlighted?: boolean;\n\n features: {\n [featureName in keyof Features]?: string | boolean;\n };\n }\n */\n items: Array<Item<TFeatures>>;\n\n /** Aria labels for the comparison table and various components\n *\n {\n previous: string;\n next: string;\n readMore: string;\n readLess: string;\n }\n */\n ariaLabels: {\n previous: string;\n next: string;\n readMore: string;\n readLess: string;\n };\n variant?: \"primary\" | \"secondary\";\n classname?: string;\n};\n\nexport const ComparisonTable = <TFeatures extends Features>({\n classname,\n features,\n items,\n ariaLabels,\n variant = \"primary\",\n}: ComparisonTableProps<TFeatures>) => {\n const id = useId();\n const classes = cx(classname, rootClassName, `${rootClassName}--${variant}`);\n const containerRef = useRef<HTMLUListElement>(null);\n const [showFullDescriptions, setShowFullDescriptions] = useState(false);\n\n const handleToggleShowFullDescriptions = useCallback(() => {\n setShowFullDescriptions((prev) => !prev);\n }, []);\n\n const renderCards = () => {\n return (\n <li className={cx(`${rootClassName}__cards`)}>\n <div className={cx(`${rootClassName}__separator`)} />\n {items.map((item, index) => (\n <OptionCard\n {...item}\n showFullDescriptions={showFullDescriptions}\n toggleShowFullDescriptions={handleToggleShowFullDescriptions}\n key={index}\n isFirstCard={index === 0}\n ariaLabels={ariaLabels}\n id={`${index}-${id}`}\n />\n ))}\n </li>\n );\n };\n\n const renderFeatures = () => {\n return Object.entries(features).map(([title, description], i) => (\n <li key={i} className={cx(`${rootClassName}__feature-row`)}>\n <LeadCell title={title} description={description} />\n {items.map((item, index) => (\n <Cell key={index} value={item.features[title as keyof TFeatures] ?? false} />\n ))}\n </li>\n ));\n };\n\n const deltaTime = useRef(0);\n\n const handleScrollEnd = (e: UIEvent<HTMLUListElement>) => {\n /**\n * This function makes sure that the scroll position is never stuck between two cards, since scroll snap is not fully reliable.\n */\n\n const target = e.currentTarget;\n const cardwidth = target.querySelector(\"[data-card-id]\")?.clientWidth ?? 0;\n const cardPos = Math.round(target.scrollLeft / cardwidth);\n const scrollTarget = cardPos * cardwidth + cardPos;\n const timeDiff = e.timeStamp - deltaTime.current;\n const scrollDiff = Math.abs(target.scrollLeft - scrollTarget);\n\n if (deltaTime.current && timeDiff < 200) return;\n if (scrollDiff < 10) return;\n\n deltaTime.current = e.timeStamp;\n\n target.scrollTo({ left: scrollTarget, behavior: \"smooth\" });\n };\n\n return (\n <div className={cx(rootClassName + \"__wrapper\")}>\n <ul\n id={rootClassName + `-${id}`}\n ref={containerRef}\n className={classes}\n // eslint-disable-next-line react/no-unknown-property\n onScrollEnd={handleScrollEnd}\n style={{\n // @ts-expect-error | Typescript doesn't recognize the CSS variable, but it works as intended\n [\"--initial-columns\"]: items.length + 1,\n }}\n >\n <ScrollProgress\n items={items}\n container={containerRef}\n ariaLabels={ariaLabels}\n parentId={CSS.escape(id)}\n />\n {renderCards()}\n {renderFeatures()}\n </ul>\n </div>\n );\n};\n\nComparisonTable.displayName = \"ComparisonTable\";\n"],"names":["cx","c","styles","rootClassName","Cell","value","isReactNode","isValidElement","classes","Icon","IconCheckmark","IconMinus","jsx","LeadCell","title","description","isExpandable","jsxs","Paragraph","IconChevronDown","OptionCard","id","variablePriceText","price","isHighlighted","ariaLabels","badge","actions","isFirstCard","image","showFullDescriptions","toggleShowFullDescriptions","renderDescription","longDescription","Button","Badge","Heading","ScrollProgress","items","container","parentId","inViewSet","setInViewSet","useState","scrollToCard","useCallback","index","reduceMotion","previousCard","targetIndex","nextCard","handleKeyDown","useEffect","root","observer","entries","prev","next","entry","_","card","renderIndicators","indicators","viewCapacity","leftmostActiveIndex","head","trail","key","i","status","IconArrowLeft","IconArrowRight","ComparisonTable","classname","features","variant","useId","containerRef","useRef","setShowFullDescriptions","handleToggleShowFullDescriptions","renderCards","item","createElement","renderFeatures","deltaTime","handleScrollEnd","e","target","cardwidth","cardPos","scrollTarget","timeDiff","scrollDiff"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const I=require("react/jsx-runtime"),P=require("react"),K=require("./text-field-CYJzQG3h.js"),Z=require("./bind-DeUYJ6m9.js"),a=require("./format-CFKKBdIQ.js");function V(){return Object.assign({},a.getDefaultOptions())}function U(n,e){const r=a.toDate(n,e?.in).getDay();return r===0?7:r}function J(n,e){const r=S(e)?new e(0):a.constructFrom(e,0);return r.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),r.setHours(n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()),r}function S(n){return typeof n=="function"&&n.prototype?.constructor===n}const ee=10;class X{subPriority=0;validate(e,r){return!0}}class te extends X{constructor(e,r,t,s,o){super(),this.value=e,this.validateValue=r,this.setValue=t,this.priority=s,o&&(this.subPriority=o)}validate(e,r){return this.validateValue(e,this.value,r)}set(e,r,t){return this.setValue(e,r,this.value,t)}}class re extends X{priority=ee;subPriority=-1;constructor(e,r){super(),this.context=e||(t=>a.constructFrom(r,t))}set(e,r){return r.timestampIsSet?e:a.constructFrom(e,J(e,this.context))}}class c{run(e,r,t,s){const o=this.parse(e,r,t,s);return o?{setter:new te(o.value,this.validate,this.set,this.priority,this.subPriority),rest:o.rest}:null}validate(e,r,t){return!0}}class ne extends c{priority=140;parse(e,r,t){switch(r){case"G":case"GG":case"GGG":return t.era(e,{width:"abbreviated"})||t.era(e,{width:"narrow"});case"GGGGG":return t.era(e,{width:"narrow"});default:return t.era(e,{width:"wide"})||t.era(e,{width:"abbreviated"})||t.era(e,{width:"narrow"})}}set(e,r,t){return r.era=t,e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=["R","u","t","T"]}const h={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},T={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function p(n,e){return n&&{value:e(n.value),rest:n.rest}}function f(n,e){const r=e.match(n);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function D(n,e){const r=e.match(n);if(!r)return null;if(r[0]==="Z")return{value:0,rest:e.slice(1)};const t=r[1]==="+"?1:-1,s=r[2]?parseInt(r[2],10):0,o=r[3]?parseInt(r[3],10):0,u=r[5]?parseInt(r[5],10):0;return{value:t*(s*a.millisecondsInHour+o*a.millisecondsInMinute+u*a.millisecondsInSecond),rest:e.slice(r[0].length)}}function A(n){return f(h.anyDigitsSigned,n)}function w(n,e){switch(n){case 1:return f(h.singleDigit,e);case 2:return f(h.twoDigits,e);case 3:return f(h.threeDigits,e);case 4:return f(h.fourDigits,e);default:return f(new RegExp("^\\d{1,"+n+"}"),e)}}function R(n,e){switch(n){case 1:return f(h.singleDigitSigned,e);case 2:return f(h.twoDigitsSigned,e);case 3:return f(h.threeDigitsSigned,e);case 4:return f(h.fourDigitsSigned,e);default:return f(new RegExp("^-?\\d{1,"+n+"}"),e)}}function F(n){switch(n){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function z(n,e){const r=e>0,t=r?e:1-e;let s;if(t<=50)s=n||100;else{const o=t+50,u=Math.trunc(o/100)*100,b=n>=o%100;s=n+u-(b?100:0)}return r?s:1-s}function $(n){return n%400===0||n%4===0&&n%100!==0}class se extends c{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(e,r,t){const s=o=>({year:o,isTwoDigitYear:r==="yy"});switch(r){case"y":return p(w(4,e),s);case"yo":return p(t.ordinalNumber(e,{unit:"year"}),s);default:return p(w(r.length,e),s)}}validate(e,r){return r.isTwoDigitYear||r.year>0}set(e,r,t){const s=e.getFullYear();if(t.isTwoDigitYear){const u=z(t.year,s);return e.setFullYear(u,0,1),e.setHours(0,0,0,0),e}const o=!("era"in r)||r.era===1?t.year:1-t.year;return e.setFullYear(o,0,1),e.setHours(0,0,0,0),e}}class oe extends c{priority=130;parse(e,r,t){const s=o=>({year:o,isTwoDigitYear:r==="YY"});switch(r){case"Y":return p(w(4,e),s);case"Yo":return p(t.ordinalNumber(e,{unit:"year"}),s);default:return p(w(r.length,e),s)}}validate(e,r){return r.isTwoDigitYear||r.year>0}set(e,r,t,s){const o=a.getWeekYear(e,s);if(t.isTwoDigitYear){const b=z(t.year,o);return e.setFullYear(b,0,s.firstWeekContainsDate),e.setHours(0,0,0,0),a.startOfWeek(e,s)}const u=!("era"in r)||r.era===1?t.year:1-t.year;return e.setFullYear(u,0,s.firstWeekContainsDate),e.setHours(0,0,0,0),a.startOfWeek(e,s)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]}class ae extends c{priority=130;parse(e,r){return R(r==="R"?4:r.length,e)}set(e,r,t){const s=a.constructFrom(e,0);return s.setFullYear(t,0,4),s.setHours(0,0,0,0),a.startOfISOWeek(s)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]}class ie extends c{priority=130;parse(e,r){return R(r==="u"?4:r.length,e)}set(e,r,t){return e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]}class ce extends c{priority=120;parse(e,r,t){switch(r){case"Q":case"QQ":return w(r.length,e);case"Qo":return t.ordinalNumber(e,{unit:"quarter"});case"QQQ":return t.quarter(e,{width:"abbreviated",context:"formatting"})||t.quarter(e,{width:"narrow",context:"formatting"});case"QQQQQ":return t.quarter(e,{width:"narrow",context:"formatting"});default:return t.quarter(e,{width:"wide",context:"formatting"})||t.quarter(e,{width:"abbreviated",context:"formatting"})||t.quarter(e,{width:"narrow",context:"formatting"})}}validate(e,r){return r>=1&&r<=4}set(e,r,t){return e.setMonth((t-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]}class ue extends c{priority=120;parse(e,r,t){switch(r){case"q":case"qq":return w(r.length,e);case"qo":return t.ordinalNumber(e,{unit:"quarter"});case"qqq":return t.quarter(e,{width:"abbreviated",context:"standalone"})||t.quarter(e,{width:"narrow",context:"standalone"});case"qqqqq":return t.quarter(e,{width:"narrow",context:"standalone"});default:return t.quarter(e,{width:"wide",context:"standalone"})||t.quarter(e,{width:"abbreviated",context:"standalone"})||t.quarter(e,{width:"narrow",context:"standalone"})}}validate(e,r){return r>=1&&r<=4}set(e,r,t){return e.setMonth((t-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]}class le extends c{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(e,r,t){const s=o=>o-1;switch(r){case"M":return p(f(h.month,e),s);case"MM":return p(w(2,e),s);case"Mo":return p(t.ordinalNumber(e,{unit:"month"}),s);case"MMM":return t.month(e,{width:"abbreviated",context:"formatting"})||t.month(e,{width:"narrow",context:"formatting"});case"MMMMM":return t.month(e,{width:"narrow",context:"formatting"});default:return t.month(e,{width:"wide",context:"formatting"})||t.month(e,{width:"abbreviated",context:"formatting"})||t.month(e,{width:"narrow",context:"formatting"})}}validate(e,r){return r>=0&&r<=11}set(e,r,t){return e.setMonth(t,1),e.setHours(0,0,0,0),e}}class de extends c{priority=110;parse(e,r,t){const s=o=>o-1;switch(r){case"L":return p(f(h.month,e),s);case"LL":return p(w(2,e),s);case"Lo":return p(t.ordinalNumber(e,{unit:"month"}),s);case"LLL":return t.month(e,{width:"abbreviated",context:"standalone"})||t.month(e,{width:"narrow",context:"standalone"});case"LLLLL":return t.month(e,{width:"narrow",context:"standalone"});default:return t.month(e,{width:"wide",context:"standalone"})||t.month(e,{width:"abbreviated",context:"standalone"})||t.month(e,{width:"narrow",context:"standalone"})}}validate(e,r){return r>=0&&r<=11}set(e,r,t){return e.setMonth(t,1),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]}function fe(n,e,r){const t=a.toDate(n,r?.in),s=a.getWeek(t,r)-e;return t.setDate(t.getDate()-s*7),a.toDate(t,r?.in)}class we extends c{priority=100;parse(e,r,t){switch(r){case"w":return f(h.week,e);case"wo":return t.ordinalNumber(e,{unit:"week"});default:return w(r.length,e)}}validate(e,r){return r>=1&&r<=53}set(e,r,t,s){return a.startOfWeek(fe(e,t,s),s)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]}function he(n,e,r){const t=a.toDate(n,r?.in),s=a.getISOWeek(t,r)-e;return t.setDate(t.getDate()-s*7),t}class pe extends c{priority=100;parse(e,r,t){switch(r){case"I":return f(h.week,e);case"Io":return t.ordinalNumber(e,{unit:"week"});default:return w(r.length,e)}}validate(e,r){return r>=1&&r<=53}set(e,r,t){return a.startOfISOWeek(he(e,t))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]}const ye=[31,28,31,30,31,30,31,31,30,31,30,31],xe=[31,29,31,30,31,30,31,31,30,31,30,31];class be extends c{priority=90;subPriority=1;parse(e,r,t){switch(r){case"d":return f(h.date,e);case"do":return t.ordinalNumber(e,{unit:"date"});default:return w(r.length,e)}}validate(e,r){const t=e.getFullYear(),s=$(t),o=e.getMonth();return s?r>=1&&r<=xe[o]:r>=1&&r<=ye[o]}set(e,r,t){return e.setDate(t),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}class me extends c{priority=90;subpriority=1;parse(e,r,t){switch(r){case"D":case"DD":return f(h.dayOfYear,e);case"Do":return t.ordinalNumber(e,{unit:"date"});default:return w(r.length,e)}}validate(e,r){const t=e.getFullYear();return $(t)?r>=1&&r<=366:r>=1&&r<=365}set(e,r,t){return e.setMonth(0,t),e.setHours(0,0,0,0),e}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]}function W(n,e,r){const t=a.getDefaultOptions(),s=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??t.weekStartsOn??t.locale?.options?.weekStartsOn??0,o=a.toDate(n,r?.in),u=o.getDay(),y=(e%7+7)%7,_=7-s,Y=e<0||e>6?e-(u+_)%7:(y+_)%7-(u+_)%7;return a.addDays(o,Y,r)}class ge extends c{priority=90;parse(e,r,t){switch(r){case"E":case"EE":case"EEE":return t.day(e,{width:"abbreviated",context:"formatting"})||t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"});case"EEEEE":return t.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"});default:return t.day(e,{width:"wide",context:"formatting"})||t.day(e,{width:"abbreviated",context:"formatting"})||t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"})}}validate(e,r){return r>=0&&r<=6}set(e,r,t,s){return e=W(e,t,s),e.setHours(0,0,0,0),e}incompatibleTokens=["D","i","e","c","t","T"]}class Te extends c{priority=90;parse(e,r,t,s){const o=u=>{const b=Math.floor((u-1)/7)*7;return(u+s.weekStartsOn+6)%7+b};switch(r){case"e":case"ee":return p(w(r.length,e),o);case"eo":return p(t.ordinalNumber(e,{unit:"day"}),o);case"eee":return t.day(e,{width:"abbreviated",context:"formatting"})||t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"});case"eeeee":return t.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"});default:return t.day(e,{width:"wide",context:"formatting"})||t.day(e,{width:"abbreviated",context:"formatting"})||t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"})}}validate(e,r){return r>=0&&r<=6}set(e,r,t,s){return e=W(e,t,s),e.setHours(0,0,0,0),e}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]}class De extends c{priority=90;parse(e,r,t,s){const o=u=>{const b=Math.floor((u-1)/7)*7;return(u+s.weekStartsOn+6)%7+b};switch(r){case"c":case"cc":return p(w(r.length,e),o);case"co":return p(t.ordinalNumber(e,{unit:"day"}),o);case"ccc":return t.day(e,{width:"abbreviated",context:"standalone"})||t.day(e,{width:"short",context:"standalone"})||t.day(e,{width:"narrow",context:"standalone"});case"ccccc":return t.day(e,{width:"narrow",context:"standalone"});case"cccccc":return t.day(e,{width:"short",context:"standalone"})||t.day(e,{width:"narrow",context:"standalone"});default:return t.day(e,{width:"wide",context:"standalone"})||t.day(e,{width:"abbreviated",context:"standalone"})||t.day(e,{width:"short",context:"standalone"})||t.day(e,{width:"narrow",context:"standalone"})}}validate(e,r){return r>=0&&r<=6}set(e,r,t,s){return e=W(e,t,s),e.setHours(0,0,0,0),e}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]}function _e(n,e,r){const t=a.toDate(n,r?.in),s=U(t,r),o=e-s;return a.addDays(t,o,r)}class ke extends c{priority=90;parse(e,r,t){const s=o=>o===0?7:o;switch(r){case"i":case"ii":return w(r.length,e);case"io":return t.ordinalNumber(e,{unit:"day"});case"iii":return p(t.day(e,{width:"abbreviated",context:"formatting"})||t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"}),s);case"iiiii":return p(t.day(e,{width:"narrow",context:"formatting"}),s);case"iiiiii":return p(t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"}),s);default:return p(t.day(e,{width:"wide",context:"formatting"})||t.day(e,{width:"abbreviated",context:"formatting"})||t.day(e,{width:"short",context:"formatting"})||t.day(e,{width:"narrow",context:"formatting"}),s)}}validate(e,r){return r>=1&&r<=7}set(e,r,t){return e=_e(e,t),e.setHours(0,0,0,0),e}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]}class Pe extends c{priority=80;parse(e,r,t){switch(r){case"a":case"aa":case"aaa":return t.dayPeriod(e,{width:"abbreviated",context:"formatting"})||t.dayPeriod(e,{width:"narrow",context:"formatting"});case"aaaaa":return t.dayPeriod(e,{width:"narrow",context:"formatting"});default:return t.dayPeriod(e,{width:"wide",context:"formatting"})||t.dayPeriod(e,{width:"abbreviated",context:"formatting"})||t.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,r,t){return e.setHours(F(t),0,0,0),e}incompatibleTokens=["b","B","H","k","t","T"]}class Me extends c{priority=80;parse(e,r,t){switch(r){case"b":case"bb":case"bbb":return t.dayPeriod(e,{width:"abbreviated",context:"formatting"})||t.dayPeriod(e,{width:"narrow",context:"formatting"});case"bbbbb":return t.dayPeriod(e,{width:"narrow",context:"formatting"});default:return t.dayPeriod(e,{width:"wide",context:"formatting"})||t.dayPeriod(e,{width:"abbreviated",context:"formatting"})||t.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,r,t){return e.setHours(F(t),0,0,0),e}incompatibleTokens=["a","B","H","k","t","T"]}class Oe extends c{priority=80;parse(e,r,t){switch(r){case"B":case"BB":case"BBB":return t.dayPeriod(e,{width:"abbreviated",context:"formatting"})||t.dayPeriod(e,{width:"narrow",context:"formatting"});case"BBBBB":return t.dayPeriod(e,{width:"narrow",context:"formatting"});default:return t.dayPeriod(e,{width:"wide",context:"formatting"})||t.dayPeriod(e,{width:"abbreviated",context:"formatting"})||t.dayPeriod(e,{width:"narrow",context:"formatting"})}}set(e,r,t){return e.setHours(F(t),0,0,0),e}incompatibleTokens=["a","b","t","T"]}class Ye extends c{priority=70;parse(e,r,t){switch(r){case"h":return f(h.hour12h,e);case"ho":return t.ordinalNumber(e,{unit:"hour"});default:return w(r.length,e)}}validate(e,r){return r>=1&&r<=12}set(e,r,t){const s=e.getHours()>=12;return s&&t<12?e.setHours(t+12,0,0,0):!s&&t===12?e.setHours(0,0,0,0):e.setHours(t,0,0,0),e}incompatibleTokens=["H","K","k","t","T"]}class Ee extends c{priority=70;parse(e,r,t){switch(r){case"H":return f(h.hour23h,e);case"Ho":return t.ordinalNumber(e,{unit:"hour"});default:return w(r.length,e)}}validate(e,r){return r>=0&&r<=23}set(e,r,t){return e.setHours(t,0,0,0),e}incompatibleTokens=["a","b","h","K","k","t","T"]}class He extends c{priority=70;parse(e,r,t){switch(r){case"K":return f(h.hour11h,e);case"Ko":return t.ordinalNumber(e,{unit:"hour"});default:return w(r.length,e)}}validate(e,r){return r>=0&&r<=11}set(e,r,t){return e.getHours()>=12&&t<12?e.setHours(t+12,0,0,0):e.setHours(t,0,0,0),e}incompatibleTokens=["h","H","k","t","T"]}class Ie extends c{priority=70;parse(e,r,t){switch(r){case"k":return f(h.hour24h,e);case"ko":return t.ordinalNumber(e,{unit:"hour"});default:return w(r.length,e)}}validate(e,r){return r>=1&&r<=24}set(e,r,t){const s=t<=24?t%24:t;return e.setHours(s,0,0,0),e}incompatibleTokens=["a","b","h","H","K","t","T"]}class qe extends c{priority=60;parse(e,r,t){switch(r){case"m":return f(h.minute,e);case"mo":return t.ordinalNumber(e,{unit:"minute"});default:return w(r.length,e)}}validate(e,r){return r>=0&&r<=59}set(e,r,t){return e.setMinutes(t,0,0),e}incompatibleTokens=["t","T"]}class Re extends c{priority=50;parse(e,r,t){switch(r){case"s":return f(h.second,e);case"so":return t.ordinalNumber(e,{unit:"second"});default:return w(r.length,e)}}validate(e,r){return r>=0&&r<=59}set(e,r,t){return e.setSeconds(t,0),e}incompatibleTokens=["t","T"]}class Le extends c{priority=30;parse(e,r){const t=s=>Math.trunc(s*Math.pow(10,-r.length+3));return p(w(r.length,e),t)}set(e,r,t){return e.setMilliseconds(t),e}incompatibleTokens=["t","T"]}class ve extends c{priority=10;parse(e,r){switch(r){case"X":return D(T.basicOptionalMinutes,e);case"XX":return D(T.basic,e);case"XXXX":return D(T.basicOptionalSeconds,e);case"XXXXX":return D(T.extendedOptionalSeconds,e);default:return D(T.extended,e)}}set(e,r,t){return r.timestampIsSet?e:a.constructFrom(e,e.getTime()-a.getTimezoneOffsetInMilliseconds(e)-t)}incompatibleTokens=["t","T","x"]}class Ne extends c{priority=10;parse(e,r){switch(r){case"x":return D(T.basicOptionalMinutes,e);case"xx":return D(T.basic,e);case"xxxx":return D(T.basicOptionalSeconds,e);case"xxxxx":return D(T.extendedOptionalSeconds,e);default:return D(T.extended,e)}}set(e,r,t){return r.timestampIsSet?e:a.constructFrom(e,e.getTime()-a.getTimezoneOffsetInMilliseconds(e)-t)}incompatibleTokens=["t","T","X"]}class Qe extends c{priority=40;parse(e){return A(e)}set(e,r,t){return[a.constructFrom(e,t*1e3),{timestampIsSet:!0}]}incompatibleTokens="*"}class Ce extends c{priority=20;parse(e){return A(e)}set(e,r,t){return[a.constructFrom(e,t),{timestampIsSet:!0}]}incompatibleTokens="*"}const Fe={G:new ne,y:new se,Y:new oe,R:new ae,u:new ie,Q:new ce,q:new ue,M:new le,L:new de,w:new we,I:new pe,d:new be,D:new me,E:new ge,e:new Te,c:new De,i:new ke,a:new Pe,b:new Me,B:new Oe,h:new Ye,H:new Ee,K:new He,k:new Ie,m:new qe,s:new Re,S:new Le,X:new ve,x:new Ne,t:new Qe,T:new Ce},We=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Be=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ge=/^'([^]*?)'?$/,Xe=/''/g,Ae=/\S/,ze=/[a-zA-Z]/;function $e(n,e,r,t){const s=()=>a.constructFrom(r,NaN),o=V(),u=o.locale??a.enUS,b=o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,y=o.weekStartsOn??o.locale?.options?.weekStartsOn??0,_={firstWeekContainsDate:b,weekStartsOn:y,locale:u},Y=[new re(t?.in,r)],L=e.match(Be).map(i=>{const l=i[0];if(l in a.longFormatters){const d=a.longFormatters[l];return d(i,u.formatLong)}return i}).join("").match(We),k=[];for(let i of L){a.isProtectedWeekYearToken(i)&&a.warnOrThrowProtectedError(i,e,n),a.isProtectedDayOfYearToken(i)&&a.warnOrThrowProtectedError(i,e,n);const l=i[0],d=Fe[l];if(d){const{incompatibleTokens:x}=d;if(Array.isArray(x)){const O=k.find(m=>x.includes(m.token)||m.token===l);if(O)throw new RangeError(`The format string mustn't contain \`${O.fullToken}\` and \`${i}\` at the same time`)}else if(d.incompatibleTokens==="*"&&k.length>0)throw new RangeError(`The format string mustn't contain \`${i}\` and any other token at the same time`);k.push({token:l,fullToken:i});const g=d.run(n,i,u.match,_);if(!g)return s();Y.push(g.setter),n=g.rest}else{if(l.match(ze))throw new RangeError("Format string contains an unescaped latin alphabet character `"+l+"`");if(i==="''"?i="'":l==="'"&&(i=je(i)),n.indexOf(i)===0)n=n.slice(i.length);else return s()}}if(n.length>0&&Ae.test(n))return s();const H=Y.map(i=>i.priority).sort((i,l)=>l-i).filter((i,l,d)=>d.indexOf(i)===l).map(i=>Y.filter(l=>l.priority===i).sort((l,d)=>d.subPriority-l.subPriority)).map(i=>i[0]);let M=a.toDate(r,t?.in);if(isNaN(+M))return s();const q={};for(const i of H){if(!i.validate(M,_))return s();const l=i.set(M,q,_);Array.isArray(l)?(M=l[0],Object.assign(q,l[1])):M=l}return M}function je(n){return n.match(Ge)[1].replace(Xe,"'")}const Ke={"purpur-date-field__container":"_purpur-date-field__container_ci2f4_1","purpur-date-field__overlay":"_purpur-date-field__overlay_ci2f4_5","purpur-date-field__start-adornment":"_purpur-date-field__start-adornment_ci2f4_16"},Ze=n=>$e(n,"yyyy-MM-dd",new Date),G=n=>n?a.format(n,"yyyy-MM-dd"):"",Ve=(...n)=>{const e=n.filter(Boolean);return e.length<=1?e[0]||null:r=>{for(const t of e)typeof t=="function"?t(r):t&&(t.current=r)}},N=Z.c.bind(Ke),Q="purpur-date-field",C="YYYY-MM-DD",Ue=(n,e)=>{let r=n;return e.length>4&&n>=4&&(r+=1),e.length>7&&n>=6&&(r+=1),Math.min(r,e.length)},j=P.forwardRef(({value:n,label:e,onChange:r,startAdornment:t,...s},o)=>{const[u,b]=P.useState(G(n));P.useEffect(()=>{b(n?G(n):"")},[n]);const y=P.useRef(null),_=Ve(o,y),[Y,L]=P.useState({}),k=P.useRef(null),H=P.useRef(null);P.useLayoutEffect(()=>{if(y.current){const d=window.document.querySelector(`label[for="${y.current.id}"]`),x=d?d.offsetHeight+4:0,g=window.getComputedStyle(y.current);L({position:"absolute",top:y.current.offsetTop+x,left:y.current.offsetLeft,padding:g.padding,width:y.current.offsetWidth,height:y.current.offsetHeight})}},[u,e,y]),P.useLayoutEffect(()=>{k.current!==null&&y.current&&(y.current.setSelectionRange(k.current,k.current),k.current=null)},[u]);const M=d=>{if(d.length===0&&r?.(void 0),d.length!==C.length)return;const x=Ze(d);a.isValid(x)&&r?.(x)},q=d=>{const x=d.currentTarget.selectionStart??0;H.current=u.slice(0,x).replace(/\D/g,"").length},i=d=>{const x=d.target.value,g=d.target.selectionStart??0,O=u.replace(/\D/g,""),m=x.replace(/\D/g,"");let E="";m.length>0&&(E+=m.slice(0,4)),m.length>4&&(E+="-"+m.slice(4,6)),m.length>6&&(E+="-"+m.slice(6,8));let v;const B=H.current;B!==null&&m.length>O.length?v=Math.min(B+(m.length-O.length),m.length):v=Math.min(x.slice(0,g).replace(/\D/g,"").length,m.length),H.current=null,k.current=Ue(v,E),b(E),M(E)},l=()=>C.split("").map((x,g)=>{const O=u[g];return I.jsx("span",{style:{color:O?"transparent":"var(--purpur-color-text-weak)"},children:O||x},g)});return I.jsxs("div",{className:N(`${Q}__container`),children:[I.jsx(K.TextField,{...s,startAdornment:t&&I.jsx("span",{className:N(`${Q}__start-adornment`),children:t}),ref:_,value:u,onChange:i,onKeyDown:q,type:"text",maxLength:C.length,inputMode:"numeric",label:e}),I.jsx("div",{role:"presentation",style:Y,className:N(`${Q}__overlay`),children:l()})]})});j.displayName="DateField";exports.DateField=j;
|
|
2
|
-
//# sourceMappingURL=date-field-BJaomFjs.js.map
|