@dropins/tools 0.23.0-alpha43 → 0.23.0-alpha667
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/chunks/icons/Add.js +2 -0
- package/chunks/icons/Add.js.map +1 -0
- package/chunks/icons/Bulk.js +2 -0
- package/chunks/icons/Bulk.js.map +1 -0
- package/chunks/icons/Burger.js +2 -0
- package/chunks/icons/Burger.js.map +1 -0
- package/chunks/icons/Card.js +2 -0
- package/chunks/icons/Card.js.map +1 -0
- package/chunks/icons/Cart.js +2 -0
- package/chunks/icons/Cart.js.map +1 -0
- package/chunks/icons/Check.js +2 -0
- package/chunks/icons/Check.js.map +1 -0
- package/chunks/icons/CheckWithCircle.js +2 -0
- package/chunks/icons/CheckWithCircle.js.map +1 -0
- package/chunks/icons/ChevronDown.js +2 -0
- package/chunks/icons/ChevronDown.js.map +1 -0
- package/chunks/icons/ChevronRight.js +2 -0
- package/chunks/icons/ChevronRight.js.map +1 -0
- package/chunks/icons/ChevronUp.js +2 -0
- package/chunks/icons/ChevronUp.js.map +1 -0
- package/chunks/icons/Close.js +2 -0
- package/chunks/icons/Close.js.map +1 -0
- package/chunks/icons/Delivery.js +2 -0
- package/chunks/icons/Delivery.js.map +1 -0
- package/chunks/icons/Heart.js +2 -0
- package/chunks/icons/Heart.js.map +1 -0
- package/chunks/icons/HeartFilled.js +2 -0
- package/chunks/icons/HeartFilled.js.map +1 -0
- package/chunks/icons/InfoFilled.js +2 -0
- package/chunks/icons/InfoFilled.js.map +1 -0
- package/chunks/icons/Locker.js +2 -0
- package/chunks/icons/Locker.js.map +1 -0
- package/chunks/icons/Minus.js +2 -0
- package/chunks/icons/Minus.js.map +1 -0
- package/chunks/icons/Order.js +2 -0
- package/chunks/icons/Order.js.map +1 -0
- package/chunks/icons/OrderError.js +2 -0
- package/chunks/icons/OrderError.js.map +1 -0
- package/chunks/icons/OrderSuccess.js +2 -0
- package/chunks/icons/OrderSuccess.js.map +1 -0
- package/chunks/icons/PaymentError.js +2 -0
- package/chunks/icons/PaymentError.js.map +1 -0
- package/chunks/icons/Placeholder.js +2 -0
- package/chunks/icons/Placeholder.js.map +1 -0
- package/chunks/icons/PlaceholderFilled.js +2 -0
- package/chunks/icons/PlaceholderFilled.js.map +1 -0
- package/chunks/icons/Search.js +2 -0
- package/chunks/icons/Search.js.map +1 -0
- package/chunks/icons/SearchFilled.js +2 -0
- package/chunks/icons/SearchFilled.js.map +1 -0
- package/chunks/icons/Sort.js +2 -0
- package/chunks/icons/Sort.js.map +1 -0
- package/chunks/icons/Star.js +2 -0
- package/chunks/icons/Star.js.map +1 -0
- package/chunks/icons/Trash.js +2 -0
- package/chunks/icons/Trash.js.map +1 -0
- package/chunks/icons/User.js +2 -0
- package/chunks/icons/User.js.map +1 -0
- package/chunks/icons/View.js +2 -0
- package/chunks/icons/View.js.map +1 -0
- package/chunks/icons/Wallet.js +2 -0
- package/chunks/icons/Wallet.js.map +1 -0
- package/chunks/icons/Warning.js +2 -0
- package/chunks/icons/Warning.js.map +1 -0
- package/chunks/icons/WarningFilled.js +2 -0
- package/chunks/icons/WarningFilled.js.map +1 -0
- package/chunks/icons/WarningWithCircle.js +2 -0
- package/chunks/icons/WarningWithCircle.js.map +1 -0
- package/chunks/image-params-keymap.js +2 -0
- package/chunks/image-params-keymap.js.map +1 -0
- package/chunks/initializer.js +4 -0
- package/chunks/initializer.js.map +1 -0
- package/chunks/vcomponent.js +3 -0
- package/chunks/vcomponent.js.map +1 -0
- package/components.js +2 -0
- package/components.js.map +1 -0
- package/i18n.js +3 -3
- package/i18n.js.map +1 -1
- package/initializer.js +3 -32
- package/initializer.js.map +1 -1
- package/lib.js +12 -0
- package/lib.js.map +1 -0
- package/package.json +1 -1
- package/preact-compat.js +1 -1
- package/preact-compat.js.map +1 -1
- package/preact-hooks.js +1 -1
- package/preact-hooks.js.map +1 -1
- package/preact-jsx-runtime.js +1 -1
- package/preact-jsx-runtime.js.map +1 -1
- package/preact.js +1 -1
- package/preact.js.map +1 -1
- package/chunks/Add__CiEO_sX7HP.js +0 -2
- package/chunks/Add__CiEO_sX7HP.js.map +0 -1
- package/chunks/Bulk__jqrVxjXdJm.js +0 -2
- package/chunks/Bulk__jqrVxjXdJm.js.map +0 -1
- package/chunks/Burger__GYqlod8RZB.js +0 -2
- package/chunks/Burger__GYqlod8RZB.js.map +0 -1
- package/chunks/Card__DIzTAV64lz.js +0 -2
- package/chunks/Card__DIzTAV64lz.js.map +0 -1
- package/chunks/Cart__DRuAcF9J-5.js +0 -2
- package/chunks/Cart__DRuAcF9J-5.js.map +0 -1
- package/chunks/CheckWithCircle__D4l-TfZdbK.js +0 -2
- package/chunks/CheckWithCircle__D4l-TfZdbK.js.map +0 -1
- package/chunks/Check__DlOKHUTGj4.js +0 -2
- package/chunks/Check__DlOKHUTGj4.js.map +0 -1
- package/chunks/ChevronDown__BQ2yC5Yu4N.js +0 -2
- package/chunks/ChevronDown__BQ2yC5Yu4N.js.map +0 -1
- package/chunks/ChevronRight__CXhTq2_n_c.js +0 -2
- package/chunks/ChevronRight__CXhTq2_n_c.js.map +0 -1
- package/chunks/ChevronUp__DKfBFRUuWH.js +0 -2
- package/chunks/ChevronUp__DKfBFRUuWH.js.map +0 -1
- package/chunks/Close__DQxKl-RcDt.js +0 -2
- package/chunks/Close__DQxKl-RcDt.js.map +0 -1
- package/chunks/Delivery__a9-T5HVKDK.js +0 -2
- package/chunks/Delivery__a9-T5HVKDK.js.map +0 -1
- package/chunks/HeartFilled__Dj4aPKvfnx.js +0 -2
- package/chunks/HeartFilled__Dj4aPKvfnx.js.map +0 -1
- package/chunks/Heart__DFBg3PN_KB.js +0 -2
- package/chunks/Heart__DFBg3PN_KB.js.map +0 -1
- package/chunks/InfoFilled__CHHYiir40t.js +0 -2
- package/chunks/InfoFilled__CHHYiir40t.js.map +0 -1
- package/chunks/Locker__DzVLBHHoR_.js +0 -2
- package/chunks/Locker__DzVLBHHoR_.js.map +0 -1
- package/chunks/Minus__CefO5Dkv_0.js +0 -2
- package/chunks/Minus__CefO5Dkv_0.js.map +0 -1
- package/chunks/OrderError__XbjKC-sSCd.js +0 -2
- package/chunks/OrderError__XbjKC-sSCd.js.map +0 -1
- package/chunks/OrderSuccess__DtnleJKX9F.js +0 -2
- package/chunks/OrderSuccess__DtnleJKX9F.js.map +0 -1
- package/chunks/Order__Z70_F6tdrw.js +0 -2
- package/chunks/Order__Z70_F6tdrw.js.map +0 -1
- package/chunks/PaymentError__Ds3bFy-kcj.js +0 -2
- package/chunks/PaymentError__Ds3bFy-kcj.js.map +0 -1
- package/chunks/PlaceholderFilled__FkPyKAGBpP.js +0 -2
- package/chunks/PlaceholderFilled__FkPyKAGBpP.js.map +0 -1
- package/chunks/Placeholder__CTVN3RA7Z-.js +0 -2
- package/chunks/Placeholder__CTVN3RA7Z-.js.map +0 -1
- package/chunks/SearchFilled__BaDTuy0_sW.js +0 -2
- package/chunks/SearchFilled__BaDTuy0_sW.js.map +0 -1
- package/chunks/Search__BWCfAPAUn_.js +0 -2
- package/chunks/Search__BWCfAPAUn_.js.map +0 -1
- package/chunks/Sort__CuKl1kIenH.js +0 -2
- package/chunks/Sort__CuKl1kIenH.js.map +0 -1
- package/chunks/Star__Cy2oOHG-EW.js +0 -2
- package/chunks/Star__Cy2oOHG-EW.js.map +0 -1
- package/chunks/Trash__BVZwxilyNs.js +0 -2
- package/chunks/Trash__BVZwxilyNs.js.map +0 -1
- package/chunks/User__DJozoccuIX.js +0 -2
- package/chunks/User__DJozoccuIX.js.map +0 -1
- package/chunks/View__BWHjsBwNDO.js +0 -2
- package/chunks/View__BWHjsBwNDO.js.map +0 -1
- package/chunks/Wallet__CFGqcZl49Z.js +0 -2
- package/chunks/Wallet__CFGqcZl49Z.js.map +0 -1
- package/chunks/WarningFilled__DpNvLtGflO.js +0 -2
- package/chunks/WarningFilled__DpNvLtGflO.js.map +0 -1
- package/chunks/WarningWithCircle__z1B4rFgzNa.js +0 -2
- package/chunks/WarningWithCircle__z1B4rFgzNa.js.map +0 -1
- package/chunks/Warning__cRnOb-Q7RP.js +0 -2
- package/chunks/Warning__cRnOb-Q7RP.js.map +0 -1
- package/chunks/classes__DJBjVfEyCI.js +0 -2
- package/chunks/classes__DJBjVfEyCI.js.map +0 -1
- package/chunks/debounce__BF4Cdv7Ils.js +0 -2
- package/chunks/debounce__BF4Cdv7Ils.js.map +0 -1
- package/chunks/image-params-keymap__LH6wjfp1fd.js +0 -12
- package/chunks/image-params-keymap__LH6wjfp1fd.js.map +0 -1
- package/chunks/vcomponent__BjnR-FRhjl.js +0 -2
- package/chunks/vcomponent__BjnR-FRhjl.js.map +0 -1
- package/components/Accordion.js +0 -2
- package/components/Accordion.js.map +0 -1
- package/components/ActionButton.js +0 -2
- package/components/ActionButton.js.map +0 -1
- package/components/ActionButtonGroup.js +0 -2
- package/components/ActionButtonGroup.js.map +0 -1
- package/components/AlertBanner.js +0 -2
- package/components/AlertBanner.js.map +0 -1
- package/components/Breadcrumbs.js +0 -2
- package/components/Breadcrumbs.js.map +0 -1
- package/components/Button.js +0 -2
- package/components/Button.js.map +0 -1
- package/components/Card.js +0 -2
- package/components/Card.js.map +0 -1
- package/components/CartItem.js +0 -2
- package/components/CartItem.js.map +0 -1
- package/components/CartList.js +0 -2
- package/components/CartList.js.map +0 -1
- package/components/Checkbox.js +0 -2
- package/components/Checkbox.js.map +0 -1
- package/components/ColorSwatch.js +0 -2
- package/components/ColorSwatch.js.map +0 -1
- package/components/Divider.js +0 -2
- package/components/Divider.js.map +0 -1
- package/components/Field.js +0 -2
- package/components/Field.js.map +0 -1
- package/components/Icon.js +0 -2
- package/components/Icon.js.map +0 -1
- package/components/IllustratedMessage.js +0 -2
- package/components/IllustratedMessage.js.map +0 -1
- package/components/Image.js +0 -3
- package/components/Image.js.map +0 -1
- package/components/ImageSwatch.js +0 -2
- package/components/ImageSwatch.js.map +0 -1
- package/components/InLineAlert.js +0 -2
- package/components/InLineAlert.js.map +0 -1
- package/components/Incrementer.js +0 -2
- package/components/Incrementer.js.map +0 -1
- package/components/Input.js +0 -2
- package/components/Input.js.map +0 -1
- package/components/Modal.js +0 -2
- package/components/Modal.js.map +0 -1
- package/components/Picker.js +0 -2
- package/components/Picker.js.map +0 -1
- package/components/Price.js +0 -2
- package/components/Price.js.map +0 -1
- package/components/PriceRange.js +0 -2
- package/components/PriceRange.js.map +0 -1
- package/components/PriceSummary.js +0 -2
- package/components/PriceSummary.js.map +0 -1
- package/components/ProgressSpinner.js +0 -2
- package/components/ProgressSpinner.js.map +0 -1
- package/components/RadioButton.js +0 -2
- package/components/RadioButton.js.map +0 -1
- package/components/Skeleton.js +0 -2
- package/components/Skeleton.js.map +0 -1
- package/components/TextSwatch.js +0 -2
- package/components/TextSwatch.js.map +0 -1
- package/components/UIProvider.js +0 -2
- package/components/UIProvider.js.map +0 -1
- package/components/index.js +0 -2
- package/components/index.js.map +0 -1
- package/lib/slot.js +0 -2
- package/lib/slot.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../preact-compat.js";import{c as e}from"../chunks/classes__DJBjVfEyCI.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import{Fragment as s}from"../preact.js";import{jsx as i}from"../preact-jsx-runtime.js";import{V as n}from"../chunks/vcomponent__BjnR-FRhjl.js";import{useText as j,Text as t}from"../i18n.js";import G from"../chunks/ChevronDown__BQ2yC5Yu4N.js";import Z from"../chunks/ChevronUp__DKfBFRUuWH.js";import K,{AccordionSection as U}from"./Accordion.js";import{useState as u,useRef as q}from"../preact-hooks.js";import{SkeletonRow as H,Skeleton as J}from"./Skeleton.js";import M from"./Divider.js";import"../chunks/Add__CiEO_sX7HP.js";import"../chunks/Minus__CefO5Dkv_0.js";import"./Icon.js";const Q=c=>{const _=new FormData(c);return Object.fromEntries(_)},ui=({className:c,children:_,...y})=>{const{heading:f,loading:k=!0,total:o,subTotal:m,shipping:r,taxTotal:p,taxesApplied:h,discounts:x,primaryAction:b,...v}=y,[w,P]=u(!1),N=q(null),[C,l]=u(!0),[g,F]=u("zip"),D=j({editZipAction:"Dropin.PriceSummary.shipping.editZipAction",destinationLinkAriaLabel:"Dropin.PriceSummary.shipping.destinationLinkAriaLabel",taxesBreakdownTitle:"Dropin.PriceSummary.taxes.breakdown",subtotalLabel:"Dropin.PriceSummary.subTotal.label",shippingLabel:"Dropin.PriceSummary.shipping.label",showTaxBreakdown:"Dropin.PriceSummary.taxes.showBreakdown",hideTaxBreakdown:"Dropin.PriceSummary.taxes.hideBreakdown",zipPlaceholder:"Dropin.PriceSummary.shipping.zipPlaceholder"}),S=a=>{a.preventDefault(),l(d=>!d)},A=a=>{a.preventDefault(),l(!0),F(d=>d==="zip"?"state":"zip")},E=a=>{var T;a.preventDefault(),l(!1);const d=Q(N.current);(T=r==null?void 0:r.onEstimate)==null||T.call(r,d)},z=i(J,{"data-testid":"loading-skeleton",rowGap:"xsmall",children:i(H,{variant:"row",size:"small",lines:5,fullWidth:!0,multilineGap:"xsmall"})}),L=r&&i(s,{children:i("div",{"data-testid":"shipping-content",className:e(["dropin-price-summary__entry","dropin-price-summary__shipping"]),children:[i("span",{className:"dropin-price-summary__label",children:r.estimated?r.destinationText?i(s,{children:[i(t,{id:"Dropin.PriceSummary.shipping.estimatedDestination"}),i("a",{className:"dropin-price-summary__shippingLink",role:"button",href:"",onClick:S,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&S(a)},tabIndex:0,"aria-label":D.destinationLinkAriaLabel,"data-testid":"shipping-destination-link",children:r.destinationText})]}):i(t,{id:"Dropin.PriceSummary.shipping.estimated"}):i(t,{id:"Dropin.PriceSummary.shipping.label"})}),i(n,{node:r.price,className:"dropin-price-summary__price"}),r.estimated&&i(s,{children:i("div",{className:e(["dropin-price-summary__caption"]),children:i("a",{href:"#",className:"dropin-price-summary__shippingLink",onClick:A,"data-testid":"shipping-alternate-field-link",children:g==="zip"?i(t,{id:"Dropin.PriceSummary.shipping.alternateField.state"}):i(t,{id:"Dropin.PriceSummary.shipping.alternateField.zip"})})})}),r.estimated&&i(s,{children:i("form",{className:e(["dropin-price-summary__shipping--edit",["dropin-price-summary__shipping--hide",!C]]),ref:N,"data-testid":"shipping-estimate-form",children:[r.countryField&&i(n,{node:r.countryField,className:e(["dropin-price-summary__shipping--country"])}),g==="state"?r.stateField&&i(n,{node:r.stateField,className:e(["dropin-price-summary__shipping--state"])}):r.zipField&&i(n,{node:r.zipField,className:e(["dropin-price-summary__shipping--zip"])}),r.estimateButton&&i(n,{node:r.estimateButton,className:e(["dropin-price-summary__shipping--action"]),onClick:E,type:"submit"})]})}),r.taxIncluded&&i("div",{"data-testid":"shipping-tax-included",className:e(["dropin-price-summary__caption"]),children:i("span",{children:i(t,{id:"Dropin.PriceSummary.shipping.withTaxes"})})}),r.taxExcluded?i("div",{"data-testid":"shipping-tax-included-excluded",className:e(["dropin-price-summary__caption"]),children:i("span",{children:[r.priceExcludingTax," ",i(t,{id:"Dropin.PriceSummary.shipping.withoutTaxes"})]})}):void 0]})}),B=x&&i(s,{children:x.map(a=>i("div",{className:e(["dropin-price-summary__entry","dropin-price-summary__discount"]),children:[i("span",{className:e(["dropin-price-summary__label"]),children:a.label}),i(n,{node:a.price,className:e(["dropin-price-summary__price"])}),a.caption&&i(n,{node:a.caption,className:e(["dropin-price-summary__caption"])})]},a.label))}),W=h?i(s,{children:i(K,{"data-testid":"tax-breakdown",className:"dropin-price-summary__taxes",iconOpen:G,iconClose:Z,children:i(U,{title:D.taxesBreakdownTitle,secondaryText:!w&&p?i(n,{node:p.price,className:"dropin-price-summary__price"}):void 0,renderContentWhenClosed:!1,onStateChange:P,children:[i("div",{className:e(["dropin-price-summary__appliedTaxes"]),children:h.map(a=>i("div",{className:e(["dropin-price-summary__entry","dropin-price-summary__taxEntry"]),children:[i("span",{className:e(["dropin-price-summary__label","dropin-price-summary__label--muted"]),children:a.label}),i(n,{node:a.price,className:e(["dropin-price-summary__price","dropin-price-summary__price--muted"])})]},a.label))}),i("div",{className:e(["dropin-price-summary__entry"]),children:[i("span",{className:"dropin-price-summary__label",children:i(t,{id:"Dropin.PriceSummary.taxes.total"})}),p&&i(n,{node:p.price,className:"dropin-price-summary__price"})]})]})})}):p&&i("div",{"data-testid":"tax-total-only",className:e(["dropin-price-summary__entry","dropin-price-summary__taxTotal"]),children:[i("span",{className:"dropin-price-summary__label",children:p.estimated?i(t,{id:"Dropin.PriceSummary.taxes.estimated"}):i(t,{id:"Dropin.PriceSummary.taxes.totalOnly"})}),i(n,{node:p.price,className:"dropin-price-summary__price"})]}),I=o&&i(s,{children:i("div",{"data-testid":"total-content",className:e(["dropin-price-summary__entry","dropin-price-summary__total",o.estimated&&"dropin-price-summary__total--padded"]),children:[i("span",{className:e(["dropin-price-summary__label","dropin-price-summary__label--bold"]),children:o.estimated?i(t,{id:"Dropin.PriceSummary.total.estimated"}):i(t,{id:"Dropin.PriceSummary.total.label"})}),i(n,{node:o.price,className:e(["dropin-price-summary__price","dropin-price-summary__price--bold"])})]})}),O=o&&o.priceWithoutTax&&i("div",{"data-testid":"total-without-tax",className:"dropin-price-summary__entry dropin-price-summary__totalWithoutTax",children:[i("span",{className:e(["dropin-price-summary__label","dropin-price-summary__label--muted"]),children:i(t,{id:"Dropin.PriceSummary.total.withoutTax"})}),i(n,{node:o.priceWithoutTax,className:e(["dropin-price-summary__price","dropin-price-summary__price--muted"])})]}),R=b&&i("div",{className:e(["dropin-price-summary__entry","dropin-price-summary__primaryAction"]),children:b}),V=m&&i("div",{className:e(["dropin-price-summary__entry","dropin-price-summary__subTotal"]),children:[i("span",{className:"dropin-price-summary__label",children:i(t,{id:"Dropin.PriceSummary.subTotal.label"})}),i(n,{node:m.price,className:"dropin-price-summary__price"}),m.taxIncluded&&i("div",{"data-testid":"sub-total-tax-caption",className:e(["dropin-price-summary__caption"]),children:i("span",{children:i(t,{id:"Dropin.PriceSummary.subTotal.withTaxes"})})}),m.taxExcluded?i("div",{"data-testid":"sub-total-tax-caption-excluded",className:e(["dropin-price-summary__caption"]),children:i("span",{children:[m.priceExcludingTax," ",i(t,{id:"Dropin.PriceSummary.subTotal.withoutTaxes"})]})}):void 0]});return i("div",{...v,className:e(["dropin-price-summary",c]),children:[i("div",{className:"dropin-price-summary__heading",children:f}),i(M,{variant:"primary",className:"dropin-price-summary__divider-primary"}),k?z:i(s,{children:[V,L,B,W,I,O,R]})]})};export{ui as PriceSummary,ui as default};
|
|
2
|
-
//# sourceMappingURL=PriceSummary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PriceSummary.js","sources":["../../src/lib/form-values.ts","../../src/components/PriceSummary/PriceSummary.tsx"],"sourcesContent":["export const getFormValues = (form: HTMLFormElement) => {\n const formData: any = new FormData(form);\n const result = Object.fromEntries(formData);\n return result;\n};\n\nexport const getFormErrors = (form: HTMLFormElement) => {\n const formData: any = new FormData(form);\n\n const data = Object.fromEntries(formData);\n\n const result = Object.entries(data).reduce((result, [key]) => {\n // @ts-ignore\n const field = form.elements[key];\n\n return field?.validationMessage\n ? { ...result, [key]: field.validationMessage }\n : { ...result };\n }, {});\n\n return result;\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useRef, useState } from 'preact/compat';\nimport { VComponent, classes, getFormValues } from '@adobe/elsie/lib';\nimport { Text, useText } from '@adobe/elsie/i18n';\nimport {\n Accordion,\n AccordionSection,\n Divider,\n Skeleton,\n SkeletonRow,\n} from '@adobe/elsie/components';\n\nimport { ChevronDown, ChevronUp } from '@adobe/elsie/icons';\n\nimport '@adobe/elsie/components/PriceSummary/PriceSummary.css';\n\nexport interface PriceSummaryProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n heading: string;\n loading?: boolean;\n total?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n estimated?: boolean;\n priceWithoutTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n };\n subTotal?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n priceExcludingTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n taxIncluded?: boolean;\n taxExcluded?: boolean;\n zeroTaxSubtotal?: boolean;\n };\n shipping?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n estimated?: boolean;\n taxIncluded?: boolean;\n taxExcluded?: boolean;\n priceIncludingTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n priceExcludingTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n countryField?: VNode<HTMLAttributes<HTMLInputElement>>;\n stateField?: VNode<HTMLAttributes<HTMLInputElement>>;\n zipField?: VNode<HTMLAttributes<HTMLInputElement>>;\n destinationText?: string;\n onEstimate?: (formData: any) => void;\n estimateButton?: VNode<HTMLAttributes<HTMLButtonElement>>;\n };\n taxTotal?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n estimated?: boolean;\n };\n taxesApplied?: {\n label: string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n }[];\n discounts?: {\n label: string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n caption?: VNode<HTMLAttributes<HTMLDivElement>>;\n }[];\n primaryAction?: VNode<HTMLAttributes<HTMLButtonElement>>;\n}\n\nexport const PriceSummary: FunctionComponent<PriceSummaryProps> = ({\n className,\n children,\n ...props\n}) => {\n const {\n heading,\n loading = true,\n total,\n subTotal,\n shipping,\n taxTotal,\n taxesApplied,\n discounts,\n primaryAction,\n ...restProps\n } = props;\n\n const [showTaxBreakdown, setShowTaxBreakdown] = useState(false);\n\n const estimateFormRef = useRef<HTMLFormElement>(null);\n const [showEstimateForm, setShowEstimateForm] = useState(true);\n const [estimateField, setEstimateField] = useState<'zip' | 'state'>('zip');\n\n const translations = useText({\n editZipAction: 'Dropin.PriceSummary.shipping.editZipAction',\n destinationLinkAriaLabel:\n 'Dropin.PriceSummary.shipping.destinationLinkAriaLabel',\n taxesBreakdownTitle: 'Dropin.PriceSummary.taxes.breakdown',\n subtotalLabel: 'Dropin.PriceSummary.subTotal.label',\n shippingLabel: 'Dropin.PriceSummary.shipping.label',\n showTaxBreakdown: 'Dropin.PriceSummary.taxes.showBreakdown',\n hideTaxBreakdown: 'Dropin.PriceSummary.taxes.hideBreakdown',\n zipPlaceholder: 'Dropin.PriceSummary.shipping.zipPlaceholder',\n });\n\n const onDestinationLinkClick = (e: Event) => {\n e.preventDefault();\n setShowEstimateForm((show) => !show);\n };\n\n const onAlternateFieldClick = (e: Event) => {\n e.preventDefault();\n setShowEstimateForm(true);\n\n setEstimateField((field) => (field === 'zip' ? 'state' : 'zip'));\n };\n\n const onSubmitEstimate = (e: Event) => {\n e.preventDefault();\n setShowEstimateForm(false);\n\n const formData = getFormValues(estimateFormRef.current!);\n\n shipping?.onEstimate?.(formData);\n };\n\n // Skeleton content to show while loading\n const skeletonContent = (\n <Skeleton data-testid=\"loading-skeleton\" rowGap=\"xsmall\">\n <SkeletonRow\n variant=\"row\"\n size=\"small\"\n lines={5}\n fullWidth={true}\n multilineGap=\"xsmall\"\n />\n </Skeleton>\n );\n\n // Entry for the shipping price\n const shippingContent = shipping && (\n <>\n <div\n data-testid=\"shipping-content\"\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__shipping',\n ])}\n >\n <span className={'dropin-price-summary__label'}>\n {shipping.estimated ? (\n shipping.destinationText ? (\n <>\n <Text id=\"Dropin.PriceSummary.shipping.estimatedDestination\" />\n <a\n className={'dropin-price-summary__shippingLink'}\n role=\"button\"\n href=\"\"\n onClick={onDestinationLinkClick}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onDestinationLinkClick(event);\n }\n }}\n tabIndex={0}\n aria-label={translations.destinationLinkAriaLabel}\n data-testid=\"shipping-destination-link\"\n >\n {shipping.destinationText}\n </a>\n </>\n ) : (\n <Text id=\"Dropin.PriceSummary.shipping.estimated\" />\n )\n ) : (\n <Text id=\"Dropin.PriceSummary.shipping.label\" />\n )}\n </span>\n <VComponent\n node={shipping.price}\n className={'dropin-price-summary__price'}\n />\n\n {shipping.estimated && (\n <>\n <div className={classes(['dropin-price-summary__caption'])}>\n <a\n href=\"#\"\n className={'dropin-price-summary__shippingLink'}\n onClick={onAlternateFieldClick}\n data-testid=\"shipping-alternate-field-link\"\n >\n {estimateField === 'zip' ? (\n <Text id=\"Dropin.PriceSummary.shipping.alternateField.state\" />\n ) : (\n <Text id=\"Dropin.PriceSummary.shipping.alternateField.zip\" />\n )}\n </a>\n </div>\n </>\n )}\n\n {/* Edit shipping address form */}\n {shipping.estimated && (\n <>\n <form\n className={classes([\n 'dropin-price-summary__shipping--edit',\n ['dropin-price-summary__shipping--hide', !showEstimateForm],\n ])}\n ref={estimateFormRef}\n data-testid=\"shipping-estimate-form\"\n >\n {shipping.countryField && (\n <VComponent\n node={shipping.countryField}\n className={classes([\n 'dropin-price-summary__shipping--country',\n ])}\n />\n )}\n {estimateField === 'state'\n ? shipping.stateField && (\n <VComponent\n node={shipping.stateField}\n className={classes([\n 'dropin-price-summary__shipping--state',\n ])}\n />\n )\n : shipping.zipField && (\n <VComponent\n node={shipping.zipField}\n className={classes([\n 'dropin-price-summary__shipping--zip',\n ])}\n />\n )}\n {shipping.estimateButton && (\n <VComponent\n node={shipping.estimateButton}\n className={classes([\n 'dropin-price-summary__shipping--action',\n ])}\n onClick={onSubmitEstimate}\n type=\"submit\"\n />\n )}\n </form>\n </>\n )}\n\n {shipping.taxIncluded && (\n <div\n data-testid=\"shipping-tax-included\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n <Text id=\"Dropin.PriceSummary.shipping.withTaxes\" />\n </span>\n </div>\n )}\n\n {shipping.taxExcluded ? (\n <div\n data-testid=\"shipping-tax-included-excluded\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n {shipping.priceExcludingTax}{' '}\n <Text id=\"Dropin.PriceSummary.shipping.withoutTaxes\" />\n </span>\n </div>\n ) : undefined}\n </div>\n </>\n );\n\n // Entry for the discounts\n const discountContent = discounts && (\n <>\n {discounts.map((discount) => (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__discount',\n ])}\n key={discount.label}\n >\n <span className={classes(['dropin-price-summary__label'])}>\n {discount.label}\n </span>\n <VComponent\n node={discount.price}\n className={classes(['dropin-price-summary__price'])}\n />\n {discount.caption && (\n <VComponent\n node={discount.caption}\n className={classes(['dropin-price-summary__caption'])}\n />\n )}\n </div>\n ))}\n </>\n );\n\n // Entry for the total tax and breakdown (if provided)\n const taxContent = taxesApplied ? (\n /* Show breakdown if provided */\n <>\n <Accordion\n data-testid=\"tax-breakdown\"\n className={'dropin-price-summary__taxes'}\n iconOpen={ChevronDown}\n iconClose={ChevronUp}\n >\n <AccordionSection\n title={translations.taxesBreakdownTitle}\n secondaryText={\n !showTaxBreakdown && taxTotal ? (\n <VComponent\n node={taxTotal.price}\n className={'dropin-price-summary__price'}\n />\n ) : undefined\n }\n renderContentWhenClosed={false}\n onStateChange={setShowTaxBreakdown}\n >\n <div className={classes(['dropin-price-summary__appliedTaxes'])}>\n {taxesApplied.map((tax) => (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__taxEntry',\n ])}\n key={tax.label}\n >\n <span\n className={classes([\n 'dropin-price-summary__label',\n 'dropin-price-summary__label--muted',\n ])}\n >\n {tax.label}\n </span>\n\n <VComponent\n node={tax.price}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--muted',\n ])}\n />\n </div>\n ))}\n </div>\n\n <div className={classes(['dropin-price-summary__entry'])}>\n <span className={'dropin-price-summary__label'}>\n <Text id=\"Dropin.PriceSummary.taxes.total\" />\n </span>\n {taxTotal && (\n <VComponent\n node={taxTotal.price}\n className={'dropin-price-summary__price'}\n />\n )}\n </div>\n </AccordionSection>\n </Accordion>\n </>\n ) : (\n taxTotal && (\n /* Otherwise, show total only */\n <div\n data-testid=\"tax-total-only\"\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__taxTotal',\n ])}\n >\n <span className={'dropin-price-summary__label'}>\n {taxTotal.estimated ? (\n <Text id=\"Dropin.PriceSummary.taxes.estimated\" />\n ) : (\n <Text id=\"Dropin.PriceSummary.taxes.totalOnly\" />\n )}\n </span>\n <VComponent\n node={taxTotal.price}\n className={'dropin-price-summary__price'}\n />\n </div>\n )\n );\n\n // Entry for the total\n const totalContent = total && (\n <>\n <div\n data-testid=\"total-content\"\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__total',\n total.estimated && 'dropin-price-summary__total--padded',\n ])}\n >\n <span\n className={classes([\n 'dropin-price-summary__label',\n 'dropin-price-summary__label--bold',\n ])}\n >\n {total.estimated ? (\n <Text id=\"Dropin.PriceSummary.total.estimated\" />\n ) : (\n <Text id=\"Dropin.PriceSummary.total.label\" />\n )}\n </span>\n <VComponent\n node={total.price}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--bold',\n ])}\n />\n </div>\n </>\n );\n\n // Entry for the total without tax\n const totalWithoutTaxContent = total && total.priceWithoutTax && (\n <div\n data-testid=\"total-without-tax\"\n className={\n 'dropin-price-summary__entry dropin-price-summary__totalWithoutTax'\n }\n >\n <span\n className={classes([\n 'dropin-price-summary__label',\n 'dropin-price-summary__label--muted',\n ])}\n >\n <Text id=\"Dropin.PriceSummary.total.withoutTax\" />\n </span>\n <VComponent\n node={total.priceWithoutTax}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--muted',\n ])}\n />\n </div>\n );\n\n // Entry for the primary action\n const primaryActionContent = primaryAction && (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__primaryAction',\n ])}\n >\n {primaryAction}\n </div>\n );\n\n const subTotalContent = subTotal && (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__subTotal',\n ])}\n >\n <span className={'dropin-price-summary__label'}>\n <Text id=\"Dropin.PriceSummary.subTotal.label\" />\n </span>\n <VComponent\n node={subTotal.price}\n className={'dropin-price-summary__price'}\n />\n {subTotal.taxIncluded && (\n <div\n data-testid=\"sub-total-tax-caption\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n <Text id=\"Dropin.PriceSummary.subTotal.withTaxes\" />\n </span>\n </div>\n )}\n\n {subTotal.taxExcluded ? (\n <div\n data-testid=\"sub-total-tax-caption-excluded\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n {subTotal.priceExcludingTax}\n \n <Text id=\"Dropin.PriceSummary.subTotal.withoutTaxes\" />\n </span>\n </div>\n ) : undefined}\n </div>\n );\n return (\n <div\n {...restProps}\n className={classes(['dropin-price-summary', className])}\n >\n <div className={'dropin-price-summary__heading'}>{heading}</div>\n\n <Divider\n variant=\"primary\"\n className={'dropin-price-summary__divider-primary'}\n />\n\n {loading ? (\n skeletonContent\n ) : (\n <>\n {subTotalContent}\n\n {shippingContent}\n\n {discountContent}\n\n {taxContent}\n\n {totalContent}\n\n {totalWithoutTaxContent}\n\n {primaryActionContent}\n </>\n )}\n </div>\n );\n};\n"],"names":["getFormValues","form","formData","FormData","result","Object","fromEntries","PriceSummary","className","children","props","heading","loading","total","subTotal","shipping","taxTotal","taxesApplied","discounts","primaryAction","restProps","showTaxBreakdown","setShowTaxBreakdown","useState","estimateFormRef","useRef","showEstimateForm","setShowEstimateForm","estimateField","setEstimateField","translations","useText","editZipAction","destinationLinkAriaLabel","taxesBreakdownTitle","subtotalLabel","shippingLabel","hideTaxBreakdown","zipPlaceholder","onDestinationLinkClick","e","preventDefault","show","onAlternateFieldClick","field","onSubmitEstimate","current","onEstimate","skeletonContent","_jsx","Skeleton","rowGap","SkeletonRow","variant","size","lines","fullWidth","multilineGap","shippingContent","_Fragment","_jsxs","classes","estimated","destinationText","Text","id","role","href","onClick","onKeyDown","event","key","tabIndex","VComponent","node","price","ref","countryField","stateField","zipField","estimateButton","type","taxIncluded","taxExcluded","priceExcludingTax","undefined","discountContent","map","discount","label","caption","taxContent","Accordion","iconOpen","ChevronDown","iconClose","ChevronUp","AccordionSection","title","secondaryText","renderContentWhenClosed","onStateChange","tax","totalContent","totalWithoutTaxContent","priceWithoutTax","primaryActionContent","subTotalContent","Divider"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as s}from"../chunks/classes__DJBjVfEyCI.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import"../preact.js";import{jsx as r}from"../preact-jsx-runtime.js";import{useText as g}from"../i18n.js";import"../preact-hooks.js";const C=({ariaLabel:i,size:d="small",stroke:l="4",children:e,className:n,style:u,...a})=>{const o=["dropin-progress-spinner",`dropin-progress-spinner--shape-size-${d}`,`dropin-progress-spinner--shape-stroke-${l}`],p=g({updating:"Dropin.ProgressSpinner.updating.label",updatingChildren:"Dropin.ProgressSpinner.updatingChildren.label"}),t=()=>i||(e?p.updatingChildren:p.updating);return e?r("div",{...a,className:s(["dropin-progress-spinner-provider"]),"aria-live":"polite",role:"status",children:[r("div",{"aria-hidden":!0,children:e}),r("div",{"aria-label":t(),role:"status",className:s(["dropin-progress-spinner-background",n]),style:u}),r("div",{className:s(["dropin-progress-spinner-with-provider",...o]),"aria-hidden":!0})]}):r("div",{...a,className:s([n,...o]),"aria-live":"polite",role:"status","aria-label":t()})};export{C as ProgressSpinner,C as default};
|
|
2
|
-
//# sourceMappingURL=ProgressSpinner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressSpinner.js","sources":["../../src/components/ProgressSpinner/ProgressSpinner.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { useText } from '@adobe/elsie/i18n';\nimport { classes } from '@adobe/elsie/lib';\n\nimport '@adobe/elsie/components/ProgressSpinner/ProgressSpinner.css';\n\n/**\n * @param size this is the size of the spinner ranging in [12px, 24px, 36px, 48px]\n * @param stroke this is the stroke of the spinner ranging in [1px, 2px, 3px, 4px]\n */\nexport interface ProgressSpinnerProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n ariaLabel?: string;\n size?: 'small' | 'medium' | 'big' | 'large';\n stroke?: '1' | '2' | '3' | '4';\n}\n\nexport const ProgressSpinner: FunctionComponent<ProgressSpinnerProps> = ({\n ariaLabel,\n size = 'small',\n stroke = '4',\n children,\n className,\n style,\n ...props\n}) => {\n const commonClasses = [\n 'dropin-progress-spinner',\n `dropin-progress-spinner--shape-size-${size}`,\n `dropin-progress-spinner--shape-stroke-${stroke}`,\n ];\n\n const translations = useText({\n updating: 'Dropin.ProgressSpinner.updating.label',\n updatingChildren: 'Dropin.ProgressSpinner.updatingChildren.label',\n });\n\n const handleAriaLabel = () => {\n if (ariaLabel) return ariaLabel;\n return children ? translations.updatingChildren : translations.updating;\n };\n\n return children ? (\n // if we provide children to this component, it should act as a provider in order to add background with low opacity\n <div\n {...props}\n className={classes(['dropin-progress-spinner-provider'])}\n aria-live=\"polite\"\n role=\"status\"\n >\n <div aria-hidden={true}>{children}</div>\n <div\n aria-label={handleAriaLabel()}\n role=\"status\"\n className={classes(['dropin-progress-spinner-background', className])}\n style={style}\n />\n <div\n className={classes([\n 'dropin-progress-spinner-with-provider',\n ...commonClasses,\n ])}\n aria-hidden={true}\n />\n </div>\n ) : (\n // if there are no children, it should be able to be standalone and have no background\n <div\n {...props}\n className={classes([className, ...commonClasses])}\n aria-live=\"polite\"\n role=\"status\"\n aria-label={handleAriaLabel()}\n />\n );\n};\n"],"names":["ProgressSpinner","ariaLabel","size","stroke","children","className","style","props","commonClasses","translations","useText","updating","updatingChildren","handleAriaLabel","_jsxs","classes","role","_jsx"],"mappings":"8OAkBO,MAAMA,EAA2DA,CAAC,CACvEC,UAAAA,EACAC,KAAAA,EAAO,QACPC,OAAAA,EAAS,IACTC,SAAAA,EACAC,UAAAA,EACAC,MAAAA,EACA,GAAGC,CACL,IAAM,CACEC,MAAAA,EAAgB,CACpB,0BACC,uCAAsCN,CAAK,GAC3C,yCAAwCC,CAAO,EAAC,EAG7CM,EAAeC,EAAQ,CAC3BC,SAAU,wCACVC,iBAAkB,+CAAA,CACnB,EAEKC,EAAkBA,IAClBZ,IACGG,EAAWK,EAAaG,iBAAmBH,EAAaE,UAG1DP,OAAAA,EAELU,EAAA,MAAA,CAAA,GACMP,EACJF,UAAWU,EAAQ,CAAC,kCAAkC,CAAC,EACvD,YAAU,SACVC,KAAK,SAAQZ,UAEba,EAAA,MAAA,CAAK,cAAa,GAAKb,SAAAA,CAAAA,CAAgB,EACvCa,EAAA,MAAA,CACE,aAAYJ,EAAgB,EAC5BG,KAAK,SACLX,UAAWU,EAAQ,CAAC,qCAAsCV,CAAS,CAAC,EACpEC,MAAAA,CAAAA,CACD,EACDW,EAAA,MAAA,CACEZ,UAAWU,EAAQ,CACjB,wCACA,GAAGP,CAAa,CACjB,EACD,cAAa,EAAA,CACd,CAAC,CAAA,CACC,EAGLS,EAAA,MAAA,CAAA,GACMV,EACJF,UAAWU,EAAQ,CAACV,EAAW,GAAGG,CAAa,CAAC,EAChD,YAAU,SACVQ,KAAK,SACL,aAAYH,EAAgB,CAAA,CAC7B,CAEL"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as i}from"../chunks/classes__DJBjVfEyCI.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import"../preact.js";import{jsx as r}from"../preact-jsx-runtime.js";const h=({name:a,label:d,value:p,size:n="medium",checked:e=!1,disabled:o=!1,error:t=!1,description:l="",className:s,children:_,...u})=>r("label",{className:i([s,"dropin-radio-button",["dropin-radio-button--error",t],["dropin-radio-button--disabled",o]]),children:[r("input",{name:a,value:p,checked:e,disabled:o,type:"radio",className:i(["dropin-radio-button__input",["dropin-radio-button__input--error",t],["dropin-radio-button__input--disabled",o]]),...u}),r("span",{className:i(["dropin-radio-button__label",`dropin-radio-button__label--${n}`,["dropin-radio-button__label--error",t],["dropin-radio-button__label--disabled",o]]),children:d}),r("span",{className:i(["dropin-radio-button__description",`dropin-radio-button__description--${n}`,["dropin-radio-button__description--disabled",o]]),children:l})]});export{h as RadioButton,h as default};
|
|
2
|
-
//# sourceMappingURL=RadioButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButton.js","sources":["../../src/components/RadioButton/RadioButton.tsx"],"sourcesContent":["import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/RadioButton/RadioButton.css';\n\nexport interface RadioButtonProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'size' | 'label'> {\n label: string | VNode<HTMLAttributes<HTMLElement>>;\n name: string;\n value: string;\n size?: 'medium' | 'large';\n checked?: boolean;\n disabled?: boolean;\n error?: boolean;\n description?: string;\n}\n\nexport const RadioButton: FunctionComponent<RadioButtonProps> = ({\n name,\n label,\n value,\n size = 'medium',\n checked = false,\n disabled = false,\n error = false,\n description = '',\n className,\n children,\n ...props\n}) => {\n return (\n <label\n className={classes([\n className,\n 'dropin-radio-button',\n ['dropin-radio-button--error', error],\n ['dropin-radio-button--disabled', disabled],\n ])}\n >\n <input\n name={name}\n value={value}\n checked={checked}\n disabled={disabled}\n type=\"radio\"\n className={classes([\n 'dropin-radio-button__input',\n ['dropin-radio-button__input--error', error],\n ['dropin-radio-button__input--disabled', disabled],\n ])}\n {...props}\n />\n <span\n className={classes([\n 'dropin-radio-button__label',\n `dropin-radio-button__label--${size}`,\n ['dropin-radio-button__label--error', error],\n ['dropin-radio-button__label--disabled', disabled],\n ])}\n >\n {label}\n </span>\n <span\n className={classes([\n 'dropin-radio-button__description',\n `dropin-radio-button__description--${size}`,\n ['dropin-radio-button__description--disabled', disabled],\n ])}\n >\n {description}\n </span>\n </label>\n );\n};\n"],"names":["RadioButton","name","label","value","size","checked","disabled","error","description","className","children","props","_jsxs","classes","_jsx","type"],"mappings":"8KAiBO,MAAMA,EAAmDA,CAAC,CAC/DC,KAAAA,EACAC,MAAAA,EACAC,MAAAA,EACAC,KAAAA,EAAO,SACPC,QAAAA,EAAU,GACVC,SAAAA,EAAW,GACXC,MAAAA,EAAQ,GACRC,YAAAA,EAAc,GACdC,UAAAA,EACAC,SAAAA,EACA,GAAGC,CACL,IAEIC,EAAA,QAAA,CACEH,UAAWI,EAAQ,CACjBJ,EACA,sBACA,CAAC,6BAA8BF,CAAK,EACpC,CAAC,gCAAiCD,CAAQ,CAAC,CAC5C,EAAEI,UAEHI,EAAA,QAAA,CACEb,KAAAA,EACAE,MAAAA,EACAE,QAAAA,EACAC,SAAAA,EACAS,KAAK,QACLN,UAAWI,EAAQ,CACjB,6BACA,CAAC,oCAAqCN,CAAK,EAC3C,CAAC,uCAAwCD,CAAQ,CAAC,CACnD,EAAE,GACCK,CAAAA,CACL,EACDG,EAAA,OAAA,CACEL,UAAWI,EAAQ,CACjB,6BACC,+BAA8BT,CAAK,GACpC,CAAC,oCAAqCG,CAAK,EAC3C,CAAC,uCAAwCD,CAAQ,CAAC,CACnD,EAAEI,SAEFR,CAAAA,CACG,EACNY,EAAA,OAAA,CACEL,UAAWI,EAAQ,CACjB,mCACC,qCAAoCT,CAAK,GAC1C,CAAC,6CAA8CE,CAAQ,CAAC,CACzD,EAAEI,SAEFF,CAAAA,CACG,CAAC,CAAA,CACF"}
|
package/components/Skeleton.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{c as n}from"../chunks/classes__DJBjVfEyCI.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import"../preact.js";import{jsx as r}from"../preact-jsx-runtime.js";const m=1,y=({className:o,fullWidth:e=!1,lines:l=m,size:t="small",variant:s="row",children:i=null,multilineGap:k="medium",...p})=>{const d=[[`dropin-skeleton-row__${s}`,s],[`dropin-skeleton-row__${s}-${t}`,s&&t]];if(!i&&s==="empty")return r("div",{className:n(["dropin-skeleton-row dropin-skeleton-row__empty",o])});if(i){const a=i.trim();return r("div",{...p,class:n(["dropin-skeleton-row",["dropin-skeleton-row--full",e],o]),dangerouslySetInnerHTML:{__html:a}})}return l>m===!1?r("div",{...p,class:n(["dropin-skeleton-row",["dropin-skeleton-row--full",e],"dropin-skeleton--row__content",...d,o])}):r("div",{...p,style:{"--multiline-gap-spacing":`var(--spacing-${k})`},class:n(["dropin-skeleton-row--multiline",["dropin-skeleton-row--full",e],o]),children:Array.from({length:l}).map((a,w)=>r("div",{class:n(["dropin-skeleton-row",["dropin-skeleton-row--full",e],"dropin-skeleton--row__content",...d])},w))})},v=({className:o,children:e,rowGap:l="medium",...t})=>r("div",{style:{"--row-gap-spacing":`var(--spacing-${l})`},...t,className:n(["dropin-skeleton",o]),role:"status","aria-label":"Loading...",children:e});export{v as Skeleton,y as SkeletonRow};
|
|
2
|
-
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","sources":["../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Skeleton/Skeleton.css';\n\nexport interface SkeletonRowProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n fullWidth?: boolean;\n lines?: number;\n size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\n variant?: 'heading' | 'row' | 'empty';\n multilineGap?: 'xsmall' | 'small' | 'medium' | 'big' | 'xbig';\n children?: string;\n}\n\nconst SINGLELINE = 1;\n\nexport const SkeletonRow: FunctionComponent<SkeletonRowProps> = ({\n className,\n fullWidth = false,\n lines = SINGLELINE,\n size = 'small',\n variant = 'row',\n children = null,\n multilineGap = 'medium',\n ...props\n}) => {\n const sharedClasses = [\n [`dropin-skeleton-row__${variant}`, variant],\n [`dropin-skeleton-row__${variant}-${size}`, variant && size],\n ];\n\n if (!children && variant === 'empty') {\n return (\n <div\n className={classes([\n 'dropin-skeleton-row dropin-skeleton-row__empty',\n className,\n ])}\n />\n );\n }\n\n if (children) {\n const svg = children.trim();\n return (\n <div\n {...props}\n class={classes([\n 'dropin-skeleton-row',\n [`dropin-skeleton-row--full`, fullWidth],\n className,\n ])}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n );\n }\n\n const isMultiline = lines > SINGLELINE;\n\n if (isMultiline === false) {\n return (\n <div\n {...props}\n class={classes([\n 'dropin-skeleton-row',\n [`dropin-skeleton-row--full`, fullWidth],\n 'dropin-skeleton--row__content',\n ...sharedClasses,\n className,\n ])}\n />\n );\n }\n\n return (\n <div\n {...props}\n style={{ '--multiline-gap-spacing': `var(--spacing-${multilineGap})` }}\n class={classes([\n 'dropin-skeleton-row--multiline',\n [`dropin-skeleton-row--full`, fullWidth],\n className,\n ])}\n >\n {Array.from({ length: lines }).map((_, index) => (\n <div\n key={index}\n class={classes([\n 'dropin-skeleton-row',\n [`dropin-skeleton-row--full`, fullWidth],\n 'dropin-skeleton--row__content',\n ...sharedClasses,\n ])}\n />\n ))}\n </div>\n );\n};\n\nexport interface SkeletonProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n rowGap?: 'xsmall' | 'small' | 'medium' | 'big' | 'xbig';\n}\n\nexport const Skeleton: FunctionComponent<SkeletonProps> = ({\n className,\n children,\n rowGap = 'medium',\n ...props\n}) => {\n return (\n <div\n style={{ '--row-gap-spacing': `var(--spacing-${rowGap})` }}\n {...props}\n className={classes(['dropin-skeleton', className])}\n role=\"status\"\n aria-label=\"Loading...\"\n >\n {children}\n </div>\n );\n};\n"],"names":["SINGLELINE","SkeletonRow","className","fullWidth","lines","size","variant","children","multilineGap","props","sharedClasses","_jsx","classes","svg","trim","class","dangerouslySetInnerHTML","__html","style","Array","from","length","map","_","index","Skeleton","rowGap","role"],"mappings":"8KAeA,MAAMA,EAAa,EAENC,EAAmDA,CAAC,CAC/DC,UAAAA,EACAC,UAAAA,EAAY,GACZC,MAAAA,EAAQJ,EACRK,KAAAA,EAAO,QACPC,QAAAA,EAAU,MACVC,SAAAA,EAAW,KACXC,aAAAA,EAAe,SACf,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAgB,CACpB,CAAE,wBAAuBJ,CAAQ,GAAGA,CAAO,EAC3C,CAAE,wBAAuBA,CAAQ,IAAGD,CAAK,GAAGC,GAAWD,CAAI,CAAC,EAG1D,GAAA,CAACE,GAAYD,IAAY,QAC3B,OACEK,EAAA,MAAA,CACET,UAAWU,EAAQ,CACjB,iDACAV,CAAS,CACV,CAAA,CACF,EAIL,GAAIK,EAAU,CACNM,MAAAA,EAAMN,EAASO,OACrB,OACEH,EAAA,MAAA,CAAA,GACMF,EACJM,MAAOH,EAAQ,CACb,sBACA,CAAE,4BAA4BT,CAAS,EACvCD,CAAS,CACV,EAEDc,wBAAyB,CAAEC,OAAQJ,CAAI,CAAA,CACxC,CAEL,CAIA,OAFoBT,EAAQJ,IAER,GAEhBW,EAAA,MAAA,CAAA,GACMF,EACJM,MAAOH,EAAQ,CACb,sBACA,CAAE,4BAA4BT,CAAS,EACvC,gCACA,GAAGO,EACHR,CAAS,CACV,CAAA,CACF,EAKHS,EAAA,MAAA,CAAA,GACMF,EACJS,MAAO,CAAE,0BAA4B,iBAAgBV,CAAa,GAAG,EACrEO,MAAOH,EAAQ,CACb,iCACA,CAAE,4BAA4BT,CAAS,EACvCD,CAAS,CACV,EAAEK,SAEFY,MAAMC,KAAK,CAAEC,OAAQjB,CAAAA,CAAO,EAAEkB,IAAI,CAACC,EAAGC,IACrCb,EAAA,MAAA,CAEEI,MAAOH,EAAQ,CACb,sBACA,CAAE,4BAA4BT,CAAS,EACvC,gCACA,GAAGO,CAAa,CACjB,CAAE,EANEc,CAON,CACF,CAAA,CACE,CAET,EAOaC,EAA6CA,CAAC,CACzDvB,UAAAA,EACAK,SAAAA,EACAmB,OAAAA,EAAS,SACT,GAAGjB,CACL,IAEIE,EAAA,MAAA,CACEO,MAAO,CAAE,oBAAsB,iBAAgBQ,CAAO,GAAG,EAAE,GACvDjB,EACJP,UAAWU,EAAQ,CAAC,kBAAmBV,CAAS,CAAC,EACjDyB,KAAK,SACL,aAAW,aAAYpB,SAAAA,CAAAA,CAGpB"}
|
package/components/TextSwatch.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../preact-compat.js";import{c as d}from"../chunks/classes__DJBjVfEyCI.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import"../preact.js";import{jsx as o}from"../preact-jsx-runtime.js";import{useText as i}from"../i18n.js";import{useState as g,useRef as C,useCallback as F,useEffect as L}from"../preact-hooks.js";const q=({className:f,name:w,value:m,label:t,groupAriaLabel:a,id:h,disabled:p=!1,selected:s=!1,outOfStock:u=!1,multi:x=!1,onValue:c,onUpdateError:n,...b})=>{const $=i("Dropin.Swatches.outOfStock.label").label,_=i("Dropin.Swatches.selected.label").label,S=i("Dropin.Swatches.swatch.label").label,[k,v]=g(!1),e=C(null),O=F(async r=>{if(c)try{await c(r)}catch(l){n&&n(l)}},[c,n]),y=r=>{const l=r.target;O(l.value)},D=()=>u?`${a}: ${t} ${$}`:s?`${a}: ${t} ${_}`:`${a}: ${t} ${S}`;return L(()=>{e.current&&e.current.scrollWidth>e.current.clientWidth&&v(!0)},[t]),o("div",{className:"dropin-text-swatch__container",...k?{"data-tooltip":t}:{},children:[o("input",{type:x?"checkbox":"radio",name:w,id:h,value:m,"aria-label":D(),checked:s,disabled:p,onChange:y,...b,className:d(["dropin-text-swatch",["dropin-text-swatch--selected",s],["dropin-text-swatch--disabled",p],f])}),o("label",{htmlFor:h,ref:e,className:d(["dropin-text-swatch__label",["dropin-text-swatch__label--out-of-stock",u],f]),children:t})]})};export{q as TextSwatch,q as default};
|
|
2
|
-
//# sourceMappingURL=TextSwatch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextSwatch.js","sources":["../../src/components/TextSwatch/TextSwatch.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport {\n HTMLAttributes,\n useState,\n useEffect,\n useRef,\n useCallback,\n} from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/TextSwatch/TextSwatch.css';\nimport { useText } from '@adobe/elsie/i18n';\n\nexport interface TextSwatchProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'label'> {\n name?: string;\n label: string;\n groupAriaLabel?: string;\n value?: string;\n id: string;\n disabled?: boolean;\n selected?: boolean;\n outOfStock?: boolean;\n multi?: boolean;\n onValue?: (value: any) => void;\n onUpdateError?: (error: Error) => void;\n}\n\nexport const TextSwatch: FunctionComponent<TextSwatchProps> = ({\n className,\n name,\n value,\n label,\n groupAriaLabel,\n id,\n disabled = false,\n selected = false,\n outOfStock = false,\n multi = false,\n onValue,\n onUpdateError,\n ...props\n}) => {\n // i18n\n const outOfStockLabel = useText('Dropin.Swatches.outOfStock.label').label;\n const selectedLabel = useText('Dropin.Swatches.selected.label').label;\n const swatchLabel = useText('Dropin.Swatches.swatch.label').label;\n\n const [isOverflowing, setIsOverflowing] = useState(false);\n const spanRef = useRef<HTMLLabelElement>(null);\n\n const onValueHandler = useCallback(\n async (newValue: any) => {\n if (onValue) {\n try {\n await onValue(newValue);\n } catch (e) {\n if (onUpdateError) {\n onUpdateError(e as Error);\n }\n }\n }\n },\n [onValue, onUpdateError]\n );\n\n const handleOnValue = (e: Event) => {\n const input = e.target as HTMLInputElement;\n\n onValueHandler(input.value);\n };\n\n const handleAriaLabel = () => {\n if (outOfStock) return `${groupAriaLabel}: ${label} ${outOfStockLabel}`;\n if (selected) return `${groupAriaLabel}: ${label} ${selectedLabel}`;\n return `${groupAriaLabel}: ${label} ${swatchLabel}`;\n };\n\n useEffect(() => {\n if (\n spanRef.current &&\n spanRef.current.scrollWidth > spanRef.current.clientWidth\n ) {\n setIsOverflowing(true);\n }\n }, [label]);\n\n return (\n <div\n className=\"dropin-text-swatch__container\"\n {...(isOverflowing ? { 'data-tooltip': label } : {})}\n >\n <input\n type={multi ? 'checkbox' : 'radio'}\n name={name}\n id={id}\n value={value}\n aria-label={handleAriaLabel()}\n checked={selected}\n disabled={disabled}\n onChange={handleOnValue}\n {...props}\n className={classes([\n 'dropin-text-swatch',\n ['dropin-text-swatch--selected', selected],\n ['dropin-text-swatch--disabled', disabled],\n className,\n ])}\n />\n <label\n htmlFor={id}\n ref={spanRef}\n className={classes([\n 'dropin-text-swatch__label',\n ['dropin-text-swatch__label--out-of-stock', outOfStock],\n className,\n ])}\n >\n {label}\n </label>\n </div>\n );\n};\n"],"names":["TextSwatch","className","name","value","label","groupAriaLabel","id","disabled","selected","outOfStock","multi","onValue","onUpdateError","props","outOfStockLabel","useText","selectedLabel","swatchLabel","isOverflowing","setIsOverflowing","useState","spanRef","useRef","onValueHandler","useCallback","newValue","e","handleOnValue","input","target","handleAriaLabel","useEffect","current","scrollWidth","clientWidth","_jsxs","children","_jsx","type","checked","onChange","classes","htmlFor","ref"],"mappings":"yUA2BO,MAAMA,EAAiDA,CAAC,CAC7DC,UAAAA,EACAC,KAAAA,EACAC,MAAAA,EACAC,MAAAA,EACAC,eAAAA,EACAC,GAAAA,EACAC,SAAAA,EAAW,GACXC,SAAAA,EAAW,GACXC,WAAAA,EAAa,GACbC,MAAAA,EAAQ,GACRC,QAAAA,EACAC,cAAAA,EACA,GAAGC,CACL,IAAM,CAEEC,MAAAA,EAAkBC,EAAQ,kCAAkC,EAAEX,MAC9DY,EAAgBD,EAAQ,gCAAgC,EAAEX,MAC1Da,EAAcF,EAAQ,8BAA8B,EAAEX,MAEtD,CAACc,EAAeC,CAAgB,EAAIC,EAAS,EAAK,EAClDC,EAAUC,EAAyB,IAAI,EAEvCC,EAAiBC,EACrB,MAAOC,GAAkB,CACvB,GAAId,EACE,GAAA,CACF,MAAMA,EAAQc,CAAQ,QACfC,EAAG,CACNd,GACFA,EAAcc,CAAW,CAE7B,CACF,EAEF,CAACf,EAASC,CAAa,CACzB,EAEMe,EAAiBD,GAAa,CAClC,MAAME,EAAQF,EAAEG,OAEhBN,EAAeK,EAAMzB,KAAK,CAAA,EAGtB2B,EAAkBA,IAClBrB,EAAoB,GAAEJ,CAAe,KAAID,CAAM,IAAGU,CAAgB,GAClEN,EAAkB,GAAEH,CAAe,KAAID,CAAM,IAAGY,CAAc,GAC1D,GAAEX,CAAe,KAAID,CAAM,IAAGa,CAAY,GAGpDc,OAAAA,EAAU,IAAM,CAEZV,EAAQW,SACRX,EAAQW,QAAQC,YAAcZ,EAAQW,QAAQE,aAE9Cf,EAAiB,EAAI,CACvB,EACC,CAACf,CAAK,CAAC,EAGR+B,EAAA,MAAA,CACElC,UAAU,gCAA+B,GACpCiB,EAAgB,CAAE,eAAgBd,CAAAA,EAAU,CAAC,EAACgC,UAEnDC,EAAA,QAAA,CACEC,KAAM5B,EAAQ,WAAa,QAC3BR,KAAAA,EACAI,GAAAA,EACAH,MAAAA,EACA,aAAY2B,EAAgB,EAC5BS,QAAS/B,EACTD,SAAAA,EACAiC,SAAUb,EAAc,GACpBd,EACJZ,UAAWwC,EAAQ,CACjB,qBACA,CAAC,+BAAgCjC,CAAQ,EACzC,CAAC,+BAAgCD,CAAQ,EACzCN,CAAS,CACV,CAAA,CACF,EACDoC,EAAA,QAAA,CACEK,QAASpC,EACTqC,IAAKtB,EACLpB,UAAWwC,EAAQ,CACjB,4BACA,CAAC,0CAA2ChC,CAAU,EACtDR,CAAS,CACV,EAAEmC,SAEFhC,CAAAA,CACI,CAAC,CAAA,CACL,CAET"}
|
package/components/UIProvider.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../preact-compat.js";import{c as u}from"../chunks/classes__DJBjVfEyCI.js";import{d as i}from"../chunks/image-params-keymap__LH6wjfp1fd.js";import{createContext as p}from"../preact.js";import{jsx as a}from"../preact-jsx-runtime.js";import{IntlProvider as b}from"../i18n.js";import{useMemo as x}from"../preact-hooks.js";const h={ExampleComponentName:{item:{label:"string"}},Incrementer:{decreaseLabel:"Decrease Quantity",increaseLabel:"Increase Quantity",label:"Quantity"},Modal:{Close:{label:"Close"}},InlineAlert:{dismissLabel:"Dismiss Alert"},PriceSummary:{subTotal:{label:"Subtotal",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},shipping:{label:"Shipping",editZipAction:"Apply",estimated:"Estimated Shipping",estimatedDestination:"Estimated Shipping to ",destinationLinkAriaLabel:"Change destination",zipPlaceholder:"Zip Code",withTaxes:"Including taxes",withoutTaxes:"excluding taxes",alternateField:{zip:"Estimate using country/zip",state:"Estimate using country/state"}},taxes:{total:"Tax Total",totalOnly:"Tax",breakdown:"Taxes",showBreakdown:"Show Tax Breakdown",hideBreakdown:"Hide Tax Breakdown",estimated:"Estimated Tax"},total:{estimated:"Estimated Total",label:"Total",withoutTax:"Total excluding taxes"}},ProgressSpinner:{updating:{label:"Item is updating"},updatingChildren:{label:"Items are updating"}},PriceRange:{from:{label:"From"},to:{label:"to"},asLowAs:{label:"As low as"}},Swatches:{outOfStock:{label:"out of stock swatch"},selected:{label:"swatch selected"},swatch:{label:"swatch"}},Accordion:{open:{label:"Open"},close:{label:"Close"}},CartItem:{each:{label:"each"},quantity:{label:"Quantity"},remove:{label:"Remove {product} from the cart"},removeDefault:{label:"Remove item from the cart"},taxIncluded:{label:"incl. VAT"},taxExcluded:{label:"excl. tax"},updating:{label:"{product} is updating"}}},l={Dropin:h},o={default:l,en_US:l},g=e=>i(o.default,o[e]||{}),w=p({locale:"en-US"}),A=({lang:e="en_US",langDefinitions:t={},className:n,children:s,...r})=>{const d=x(()=>{const m=i(t.default,t[e]??{});return i(g(e),m)},[e,t]),c=e.replace("_","-");return a(w.Provider,{value:{locale:c},children:a(b,{definition:d,children:a("div",{...r,className:u(["dropin-design",n]),children:s})})})};export{w as UIContext,A as UIProvider};
|
|
2
|
-
//# sourceMappingURL=UIProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UIProvider.js","sources":["../../src/i18n/index.ts","../../src/components/UIProvider/UIProvider.tsx"],"sourcesContent":["import { deepmerge } from '@adobe/elsie/lib';\nimport en_US from '@adobe/elsie/i18n/en_US.json';\n\nexport type Lang = 'en_US';\n\nexport const definition = {\n default: en_US,\n en_US,\n};\n\n// https://github.com/synacor/preact-i18n\n// eslint-disable-next-line no-restricted-imports\nexport * from 'preact-i18n';\n\nexport const getDefinitionByLanguage = (lang: Lang) => {\n return deepmerge(definition.default, definition[lang] || {});\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, createContext, useMemo } from 'preact/compat';\nimport { classes, deepmerge } from '@adobe/elsie/lib';\nimport { IntlProvider, getDefinitionByLanguage, Lang } from '@adobe/elsie/i18n';\n\nimport '@adobe/elsie/components/UIProvider/UIProvider.css';\nimport '@adobe/elsie/components/UIProvider/normalize.css';\n\nexport const UIContext = createContext<{\n locale: string;\n}>({\n locale: 'en-US',\n});\n\ntype LangDefinitions = { [key: string]: any };\n\nexport interface UIProviderProps extends HTMLAttributes<HTMLDivElement> {\n lang?: Lang; // ... list of other supported languages\n langDefinitions?: LangDefinitions;\n}\n\nexport const UIProvider: FunctionComponent<UIProviderProps> = ({\n lang = 'en_US',\n langDefinitions = {},\n className,\n children,\n ...props\n}) => {\n const definitions = useMemo(() => {\n // Merge default definition with selected definition\n const selectedDefinitions: LangDefinitions = deepmerge(\n langDefinitions.default,\n langDefinitions[lang] ?? {}\n );\n\n // Merge SDK default definitions with custom definitions\n return deepmerge(\n getDefinitionByLanguage(lang), // SDK default definitions\n selectedDefinitions // Custom definitions\n );\n }, [lang, langDefinitions]);\n\n const locale = lang.replace('_', '-')\n \n return (\n <UIContext.Provider value={{ locale }}>\n <IntlProvider definition={definitions}>\n <div {...props} className={classes(['dropin-design', className])}>\n {children}\n </div>\n </IntlProvider>\n </UIContext.Provider>\n );\n};\n"],"names":["definition","default","en_US","getDefinitionByLanguage","lang","deepmerge","UIContext","createContext","locale","UIProvider","langDefinitions","className","children","props","definitions","useMemo","selectedDefinitions","replace","_jsx","Provider","value","IntlProvider","classes"],"mappings":"i0DAKaA,EAAa,CACxBC,QAASC,EACTA,MAAAA,CACF,EAMaC,EAA2BC,GAC/BC,EAAUL,EAAWC,QAASD,EAAWI,CAAI,GAAK,CAAA,CAAE,ECPhDE,EAAYC,EAEtB,CACDC,OAAQ,OACV,CAAC,EASYC,EAAiDA,CAAC,CAC7DL,KAAAA,EAAO,QACPM,gBAAAA,EAAkB,CAAC,EACnBC,UAAAA,EACAC,SAAAA,EACA,GAAGC,CACL,IAAM,CACEC,MAAAA,EAAcC,EAAQ,IAAM,CAE1BC,MAAAA,EAAuCX,EAC3CK,EAAgBT,QAChBS,EAAgBN,CAAI,GAAK,CAAA,CAC3B,EAGOC,OAAAA,EACLF,EAAwBC,CAAI,EAC5BY,CAAAA,CACF,EACC,CAACZ,EAAMM,CAAe,CAAC,EAEpBF,EAASJ,EAAKa,QAAQ,IAAK,GAAG,EAGlCC,OAAAA,EAACZ,EAAUa,SAAQ,CAACC,MAAO,CAAEZ,OAAAA,CAAO,EAAEI,SACpCM,EAACG,EAAY,CAACrB,WAAYc,EAAYF,SACpCM,EAAA,MAAA,CAAA,GAASL,EAAOF,UAAWW,EAAQ,CAAC,gBAAiBX,CAAS,CAAC,EAAEC,SAAAA,CAAAA,CAE5D,CAAA,CACO,CAAA,CACI,CAExB"}
|
package/components/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Skeleton as B,SkeletonRow as P}from"./Skeleton.js";import{UIContext as k,UIProvider as h}from"./UIProvider.js";import{Incrementer as R}from"./Incrementer.js";import{default as v}from"./Input.js";import{Image as M}from"./Image.js";import{default as y}from"./Divider.js";import{Icon as F}from"./Icon.js";import{Price as T}from"./Price.js";import{default as q}from"./RadioButton.js";import{default as E}from"./Button.js";import{Picker as J}from"./Picker.js";import{Field as N}from"./Field.js";import{ActionButton as Q}from"./ActionButton.js";import{ActionButtonGroup as W}from"./ActionButtonGroup.js";import{Card as Y}from"./Card.js";import{Checkbox as _}from"./Checkbox.js";import{default as rr}from"./ColorSwatch.js";import{default as tr}from"./TextSwatch.js";import{default as mr}from"./ProgressSpinner.js";import{default as pr}from"./ImageSwatch.js";import{default as ir,AccordionSection as xr}from"./Accordion.js";import{default as lr}from"./InLineAlert.js";import{Modal as nr}from"./Modal.js";import{default as cr,CartItemSkeleton as Ir}from"./CartItem.js";import{default as Cr}from"./PriceSummary.js";import{default as Br}from"./CartList.js";import{default as gr}from"./PriceRange.js";import{default as hr}from"./Breadcrumbs.js";import{default as Rr}from"./AlertBanner.js";import{default as vr}from"./IllustratedMessage.js";import"../chunks/classes__DJBjVfEyCI.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import"../preact.js";import"../preact-jsx-runtime.js";import"../preact-compat.js";import"../preact-hooks.js";import"../i18n.js";import"../chunks/debounce__BF4Cdv7Ils.js";import"../chunks/Add__CiEO_sX7HP.js";import"../chunks/Minus__CefO5Dkv_0.js";import"../chunks/CheckWithCircle__D4l-TfZdbK.js";import"../chunks/WarningWithCircle__z1B4rFgzNa.js";import"../chunks/vcomponent__BjnR-FRhjl.js";import"../chunks/ChevronDown__BQ2yC5Yu4N.js";import"../chunks/Check__DlOKHUTGj4.js";import"../chunks/Close__DQxKl-RcDt.js";import"../chunks/Trash__BVZwxilyNs.js";import"../chunks/ChevronUp__DKfBFRUuWH.js";export{ir as Accordion,xr as AccordionSection,Q as ActionButton,W as ActionButtonGroup,Rr as AlertBanner,hr as Breadcrumbs,E as Button,Y as Card,cr as CartItem,Ir as CartItemSkeleton,Br as CartList,_ as Checkbox,rr as ColorSwatch,y as Divider,N as Field,F as Icon,vr as IllustratedMessage,M as Image,pr as ImageSwatch,lr as InLineAlert,R as Incrementer,v as Input,nr as Modal,J as Picker,T as Price,gr as PriceRange,Cr as PriceSummary,mr as ProgressSpinner,q as RadioButton,B as Skeleton,P as SkeletonRow,tr as TextSwatch,k as UIContext,h as UIProvider};
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
package/components/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/lib/slot.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useRef as S,useState as N,useMemo as y,useContext as R,useCallback as l,useEffect as m}from"../preact-hooks.js";import"../chunks/image-params-keymap__LH6wjfp1fd.js";import"../preact.js";import{jsx as C}from"../preact-jsx-runtime.js";import{IntlContext as b}from"../i18n.js";function I(o={},p,r){const d=S(null),c=S(!1),a=S([]),[h,f]=N({children:[r==null?void 0:r({})]}),[g,_]=N({}),w=y(()=>({get:t=>g[t],set:(t,e)=>{_({...w,[t]:e})}}),[g]),{intl:P}=R(b);o.dictionary=P.dictionary,o._setProps=f;const i=l(t=>{typeof t=="function"?a.current.push(t):console.warn("Skipped: Invalid _registerMethod",t)},[]);o._registerMethod=i;const u=l(t=>C("div",{"data-slot-html-element":t.tagName.toLowerCase(),ref:e=>{e==null||e.appendChild(t)}}),[]);return o._htmlElementToVNode=u,o.getSlotElement=l(t=>{const e=document.querySelector(`[data-slot-key="${t}"]`);if(e)return{appendChild:s=>{e.appendChild(s)},prependChild:s=>{e.insertBefore(s,e.firstChild)},appendSibling:s=>{const n=e.parentNode;n==null||n.insertBefore(s,e.nextSibling)},prependSibling:s=>{const n=e.parentNode;n==null||n.insertBefore(s,e)}}},[]),o.onChange=l(t=>{a.current.push(t)},[]),o.replaceWith=l(t=>{i(e=>{const s=u(t);e._setProps({children:[s]})})},[u,i]),o.appendChild=l(t=>{i(e=>{const s=u(t);e._setProps(n=>({...n,children:[...n.children,s]}))})},[u,i]),o.prependChild=l(t=>{i(e=>{const s=u(t);e._setProps(n=>({...n,children:[s,...n.children]}))})},[u,i]),o.appendSibling=l(t=>{i(()=>{var s,n;const e=(s=d.current)==null?void 0:s.parentNode;e==null||e.insertBefore(t,((n=d.current)==null?void 0:n.nextSibling)??null)})},[i]),o.prependSibling=l(t=>{i(()=>{var s;const e=(s=d.current)==null?void 0:s.parentNode;e==null||e.insertBefore(t,d.current)})},[i]),m(()=>{const t=d.current;if(!(!p||!t))try{p(o,t)}catch(e){console.error(`Error in "${p.name}" Slot callback`,e)}},[]),m(()=>{f({children:[r==null?void 0:r(h)]}),a.current.forEach(t=>{t(o,w)}),(r==null?void 0:r.name)==="render"&&c.current===!1&&(c.current=!0)},[JSON.stringify(o),JSON.stringify(g),c.current]),[d,h]}function v({name:o,slot:p,context:r,children:d,render:c,...a}){const[h,f]=I(r,p,c??(()=>d));return m(()=>{o||console.warn('Slot "name" is required')},[o]),C("div",{...a,ref:h,"data-slot":o,children:f.children})}window.DROPINS=window.DROPINS||{};window.DROPINS.showSlots=async o=>{window.sessionStorage.setItem("dropin-debugger--show-slots",o.toString()),document.body.classList.toggle("dropin-debugger--show-slots",o)};window.DROPINS.showSlots(window.sessionStorage.getItem("dropin-debugger--show-slots")==="true");export{v as Slot,I as useSlot};
|
|
2
|
-
//# sourceMappingURL=slot.js.map
|
package/lib/slot.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slot.js","sources":["../../src/lib/slot.tsx"],"sourcesContent":["import { RefObject, VNode } from 'preact';\nimport {\n StateUpdater,\n useContext,\n useState,\n useRef,\n useEffect,\n useMemo,\n useCallback,\n} from 'preact/hooks';\nimport { IntlContext, Lang } from '@adobe/elsie/i18n';\nimport { HTMLAttributes } from 'preact/compat';\n\nimport '@adobe/elsie/components/UIProvider/debugger.css'\n\ntype MutateElement = (elem: HTMLElement) => void;\n\ninterface State {\n get: (key: string) => void;\n set: (key: string, value: any) => void;\n}\n\ninterface SlotElement {\n appendChild: MutateElement;\n prependChild: MutateElement;\n appendSibling: MutateElement;\n prependSibling: MutateElement;\n}\n\ninterface PrivateContext<T> {\n _setProps: StateUpdater<{}>;\n _registerMethod: (\n cb: (next: T & DefaultSlotContext<T>, state: State) => void\n ) => void;\n _htmlElementToVNode: (element: HTMLElement) => VNode;\n}\n\ninterface DefaultSlotContext<T> extends PrivateContext<T> {\n dictionary: Lang;\n getSlotElement: (key: string) => SlotElement;\n replaceWith: MutateElement;\n appendChild: MutateElement;\n prependChild: MutateElement;\n appendSibling: MutateElement;\n prependSibling: MutateElement;\n onChange: (cb: (next: T & DefaultSlotContext<T>) => void) => void;\n}\n\ntype Context<T> = T & ThisType<DefaultSlotContext<T>>; // NOSONAR\n\nexport type SlotProps<T = any> = (\n ctx: T & DefaultSlotContext<T>,\n element: HTMLDivElement | null\n) => void;\n\nexport type SlotMethod<P = any> = (\n callback: (next: unknown, state: State) => P\n) => void;\n\n// Slot Hook\nexport function useSlot<K, V extends HTMLDivElement>(\n // @ts-ignore\n context: Context<K> = {},\n callback?: SlotProps<K>,\n render?: Function\n): [RefObject<V>, Record<string, any>] {\n // HTML Element\n const elementRef = useRef<V>(null);\n\n const loadedRef = useRef(false);\n\n // Methods\n const methodsRef = useRef<any>([]);\n\n // Children VNodes\n const [props, _setProps] = useState<Record<string, any>>({\n children: [render?.({})],\n });\n\n // Attributes\n const [_state, setState] = useState<any>({});\n\n const state = useMemo(\n () => ({\n get: (key: string) => _state[key],\n set: (key: string, value: any) => {\n setState({ ...state, [key]: value });\n },\n }),\n [_state]\n );\n\n /** Internationalization */\n const { intl }: any = useContext(IntlContext);\n\n // @ts-ignore\n context.dictionary = intl.dictionary;\n\n /** Privates */\n // @ts-ignore\n context._setProps = _setProps;\n\n const _registerMethod = useCallback((callback: Function) => {\n if (typeof callback === 'function') {\n methodsRef.current.push(callback);\n } else {\n console.warn('Skipped: Invalid _registerMethod', callback);\n }\n }, []);\n\n // @ts-ignore\n context._registerMethod = _registerMethod;\n\n const _htmlElementToVNode = useCallback((elem: HTMLElement) => {\n return (\n <div\n data-slot-html-element={elem.tagName.toLowerCase()}\n ref={(refElem) => {\n refElem?.appendChild(elem);\n }}\n />\n );\n }, []);\n\n // @ts-ignore\n context._htmlElementToVNode = _htmlElementToVNode;\n\n /** Prebuilt Methods */\n // @ts-ignore\n context.getSlotElement = useCallback((key: string) => {\n const element = document.querySelector(`[data-slot-key=\"${key}\"]`);\n\n if (!element) return;\n\n return {\n appendChild: (elem: HTMLElement) => {\n element.appendChild(elem);\n },\n\n prependChild: (elem: HTMLElement) => {\n element.insertBefore(elem, element.firstChild);\n },\n\n appendSibling: (elem: HTMLElement) => {\n const parent = element.parentNode;\n parent?.insertBefore(elem, element.nextSibling);\n },\n\n prependSibling: (elem: HTMLElement) => {\n const parent = element.parentNode;\n parent?.insertBefore(elem, element);\n },\n };\n }, []);\n\n // @ts-ignore\n context.onChange = useCallback((callback: Function) => {\n methodsRef.current.push(callback);\n }, []);\n\n // @ts-ignore\n context.replaceWith = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const children = _htmlElementToVNode(elem);\n\n next._setProps({ children: [children] });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.appendChild = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const vnode = _htmlElementToVNode(elem);\n\n next._setProps((prev: any) => {\n return {\n ...prev,\n children: [...prev.children, vnode],\n };\n });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.prependChild = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const vnode = _htmlElementToVNode(elem);\n\n next._setProps((prev: any) => {\n return {\n ...prev,\n children: [vnode, ...prev.children],\n };\n });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.appendSibling = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod(() => {\n const parent = elementRef.current?.parentNode;\n\n parent?.insertBefore(elem, elementRef.current?.nextSibling ?? null);\n });\n },\n [_registerMethod]\n );\n\n // @ts-ignore\n context.prependSibling = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod(() => {\n const parent = elementRef.current?.parentNode;\n\n parent?.insertBefore(elem, elementRef.current);\n });\n },\n [_registerMethod]\n );\n\n // Initialization\n useEffect(() => {\n const element = elementRef.current;\n\n if (!callback || !element) return;\n\n // Run callback\n try {\n callback(context as K & DefaultSlotContext<K>, element);\n } catch (error) {\n console.error(`Error in \"${callback.name}\" Slot callback`, error);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Lifecycles\n useEffect(() => {\n // Reset\n _setProps({ children: [render?.(props)] });\n\n // Run all registered methods\n methodsRef.current.forEach((method: any) => {\n method(context, state);\n });\n\n // Required to trigger re-render of render method\n if (render?.name === 'render' && loadedRef.current === false) {\n loadedRef.current = true;\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(context), JSON.stringify(_state), loadedRef.current]);\n\n return [elementRef, props];\n}\n\n// Slot Component\ninterface SlotPropsComponent<T>\n extends Omit<HTMLAttributes<HTMLDivElement>, 'slot'> {\n name: string;\n slot?: SlotProps<T>;\n context?: Context<T>;\n render?: (props: Record<string, any>) => VNode | VNode[];\n}\n\nexport function Slot<T>({\n name,\n slot,\n context,\n children,\n render,\n ...props\n}: Readonly<SlotPropsComponent<T>>) {\n const [elementRef, slotProps] = useSlot<T, HTMLDivElement>(\n context,\n slot,\n render ?? (() => children)\n );\n\n useEffect(() => {\n if (!name) console.warn('Slot \"name\" is required');\n }, [name]);\n\n return (\n <div {...props} ref={elementRef} data-slot={name}>\n {slotProps.children}\n </div>\n );\n}\n\n// Debugger\n\n// @ts-ignore\nwindow.DROPINS = window.DROPINS || {};\n\n// @ts-ignore\nwindow.DROPINS.showSlots = async (state) => {\n // cache state in session storage\n window.sessionStorage.setItem(\n 'dropin-debugger--show-slots',\n state.toString()\n );\n\n document.body.classList.toggle('dropin-debugger--show-slots', state);\n};\n\n// @ts-ignore\nwindow.DROPINS.showSlots(\n window.sessionStorage.getItem('dropin-debugger--show-slots') === 'true'\n);\n"],"names":["useSlot","context","callback","render","elementRef","useRef","loadedRef","methodsRef","props","_setProps","useState","children","_state","setState","state","useMemo","get","key","set","value","intl","useContext","IntlContext","dictionary","_registerMethod","useCallback","current","push","warn","_htmlElementToVNode","elem","_jsx","tagName","toLowerCase","ref","refElem","appendChild","getSlotElement","element","document","querySelector","prependChild","insertBefore","firstChild","appendSibling","parent","parentNode","nextSibling","prependSibling","onChange","replaceWith","next","vnode","prev","useEffect","error","console","name","forEach","method","JSON","stringify","Slot","slot","slotProps","window","DROPINS","showSlots","sessionStorage","setItem","toString","body","classList","toggle","getItem"],"mappings":"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"}
|