@pantheon-systems/puck-css 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/core/index.d.ts +1 -1
  2. package/dist/core/index.d.ts.map +1 -1
  3. package/dist/core/plugin-types.d.ts +9 -0
  4. package/dist/core/plugin-types.d.ts.map +1 -1
  5. package/dist/core/types.d.ts +6 -0
  6. package/dist/core/types.d.ts.map +1 -1
  7. package/dist/data/data-list-block/builtin-components/cards.d.ts +1 -0
  8. package/dist/data/data-list-block/builtin-components/cards.d.ts.map +1 -1
  9. package/dist/data/data-list-block/builtin-components/cards.js +16 -16
  10. package/dist/data/data-list-block/builtin-components/cards.js.map +1 -1
  11. package/dist/data/data-list-block/builtin-components/listing.d.ts +1 -0
  12. package/dist/data/data-list-block/builtin-components/listing.d.ts.map +1 -1
  13. package/dist/data/data-list-block/builtin-components/listing.js +4 -3
  14. package/dist/data/data-list-block/builtin-components/listing.js.map +1 -1
  15. package/dist/data/data-list-block/builtin-components/rows.d.ts +1 -0
  16. package/dist/data/data-list-block/builtin-components/rows.d.ts.map +1 -1
  17. package/dist/data/data-list-block/builtin-components/rows.js +3 -3
  18. package/dist/data/data-list-block/builtin-components/rows.js.map +1 -1
  19. package/dist/data/data-list-block/create-data-list-block.d.ts +1 -0
  20. package/dist/data/data-list-block/create-data-list-block.d.ts.map +1 -1
  21. package/dist/data/data-list-block/create-data-list-block.js +7 -4
  22. package/dist/data/data-list-block/create-data-list-block.js.map +1 -1
  23. package/dist/data/data-list-block/data-list.css +314 -0
  24. package/dist/data/fields.d.ts.map +1 -1
  25. package/dist/data/fields.js +7 -2
  26. package/dist/data/fields.js.map +1 -1
  27. package/dist/data/paths.d.ts +6 -0
  28. package/dist/data/paths.d.ts.map +1 -1
  29. package/dist/data/paths.js +3 -0
  30. package/dist/data/paths.js.map +1 -1
  31. package/dist/data/query-provider.d.ts +14 -0
  32. package/dist/data/query-provider.d.ts.map +1 -1
  33. package/dist/data/query-provider.js +20 -9
  34. package/dist/data/query-provider.js.map +1 -1
  35. package/dist/data/utils.d.ts +14 -0
  36. package/dist/data/utils.d.ts.map +1 -1
  37. package/dist/data/utils.js +19 -1
  38. package/dist/data/utils.js.map +1 -1
  39. package/dist/editor/P1PuckProvider.d.ts.map +1 -1
  40. package/dist/editor/P1PuckProvider.js +15 -5
  41. package/dist/editor/P1PuckProvider.js.map +1 -1
  42. package/dist/editor/components/VersionBannerOverride.d.ts +7 -1
  43. package/dist/editor/components/VersionBannerOverride.d.ts.map +1 -1
  44. package/dist/editor/components/VersionBannerOverride.js +15 -10
  45. package/dist/editor/components/VersionBannerOverride.js.map +1 -1
  46. package/dist/editor/composePlugins.d.ts +9 -3
  47. package/dist/editor/composePlugins.d.ts.map +1 -1
  48. package/dist/editor/composePlugins.js +3 -8
  49. package/dist/editor/composePlugins.js.map +1 -1
  50. package/dist/editor/defaultPlugins.d.ts.map +1 -1
  51. package/dist/editor/defaultPlugins.js +2 -0
  52. package/dist/editor/defaultPlugins.js.map +1 -1
  53. package/dist/editor/freshFieldTypes.d.ts +12 -0
  54. package/dist/editor/freshFieldTypes.d.ts.map +1 -0
  55. package/dist/editor/freshFieldTypes.js +11 -0
  56. package/dist/editor/freshFieldTypes.js.map +1 -0
  57. package/dist/editor/plugin/P1Plugin.d.ts +10 -0
  58. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  59. package/dist/editor/plugin/P1Plugin.js +1 -1
  60. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  61. package/dist/editor/stablePluginDeps.d.ts +9 -0
  62. package/dist/editor/stablePluginDeps.d.ts.map +1 -0
  63. package/dist/editor/stablePluginDeps.js +15 -0
  64. package/dist/editor/stablePluginDeps.js.map +1 -0
  65. package/dist/editor/useP1Editor.d.ts +8 -0
  66. package/dist/editor/useP1Editor.d.ts.map +1 -1
  67. package/dist/editor/useP1Editor.js +42 -6
  68. package/dist/editor/useP1Editor.js.map +1 -1
  69. package/dist/editor/useP1Plugin.d.ts +3 -1
  70. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  71. package/dist/editor/useP1Plugin.js +6 -0
  72. package/dist/editor/useP1Plugin.js.map +1 -1
  73. package/dist/features/content-type-templates/permissions/role-permissions.d.ts +8 -0
  74. package/dist/features/content-type-templates/permissions/role-permissions.d.ts.map +1 -1
  75. package/dist/features/content-type-templates/permissions/role-permissions.js +3 -0
  76. package/dist/features/content-type-templates/permissions/role-permissions.js.map +1 -1
  77. package/dist/features/localization/authority.d.ts +26 -0
  78. package/dist/features/localization/authority.d.ts.map +1 -0
  79. package/dist/features/localization/authority.js +17 -0
  80. package/dist/features/localization/authority.js.map +1 -0
  81. package/dist/features/localization/index.d.ts +11 -0
  82. package/dist/features/localization/index.d.ts.map +1 -0
  83. package/dist/features/localization/index.js +7 -0
  84. package/dist/features/localization/index.js.map +1 -0
  85. package/dist/features/localization/prop-target.d.ts +26 -0
  86. package/dist/features/localization/prop-target.d.ts.map +1 -0
  87. package/dist/features/localization/prop-target.js +15 -0
  88. package/dist/features/localization/prop-target.js.map +1 -0
  89. package/dist/features/localization/puck-overrides.d.ts +12 -0
  90. package/dist/features/localization/puck-overrides.d.ts.map +1 -0
  91. package/dist/features/localization/puck-overrides.js +12 -0
  92. package/dist/features/localization/puck-overrides.js.map +1 -0
  93. package/dist/features/localization/relation.d.ts +14 -0
  94. package/dist/features/localization/relation.d.ts.map +1 -0
  95. package/dist/features/localization/relation.js +7 -0
  96. package/dist/features/localization/relation.js.map +1 -0
  97. package/dist/features/localization/translatable.d.ts +24 -0
  98. package/dist/features/localization/translatable.d.ts.map +1 -0
  99. package/dist/features/localization/translatable.js +30 -0
  100. package/dist/features/localization/translatable.js.map +1 -0
  101. package/dist/features/localization/types.d.ts +17 -0
  102. package/dist/features/localization/types.d.ts.map +1 -0
  103. package/dist/features/localization/types.js +2 -0
  104. package/dist/features/localization/types.js.map +1 -0
  105. package/dist/features/localization/ui/AuthorityFieldControl.d.ts +32 -0
  106. package/dist/features/localization/ui/AuthorityFieldControl.d.ts.map +1 -0
  107. package/dist/features/localization/ui/AuthorityFieldControl.js +36 -0
  108. package/dist/features/localization/ui/AuthorityFieldControl.js.map +1 -0
  109. package/dist/features/localization/ui/TranslatabilityToggle.d.ts +17 -0
  110. package/dist/features/localization/ui/TranslatabilityToggle.d.ts.map +1 -0
  111. package/dist/features/localization/ui/TranslatabilityToggle.js +16 -0
  112. package/dist/features/localization/ui/TranslatabilityToggle.js.map +1 -0
  113. package/dist/features/localization/useLocalizationData.d.ts +37 -0
  114. package/dist/features/localization/useLocalizationData.d.ts.map +1 -0
  115. package/dist/features/localization/useLocalizationData.js +88 -0
  116. package/dist/features/localization/useLocalizationData.js.map +1 -0
  117. package/dist/p1/editor/hooks/useLiveEditorContext.d.ts.map +1 -1
  118. package/dist/p1/editor/hooks/useLiveEditorContext.js +2 -1
  119. package/dist/p1/editor/hooks/useLiveEditorContext.js.map +1 -1
  120. package/dist/pds/components/PageNotFound.d.ts +27 -0
  121. package/dist/pds/components/PageNotFound.d.ts.map +1 -0
  122. package/dist/pds/components/PageNotFound.js +24 -0
  123. package/dist/pds/components/PageNotFound.js.map +1 -0
  124. package/dist/pds/components/PageNotFound.module.css +51 -0
  125. package/dist/pds/index.d.ts +2 -0
  126. package/dist/pds/index.d.ts.map +1 -1
  127. package/dist/pds/index.js +1 -0
  128. package/dist/pds/index.js.map +1 -1
  129. package/package.json +3 -3
  130. package/src/data/data-list-block/data-list.css +314 -0
