@prosefly/astro-components 0.2.1 → 0.4.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.
@@ -1,4 +1,5 @@
1
1
  ---
2
+ import '../theme-tokens.css';
2
3
  import Icon from './Icon.astro';
3
4
 
4
5
  interface Props {
@@ -27,22 +28,22 @@ const linkAttrs = href
27
28
  ---
28
29
 
29
30
  <Tag
30
- class:list={['pl-card', href && 'pl-card--link']}
31
+ class:list={['pf-card', href && 'pf-card--link']}
31
32
  data-external={href && external ? 'true' : undefined}
32
33
  {...linkAttrs}
33
34
  {...attrs}
34
35
  >
35
- <div class="pl-card__layout">
36
+ <div class="pf-card__layout">
36
37
  {
37
38
  icon && (
38
- <span aria-hidden="true" class="pl-card__icon">
39
+ <span aria-hidden="true" class="pf-card__icon">
39
40
  <Icon name={icon} />
40
41
  </span>
41
42
  )
42
43
  }
43
- <div class="pl-card__body">
44
- {title && <h3 class="pl-card__title">{title}</h3>}
45
- <div class="pl-card__content">
44
+ <div class="pf-card__body">
45
+ {title && <p class="pf-card__title">{title}</p>}
46
+ <div class="pf-card__content">
46
47
  <slot />
47
48
  </div>
48
49
  </div>
@@ -50,89 +51,89 @@ const linkAttrs = href
50
51
  </Tag>
51
52
 
52
53
  <style>
53
- .pl-card {
54
+ .pf-card {
54
55
  background: transparent;
55
56
  border: 1px solid
56
- color-mix(in oklab, var(--pl-text-muted, #667085) 18%, transparent);
57
- border-radius: min(var(--pl-radius-lg, 0.75rem), 1rem);
57
+ color-mix(in oklab, var(--pf-text-muted, #667085) 18%, transparent);
58
+ border-radius: min(var(--pf-radius-lg, 0.75rem), 1rem);
58
59
  color: inherit;
59
60
  display: block;
60
- padding: var(--pl-card-padding, 1rem);
61
+ padding: var(--pf-card-padding, 1rem);
61
62
  text-decoration: none;
62
63
  transition:
63
64
  background-color 160ms ease,
64
65
  border-color 160ms ease;
65
66
  }
66
67
 
67
- .pl-card--link:hover {
68
+ .pf-card--link:hover {
68
69
  background: transparent;
69
- border-color: var(--pl-accent, #4f46e5);
70
+ border-color: var(--pf-accent, #3e7e55);
70
71
  }
71
72
 
72
- .pl-card--link:focus-visible {
73
- outline: 2px solid var(--pl-accent, #4f46e5);
73
+ .pf-card--link:focus-visible {
74
+ outline: 2px solid var(--pf-accent, #3e7e55);
74
75
  outline-offset: 2px;
75
76
  }
76
77
 
77
- .pl-card__layout {
78
+ .pf-card__layout {
78
79
  display: grid;
79
- gap: var(--pl-card-layout-gap, 0.75rem);
80
+ gap: var(--pf-card-layout-gap, 0.75rem);
80
81
  }
81
82
 
82
- .pl-card__body {
83
+ .pf-card__body {
83
84
  display: grid;
84
- gap: var(--pl-card-body-gap, 0.375rem);
85
+ gap: var(--pf-card-body-gap, 0.375rem);
85
86
  min-width: 0;
86
87
  }
87
88
 
88
- .pl-card__icon {
89
+ .pf-card__icon {
89
90
  align-items: center;
90
91
  background: var(
91
- --pl-accent-soft,
92
- color-mix(in oklab, var(--pl-accent, #4f46e5) 12%, white)
92
+ --pf-accent-soft,
93
+ color-mix(in oklab, var(--pf-accent, #3e7e55) 12%, white)
93
94
  );
94
- border-radius: var(--pl-radius-md, 0.5rem);
95
- color: var(--pl-accent, #4f46e5);
95
+ border-radius: var(--pf-radius-md, 0.5rem);
96
+ color: var(--pf-accent, #3e7e55);
96
97
  display: inline-flex;
97
- height: var(--pl-card-icon-size, 2.25rem);
98
+ height: var(--pf-card-icon-size, 2.25rem);
98
99
  justify-content: center;
99
100
  line-height: 0;
100
- width: var(--pl-card-icon-size, 2.25rem);
101
+ width: var(--pf-card-icon-size, 2.25rem);
101
102
  }
102
103
 
103
- .pl-card--link:hover .pl-card__icon {
104
- color: var(--pl-accent, #4f46e5);
104
+ .pf-card--link:hover .pf-card__icon {
105
+ color: var(--pf-accent, #3e7e55);
105
106
  }
106
107
 
107
- .pl-card__icon :global(.pl-icon) {
108
+ .pf-card__icon :global(.pf-icon) {
108
109
  display: block;
109
- height: var(--pl-card-icon-glyph-size, 1.125rem);
110
- width: var(--pl-card-icon-glyph-size, 1.125rem);
110
+ height: var(--pf-card-icon-glyph-size, 1.125rem);
111
+ width: var(--pf-card-icon-glyph-size, 1.125rem);
111
112
  }
112
113
 
113
- .pl-card__title {
114
- color: var(--pl-text-strong, var(--pl-text, #182230));
115
- font-size: var(--pl-card-title-size, 0.9375rem);
114
+ .pf-card__title {
115
+ color: var(--pf-text-strong, var(--pf-text, #182230));
116
+ font-size: var(--pf-card-title-size, 0.9375rem);
116
117
  font-weight: 600;
117
- line-height: var(--pl-card-title-line-height, 1.375rem);
118
+ line-height: var(--pf-card-title-line-height, 1.375rem);
118
119
  margin: 0;
119
120
  }
120
121
 
121
- .pl-card__content {
122
- color: var(--pl-text-muted, #667085);
123
- font-size: var(--pl-card-content-size, 0.875rem);
124
- line-height: var(--pl-card-content-line-height, 1.625);
122
+ .pf-card__content {
123
+ color: var(--pf-text-muted, #667085);
124
+ font-size: var(--pf-card-content-size, 0.875rem);
125
+ line-height: var(--pf-card-content-line-height, 1.625);
125
126
  }
126
127
 
127
- .pl-card__content :global(> :first-child) {
128
+ .pf-card__content :global(> :first-child) {
128
129
  margin-top: 0;
129
130
  }
130
131
 
131
- .pl-card__content :global(> :last-child) {
132
+ .pf-card__content :global(> :last-child) {
132
133
  margin-bottom: 0;
133
134
  }
134
135
 
135
- .pl-card__content :global(> * + *) {
136
- margin-top: var(--pl-card-content-gap, 0.5rem);
136
+ .pf-card__content :global(> * + *) {
137
+ margin-top: var(--pf-card-content-gap, 0.5rem);
137
138
  }
138
139
  </style>
@@ -1,17 +1,21 @@
1
- <div class="pl-card-grid">
1
+ ---
2
+ import '../theme-tokens.css';
3
+ ---
4
+
5
+ <div class="pf-card-grid">
2
6
  <slot />
3
7
  </div>
4
8
 
5
9
  <style>
6
- .pl-card-grid {
10
+ .pf-card-grid {
7
11
  display: grid;
8
12
  grid-template-columns: 1fr;
9
- gap: var(--pl-card-grid-gap, 1rem);
10
- margin-block: var(--pl-card-grid-margin, 2rem);
13
+ gap: var(--pf-card-grid-gap, 1rem);
14
+ margin-block: var(--pf-card-grid-margin, 2rem);
11
15
  }
12
16
 
13
17
  @media (min-width: 48rem) {
14
- .pl-card-grid {
18
+ .pf-card-grid {
15
19
  grid-template-columns: repeat(2, minmax(0, 1fr));
16
20
  }
17
21
  }
@@ -1,4 +1,5 @@
1
1
  ---
2
+ import '../theme-tokens.css';
2
3
  import FileTreeItem from './FileTreeItem.astro';
3
4
  import { normalizeFileTreeIconSet, type FileTreeIconSet } from '../icon/file-tree-icons.js';
4
5
  import { parseFileTree } from './rehype-file-tree';
@@ -13,29 +14,29 @@ const fileTreeHtml = await Astro.slots.render('default');
13
14
  const entries = parseFileTree(fileTreeHtml);
14
15
  ---
15
16
 
16
- <ul class="pl-file-tree" data-icon-set={iconSet} role="list">
17
+ <ul class="pf-file-tree" data-icon-set={iconSet} role="list">
17
18
  {entries.map((entry) => <FileTreeItem entry={entry} iconSet={iconSet} />)}
18
19
  </ul>
19
20
 
20
21
  <style is:global>
21
- .pl-file-tree {
22
- --pl-file-tree-border: color-mix(
22
+ .pf-file-tree {
23
+ --pf-file-tree-border: color-mix(
23
24
  in oklab,
24
- var(--pl-text-muted, #667085) 18%,
25
+ var(--pf-text-muted, #667085) 18%,
25
26
  transparent
26
27
  );
27
- --pl-file-tree-line: color-mix(
28
+ --pf-file-tree-line: color-mix(
28
29
  in oklab,
29
- var(--pl-text-muted, #667085) 16%,
30
+ var(--pf-text-muted, #667085) 16%,
30
31
  transparent
31
32
  );
32
33
 
33
- background: var(--pl-background, #ffffff);
34
- border: 1px solid var(--pl-file-tree-border);
35
- border-radius: min(var(--pl-radius-lg, 0.75rem), 1rem);
36
- color: var(--pl-text, #344054);
34
+ background: var(--pf-background, #ffffff);
35
+ border: 1px solid var(--pf-file-tree-border);
36
+ border-radius: min(var(--pf-radius-lg, 0.75rem), 1rem);
37
+ color: var(--pf-text, #344054);
37
38
  font-family:
38
- var(--pl-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
39
+ var(--pf-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
39
40
  font-size: 0.875rem;
40
41
  line-height: 1.5rem;
41
42
  list-style: none;
@@ -44,27 +45,27 @@ const entries = parseFileTree(fileTreeHtml);
44
45
  padding: 0.75rem;
45
46
  }
46
47
 
47
- .pl-file-tree,
48
- .pl-file-tree ul {
48
+ .pf-file-tree,
49
+ .pf-file-tree ul {
49
50
  list-style: none;
50
51
  }
51
52
 
52
- .pl-file-tree :where(ul, li, p) {
53
+ .pf-file-tree :where(ul, li, p) {
53
54
  margin: 0;
54
55
  }
55
56
 
56
- .pl-file-tree :where(ul) {
57
+ .pf-file-tree :where(ul) {
57
58
  padding: 0;
58
59
  }
59
60
 
60
- .pl-file-tree__list {
61
+ .pf-file-tree__list {
61
62
  margin-block-start: 0.125rem;
62
63
  padding-inline-start: 1.5rem;
63
64
  position: relative;
64
65
  }
65
66
 
66
- .pl-file-tree__list::before {
67
- background: var(--pl-file-tree-line);
67
+ .pf-file-tree__list::before {
68
+ background: var(--pf-file-tree-line);
68
69
  bottom: 0.75rem;
69
70
  content: "";
70
71
  inset-inline-start: 0.625rem;
@@ -73,24 +74,24 @@ const entries = parseFileTree(fileTreeHtml);
73
74
  width: 1px;
74
75
  }
75
76
 
76
- .pl-file-tree__item {
77
+ .pf-file-tree__item {
77
78
  margin: 0;
78
79
  min-width: max-content;
79
80
  padding: 0;
80
81
  }
81
82
 
82
- .pl-file-tree__entry {
83
+ .pf-file-tree__entry {
83
84
  align-items: center;
84
- border-radius: var(--pl-radius-md, 0.5rem);
85
+ border-radius: var(--pf-radius-md, 0.5rem);
85
86
  display: inline-flex;
86
87
  gap: 0.375rem;
87
88
  min-height: 1.75rem;
88
89
  white-space: nowrap;
89
90
  }
90
91
 
91
- .pl-file-tree__target {
92
+ .pf-file-tree__target {
92
93
  align-items: center;
93
- border-radius: var(--pl-radius-md, 0.5rem);
94
+ border-radius: var(--pf-radius-md, 0.5rem);
94
95
  box-sizing: border-box;
95
96
  display: inline-flex;
96
97
  gap: 0.375rem;
@@ -98,32 +99,32 @@ const entries = parseFileTree(fileTreeHtml);
98
99
  padding: 0.125rem 0.5rem;
99
100
  }
100
101
 
101
- .pl-file-tree__target--highlighted {
102
+ .pf-file-tree__target--highlighted {
102
103
  background: var(
103
- --pl-accent-soft,
104
- color-mix(in oklab, var(--pl-accent, #4f46e5) 12%, var(--pl-background, #ffffff))
104
+ --pf-accent-soft,
105
+ color-mix(in oklab, var(--pf-accent, #3e7e55) 12%, var(--pf-background, #ffffff))
105
106
  );
106
- color: var(--pl-text-strong, var(--pl-text, #182230));
107
+ color: var(--pf-text-strong, var(--pf-text, #182230));
107
108
  font-weight: 600;
108
109
  }
109
110
 
110
- .pl-file-tree__summary {
111
+ .pf-file-tree__summary {
111
112
  cursor: pointer;
112
113
  display: block;
113
114
  list-style: none;
114
115
  }
115
116
 
116
- .pl-file-tree__summary::-webkit-details-marker {
117
+ .pf-file-tree__summary::-webkit-details-marker {
117
118
  display: none;
118
119
  }
119
120
 
120
- .pl-file-tree__summary:hover .pl-file-tree__target:not(.pl-file-tree__target--highlighted) {
121
- background: var(--pl-surface, #f4f6f8);
121
+ .pf-file-tree__summary:hover .pf-file-tree__target:not(.pf-file-tree__target--highlighted) {
122
+ background: var(--pf-surface, #f4f6f8);
122
123
  }
123
124
 
124
- .pl-file-tree__chevron {
125
+ .pf-file-tree__chevron {
125
126
  align-items: center;
126
- color: var(--pl-text-muted, #667085);
127
+ color: var(--pf-text-muted, #667085);
127
128
  display: inline-flex;
128
129
  flex: 0 0 auto;
129
130
  justify-content: center;
@@ -131,89 +132,89 @@ const entries = parseFileTree(fileTreeHtml);
131
132
  transition: transform 160ms ease;
132
133
  }
133
134
 
134
- .pl-file-tree__details[open] > .pl-file-tree__summary .pl-file-tree__chevron {
135
+ .pf-file-tree__details[open] > .pf-file-tree__summary .pf-file-tree__chevron {
135
136
  transform: rotate(90deg);
136
137
  }
137
138
 
138
- .pl-file-tree__icon {
139
+ .pf-file-tree__icon {
139
140
  align-items: center;
140
- color: var(--pl-text-muted, #667085);
141
+ color: var(--pf-text-muted, #667085);
141
142
  display: inline-flex;
142
143
  flex: 0 0 auto;
143
144
  justify-content: center;
144
145
  line-height: 0;
145
146
  }
146
147
 
147
- .pl-file-tree__icon .pl-icon,
148
- .pl-file-tree__icon-closed .pl-icon,
149
- .pl-file-tree__icon-open .pl-icon,
150
- .pl-file-tree__icon-theme .pl-icon,
151
- .pl-file-tree__chevron .pl-icon {
148
+ .pf-file-tree__icon .pf-icon,
149
+ .pf-file-tree__icon-closed .pf-icon,
150
+ .pf-file-tree__icon-open .pf-icon,
151
+ .pf-file-tree__icon-theme .pf-icon,
152
+ .pf-file-tree__chevron .pf-icon {
152
153
  display: block;
153
154
  height: 1rem;
154
155
  width: 1rem;
155
156
  }
156
157
 
157
- .pl-file-tree__icon-open,
158
- .pl-file-tree__details[open] > .pl-file-tree__summary .pl-file-tree__icon-closed {
158
+ .pf-file-tree__icon-open,
159
+ .pf-file-tree__details[open] > .pf-file-tree__summary .pf-file-tree__icon-closed {
159
160
  display: none;
160
161
  }
161
162
 
162
- .pl-file-tree__details[open] > .pl-file-tree__summary .pl-file-tree__icon-open {
163
+ .pf-file-tree__details[open] > .pf-file-tree__summary .pf-file-tree__icon-open {
163
164
  display: inline-flex;
164
165
  }
165
166
 
166
- .pl-file-tree__icon-theme--dark {
167
+ .pf-file-tree__icon-theme--dark {
167
168
  display: none;
168
169
  }
169
170
 
170
- :root[data-theme='dark'] .pl-file-tree__icon-theme--light {
171
+ :root[data-theme='dark'] .pf-file-tree__icon-theme--light {
171
172
  display: none;
172
173
  }
173
174
 
174
- :root[data-theme='dark'] .pl-file-tree__icon-theme--dark {
175
+ :root[data-theme='dark'] .pf-file-tree__icon-theme--dark {
175
176
  display: block;
176
177
  }
177
178
 
178
179
  @media (prefers-color-scheme: dark) {
179
- :root:is([data-theme='system'], :not([data-theme])) .pl-file-tree__icon-theme--light {
180
+ :root:is([data-theme='system'], :not([data-theme])) .pf-file-tree__icon-theme--light {
180
181
  display: none;
181
182
  }
182
183
 
183
- :root:is([data-theme='system'], :not([data-theme])) .pl-file-tree__icon-theme--dark {
184
+ :root:is([data-theme='system'], :not([data-theme])) .pf-file-tree__icon-theme--dark {
184
185
  display: block;
185
186
  }
186
187
  }
187
188
 
188
- .pl-file-tree__icon[data-kind='directory'] {
189
- color: color-mix(in oklab, var(--pl-accent, #4f46e5) 82%, var(--pl-text, #344054));
189
+ .pf-file-tree__icon[data-kind='directory'] {
190
+ color: color-mix(in oklab, var(--pf-accent, #3e7e55) 82%, var(--pf-text, #344054));
190
191
  }
191
192
 
192
- .pl-file-tree[data-icon-set='lucide'] .pl-file-tree__icon[data-kind='code'] {
193
+ .pf-file-tree[data-icon-set='lucide'] .pf-file-tree__icon[data-kind='code'] {
193
194
  color: oklch(0.58 0.18 250);
194
195
  }
195
196
 
196
- .pl-file-tree[data-icon-set='lucide'] .pl-file-tree__icon[data-kind='config'] {
197
+ .pf-file-tree[data-icon-set='lucide'] .pf-file-tree__icon[data-kind='config'] {
197
198
  color: oklch(0.56 0.14 155);
198
199
  }
199
200
 
200
- .pl-file-tree[data-icon-set='lucide'] .pl-file-tree__icon[data-kind='style'] {
201
+ .pf-file-tree[data-icon-set='lucide'] .pf-file-tree__icon[data-kind='style'] {
201
202
  color: oklch(0.58 0.19 320);
202
203
  }
203
204
 
204
- .pl-file-tree[data-icon-set='lucide'] .pl-file-tree__icon[data-kind='image'] {
205
+ .pf-file-tree[data-icon-set='lucide'] .pf-file-tree__icon[data-kind='image'] {
205
206
  color: oklch(0.58 0.16 80);
206
207
  }
207
208
 
208
- .pl-file-tree__name {
209
- color: var(--pl-text, #344054);
209
+ .pf-file-tree__name {
210
+ color: var(--pf-text, #344054);
210
211
  }
211
212
 
212
- .pl-file-tree__target--highlighted .pl-file-tree__name {
213
+ .pf-file-tree__target--highlighted .pf-file-tree__name {
213
214
  color: inherit;
214
215
  }
215
216
 
216
- .pl-file-tree__name code {
217
+ .pf-file-tree__name code {
217
218
  background: transparent;
218
219
  border: 0;
219
220
  border-radius: 0;
@@ -222,19 +223,19 @@ const entries = parseFileTree(fileTreeHtml);
222
223
  padding: 0;
223
224
  }
224
225
 
225
- .pl-file-tree__comment {
226
- color: var(--pl-text-muted, #667085);
226
+ .pf-file-tree__comment {
227
+ color: var(--pf-text-muted, #667085);
227
228
  font-family:
228
- var(--pl-font-sans, ui-sans-serif, system-ui, sans-serif);
229
+ var(--pf-font-sans, ui-sans-serif, system-ui, sans-serif);
229
230
  font-size: 0.8125rem;
230
231
  }
231
232
 
232
- .pl-file-tree__comment :where(strong) {
233
- color: var(--pl-text-strong, var(--pl-text, #182230));
233
+ .pf-file-tree__comment :where(strong) {
234
+ color: var(--pf-text-strong, var(--pf-text, #182230));
234
235
  font-weight: 600;
235
236
  }
236
237
 
237
- .pl-file-tree__comment :where(code) {
238
+ .pf-file-tree__comment :where(code) {
238
239
  background: transparent;
239
240
  border: 0;
240
241
  color: inherit;
@@ -242,12 +243,12 @@ const entries = parseFileTree(fileTreeHtml);
242
243
  padding: 0;
243
244
  }
244
245
 
245
- .pl-file-tree__item--placeholder > .pl-file-tree__entry,
246
- .pl-file-tree__item--placeholder .pl-file-tree__name {
247
- color: var(--pl-text-muted, #667085);
246
+ .pf-file-tree__item--placeholder > .pf-file-tree__entry,
247
+ .pf-file-tree__item--placeholder .pf-file-tree__name {
248
+ color: var(--pf-text-muted, #667085);
248
249
  }
249
250
 
250
- .pl-file-tree__sr-only {
251
+ .pf-file-tree__sr-only {
251
252
  clip: rect(0, 0, 0, 0);
252
253
  border: 0;
253
254
  height: 1px;
@@ -26,70 +26,70 @@ const children = entry.children.length > 0 ? entry.children : [placeholderEntry]
26
26
 
27
27
  <li
28
28
  class:list={[
29
- 'pl-file-tree__item',
30
- entry.isDirectory ? 'pl-file-tree__item--directory' : 'pl-file-tree__item--file',
31
- entry.isPlaceholder && 'pl-file-tree__item--placeholder',
32
- entry.highlighted && 'pl-file-tree__item--highlighted',
29
+ 'pf-file-tree__item',
30
+ entry.isDirectory ? 'pf-file-tree__item--directory' : 'pf-file-tree__item--file',
31
+ entry.isPlaceholder && 'pf-file-tree__item--placeholder',
32
+ entry.highlighted && 'pf-file-tree__item--highlighted',
33
33
  ]}
34
34
  >
35
35
  {
36
36
  entry.isDirectory ? (
37
- <details class="pl-file-tree__details" open={entry.children.length > 0 ? true : undefined}>
38
- <summary class="pl-file-tree__summary">
39
- <span class="pl-file-tree__entry">
37
+ <details class="pf-file-tree__details" open={entry.children.length > 0 ? true : undefined}>
38
+ <summary class="pf-file-tree__summary">
39
+ <span class="pf-file-tree__entry">
40
40
  {!entry.isPlaceholder && (
41
- <span aria-hidden="true" class="pl-file-tree__chevron">
41
+ <span aria-hidden="true" class="pf-file-tree__chevron">
42
42
  <Icon name="lucide:chevron-right" />
43
43
  </span>
44
44
  )}
45
45
  <span
46
46
  class:list={[
47
- 'pl-file-tree__target',
48
- entry.highlighted && 'pl-file-tree__target--highlighted',
47
+ 'pf-file-tree__target',
48
+ entry.highlighted && 'pf-file-tree__target--highlighted',
49
49
  ]}
50
50
  >
51
51
  {!entry.isPlaceholder && (
52
- <span aria-hidden="true" class="pl-file-tree__icon" data-kind={entry.kind}>
53
- <span class="pl-file-tree__icon-closed">
52
+ <span aria-hidden="true" class="pf-file-tree__icon" data-kind={entry.kind}>
53
+ <span class="pf-file-tree__icon-closed">
54
54
  <Icon name={icon.closed ?? icon.name} />
55
55
  </span>
56
- <span class="pl-file-tree__icon-open">
56
+ <span class="pf-file-tree__icon-open">
57
57
  <Icon name={icon.open ?? icon.name} />
58
58
  </span>
59
59
  </span>
60
60
  )}
61
- <span class="pl-file-tree__name">
62
- {!entry.isPlaceholder && <span class="pl-file-tree__sr-only">Directory </span>}
61
+ <span class="pf-file-tree__name">
62
+ {!entry.isPlaceholder && <span class="pf-file-tree__sr-only">Directory </span>}
63
63
  <Fragment set:html={entry.nameHtml} />
64
64
  </span>
65
65
  </span>
66
66
  {
67
67
  entry.commentHtml && (
68
- <span class="pl-file-tree__comment" set:html={entry.commentHtml} />
68
+ <span class="pf-file-tree__comment" set:html={entry.commentHtml} />
69
69
  )
70
70
  }
71
71
  </span>
72
72
  </summary>
73
- <ul class="pl-file-tree__list" role="list">
73
+ <ul class="pf-file-tree__list" role="list">
74
74
  {children.map((child) => <FileTreeItem entry={child} iconSet={iconSet} />)}
75
75
  </ul>
76
76
  </details>
77
77
  ) : (
78
- <span class="pl-file-tree__entry">
78
+ <span class="pf-file-tree__entry">
79
79
  <span
80
80
  class:list={[
81
- 'pl-file-tree__target',
82
- entry.highlighted && 'pl-file-tree__target--highlighted',
81
+ 'pf-file-tree__target',
82
+ entry.highlighted && 'pf-file-tree__target--highlighted',
83
83
  ]}
84
84
  >
85
85
  {!entry.isPlaceholder && (
86
- <span aria-hidden="true" class="pl-file-tree__icon" data-kind={entry.kind}>
86
+ <span aria-hidden="true" class="pf-file-tree__icon" data-kind={entry.kind}>
87
87
  {icon.light && icon.dark ? (
88
88
  <>
89
- <span class="pl-file-tree__icon-theme pl-file-tree__icon-theme--light">
89
+ <span class="pf-file-tree__icon-theme pf-file-tree__icon-theme--light">
90
90
  <Icon name={icon.light} />
91
91
  </span>
92
- <span class="pl-file-tree__icon-theme pl-file-tree__icon-theme--dark">
92
+ <span class="pf-file-tree__icon-theme pf-file-tree__icon-theme--dark">
93
93
  <Icon name={icon.dark} />
94
94
  </span>
95
95
  </>
@@ -98,11 +98,11 @@ const children = entry.children.length > 0 ? entry.children : [placeholderEntry]
98
98
  )}
99
99
  </span>
100
100
  )}
101
- <span class="pl-file-tree__name" set:html={entry.nameHtml} />
101
+ <span class="pf-file-tree__name" set:html={entry.nameHtml} />
102
102
  </span>
103
103
  {
104
104
  entry.commentHtml && (
105
- <span class="pl-file-tree__comment" set:html={entry.commentHtml} />
105
+ <span class="pf-file-tree__comment" set:html={entry.commentHtml} />
106
106
  )
107
107
  }
108
108
  </span>
@@ -118,13 +118,13 @@ const svgAttributes = {
118
118
  };
119
119
  ---
120
120
 
121
- <svg class:list={['pl-icon', className]} {...svgAttributes}>
121
+ <svg class:list={['pf-icon', className]} {...svgAttributes}>
122
122
  {title && <title>{title}</title>}
123
123
  <Fragment set:html={body} />
124
124
  </svg>
125
125
 
126
126
  <style>
127
- .pl-icon {
127
+ .pf-icon {
128
128
  display: inline-block;
129
129
  flex-shrink: 0;
130
130
  vertical-align: -0.125em;