@washingtonpost/subs-de-inputs 1.0.0-react18.0 → 1.0.0-react18.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"subs-de-inputs.esm.js","sources":["../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/components/DESelect/index.tsx"],"sourcesContent":["export type AttributeValue = {\n name: string;\n date_created: Number;\n last_modified_date: Number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: 'string';\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: Number;\n date_created: Number;\n values: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n} from '@washingtonpost/subs-sdk';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes = async ({ fieldName }: { fieldName: string }) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: JSON_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { SubsWindow } from '@washingtonpost/subs-sdk';\nimport { Attribute, AttributeValue } from '../../interfaces';\nimport { getAttributes } from '../../services/dataEnrichment';\n\ndeclare global {\n interface Window extends SubsWindow {}\n}\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute;\n defaultValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n}\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n defaultValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState('');\n\n useEffect(() => {\n if (children) {\n if (__DEV__) {\n console.debug('childen props', children);\n }\n return;\n }\n\n if (!config) {\n (async () => {\n // TODO: Switch to window.__twpdeu.getFieldConfigs\n const config = await getAttributes({ fieldName });\n if (__DEV__) {\n console.debug('config from API', config);\n }\n setConfig(config[0]);\n })();\n }\n }, []);\n\n useEffect(() => {\n if (submit && selected) {\n if (__DEV__) {\n console.error('push not implemented', selected, source);\n }\n onFinished({ isFinished: true, isError: false });\n }\n }, [submit, selected]);\n\n if (!(children || config)) {\n return <span>loading</span>;\n }\n\n const defaultValueProp = defaultValue ? { defaultValue } : {};\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // sort and filter out archived values\n const values = config\n ? config.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n <Select.Root\n onValueChange={(e: string) => {\n onChange({ value: e });\n setSelected(e);\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children || null}\n {!children && config && (\n <React.Fragment>\n <Select.Trigger data-test-id={`${config.name}-select-trigger`}>\n <Select.Label>{label || config.name}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${config.name}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value.name} key={value.name}>\n {value.name}\n </Select.Item>\n ))}\n </Select.Content>\n </React.Fragment>\n )}\n </Select.Root>\n </SelectWrapper>\n );\n};\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","hasRequiredPrivacyCookies","_WPGeo","window","wp_usp","getCookie","countryCode","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fieldName","fieldNames","url","data","json","attributes","wrap","_callee$","_context","prev","next","abrupt","URL","searchParams","set","join","fetch","toString","credentials","headers","JSON_HEADERS","sent","ok","status","ResponseStatus","t0","console","debug","stop","_x","apply","arguments","DESelect","source","label","dataDictionaryConfig","defaultValue","disabled","submit","_ref$onChange","onChange","_ref$onFinished","onFinished","_ref$valuesFilter","valuesFilter","children","_useState","useState","config","setConfig","_useState2","selected","setSelected","useEffect","process","env","NODE_ENV","error","isFinished","isError","React","defaultValueProp","disabledProp","values","sort","a","b","order","filter","value","archived","SelectWrapper","createElement","Select","Root","_extends","onValueChange","e","Fragment","Trigger","name","Label","Value","Content","css","zIndex","theme","zIndices","page","map","Item","key","styled","boxSizing","display","marginBottom","flexDirection","padding"],"mappings":"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"}
1
+ {"version":3,"file":"subs-de-inputs.esm.js","sources":["../src/interfaces/index.ts","../src/utils/hasRequiredPrivacyCookies.ts","../src/services/dataEnrichment.ts","../src/components/DESelect/Dropdown.tsx","../src/components/DESelect/index.tsx"],"sourcesContent":["export type AttributeValue = {\n name: string;\n date_created: Number;\n last_modified_date: Number;\n archived: boolean;\n order: number;\n};\n\nexport const CollectionBehaviors = {\n COLLECT: 'COLLECT',\n DO_NOT_COLLECT: 'DO_NOT_COLLECT',\n} as const;\n\nexport type Attribute = {\n name: string;\n approved_for_use?: boolean;\n collection_behavior?: (typeof CollectionBehaviors)[keyof typeof CollectionBehaviors];\n datatype: 'string';\n explicit: boolean;\n multiple_value: boolean;\n last_modified_date: Number;\n date_created: Number;\n values: Array<AttributeValue>;\n};\n\nexport const AttributesState = {\n SUCCESS: '100',\n} as const;\n\nexport const IngestType = {\n EXPLICIT: 'explicit',\n IMPLICIT: 'implicit',\n} as const;\n\nexport const IngestResponseState = {\n SUCCESS: '100',\n SYSTEM_ERROR: '101',\n INVALID_TYPE: '102',\n INVALID_IDENTIFIER: '103',\n INVALID_DATA: '104',\n INVALID_ATTRIBUTE_DEFINITION: '105',\n INVALID_META_DEFINITION: '106',\n UNAUTHENTICATED: '107',\n MISMATCHED_IDENTIFIER: '108',\n DISABLED_ATTRIBUTE_DEFINITION: '109',\n DO_NOT_COLLECT: '110',\n} as const;\n","import { WPGeo, getCookie } from '@washingtonpost/subs-sdk';\n\nexport const hasRequiredPrivacyCookies = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const wp_usp = getCookie('wp_usp');\n\n const countryCode = WPGeo()?.country_code;\n\n return !!(wp_usp && countryCode === 'US');\n};\n","import {\n ENDPOINTS,\n ResponseStatus,\n JSON_HEADERS,\n getCookie,\n} from '@washingtonpost/subs-sdk';\nimport {\n Attribute,\n CollectionBehaviors,\n IngestResponseState,\n IngestType,\n} from '../interfaces';\nimport { hasRequiredPrivacyCookies } from '../utils/hasRequiredPrivacyCookies';\n\nconst base = `${ENDPOINTS.base}/de/v1`;\n\nconst attributesCache: Record<string, any> = {};\nexport const getAttributes: GetAttributesType = async ({\n fieldName,\n}: {\n fieldName: string;\n}) => {\n if (attributesCache[fieldName]) {\n return attributesCache[fieldName];\n }\n\n const fieldNames = [fieldName];\n\n try {\n const url = new URL(`${base}/attributes`);\n url.searchParams.set('attributes', fieldNames.join(','));\n\n const data = await fetch(url.toString(), {\n credentials: 'include',\n headers: JSON_HEADERS,\n });\n const json = await data.json();\n\n if (data.ok && json.status === ResponseStatus.SUCCESS) {\n const attributes = json.attributes || [];\n attributesCache[fieldName] = attributes;\n return attributes;\n } else {\n return [];\n }\n } catch (e) {\n console.debug(e);\n return [];\n }\n};\n\ntype GetAttributesType = ({\n fieldName,\n}: {\n fieldName: string;\n}) => Promise<Attribute[]>;\n\nexport const ingest: IngestType = async ({\n submitData: { fieldName, value },\n type = IngestType.IMPLICIT,\n source,\n}) => {\n const url = `${base}/ingest`;\n\n const wapo_login_id = getCookie('wapo_login_id');\n\n if (!hasRequiredPrivacyCookies()) {\n throw new Error('does not satisfy cookie check');\n }\n\n let attributeInfo = attributesCache[fieldName];\n if (!attributeInfo) {\n attributeInfo = await getAttributes({ fieldName });\n }\n\n if (\n attributeInfo[0] &&\n attributeInfo[0].name === fieldName &&\n attributeInfo[0].collection_behavior === CollectionBehaviors.DO_NOT_COLLECT\n ) {\n throw new Error('do not collect');\n }\n\n const jucid = localStorage.getItem('uuid');\n const ga = getCookie('_ga');\n\n const payload = {\n jucid,\n ga,\n type,\n wapo_login_id, // TODO: move this to BE to read from cookie headers\n data: {\n [fieldName]: [value],\n },\n metadata: { source },\n };\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n credentials: 'include',\n headers: JSON_HEADERS,\n body: JSON.stringify(payload),\n });\n\n const json = await response.json();\n\n return json;\n } catch (e) {\n console.debug(e);\n return null;\n }\n};\n\ntype IngestType = ({\n submitData: { fieldName, value },\n source,\n}: {\n submitData: {\n fieldName: string;\n value: string;\n };\n type?: (typeof IngestType)[keyof typeof IngestType];\n source: string;\n}) => Promise<{\n status: ResponseStatus;\n state: (typeof IngestResponseState)[keyof typeof IngestResponseState];\n} | null>;\n","import React, { useEffect, useState } from 'react';\nimport { Icon, Select, styled, theme } from '@washingtonpost/wpds-ui-kit';\nimport { useWindowSize } from '@washingtonpost/subs-hooks';\nimport { ChevronDown } from '@washingtonpost/wpds-assets';\n\ninterface IDropdownProps {\n id: string;\n label: string;\n values: Array<string>;\n required?: boolean;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n}\n\nconst StyledMobileSelect = styled('select', {\n padding: '12px 16px 12px 6px',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n backgroundColor: '$secondary',\n color: '$primary',\n fontFamily: '$meta',\n fontSize: '$100',\n fontWeight: '$light',\n lineHeight: '$125',\n paddingBlockRight: '$125',\n textOverflow: 'ellipsis',\n position: 'relative',\n borderColor: 'transparent',\n borderRightWidth: '10px',\n borderRightColor: 'transparent',\n appearance: 'none',\n '-webkit-appearance': 'none',\n '&:disabled': {\n backgroundColor: theme.colors.disabled,\n borderColor: theme.colors.disabled,\n color: theme.colors.onDisabled,\n cursor: 'not-allowed',\n },\n});\n\nconst StyledSelectWrapper = styled('div', {\n width: '100%',\n maxWidth: '380px',\n borderRadius: '$012',\n borderColor: '$subtle',\n borderStyle: 'solid',\n borderWidth: '1px',\n backgroundColor: '$secondary',\n position: 'relative',\n});\n\nconst StyledMobileOption = styled('option', {\n fontFamily: 'inherit',\n fontSize: 'inherit',\n color: 'inherit',\n});\n\n/**\n * Dropdown component. Uses wpds-ui-kit on desktop and native select on mobile.\n * @param {IDropdownProps} props The props.\n * @returns {React.ReactElement} The dropdown.\n */\nexport const Dropdown = ({\n id,\n label,\n values,\n required = false,\n defaultValue,\n onChange = () => {},\n disabled = false,\n}: IDropdownProps) => {\n const [answer, setAnswer] = useState<string>();\n const { isMobileSize } = useWindowSize();\n\n useEffect(() => {\n if (answer) onChange(answer);\n }, [answer]);\n\n const disabledProp = disabled ? { disabled: true } : {};\n\n // helps maintain state between WPDS and native dropdowns\n const defaultValueProp = answer\n ? { defaultValue: answer }\n : defaultValue\n ? { defaultValue }\n : {};\n\n const defaultValuePropMobile = (value: string) => {\n if (answer) {\n return value === answer ? { selected: true } : {};\n }\n return value === defaultValue ? { selected: true } : {};\n };\n\n return isMobileSize ? (\n <StyledSelectWrapper>\n <StyledMobileSelect\n id=\"\"\n required={required}\n onChange={(e) => setAnswer(e.target.value)}\n {...disabledProp}\n >\n <label>{label}</label>\n <StyledMobileOption\n value=\"\"\n disabled\n selected\n style={{ color: '#666666' }}\n >\n {label}\n </StyledMobileOption>\n {values.map((value) => (\n <StyledMobileOption\n value={value}\n key={value}\n {...defaultValuePropMobile(value)}\n >\n {value}\n </StyledMobileOption>\n ))}\n </StyledMobileSelect>\n <Icon\n label=\"\"\n size=\"100\"\n fill={theme.colors.gray80}\n style={{\n pointerEvents: 'none',\n position: 'absolute',\n right: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n }}\n >\n <ChevronDown style={{ position: 'absolute', right: '10px' }} />\n </Icon>\n </StyledSelectWrapper>\n ) : (\n <Select.Root\n onValueChange={(e) => setAnswer(e)}\n required={required}\n {...defaultValueProp}\n {...disabledProp}\n >\n <Select.Trigger data-test-id={`${id}-select-trigger`}>\n <Select.Label>{label}</Select.Label>\n <Select.Value />\n </Select.Trigger>\n <Select.Content\n css={{ zIndex: theme.zIndices.page }}\n data-test-id={`${id}-select-content`}\n >\n {values.map((value) => (\n <Select.Item value={value} key={value}>\n {value}\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Root>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Select, styled } from '@washingtonpost/wpds-ui-kit';\nimport { ENDPOINTS, ResponseStatus } from '@washingtonpost/subs-sdk';\nimport { useScript, ScriptStatus } from '@washingtonpost/subs-hooks';\nimport { Attribute, AttributeValue, IngestType } from '../../interfaces';\nimport { Dropdown } from './Dropdown';\n\ninterface DESelectProps {\n source: string;\n fieldName: string;\n label?: string;\n dataDictionaryConfig?: Attribute;\n defaultValue?: string;\n disabled?: boolean;\n submit: boolean;\n onChange?: ({ value }: { value: string }) => void;\n onFinished?: ({\n isFinished,\n isError,\n }: {\n isFinished: boolean;\n isError: boolean;\n }) => void;\n valuesFilter?: (value: AttributeValue) => boolean;\n selectProps?: {\n root?: any;\n trigger?: any;\n label?: any;\n value?: any;\n content?: any;\n item?: any;\n };\n children?: React.ReactNode;\n}\n\nconst scriptSrc = `${\n ENDPOINTS.staticAssets === 'https://subscribe.washingtonpost.com/static'\n ? 'https://www.washingtonpost.com/subscribe/static/'\n : ENDPOINTS.staticAssets\n}/de-utils/twpdeu.min.js`;\n\nexport const DESelect: React.FC<DESelectProps> = ({\n source,\n fieldName,\n label,\n dataDictionaryConfig,\n defaultValue,\n disabled,\n submit,\n onChange = () => {},\n onFinished = () => {},\n valuesFilter = () => true,\n children,\n}) => {\n const [config, setConfig] = useState(dataDictionaryConfig);\n\n const [selected, setSelected] = useState('');\n\n const scriptStatus = useScript(scriptSrc);\n\n useEffect(() => {\n const fetchConfig = async () => {\n try {\n const config = await window?.__twpdeu?.getFieldConfigs({ fieldName });\n if (config) {\n setConfig(config[0]);\n } else {\n console.error('unable to get config', fieldName);\n }\n } catch (e) {\n console.warn('unable to get config', fieldName, e);\n }\n };\n\n if (scriptStatus === ScriptStatus.READY && !(children || config)) {\n fetchConfig();\n }\n }, [scriptStatus]);\n\n useEffect(() => {\n const submitSelected = async () => {\n try {\n // TODO: Log to GA?\n\n const result = await window?.__twpdeu?.push({\n submitData: { fieldName, value: selected },\n type: config?.explicit ? IngestType.EXPLICIT : IngestType.IMPLICIT,\n source,\n });\n\n const isError = result\n ? result.status !== ResponseStatus.SUCCESS\n : true;\n\n onFinished({\n isFinished: true,\n isError,\n });\n } catch (e) {\n onFinished({\n isFinished: false,\n isError: true,\n });\n }\n };\n\n if (scriptStatus === ScriptStatus.READY && submit && selected) {\n submitSelected();\n }\n }, [scriptStatus, submit]);\n\n const defaultValueProp = defaultValue && config ? { defaultValue } : {};\n\n const isLoading = !(children || config);\n\n const disabledProp = disabled || isLoading ? { disabled: true } : {};\n\n // sort and filter out archived values\n const values = config\n ? config.values\n .sort((a, b) => a.order - b.order)\n .filter((value) => value.archived !== true)\n .filter(valuesFilter)\n : [];\n\n return (\n <SelectWrapper>\n {children && (\n <Select.Root\n onValueChange={(e) => {\n setSelected(e);\n onChange({ value: e });\n }}\n {...defaultValueProp}\n {...disabledProp}\n >\n {children}\n </Select.Root>\n )}\n {!children && !config && (\n <Dropdown\n id={'loading'}\n label={'Loading...'}\n values={[]}\n disabled={true}\n />\n )}\n {!children && config && (\n <Dropdown\n id={config.name}\n label={label || config.name}\n onChange={(e) => {\n setSelected(e);\n onChange({ value: e });\n }}\n values={values.map((value) => value.name)}\n defaultValue={defaultValue}\n disabled={disabled}\n />\n )}\n </SelectWrapper>\n );\n};\n\nconst SelectWrapper = styled('div', {\n boxSizing: 'border-box',\n display: 'flex',\n marginBottom: '$100',\n flexDirection: 'column',\n '& button': {\n padding: '1px 6px',\n },\n '& *': { boxSizing: 'border-box' },\n});\n"],"names":["CollectionBehaviors","COLLECT","DO_NOT_COLLECT","AttributesState","SUCCESS","IngestType","EXPLICIT","IMPLICIT","IngestResponseState","SYSTEM_ERROR","INVALID_TYPE","INVALID_IDENTIFIER","INVALID_DATA","INVALID_ATTRIBUTE_DEFINITION","INVALID_META_DEFINITION","UNAUTHENTICATED","MISMATCHED_IDENTIFIER","DISABLED_ATTRIBUTE_DEFINITION","hasRequiredPrivacyCookies","_WPGeo","window","wp_usp","getCookie","countryCode","WPGeo","country_code","base","ENDPOINTS","attributesCache","getAttributes","fieldName","fieldNames","url","URL","searchParams","set","join","data","fetch","toString","credentials","headers","JSON_HEADERS","json","ok","status","ResponseStatus","attributes","e","console","debug","ingest","submitData","value","type","source","wapo_login_id","Error","attributeInfo","name","collection_behavior","jucid","localStorage","getItem","ga","payload","metadata","response","method","body","JSON","stringify","StyledMobileSelect","styled","padding","display","justifyContent","width","backgroundColor","color","fontFamily","fontSize","fontWeight","lineHeight","paddingBlockRight","textOverflow","position","borderColor","borderRightWidth","borderRightColor","appearance","theme","colors","disabled","onDisabled","cursor","StyledSelectWrapper","maxWidth","borderRadius","borderStyle","borderWidth","StyledMobileOption","Dropdown","id","label","values","required","defaultValue","onChange","answer","setAnswer","useState","isMobileSize","useWindowSize","useEffect","disabledProp","defaultValueProp","defaultValuePropMobile","selected","React","createElement","target","style","map","key","Icon","size","fill","gray80","pointerEvents","right","top","transform","ChevronDown","Select","Root","onValueChange","Trigger","Label","Value","Content","css","zIndex","zIndices","page","Item","scriptSrc","staticAssets","DESelect","dataDictionaryConfig","submit","onFinished","valuesFilter","children","config","setConfig","setSelected","scriptStatus","useScript","fetchConfig","_window","__twpdeu","getFieldConfigs","error","warn","ScriptStatus","READY","submitSelected","_window2","result","push","explicit","isError","isFinished","isLoading","sort","a","b","order","filter","archived","SelectWrapper","boxSizing","marginBottom","flexDirection"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-react18.0",
2
+ "version": "1.0.0-react18.1",
3
3
  "license": "UNLICENSED",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -20,24 +20,33 @@
20
20
  "pre-push": "npm run prepublishOnly"
21
21
  },
22
22
  "peerDependencies": {
23
- "@washingtonpost/subs-sdk": "2.0.0-react18.11",
24
- "@washingtonpost/subs-hooks": "1.0.0-react18.15",
25
- "@washingtonpost/wpds-ui-kit": "2.0.0",
23
+ "@washingtonpost/subs-sdk": "2.0.0-react18.13",
24
+ "@washingtonpost/subs-hooks": "1.0.0-react18.16",
25
+ "@washingtonpost/wpds-ui-kit": "2.1.2",
26
26
  "react": ">=18.2.0",
27
27
  "react-dom": ">=18.2.0"
28
28
  },
29
29
  "name": "@washingtonpost/subs-de-inputs",
30
30
  "author": "Subs FE",
31
31
  "module": "dist/subs-de-inputs.esm.js",
32
+ "sideEffects": false,
32
33
  "size-limit": [
33
34
  {
34
- "name": "subs-de-inputs: CommonJS bundle",
35
- "path": "dist/subs-de-inputs.cjs.production.min.js",
36
- "limit": "57 KB"
35
+ "name": "de-inputs: utils",
36
+ "path": "dist/subs-de-inputs.esm.js",
37
+ "import": "{ getAttributes, ingest }",
38
+ "limit": "1.5 KB"
39
+ },
40
+ {
41
+ "name": "de-inputs: DESelect",
42
+ "path": "dist/subs-de-inputs.esm.js",
43
+ "import": "{ DESelect }",
44
+ "limit": "2.5 KB"
37
45
  }
38
46
  ],
39
47
  "devDependencies": {
40
48
  "@babel/core": "^7.22.17",
49
+ "@babel/plugin-transform-optional-chaining": "^7.24.1",
41
50
  "@size-limit/preset-small-lib": "^11.0.2",
42
51
  "@testing-library/react-hooks": "^7.0.2",
43
52
  "@types/enzyme": "^3.10.18",
@@ -52,5 +61,11 @@
52
61
  "jest-environment-jsdom": "^29.7.0",
53
62
  "nock": "^13.0.5",
54
63
  "tslib": "^2.6.2"
55
- }
64
+ },
65
+ "browserslist": [
66
+ "last 2 Chrome versions",
67
+ "last 2 Safari versions",
68
+ "last 2 Firefox versions",
69
+ "last 2 Edge versions"
70
+ ]
56
71
  }