@turnipxenon/pineapple 5.0.0 → 5.2.0-alpha.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.
- package/README.md +11 -11
- package/dist/remoteIndex.remote.d.ts +1 -0
- package/dist/remoteIndex.remote.d.ts.map +1 -1
- package/dist/remoteIndex.remote.js +1 -0
- package/dist/styles/color-tokens.css +2 -0
- package/dist/svelteIndex.svelte.d.ts +3 -0
- package/dist/svelteIndex.svelte.d.ts.map +1 -0
- package/dist/svelteIndex.svelte.js +13 -0
- package/dist/ui/components/FourPartCard.svelte +4 -0
- package/dist/ui/components/SortDropdown.svelte +50 -0
- package/dist/ui/components/SortDropdown.svelte.d.ts +9 -0
- package/dist/ui/components/SortDropdown.svelte.d.ts.map +1 -0
- package/dist/ui/components/TagFilter.svelte +32 -0
- package/dist/ui/components/TagFilter.svelte.d.ts +9 -0
- package/dist/ui/components/TagFilter.svelte.d.ts.map +1 -0
- package/dist/ui/components/accordion/PinyaAccordion.svelte +5 -3
- package/dist/ui/components/accordion/PinyaAccordion.svelte.d.ts.map +1 -1
- package/dist/ui/components/index.d.ts +2 -0
- package/dist/ui/components/index.d.ts.map +1 -1
- package/dist/ui/components/index.js +2 -0
- package/dist/ui/components/project-date-badge/ProjectDateBadge.svelte +160 -0
- package/dist/ui/components/project-date-badge/ProjectDateBadge.svelte.d.ts +5 -0
- package/dist/ui/components/project-date-badge/ProjectDateBadge.svelte.d.ts.map +1 -0
- package/dist/ui/components/project-date-badge/ProjectDateBageProps.d.ts +8 -0
- package/dist/ui/components/project-date-badge/ProjectDateBageProps.d.ts.map +1 -0
- package/dist/ui/components/project-date-badge/ProjectDateBageProps.js +1 -0
- package/dist/ui/elements/CodeBlock/CodeBlock.svelte +12 -6
- package/dist/ui/elements/PineappleSwitch.svelte +2 -2
- package/dist/ui/elements/PineappleSwitch.svelte.d.ts +1 -1
- package/dist/ui/elements/PineappleSwitch.svelte.d.ts.map +1 -1
- package/dist/ui/elements/pinya-combobox/PinyaCombobox.svelte +169 -26
- package/dist/ui/elements/pinya-combobox/PinyaCombobox.svelte.d.ts.map +1 -1
- package/dist/ui/elements/pinya-combobox/PinyaComboboxProps.d.ts +6 -7
- package/dist/ui/elements/pinya-combobox/PinyaComboboxProps.d.ts.map +1 -1
- package/dist/ui/modules/experience/ExampleJob1.svelte +79 -0
- package/dist/ui/modules/experience/ExampleJob1.svelte.d.ts +26 -0
- package/dist/ui/modules/experience/ExampleJob1.svelte.d.ts.map +1 -0
- package/dist/ui/modules/experience/ExampleJob2.svelte +74 -0
- package/dist/ui/modules/experience/ExampleJob2.svelte.d.ts +25 -0
- package/dist/ui/modules/experience/ExampleJob2.svelte.d.ts.map +1 -0
- package/dist/ui/modules/experience/index.d.ts +3 -0
- package/dist/ui/modules/experience/index.d.ts.map +1 -0
- package/dist/ui/modules/experience/index.js +2 -0
- package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte +7 -9
- package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte.d.ts.map +1 -1
- package/dist/ui/modules/projects/Hepcat.svelte +15 -1
- package/dist/ui/modules/projects/Hepcat.svelte.d.ts +5 -1
- package/dist/ui/modules/projects/Hepcat.svelte.d.ts.map +1 -1
- package/dist/ui/modules/projects/ObsidianPublisher.svelte +73 -0
- package/dist/ui/modules/projects/ObsidianPublisher.svelte.d.ts +26 -0
- package/dist/ui/modules/projects/ObsidianPublisher.svelte.d.ts.map +1 -0
- package/dist/ui/modules/projects/Pengi.svelte +15 -1
- package/dist/ui/modules/projects/Pengi.svelte.d.ts +6 -1
- package/dist/ui/modules/projects/Pengi.svelte.d.ts.map +1 -1
- package/dist/ui/modules/projects/Soulwork.svelte +14 -1
- package/dist/ui/modules/projects/Soulwork.svelte.d.ts +5 -1
- package/dist/ui/modules/projects/Soulwork.svelte.d.ts.map +1 -1
- package/dist/ui/modules/projects/ThisWebpage.svelte +20 -6
- package/dist/ui/modules/projects/ThisWebpage.svelte.d.ts +5 -1
- package/dist/ui/modules/projects/ThisWebpage.svelte.d.ts.map +1 -1
- package/dist/ui/modules/projects/index.d.ts.map +1 -1
- package/dist/ui/modules/universal-overlay/UniversalOverlay.svelte +0 -1
- package/dist/ui/modules/universal-overlay/UniversalOverlay.svelte.d.ts.map +1 -1
- package/dist/ui/templates/SeaweedLayout/EntryGroup.svelte +223 -29
- package/dist/ui/templates/SeaweedLayout/EntryGroup.svelte.d.ts.map +1 -1
- package/dist/ui/templates/SeaweedLayout/ProjectComponentProps.d.ts +2 -0
- package/dist/ui/templates/SeaweedLayout/ProjectComponentProps.d.ts.map +1 -1
- package/dist/ui/templates/SeaweedLayout/ProjectGroupConfig.svelte +1 -3
- package/dist/ui/templates/SeaweedLayout/SeaweedLayout.svelte +188 -44
- package/dist/ui/templates/SeaweedLayout/SeaweedLayout.svelte.d.ts.map +1 -1
- package/dist/ui/templates/SeaweedLayout/props.d.ts +23 -2
- package/dist/ui/templates/SeaweedLayout/props.d.ts.map +1 -1
- package/dist/ui/templates/SeaweedLayout/props.js +8 -1
- package/dist/util/getCommitDate.remote.d.ts +14 -0
- package/dist/util/getCommitDate.remote.d.ts.map +1 -0
- package/dist/util/getCommitDate.remote.js +133 -0
- package/package.json +8 -2
|
@@ -1,42 +1,132 @@
|
|
|
1
|
-
<!-- TODO: Documentation: consider documentation showcase -->
|
|
2
|
-
|
|
3
1
|
<script lang="ts" generics="T extends string">
|
|
4
2
|
import type { PinyaComboboxProps } from "./PinyaComboboxProps";
|
|
5
3
|
import { Combobox } from "melt/builders";
|
|
4
|
+
import { SvelteSet } from "svelte/reactivity";
|
|
6
5
|
|
|
7
6
|
let {
|
|
8
7
|
// todo: fix this
|
|
9
|
-
|
|
10
|
-
value = $bindable(),
|
|
8
|
+
value = $bindable([]),
|
|
11
9
|
onValueChange = () => {
|
|
12
10
|
},
|
|
13
|
-
|
|
11
|
+
multiple = false,
|
|
12
|
+
name = "",
|
|
14
13
|
...props
|
|
15
14
|
}: PinyaComboboxProps<T> = $props();
|
|
16
15
|
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
console.log("change", e);
|
|
20
|
-
onValueChange({
|
|
21
|
-
value: e,
|
|
22
|
-
items: props.data
|
|
23
|
-
});
|
|
24
|
-
};
|
|
16
|
+
const uid = $props.id();
|
|
17
|
+
const _name = $derived(name ? name : `combobox-${uid}`);
|
|
25
18
|
|
|
26
|
-
const combobox = new Combobox
|
|
27
|
-
value:
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
const combobox = $derived(new Combobox({
|
|
20
|
+
value: (() => {
|
|
21
|
+
if (value) {
|
|
22
|
+
if (multiple) {
|
|
23
|
+
return value;
|
|
24
|
+
} else if (value.length > 0) {
|
|
25
|
+
return value[0];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return undefined;
|
|
30
|
+
})(),
|
|
31
|
+
// todo: investigate later why typescript says it's the wrong type?
|
|
32
|
+
onValueChange: (t: T | SvelteSet<T> | undefined) => {
|
|
33
|
+
if (t instanceof SvelteSet) {
|
|
34
|
+
if (t.size > 0) {
|
|
35
|
+
value = [...t];
|
|
36
|
+
} else {
|
|
37
|
+
value = [];
|
|
38
|
+
}
|
|
39
|
+
} else if (t) {
|
|
40
|
+
value = [t];
|
|
41
|
+
} else {
|
|
42
|
+
value = [];
|
|
43
|
+
}
|
|
44
|
+
onValueChange?.(value);
|
|
30
45
|
},
|
|
31
|
-
|
|
32
|
-
|
|
46
|
+
inputValue: (() => {
|
|
47
|
+
if (value.length === props.data.length) {
|
|
48
|
+
return "All";
|
|
49
|
+
}
|
|
50
|
+
if (value.length === 0) {
|
|
51
|
+
return "---";
|
|
52
|
+
}
|
|
53
|
+
return props.data.filter(d => value.includes(d.value))
|
|
54
|
+
.map(d => d.label)
|
|
55
|
+
.join(", ");
|
|
56
|
+
})(),
|
|
57
|
+
multiple
|
|
58
|
+
}));
|
|
59
|
+
|
|
60
|
+
let inputValue = $state("");
|
|
61
|
+
let wrapperEl: HTMLDivElement | undefined = $state();
|
|
62
|
+
|
|
63
|
+
const onfocusin = (event: FocusEvent) => {
|
|
64
|
+
// Don't clear filter when navigating to/between options
|
|
65
|
+
const target = event.target as HTMLElement;
|
|
66
|
+
if (!target?.hasAttribute('data-melt-combobox-option')) {
|
|
67
|
+
inputValue = "";
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const onblur = (event: FocusEvent) => {
|
|
72
|
+
// Don't reset if focus moved to another element within the wrapper
|
|
73
|
+
if (wrapperEl && event.relatedTarget instanceof Node && wrapperEl.contains(event.relatedTarget)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (value.length === props.data.length) {
|
|
78
|
+
inputValue = "All";
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (value.length === 0) {
|
|
82
|
+
inputValue = "---";
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
inputValue = props.data.filter(d => value.includes(d.value))
|
|
87
|
+
.map(d => d.label)
|
|
88
|
+
.join(", ");
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const onOptionKeydown = (event: KeyboardEvent, index: number) => {
|
|
92
|
+
const options = wrapperEl?.querySelectorAll<HTMLElement>('[data-melt-combobox-option]');
|
|
93
|
+
if (!options) return;
|
|
94
|
+
|
|
95
|
+
if (event.key === 'ArrowDown') {
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
options[index + 1]?.focus();
|
|
98
|
+
} else if (event.key === 'ArrowUp') {
|
|
99
|
+
event.preventDefault();
|
|
100
|
+
if (index === 0) {
|
|
101
|
+
wrapperEl?.querySelector<HTMLElement>('input')?.focus();
|
|
102
|
+
} else {
|
|
103
|
+
options[index - 1]?.focus();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const onInputKeydown = (event: KeyboardEvent) => {
|
|
109
|
+
if (event.key === 'Tab' && !event.shiftKey && combobox.open) {
|
|
110
|
+
event.preventDefault();
|
|
111
|
+
const firstOption = wrapperEl?.querySelector('[data-melt-combobox-option]') as HTMLElement | null;
|
|
112
|
+
if (firstOption) {
|
|
113
|
+
firstOption.focus();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Delegate to Melt's keydown handler for all other keys
|
|
118
|
+
(combobox.input as { onkeydown?: (e: KeyboardEvent) => void }).onkeydown?.(event);
|
|
119
|
+
};
|
|
33
120
|
|
|
34
121
|
const filtered = $derived.by(() => {
|
|
35
122
|
if (!combobox.touched) return props.data;
|
|
36
123
|
return props.data.filter((o) =>
|
|
37
|
-
o.value.toLowerCase().includes(
|
|
124
|
+
o.value.toLowerCase().includes(inputValue.trim().toLowerCase())
|
|
125
|
+
|| o.label.toLowerCase().includes(inputValue.trim().toLowerCase())
|
|
38
126
|
);
|
|
39
127
|
});
|
|
128
|
+
|
|
129
|
+
const clearAll = () => value = [];
|
|
40
130
|
</script>
|
|
41
131
|
|
|
42
132
|
<!--
|
|
@@ -46,10 +136,29 @@ Melt-based Combobox
|
|
|
46
136
|
When migrating from Skeleton to Melt, change the value is no longer an array T[] but it's now T | undefined
|
|
47
137
|
-->
|
|
48
138
|
|
|
49
|
-
<div
|
|
50
|
-
|
|
139
|
+
<div
|
|
140
|
+
class={`pinya-combobox-wrapper ${props.class}`}
|
|
141
|
+
{...props}
|
|
142
|
+
onfocusin={onfocusin}
|
|
143
|
+
onfocusout={onblur}
|
|
144
|
+
bind:this={wrapperEl}
|
|
145
|
+
>
|
|
146
|
+
<div class="label-section">
|
|
147
|
+
<label {...combobox.label} for={_name}>{props.label}</label>
|
|
148
|
+
{#if value.length > 0 && multiple}
|
|
149
|
+
<button class="clear-btn" onclick={clearAll}>Clear all</button>
|
|
150
|
+
{:else }
|
|
151
|
+
<button class="clear-btn invisible" onclick={clearAll}>Clear all</button>
|
|
152
|
+
{/if}
|
|
153
|
+
</div>
|
|
51
154
|
<div class="pinya-combobox-control">
|
|
52
|
-
<input
|
|
155
|
+
<input
|
|
156
|
+
{...combobox.input}
|
|
157
|
+
disabled={props.disabled}
|
|
158
|
+
name={_name}
|
|
159
|
+
bind:value={inputValue}
|
|
160
|
+
onkeydown={onInputKeydown}
|
|
161
|
+
/>
|
|
53
162
|
<button class="size-[3rem]" {...combobox.trigger} disabled={props.disabled}>
|
|
54
163
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="opacity: 0.5" class="size-[2rem] m-auto">
|
|
55
164
|
<path d="m6 9 6 6 6-6"></path>
|
|
@@ -59,13 +168,13 @@ When migrating from Skeleton to Melt, change the value is no longer an array T[]
|
|
|
59
168
|
|
|
60
169
|
|
|
61
170
|
<div {...combobox.content}>
|
|
62
|
-
{#each filtered as option (option)}
|
|
63
|
-
<
|
|
171
|
+
{#each filtered as option, i (option)}
|
|
172
|
+
<button {...combobox.getOption(option.value)} tabindex="0" onkeydown={(e) => onOptionKeydown(e, i)}>
|
|
64
173
|
{option.label}
|
|
65
174
|
{#if combobox.isSelected(option.value)}
|
|
66
175
|
✓
|
|
67
176
|
{/if}
|
|
68
|
-
</
|
|
177
|
+
</button>
|
|
69
178
|
{:else}
|
|
70
179
|
<span>No results found</span>
|
|
71
180
|
{/each}
|
|
@@ -95,11 +204,20 @@ When migrating from Skeleton to Melt, change the value is no longer an array T[]
|
|
|
95
204
|
}
|
|
96
205
|
[data-melt-combobox-content][data-open] {
|
|
97
206
|
display: flex;
|
|
207
|
+
overflow-y: auto;
|
|
208
|
+
max-height: 8lh;
|
|
98
209
|
}
|
|
99
210
|
[data-melt-combobox-content] [data-melt-combobox-option] {
|
|
100
211
|
padding-block: calc(var(--spacing) * 1);
|
|
101
212
|
padding-inline: calc(var(--spacing) * 4);
|
|
102
213
|
border-radius: var(--radius-lg);
|
|
214
|
+
background: none;
|
|
215
|
+
border: none;
|
|
216
|
+
width: 100%;
|
|
217
|
+
text-align: left;
|
|
218
|
+
font: inherit;
|
|
219
|
+
color: inherit;
|
|
220
|
+
cursor: pointer;
|
|
103
221
|
}
|
|
104
222
|
[data-melt-combobox-content] [data-melt-combobox-option][aria-selected=true] {
|
|
105
223
|
background-color: light-dark(var(--color-secondary-400), var(--color-secondary-600));
|
|
@@ -108,6 +226,7 @@ When migrating from Skeleton to Melt, change the value is no longer an array T[]
|
|
|
108
226
|
.pinya-combobox-wrapper {
|
|
109
227
|
display: flex;
|
|
110
228
|
flex-direction: column;
|
|
229
|
+
gap: 0.2lh;
|
|
111
230
|
}
|
|
112
231
|
|
|
113
232
|
.pinya-combobox-control {
|
|
@@ -128,4 +247,28 @@ When migrating from Skeleton to Melt, change the value is no longer an array T[]
|
|
|
128
247
|
text-overflow: ellipsis;
|
|
129
248
|
padding: var(--spacing-2) var(--spacing-4);
|
|
130
249
|
padding-right: 0;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.clear-btn {
|
|
253
|
+
font-size: 0.75rem;
|
|
254
|
+
padding: 0.25rem 0.5rem;
|
|
255
|
+
border-radius: var(--radius-md);
|
|
256
|
+
border: 1px solid var(--color-primary-500);
|
|
257
|
+
background: transparent;
|
|
258
|
+
color: var(--color-primary-500);
|
|
259
|
+
cursor: pointer;
|
|
260
|
+
transition: background-color 0.2s;
|
|
261
|
+
}
|
|
262
|
+
.clear-btn.invisible {
|
|
263
|
+
pointer-events: none;
|
|
264
|
+
opacity: 0;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.clear-btn:hover {
|
|
268
|
+
background: var(--color-primary-100);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.label-section {
|
|
272
|
+
display: flex;
|
|
273
|
+
gap: 0.5em;
|
|
131
274
|
}</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinyaCombobox.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/elements/pinya-combobox/PinyaCombobox.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"PinyaCombobox.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/elements/pinya-combobox/PinyaCombobox.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAG7F,iBAAS,QAAQ,CAAC,CAAC,SAAS,MAAM;WAwKL,kBAAkB,CAAC,CAAC,CAAC;;;;;EAAiF;AACnI,cAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM;IACpC,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;CACV;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3Y,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1I,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD;;;;GAIG;AACH,QAAA,MAAM,aAAa,EAAE,qBAAmC,CAAC;AACvC,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,eAAe,aAAa,CAAC"}
|
|
@@ -9,13 +9,12 @@ export interface ValueChangeDetails<T extends string> {
|
|
|
9
9
|
}
|
|
10
10
|
export type PinyaComboboxProps<T extends string> = {
|
|
11
11
|
data: GenericComboboxItem<T>[];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
placeholder
|
|
16
|
-
onValueChange?: (selectedList:
|
|
17
|
-
onValueChangeBase?: (e: T | undefined) => void;
|
|
18
|
-
contentZIndex?: string;
|
|
12
|
+
value?: T[];
|
|
13
|
+
label?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
onValueChange?: (selectedList: T[]) => void;
|
|
19
17
|
disabled?: boolean;
|
|
18
|
+
multiple?: boolean;
|
|
20
19
|
} & HTMLAttributes<HTMLDivElement>;
|
|
21
20
|
//# sourceMappingURL=PinyaComboboxProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinyaComboboxProps.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/elements/pinya-combobox/PinyaComboboxProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM;IACnD,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAA;CAC/B;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAElD,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"PinyaComboboxProps.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/elements/pinya-combobox/PinyaComboboxProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM;IACnD,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;IACrB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAA;CAC/B;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAElD,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAA;IAE9B,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<!-- TODO: Documentation: consider documentation showcase -->
|
|
2
|
+
|
|
3
|
+
<script module lang="ts">
|
|
4
|
+
import { default as FourPartCard } from "../../components/FourPartCard.svelte";
|
|
5
|
+
import { TextChip } from "../../elements/TextChip";
|
|
6
|
+
import type { ProjectComponentProps } from "../../templates/SeaweedLayout/ProjectComponentProps";
|
|
7
|
+
|
|
8
|
+
const key = "Software Engineer at Old Company";
|
|
9
|
+
const dateStarted = "2022-01-01";
|
|
10
|
+
const dateFinished = "2024-12-31";
|
|
11
|
+
const tags = ["typescript", "svelte", "web"];
|
|
12
|
+
|
|
13
|
+
// note that we can cheat the regex by doing this!
|
|
14
|
+
// qt-web
|
|
15
|
+
export { component, key, dateStarted, dateFinished, tags };
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script lang="ts">
|
|
19
|
+
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
{#snippet component(props: ProjectComponentProps)}
|
|
23
|
+
<FourPartCard>
|
|
24
|
+
{#snippet headerCover()}
|
|
25
|
+
<div class="company-logo-placeholder">
|
|
26
|
+
<h1>CX</h1>
|
|
27
|
+
</div>
|
|
28
|
+
{/snippet}
|
|
29
|
+
|
|
30
|
+
{#snippet header()}
|
|
31
|
+
<h3>Software Engineer</h3>
|
|
32
|
+
<h4>Old Company</h4>
|
|
33
|
+
<p class="date-range">Jan 2022 - Dec 2024</p>
|
|
34
|
+
{/snippet}
|
|
35
|
+
|
|
36
|
+
<p>
|
|
37
|
+
<span class="qt-typescript">TypeScript</span> and
|
|
38
|
+
<span class="qt-svelte">Svelte</span>. Why would anyone hire that though?
|
|
39
|
+
</p>
|
|
40
|
+
|
|
41
|
+
<div class="text-chip-container">
|
|
42
|
+
{#each tags as t (t)}
|
|
43
|
+
<TextChip queryClass="qt-{t}">{t}</TextChip>
|
|
44
|
+
{/each}
|
|
45
|
+
</div>
|
|
46
|
+
</FourPartCard>
|
|
47
|
+
{/snippet}
|
|
48
|
+
|
|
49
|
+
<style>
|
|
50
|
+
:global {
|
|
51
|
+
.company-logo-placeholder {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
width: 100%;
|
|
56
|
+
height: 100%;
|
|
57
|
+
min-height: 150px;
|
|
58
|
+
background: linear-gradient(135deg, var(--color-primary-500), var(--color-secondary-500));
|
|
59
|
+
color: white;
|
|
60
|
+
font-size: 2rem;
|
|
61
|
+
font-weight: bold;
|
|
62
|
+
border-top-right-radius: var(--radius-xl);
|
|
63
|
+
border-top-left-radius: var(--radius-xl);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.date-range {
|
|
69
|
+
font-size: 0.875rem;
|
|
70
|
+
color: var(--color-text-secondary);
|
|
71
|
+
margin-bottom: 0.5rem;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
h4 {
|
|
75
|
+
margin-top: 0.25rem;
|
|
76
|
+
margin-bottom: 0.5rem;
|
|
77
|
+
color: var(--color-text-secondary);
|
|
78
|
+
}
|
|
79
|
+
</style>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ProjectComponentProps } from "../../templates/SeaweedLayout/ProjectComponentProps";
|
|
2
|
+
declare const key = "Software Engineer at Old Company";
|
|
3
|
+
declare const dateStarted = "2022-01-01";
|
|
4
|
+
declare const dateFinished = "2024-12-31";
|
|
5
|
+
declare const tags: string[];
|
|
6
|
+
export { component, key, dateStarted, dateFinished, tags };
|
|
7
|
+
declare const component: (props: ProjectComponentProps) => ReturnType<import("svelte").Snippet>;
|
|
8
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
9
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
10
|
+
$$bindings?: Bindings;
|
|
11
|
+
} & Exports;
|
|
12
|
+
(internal: unknown, props: {
|
|
13
|
+
$$events?: Events;
|
|
14
|
+
$$slots?: Slots;
|
|
15
|
+
}): Exports & {
|
|
16
|
+
$set?: any;
|
|
17
|
+
$on?: any;
|
|
18
|
+
};
|
|
19
|
+
z_$$bindings?: Bindings;
|
|
20
|
+
}
|
|
21
|
+
declare const ExampleJob1: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
22
|
+
[evt: string]: CustomEvent<any>;
|
|
23
|
+
}, {}, {}, string>;
|
|
24
|
+
type ExampleJob1 = InstanceType<typeof ExampleJob1>;
|
|
25
|
+
export default ExampleJob1;
|
|
26
|
+
//# sourceMappingURL=ExampleJob1.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExampleJob1.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/modules/experience/ExampleJob1.svelte.ts"],"names":[],"mappings":"AAKC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAEnG,QAAA,MAAM,GAAG,qCAAqC,CAAC;AAC/C,QAAA,MAAM,WAAW,eAAe,CAAC;AACjC,QAAA,MAAM,YAAY,eAAe,CAAC;AAClC,QAAA,MAAM,IAAI,UAAkC,CAAC;AAI7C,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACzD,QAAA,MAAM,SAAS,GAAyB,OAAO,qBAAqB,KAAqB,UAAU,CAAC,OAAO,QAAQ,EAAE,OAAO,CAyBlG,CAAC;AAe9B,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,WAAW;;kBAA+E,CAAC;AAC/E,KAAK,WAAW,GAAG,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<!-- TODO: Documentation: consider documentation showcase -->
|
|
2
|
+
|
|
3
|
+
<script module lang="ts">
|
|
4
|
+
import type { ProjectComponentProps } from "../../templates/SeaweedLayout/ProjectComponentProps";
|
|
5
|
+
import { default as FourPartCard } from "../../components/FourPartCard.svelte";
|
|
6
|
+
import { TextChip } from "../../elements/TextChip";
|
|
7
|
+
|
|
8
|
+
const key = "Senior Developer at Current Company";
|
|
9
|
+
const dateStarted = "2024-01-01";
|
|
10
|
+
// No dateFinished export - indicates ongoing position
|
|
11
|
+
// qt-ongoing, qt-systems, qt-performance, qt-infrastructure
|
|
12
|
+
const tags = ["ongoing", "rust", "systems", "performance", "infrastructure"];
|
|
13
|
+
export { component, key, dateStarted, tags };
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
{#snippet component(props: ProjectComponentProps)}
|
|
17
|
+
<FourPartCard>
|
|
18
|
+
{#snippet headerCover()}
|
|
19
|
+
<div class="company-logo-placeholder">
|
|
20
|
+
<h1>CC</h1>
|
|
21
|
+
</div>
|
|
22
|
+
{/snippet}
|
|
23
|
+
|
|
24
|
+
{#snippet header()}
|
|
25
|
+
<h3>Senior Developer</h3>
|
|
26
|
+
<h4>Current Company</h4>
|
|
27
|
+
<p class="date-range">Jan 2024 - Present</p>
|
|
28
|
+
{/snippet}
|
|
29
|
+
|
|
30
|
+
<p>
|
|
31
|
+
Currently working on high-performance systems using
|
|
32
|
+
<span class="qt-rust">Rust</span>.
|
|
33
|
+
Leading development of critical infrastructure components and mentoring junior developers to preach our love of
|
|
34
|
+
<span class="qt-rust">Rust</span>. Did I forget to mention <span class="qt-rust">RUST</span>?!?!
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
<div class="text-chip-container">
|
|
38
|
+
{#each tags as t (t)}
|
|
39
|
+
<TextChip queryClass="qt-{t}">{t}</TextChip>
|
|
40
|
+
{/each}
|
|
41
|
+
</div>
|
|
42
|
+
</FourPartCard>
|
|
43
|
+
{/snippet}
|
|
44
|
+
|
|
45
|
+
<style>
|
|
46
|
+
.company-logo-placeholder {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
width: 100%;
|
|
51
|
+
height: 100%;
|
|
52
|
+
min-height: 150px;
|
|
53
|
+
background: linear-gradient(135deg, var(--color-secondary-500), var(--color-tertiary-500));
|
|
54
|
+
color: white;
|
|
55
|
+
font-size: 2rem;
|
|
56
|
+
font-weight: bold;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.date-range {
|
|
60
|
+
font-size: 0.875rem;
|
|
61
|
+
color: var(--color-text-secondary);
|
|
62
|
+
margin-bottom: 0.5rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
h4 {
|
|
66
|
+
margin-top: 0.25rem;
|
|
67
|
+
margin-bottom: 0.5rem;
|
|
68
|
+
color: var(--color-text-secondary);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.ongoing-badge {
|
|
72
|
+
margin-top: 0.5rem;
|
|
73
|
+
}
|
|
74
|
+
</style>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ProjectComponentProps } from "../../templates/SeaweedLayout/ProjectComponentProps";
|
|
2
|
+
declare const component: (props: ProjectComponentProps) => ReturnType<import("svelte").Snippet>;
|
|
3
|
+
declare const key = "Senior Developer at Current Company";
|
|
4
|
+
declare const dateStarted = "2024-01-01";
|
|
5
|
+
declare const tags: string[];
|
|
6
|
+
export { component, key, dateStarted, tags };
|
|
7
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
8
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
9
|
+
$$bindings?: Bindings;
|
|
10
|
+
} & Exports;
|
|
11
|
+
(internal: unknown, props: {
|
|
12
|
+
$$events?: Events;
|
|
13
|
+
$$slots?: Slots;
|
|
14
|
+
}): Exports & {
|
|
15
|
+
$set?: any;
|
|
16
|
+
$on?: any;
|
|
17
|
+
};
|
|
18
|
+
z_$$bindings?: Bindings;
|
|
19
|
+
}
|
|
20
|
+
declare const ExampleJob2: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
}, {}, {}, string>;
|
|
23
|
+
type ExampleJob2 = InstanceType<typeof ExampleJob2>;
|
|
24
|
+
export default ExampleJob2;
|
|
25
|
+
//# sourceMappingURL=ExampleJob2.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExampleJob2.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/modules/experience/ExampleJob2.svelte.ts"],"names":[],"mappings":"AAGC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAGnG,QAAA,MAAM,SAAS,GAAyB,OAAO,qBAAqB,KAAqB,UAAU,CAAC,OAAO,QAAQ,EAAE,OAAO,CA2BhG,CAAC;AAE7B,QAAA,MAAM,GAAG,wCAAwC,CAAC;AAClD,QAAA,MAAM,WAAW,eAAe,CAAC;AAGjC,QAAA,MAAM,IAAI,UAAkE,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAW9C,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,WAAW;;kBAA+E,CAAC;AAC/E,KAAK,WAAW,GAAG,YAAY,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/modules/experience/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAC"}
|
|
@@ -16,16 +16,15 @@
|
|
|
16
16
|
{ label: "Tagalog", value: "tl" }
|
|
17
17
|
];
|
|
18
18
|
|
|
19
|
-
let selectedCountry = $state(getLocale());
|
|
19
|
+
let selectedCountry = $state([getLocale()]);
|
|
20
20
|
|
|
21
|
-
const onValueChange = (e:
|
|
22
|
-
if (!e.
|
|
21
|
+
const onValueChange = (e: ComboxData["value"][] | undefined) => {
|
|
22
|
+
if (!e || e.length === 0) return;
|
|
23
23
|
|
|
24
|
-
const data = comboboxData.
|
|
25
|
-
if (data) {
|
|
26
|
-
selectedCountry = data.value;
|
|
24
|
+
const data = comboboxData.filter(v => e.includes(v.value));
|
|
25
|
+
if (data && data.length > 0) {
|
|
27
26
|
const pathname = deLocalizeHref(location.href);
|
|
28
|
-
location.href = localizeHref(pathname, { locale: data.value });
|
|
27
|
+
location.href = localizeHref(pathname, { locale: data[0].value });
|
|
29
28
|
}
|
|
30
29
|
};
|
|
31
30
|
|
|
@@ -34,8 +33,7 @@
|
|
|
34
33
|
|
|
35
34
|
<PinyaCombobox
|
|
36
35
|
data={comboboxData}
|
|
37
|
-
value={selectedCountry}
|
|
38
|
-
defaultValue={selectedCountry}
|
|
36
|
+
bind:value={selectedCountry}
|
|
39
37
|
label="Select Language"
|
|
40
38
|
placeholder="Select Language"
|
|
41
39
|
{onValueChange}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguagePicker.svelte.d.ts","sourceRoot":"","sources":["../../../../../src/lib/ui/modules/modals/general-settings/LanguagePicker.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LanguagePicker.svelte.d.ts","sourceRoot":"","sources":["../../../../../src/lib/ui/modules/modals/general-settings/LanguagePicker.svelte.ts"],"names":[],"mappings":"AA4CA,QAAA,MAAM,cAAc,2DAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
<script module lang="ts">
|
|
4
4
|
import HeaderHepCat from "../../../assets/temp/header-hep-cat.mp4";
|
|
5
5
|
import BitbucketIcon from "../../../assets/icons/bitbucket-icon.svg";
|
|
6
|
+
import ProjectDateBadge from "../../components/project-date-badge/ProjectDateBadge.svelte";
|
|
6
7
|
import type { ProjectComponentProps } from "../../templates/SeaweedLayout/ProjectComponentProps";
|
|
7
8
|
import { default as FourPartCard } from "../../components/FourPartCard.svelte";
|
|
8
9
|
import { default as ImageIcon } from "../../elements/ImageIcon.svelte";
|
|
@@ -11,7 +12,12 @@
|
|
|
11
12
|
import { ButtonVariant } from "../../elements/PinyaButtonCommon/ButtonVariant";
|
|
12
13
|
|
|
13
14
|
const key = "Hepcat";
|
|
14
|
-
|
|
15
|
+
const dateStarted = "2020-01-01";
|
|
16
|
+
const dateFinished = "2020-04-15";
|
|
17
|
+
const priority = 100;
|
|
18
|
+
const tags = ["unity", "csharp", "game", "rhythm", "rpgmaker"];
|
|
19
|
+
// type SnippetMeta at src/lib/ui/templates/SeaweedLayout/props.ts:6
|
|
20
|
+
export { component, key, dateStarted, dateFinished, tags, priority };
|
|
15
21
|
</script>
|
|
16
22
|
|
|
17
23
|
{#snippet component(props: ProjectComponentProps)}
|
|
@@ -48,6 +54,13 @@
|
|
|
48
54
|
files.
|
|
49
55
|
</p>
|
|
50
56
|
|
|
57
|
+
<ProjectDateBadge
|
|
58
|
+
dateStarted={props.snippetMeta?.dateStarted}
|
|
59
|
+
dateFinished={props.snippetMeta?.dateFinished}
|
|
60
|
+
isOngoing={props.snippetMeta?.tags?.includes("ongoing") ?? false}
|
|
61
|
+
commitCount={props.snippetMeta?.commitCount}
|
|
62
|
+
gitRepoLink={props.snippetMeta?.gitRepoLink}
|
|
63
|
+
/>
|
|
51
64
|
|
|
52
65
|
<section class="game-link-section">
|
|
53
66
|
<PinyaButton
|
|
@@ -63,6 +76,7 @@
|
|
|
63
76
|
<ImageIcon alt="itch.io icon" src={ItchLogoHotLink}></ImageIcon>
|
|
64
77
|
</PinyaButton>
|
|
65
78
|
</section>
|
|
79
|
+
|
|
66
80
|
</FourPartCard>
|
|
67
81
|
{/snippet}
|
|
68
82
|
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { ProjectComponentProps } from "../../templates/SeaweedLayout/ProjectComponentProps";
|
|
2
2
|
declare const component: (props: ProjectComponentProps) => ReturnType<import("svelte").Snippet>;
|
|
3
3
|
declare const key = "Hepcat";
|
|
4
|
-
|
|
4
|
+
declare const dateStarted = "2020-01-01";
|
|
5
|
+
declare const dateFinished = "2020-04-15";
|
|
6
|
+
declare const priority = 100;
|
|
7
|
+
declare const tags: string[];
|
|
8
|
+
export { component, key, dateStarted, dateFinished, tags, priority };
|
|
5
9
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
6
10
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
7
11
|
$$bindings?: Bindings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hepcat.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/modules/projects/Hepcat.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Hepcat.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/modules/projects/Hepcat.svelte.ts"],"names":[],"mappings":"AAMC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAMnG,QAAA,MAAM,SAAS,GAAyB,OAAO,qBAAqB,KAAqB,UAAU,CAAC,OAAO,QAAQ,EAAE,OAAO,CA0ChG,CAAC;AAE7B,QAAA,MAAM,GAAG,WAAW,CAAC;AACrB,QAAA,MAAM,WAAW,eAAe,CAAC;AACjC,QAAA,MAAM,YAAY,eAAe,CAAC;AAClC,QAAA,MAAM,QAAQ,MAAM,CAAC;AACrB,QAAA,MAAM,IAAI,UAAoD,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAYtE,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,MAAM;;kBAA+E,CAAC;AAC1E,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,eAAe,MAAM,CAAC"}
|