@purpurds/action 7.4.0 → 7.5.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,5 +1,5 @@
1
- Start time: Wed Jun 11 2025 13:40:06 GMT+0000 (Coordinated Universal Time)
2
- Invoking "/usr/bin/tar -x -m -f /opt/actions-runner/_work/teliasaurus/teliasaurus/purpur/common/temp/build-cache/ci_build/@purpurds/action/313c91753618d3033529e80fe3d45d9b38ce990a"
1
+ Start time: Fri Jun 27 2025 14:47:02 GMT+0000 (Coordinated Universal Time)
2
+ Invoking "/usr/bin/tar -x -m -f /opt/actions-runner/_work/teliasaurus/teliasaurus/purpur/common/temp/build-cache/ci_build/@purpurds/action/d8f16358e617608495180c73f8754b9cf2a48e4e"
3
3
 
4
4
  ======= BEGIN PROCESS INPUT ======
5
5
 
@@ -11,8 +11,8 @@ rendering chunks...
11
11
 
12
12
  [vite:dts] Start generate declaration files...
13
13
  computing gzip size...
14
- dist/action.cjs.js 0.34 kB │ gzip: 0.26 kB │ map: 1.59 kB
15
- [vite:dts] Declaration files built in 1656ms.
14
+ dist/action.cjs.js 0.34 kB │ gzip: 0.26 kB │ map: 1.60 kB
15
+ [vite:dts] Declaration files built in 1305ms.
16
16
 
17
- dist/action.es.js 0.30 kB │ gzip: 0.23 kB │ map: 1.62 kB
18
- ✓ built in 1.73s
17
+ dist/action.es.js 0.30 kB │ gzip: 0.23 kB │ map: 1.63 kB
18
+ ✓ built in 1.39s
@@ -11,8 +11,8 @@
11
11
  {"kind":"O","text":"\u001b[32m\n"}
12
12
  {"kind":"O","text":"\u001b[36m[vite:dts]\u001b[32m Start generate declaration files...\u001b[39m\n"}
13
13
  {"kind":"O","text":"computing gzip size...\n"}
14
- {"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36maction.cjs.js \u001b[39m\u001b[1m\u001b[2m0.34 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 0.26 kB\u001b[22m\u001b[2m │ map: 1.59 kB\u001b[22m\n"}
15
- {"kind":"O","text":"\u001b[32m\u001b[36m[vite:dts]\u001b[32m Declaration files built in 1656ms.\n"}
14
+ {"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36maction.cjs.js \u001b[39m\u001b[1m\u001b[2m0.34 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 0.26 kB\u001b[22m\u001b[2m │ map: 1.60 kB\u001b[22m\n"}
15
+ {"kind":"O","text":"\u001b[32m\u001b[36m[vite:dts]\u001b[32m Declaration files built in 1305ms.\n"}
16
16
  {"kind":"O","text":"\u001b[39m\n"}
17
- {"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36maction.es.js \u001b[39m\u001b[1m\u001b[2m0.30 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 0.23 kB\u001b[22m\u001b[2m │ map: 1.62 kB\u001b[22m\n"}
18
- {"kind":"O","text":"\u001b[32m✓ built in 1.73s\u001b[39m\n"}
17
+ {"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36maction.es.js \u001b[39m\u001b[1m\u001b[2m0.30 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 0.23 kB\u001b[22m\u001b[2m │ map: 1.63 kB\u001b[22m\n"}
18
+ {"kind":"O","text":"\u001b[32m✓ built in 1.39s\u001b[39m\n"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 3920.3191949999996
2
+ "nonCachedDurationMs": 3540.8084049999998
3
3
  }
@@ -1,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 879.2058479999978
2
+ "nonCachedDurationMs": 882.0580639999971
3
3
  }
@@ -162,7 +162,7 @@
162
162
  "/csstype@3.1.3": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
163
163
  "/data-urls@4.0.0": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==",
164
164
  "/debug@4.3.7": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
165
- "/debug@4.4.0(supports-color@8.1.1)": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
165
+ "/debug@4.4.0": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
166
166
  "/decimal.js@10.4.3": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
167
167
  "/deep-eql@5.0.2": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
168
168
  "/deep-is@0.1.4": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
@@ -347,7 +347,6 @@
347
347
  "/strip-json-comments@3.1.1": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