package/dist/pds/index.js CHANGED
@@ -14,6 +14,7 @@ export { PresenceStack } from './components/PresenceStack.js';
14
14
  export { DocStateBadge } from './components/DocStateBadge.js';
15
15
  export { PublishControl } from './components/PublishControl.js';
16
16
  export { LoadingMessage } from './components/LoadingMessage.js';
17
+ export { PageNotFound } from './components/PageNotFound.js';
17
18
  export { LoadingOverlay } from './components/LoadingOverlay.js';
18
19
  export { deriveDocState } from './utils/deriveDocState.js';
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pds/index.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAA4B,CAAC;AAYjE,MAAM,UAAU,qBAAqB,CAAC,QAAc;IAClD,OAAO,EAAE,CAAC;AACZ,CAAC;AAMD,MAAM,UAAU,mBAAmB;IACjC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC;AAYD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOhE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pds/index.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAA4B,CAAC;AAYjE,MAAM,UAAU,qBAAqB,CAAC,QAAc;IAClD,OAAO,EAAE,CAAC;AACZ,CAAC;AAMD,MAAM,UAAU,mBAAmB;IACjC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC;AAYD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOhE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pantheon-systems/puck-css",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Puck editor integration with Pantheon's P1 content platform",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -95,7 +95,7 @@
95
95
  "jsep": "^1.4.0",