348
348
  "/supports-color@5.5.0": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
349
349
  "/supports-color@7.2.0": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
350
- "/supports-color@8.1.1": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
351
350
  "/symbol-tree@3.2.4": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
352
351
  "/tiny-invariant@1.3.3": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
353
352
  "/tinybench@2.9.0": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
@@ -1 +1 @@
1
- {"version":3,"file":"action.cjs.js","sources":["../src/action.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport const VARIANT = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\",\n} as const;\n\nexport const variants = Object.values(VARIANT);\nexport type Variant = (typeof VARIANT)[keyof typeof VARIANT];\n\nexport const SIZE = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\",\n} as const;\n\nexport const sizes = Object.values(SIZE);\nexport type Size = (typeof SIZE)[keyof typeof SIZE];\n\ntype DefaultProps<TVariant, T = object> = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n className?: string;\n fullWidth?: boolean;\n negative?: boolean;\n size?: Size;\n variant: TVariant | Variant;\n} & T;\n\nexport type UnionParams<TVariant> =\n | DefaultProps<TVariant, { iconOnly: boolean; [\"aria-label\"]: string }>\n | DefaultProps<TVariant, { [\"aria-label\"]?: string }>;\n\ntype UnionKeys<T> = T extends T ? keyof T : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype StrictUnionHelper<T, TAll> = T extends any\n ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>\n : never;\n\ntype StrictUnion<T> = StrictUnionHelper<T, T>;\n\nexport type ActionProps<TVariant extends string = Variant> = StrictUnion<UnionParams<TVariant>>;\n"],"names":["VARIANT","variants","SIZE","sizes"],"mappings":"gFAEO,MAAMA,EAAU,CACrB,QAAS,UACT,UAAW,YACX,WAAY,YACd,EAEaC,EAAW,OAAO,OAAOD,CAAO,EAGhCE,EAAO,CAClB,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,EAEaC,EAAQ,OAAO,OAAOD,CAAI"}
1
+ {"version":3,"file":"action.cjs.js","sources":["../src/action.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\n\nexport const VARIANT = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\",\n} as const;\n\nexport const variants = Object.values(VARIANT);\nexport type Variant = (typeof VARIANT)[keyof typeof VARIANT];\n\nexport const SIZE = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\",\n} as const;\n\nexport const sizes = Object.values(SIZE);\nexport type Size = (typeof SIZE)[keyof typeof SIZE];\n\ntype DefaultProps<TVariant, T = object> = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n className?: string;\n fullWidth?: boolean;\n negative?: boolean;\n size?: Size;\n variant: TVariant | Variant;\n} & T;\n\nexport type UnionParams<TVariant> =\n | DefaultProps<TVariant, { iconOnly: boolean; [\"aria-label\"]: string }>\n | DefaultProps<TVariant, { [\"aria-label\"]?: string }>;\n\ntype UnionKeys<T> = T extends T ? keyof T : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype StrictUnionHelper<T, TAll> = T extends any\n ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>\n : never;\n\ntype StrictUnion<T> = StrictUnionHelper<T, T>;\n\nexport type ActionProps<TVariant extends string = Variant> = StrictUnion<UnionParams<TVariant>>;\n"],"names":["VARIANT","variants","SIZE","sizes"],"mappings":"gFAEO,MAAMA,EAAU,CACrB,QAAS,UACT,UAAW,YACX,WAAY,YACd,EAEaC,EAAW,OAAO,OAAOD,CAAO,EAGhCE,EAAO,CAClB,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACN,EAEaC,EAAQ,OAAO,OAAOD,CAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,eAAO,MAAM,QAAQ,4CAAyB,CAAC;AAC/C,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D,eAAO,MAAM,IAAI;;;;;CAKP,CAAC;AAEX,eAAO,MAAM,KAAK,+BAAsB,CAAC;AACzC,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAEpD,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,MAAM,IAAI;IACxC,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B,GAAG,CAAC,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,QAAQ,IAC5B,YAAY,CAAC,QAAQ,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACrE,YAAY,CAAC,QAAQ,EAAE;IAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExD,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAElD,KAAK,iBAAiB,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,GAC3C,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAC7D,KAAK,CAAC;AAEV,KAAK,WAAW,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,MAAM,GAAG,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAEX,eAAO,MAAM,QAAQ,4CAAyB,CAAC;AAC/C,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE7D,eAAO,MAAM,IAAI;;;;;CAKP,CAAC;AAEX,eAAO,MAAM,KAAK,+BAAsB,CAAC;AACzC,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAEpD,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,MAAM,IAAI;IACxC,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B,GAAG,CAAC,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,QAAQ,IAC5B,YAAY,CAAC,QAAQ,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACrE,YAAY,CAAC,QAAQ,EAAE;IAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExD,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAElD,KAAK,iBAAiB,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,GAC3C,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAC7D,KAAK,CAAC;AAEV,KAAK,WAAW,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,MAAM,GAAG,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.es.js","sources":["../src/action.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport const VARIANT = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\",\n} as const;\n\nexport const variants = Object.values(VARIANT);\nexport type Variant = (typeof VARIANT)[keyof typeof VARIANT];\n\nexport const SIZE = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\",\n} as const;\n\nexport const sizes = Object.values(SIZE);\nexport type Size = (typeof SIZE)[keyof typeof SIZE];\n\ntype DefaultProps<TVariant, T = object> = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n className?: string;\n fullWidth?: boolean;\n negative?: boolean;\n size?: Size;\n variant: TVariant | Variant;\n} & T;\n\nexport type UnionParams<TVariant> =\n | DefaultProps<TVariant, { iconOnly: boolean; [\"aria-label\"]: string }>\n | DefaultProps<TVariant, { [\"aria-label\"]?: string }>;\n\ntype UnionKeys<T> = T extends T ? keyof T : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype StrictUnionHelper<T, TAll> = T extends any\n ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>\n : never;\n\ntype StrictUnion<T> = StrictUnionHelper<T, T>;\n\nexport type ActionProps<TVariant extends string = Variant> = StrictUnion<UnionParams<TVariant>>;\n"],"names":["VARIANT","variants","SIZE","sizes"],"mappings":"AAEO,MAAMA,IAAU;AAAA,EACrB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd,GAEaC,IAAW,OAAO,OAAOD,CAAO,GAGhCE,IAAO;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAQ,OAAO,OAAOD,CAAI;"}
1
+ {"version":3,"file":"action.es.js","sources":["../src/action.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\n\nexport const VARIANT = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\",\n} as const;\n\nexport const variants = Object.values(VARIANT);\nexport type Variant = (typeof VARIANT)[keyof typeof VARIANT];\n\nexport const SIZE = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\",\n} as const;\n\nexport const sizes = Object.values(SIZE);\nexport type Size = (typeof SIZE)[keyof typeof SIZE];\n\ntype DefaultProps<TVariant, T = object> = {\n [\"data-testid\"]?: string;\n children?: ReactNode;\n className?: string;\n fullWidth?: boolean;\n negative?: boolean;\n size?: Size;\n variant: TVariant | Variant;\n} & T;\n\nexport type UnionParams<TVariant> =\n | DefaultProps<TVariant, { iconOnly: boolean; [\"aria-label\"]: string }>\n | DefaultProps<TVariant, { [\"aria-label\"]?: string }>;\n\ntype UnionKeys<T> = T extends T ? keyof T : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype StrictUnionHelper<T, TAll> = T extends any\n ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>>\n : never;\n\ntype StrictUnion<T> = StrictUnionHelper<T, T>;\n\nexport type ActionProps<TVariant extends string = Variant> = StrictUnion<UnionParams<TVariant>>;\n"],"names":["VARIANT","variants","SIZE","sizes"],"mappings":"AAEO,MAAMA,IAAU;AAAA,EACrB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd,GAEaC,IAAW,OAAO,OAAOD,CAAO,GAGhCE,IAAO;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAQ,OAAO,OAAOD,CAAI;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/action",
3
- "version": "7.4.0",
3
+ "version": "7.5.1",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/action.cjs.js",
6
6
  "types": "./dist/action.d.ts",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "source": "src/action.tsx",
16
16
  "dependencies": {
17
- "@purpurds/tokens": "7.4.0"
17
+ "@purpurds/tokens": "7.5.1"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@storybook/react": "^8.6.4",
package/src/action.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
2
 
3
3
  export const VARIANT = {
4
4
  PRIMARY: "primary",