96
96
  "lodash.isequal": "^4.5.0",
97
97
  "yjs": "^13.6.29",
98
- "@pantheon-systems/css-client": "0.13.0"
98
+ "@pantheon-systems/css-client": "0.14.0"
99
99
  },
100
100
  "devDependencies": {
101
101
  "@floating-ui/react": "^0.27.19",
@@ -128,7 +128,7 @@
128
128
  "license": "UNLICENSED",
129
129
  "homepage": "https://github.com/pantheon-systems/p1-platform/tree/main/packages/puck-css",
130
130
  "scripts": {
131
- "build": "pnpm run clean && tsc -p tsconfig.build.json --emitDeclarationOnly && tsc -p tsconfig.build.json --declaration false --declarationMap false --removeComments && find src -name '*.module.css' | while read f; do dest=\"dist/${f#src/}\"; mkdir -p \"$(dirname \"$dest\")\"; cp \"$f\" \"$dest\"; done; (cp node_modules/@pantheon-systems/pds-toolkit-react/dist/css/pds-core.css src/pds/theme/pds-core.css && node scripts/generate-pds-content.cjs) || true",
131
+ "build": "pnpm run clean && tsc -p tsconfig.build.json --emitDeclarationOnly && tsc -p tsconfig.build.json --declaration false --declarationMap false --removeComments && find src \\( -name '*.module.css' -o \\( -path 'src/data/*' -name '*.css' \\) \\) | while read f; do dest=\"dist/${f#src/}\"; mkdir -p \"$(dirname \"$dest\")\"; cp \"$f\" \"$dest\"; done; (cp node_modules/@pantheon-systems/pds-toolkit-react/dist/css/pds-core.css src/pds/theme/pds-core.css && node scripts/generate-pds-content.cjs) || true",
132
132
  "clean": "rm -rf dist *.tsbuildinfo",
133
133
  "dev": "vite --config vite.config.preview.ts",
134
134
  "lint": "eslint src",
@@ -0,0 +1,314 @@
1
+ /**
2
+ * DataListBlock presentation styles.
3
+ *
4
+ * Plain CSS with semantic, consumer-overridable class names — deliberately no
5
+ * Tailwind, so rendering never depends on a consumer's utility build scanning
6
+ * this package. Every colour, space, radius, and type value routes through a
7
+ * `--p1-datalist-*` property so a host can retheme the block without touching
8
+ * these rules; each one resolves to the matching PDS token, then to a literal
9
+ * for hosts that don't load PDS (the published page is one of those).
10
+ *
11
+ * Deliberately absent: `font-family`. These components render on the customer's
12
+ * own site, so type inherits from their page. Pinning it to the PDS font would
13
+ * also make the editor canvas — where PDS *is* loaded — disagree with the
14
+ * published page it is previewing.
15
+ */
16
+
17
+ .p1-datalist,
18
+ .p1-datalist-cards,
19
+ .p1-datalist-listing,
20
+ .p1-datalist-rows {
21
+ /* Colour. PDS resolves foreground to two tiers, so subtitle and teaser share
22
+ `foreground-default-secondary`; they stay separate properties here so a host
23
+ that wants them distinct can say so. */
24
+ --p1-datalist-color-text: var(--pds-color-foreground-default, #0f172a);
25
+ --p1-datalist-color-text-muted: var(--pds-color-foreground-default-secondary, #64748b);
26
+ --p1-datalist-color-text-body: var(--pds-color-foreground-default-secondary, #475569);
27
+ --p1-datalist-color-border: var(--pds-color-border-default, #e2e8f0);
28
+ --p1-datalist-color-surface-muted: var(--pds-color-surface-default-secondary, #f1f5f9);
29
+ --p1-datalist-color-scrim: rgb(0 0 0 / 0.5);
30
+ --p1-datalist-color-backdrop-text: var(--pds-color-foreground-reverse, #ffffff);
31
+
32
+ /* Space */
33
+ --p1-datalist-space-item-gap: var(--pds-spacing-m, 1rem);
34
+ --p1-datalist-space-group-gap: var(--pds-spacing-xl, 1.5rem);
35
+ --p1-datalist-space-card-padding: var(--pds-spacing-s, 0.75rem);
36
+ --p1-datalist-space-listing-padding: var(--pds-spacing-m, 1rem);
37
+ --p1-datalist-space-row-padding: var(--pds-spacing-s, 0.75rem);
38
+ --p1-datalist-space-row-padding-compact: var(--pds-spacing-2xs, 0.5rem);
39
+ --p1-datalist-space-row-gap: var(--pds-spacing-s, 0.75rem);
40
+ --p1-datalist-space-empty-padding: var(--pds-spacing-2xl, 2rem);
41
+ --p1-datalist-space-text-tight: var(--pds-spacing-4xs, 0.25rem);
42
+ --p1-datalist-space-text-loose: var(--pds-spacing-2xs, 0.5rem);
43
+
44
+ /* Line & radius */
45
+ --p1-datalist-border-width: var(--pds-border-width-default, 1px);
46
+ --p1-datalist-border-width-placeholder: var(--pds-border-width-thicker, 2px);
47
+ --p1-datalist-radius: var(--pds-border-radius-card, 0.5rem);
48
+ --p1-datalist-radius-thumbnail: var(--pds-border-radius-default, 0.25rem);
49
+
50
+ /* Type */
51
+ --p1-datalist-font-size-s: var(--pds-typography-size-s, 0.875rem);
52
+ --p1-datalist-font-size-l: var(--pds-typography-size-l, 1.125rem);
53
+ --p1-datalist-font-size-xl: var(--pds-typography-size-xl, 1.25rem);
54
+ --p1-datalist-font-weight-bold: var(--pds-typography-fw-bold, 700);
55
+ --p1-datalist-font-weight-semibold: var(--pds-typography-fw-semibold, 600);
56
+ }
57
+
58
+ /* ============================================
59
+ Block shell (heading, groups, empty state)
60
+ ============================================ */
61
+
62
+ .p1-datalist__heading {
63
+ margin: 0 0 var(--p1-datalist-space-item-gap);
64
+ font-size: var(--p1-datalist-font-size-xl);
65
+ font-weight: var(--p1-datalist-font-weight-bold);
66
+ color: var(--p1-datalist-color-text);
67
+ }
68
+
69
+ .p1-datalist__empty {
70
+ padding: var(--p1-datalist-space-empty-padding);
71
+ border: var(--p1-datalist-border-width-placeholder) dashed
72
+ var(--p1-datalist-color-border);
73
+ border-radius: var(--p1-datalist-radius);
74
+ text-align: center;
75
+ color: var(--p1-datalist-color-text-muted);
76
+ }
77
+
78
+ .p1-datalist__groups {
79
+ display: flex;
80
+ flex-direction: column;
81
+ gap: var(--p1-datalist-space-group-gap);
82
+ }
83
+
84
+ .p1-datalist__group-label {
85
+ margin: 0 0 var(--p1-datalist-space-card-padding);
86
+ font-size: var(--p1-datalist-font-size-l);
87
+ font-weight: var(--p1-datalist-font-weight-semibold);
88
+ color: var(--p1-datalist-color-text-body);
89
+ }
90
+
91
+ .p1-datalist__more {
92
+ margin-top: var(--p1-datalist-space-card-padding);
93
+ font-size: var(--p1-datalist-font-size-s);
94
+ text-align: center;
95
+ color: var(--p1-datalist-color-text-muted);
96
+ }
97
+
98
+ /* ============================================
99
+ Shared item primitives
100
+ ============================================ */
101
+
102
+ .p1-datalist-media {
103
+ overflow: hidden;
104
+ background: var(--p1-datalist-color-surface-muted);
105
+ }
106
+
107
+ .p1-datalist-media__img {
108
+ display: block;
109
+ width: 100%;
110
+ height: 100%;
111
+ object-fit: cover;
112
+ }
113
+
114
+ .p1-datalist-item__icon {
115
+ display: inline-block;
116
+ margin-bottom: var(--p1-datalist-space-text-tight);
117
+ font-size: var(--p1-datalist-font-size-l);
118
+ }
119
+
120
+ .p1-datalist-item__title {
121
+ font-weight: var(--p1-datalist-font-weight-bold);
122
+ color: var(--p1-datalist-color-text);
123
+ }
124
+
125
+ .p1-datalist-item__subtitle {
126
+ margin-top: var(--p1-datalist-space-text-tight);
127
+ font-size: var(--p1-datalist-font-size-s);
128
+ color: var(--p1-datalist-color-text-muted);
129
+ }
130
+
131
+ .p1-datalist-item__teaser {
132
+ margin-top: var(--p1-datalist-space-text-loose);
133
+ font-size: var(--p1-datalist-font-size-s);
134
+ color: var(--p1-datalist-color-text-body);
135
+ }
136
+
137
+ /* ============================================
138
+ Grid mode — Cards
139
+ ============================================ */
140
+
141
+ .p1-datalist-cards {
142
+ display: grid;
143
+ gap: var(--p1-datalist-space-item-gap);
144
+ grid-template-columns: repeat(3, minmax(0, 1fr));
145
+ }
146
+
147
+ .p1-datalist-cards[data-columns='1'] { grid-template-columns: repeat(1, minmax(0, 1fr)); }
148
+ .p1-datalist-cards[data-columns='2'] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
149
+ .p1-datalist-cards[data-columns='3'] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
150
+ .p1-datalist-cards[data-columns='4'] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
151
+ .p1-datalist-cards[data-columns='5'] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
152
+ .p1-datalist-cards[data-columns='6'] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
153
+
154
+ .p1-datalist-cards__card {
155
+ position: relative;
156
+ overflow: hidden;
157
+ border: var(--p1-datalist-border-width) solid var(--p1-datalist-color-border);
158
+ border-radius: var(--p1-datalist-radius);
159
+ }
160
+
161
+ .p1-datalist-cards__card--horizontal {
162
+ display: flex;
163
+ }
164
+
165
+ .p1-datalist-cards__backdrop {
166
+ position: absolute;
167
+ inset: 0;
168
+ background-position: center;
169
+ background-size: cover;
170
+ }
171
+
172
+ .p1-datalist-cards__scrim {
173
+ position: absolute;
174
+ inset: 0;
175
+ background: var(--p1-datalist-color-scrim);
176
+ }
177
+
178
+ .p1-datalist-cards__body {
179
+ position: relative;
180
+ }
181
+
182
+ .p1-datalist-cards__body--horizontal {
183
+ flex: 1;
184
+ min-width: 0;
185
+ }
186
+
187
+ .p1-datalist-cards__body--backdrop {
188
+ z-index: 1;
189
+ color: var(--p1-datalist-color-backdrop-text);
190
+ }
191
+
192
+ /* Backdrop cards sit on an image, so the text tokens give way to the
193
+ overlay colour rather than the surface palette. */
194
+ .p1-datalist-cards__body--backdrop .p1-datalist-item__title,
195
+ .p1-datalist-cards__body--backdrop .p1-datalist-item__subtitle,
196
+ .p1-datalist-cards__body--backdrop .p1-datalist-item__teaser {
197
+ color: inherit;
198
+ }
199
+
200
+ .p1-datalist-cards__content {
201
+ flex: 1;
202
+ padding: var(--p1-datalist-space-card-padding);
203
+ }
204
+
205
+ .p1-datalist-cards__media--stacked {
206
+ width: 100%;
207
+ aspect-ratio: 4 / 3;
208
+ }
209
+
210
+ .p1-datalist-cards__media--side {
211
+ width: 6rem;
212
+ height: auto;
213
+ flex-shrink: 0;
214
+ }
215
+
216
+ /* ============================================
217
+ List mode — Listing
218
+ ============================================ */
219
+
220
+ .p1-datalist-listing {
221
+ display: flex;
222
+ flex-direction: column;
223
+ gap: var(--p1-datalist-space-item-gap);
224
+ }
225
+
226
+ .p1-datalist-listing--narrow {
227
+ max-width: 42rem;
228
+ margin-inline: auto;
229
+ }
230
+
231
+ .p1-datalist-listing__item {
232
+ display: flex;
233
+ overflow: hidden;
234
+ border: var(--p1-datalist-border-width) solid var(--p1-datalist-color-border);
235
+ border-radius: var(--p1-datalist-radius);
236
+ }
237
+
238
+ .p1-datalist-listing__item--reversed {
239
+ flex-direction: row-reverse;
240
+ }
241
+
242
+ .p1-datalist-listing__media {
243
+ width: 12rem;
244
+ height: auto;
245
+ flex-shrink: 0;
246
+ }
247
+
248
+ .p1-datalist-listing__content {
249
+ flex: 1;
250
+ padding: var(--p1-datalist-space-listing-padding);
251
+ }
252
+
253
+ .p1-datalist-listing__content .p1-datalist-item__title {
254
+ font-size: var(--p1-datalist-font-size-l);
255
+ }
256
+
257
+ .p1-datalist-listing__content .p1-datalist-item__teaser {
258
+ font-size: inherit;
259
+ }
260
+
261
+ /* ============================================
262
+ Table mode — Rows
263
+ ============================================ */
264
+
265
+ .p1-datalist-rows {
266
+ border: var(--p1-datalist-border-width) solid var(--p1-datalist-color-border);
267
+ border-radius: var(--p1-datalist-radius);
268
+ }
269
+
270
+ .p1-datalist-rows__row {
271
+ display: flex;
272
+ align-items: center;
273
+ gap: var(--p1-datalist-space-row-gap);
274
+ padding: var(--p1-datalist-space-row-padding);
275
+ }
276
+
277
+ .p1-datalist-rows[data-density='compact'] .p1-datalist-rows__row {
278
+ padding: var(--p1-datalist-space-row-padding-compact);
279
+ }
280
+
281
+ .p1-datalist-rows[data-density='compact'] .p1-datalist-rows__content {
282
+ font-size: var(--p1-datalist-font-size-s);
283
+ }
284
+
285
+ .p1-datalist-rows__row + .p1-datalist-rows__row {
286
+ border-top: var(--p1-datalist-border-width) solid
287
+ var(--p1-datalist-color-border);
288
+ }
289
+
290
+ .p1-datalist-rows__media {
291
+ width: 46px;
292
+ height: 46px;
293
+ flex-shrink: 0;
294
+ border-radius: var(--p1-datalist-radius-thumbnail);
295
+ }
296
+
297
+ .p1-datalist-rows__content {
298
+ flex: 1;
299
+ min-width: 0;
300
+ }
301
+
302
+ .p1-datalist-rows__content .p1-datalist-item__icon {
303
+ margin-bottom: 0;
304
+ margin-right: var(--p1-datalist-space-text-tight);
305
+ font-size: var(--p1-datalist-font-size-s);
306
+ }
307
+
308
+ .p1-datalist-rows__content .p1-datalist-item__subtitle {
309
+ margin-top: 0;
310
+ }
311
+
312
+ .p1-datalist-rows__content .p1-datalist-item__teaser {
313
+ margin-top: var(--p1-datalist-space-text-tight);
314
+ }