feat: docker compose maybe

This commit is contained in:
2023-11-13 16:10:04 -05:00
parent 180b261e40
commit b625ccd8d6
8031 changed files with 2182966 additions and 0 deletions

View File

@ -0,0 +1,27 @@
<script>import { setContext } from "svelte";
export let multiple = false;
export let spacing = "space-y-1";
export let rounded = "rounded-token";
export let active = "variant-filled";
export let hover = "hover:variant-soft";
export let padding = "px-4 py-2";
export let regionLead = "";
export let regionDefault = "";
export let regionTrail = "";
export let labelledby = "";
setContext("multiple", multiple);
setContext("rounded", rounded);
setContext("active", active);
setContext("hover", hover);
setContext("padding", padding);
setContext("regionLead", regionLead);
setContext("regionDefault", regionDefault);
setContext("regionTrail", regionTrail);
const cBase = "";
$:
classesBase = `${cBase} ${spacing} ${rounded} ${$$props.class ?? ""}`;
</script>
<div class="listbox {classesBase}" role="listbox" aria-labelledby={labelledby} data-testid="listbox">
<slot />
</div>

View File

@ -0,0 +1,38 @@
import { SvelteComponentTyped } from "svelte";
declare const __propDef: {
props: {
[x: string]: any;
/** Enable selection of multiple items.*/
multiple?: boolean | undefined;
/** Provide class to set the vertical spacing style.*/
spacing?: string | undefined;
/** Provide classes to set the listbox box radius styles.*/
rounded?: string | undefined;
/** Provide classes to set the listbox item active background styles.*/
active?: string | undefined;
/** Provide classes to set the listbox item hover background styles.*/
hover?: string | undefined;
/** Provide classes to set the listbox item padding styles.*/
padding?: string | undefined;
/** Provide arbitrary classes to style the lead region.*/
regionLead?: string | undefined;
/** Provide arbitrary classes to the default region.*/
regionDefault?: string | undefined;
/** Provide arbitrary classes to the trail region.*/
regionTrail?: string | undefined;
/** Provide the ARIA labelledby value.*/
labelledby?: string | undefined;
};
events: {
[evt: string]: CustomEvent<any>;
};
slots: {
default: {};
};
};
export type ListBoxProps = typeof __propDef.props;
export type ListBoxEvents = typeof __propDef.events;
export type ListBoxSlots = typeof __propDef.slots;
export default class ListBox extends SvelteComponentTyped<ListBoxProps, ListBoxEvents, ListBoxSlots> {
}
export {};

View File

@ -0,0 +1,113 @@
<script>import { getContext } from "svelte";
export let group;
export let name;
export let value;
export let multiple = getContext("multiple");
export let rounded = getContext("rounded");
export let active = getContext("active");
export let hover = getContext("hover");
export let padding = getContext("padding");
export let regionLead = getContext("regionLead");
export let regionDefault = getContext("regionDefault");
export let regionTrail = getContext("regionTrail");
const cBase = "cursor-pointer -outline-offset-[3px]";
const cLabel = "flex items-center space-x-4";
let checked;
let elemInput;
function areDeeplyEqual(param1, param2) {
if (param1 === param2)
return true;
if (!(param1 instanceof Object) || !(param2 instanceof Object))
return false;
const keys1 = Object.keys(param1);
const keys2 = Object.keys(param2);
if (keys1.length !== keys2.length)
return false;
for (const key of keys1) {
const value1 = param1[key];
const value2 = param2[key];
if (!areDeeplyEqual(value1, value2))
return false;
}
return true;
}
$:
if (multiple)
updateCheckbox(group);
$:
if (multiple)
updateGroup(checked);
function updateCheckbox(group2) {
checked = group2.indexOf(value) >= 0;
}
function updateGroup(checked2) {
const index = group.indexOf(value);
if (checked2) {
if (index < 0) {
group.push(value);
group = group;
}
} else {
if (index >= 0) {
group.splice(index, 1);
group = group;
}
}
}
function onKeyDown(event) {
if (["Enter", "Space"].includes(event.code)) {
event.preventDefault();
elemInput.click();
}
}
const cRegionLead = "";
const cRegionDefault = "flex-1";
const cRegionTrail = "";
$:
selected = multiple ? group.some((groupVal) => areDeeplyEqual(value, groupVal)) : areDeeplyEqual(group, value);
$:
classesActive = selected ? active : hover;
$:
classesBase = `${cBase} ${rounded} ${padding} ${classesActive} ${$$props.class ?? ""}`;
$:
classesLabel = `${cLabel}`;
$:
classesRegionLead = `${cRegionLead} ${regionLead}`;
$:
classesRegionDefault = `${cRegionDefault} ${regionDefault}`;
$:
classesRegionTrail = `${cRegionTrail} ${regionTrail}`;
</script>
<label>
<!-- A11y attributes are not allowed on <label> -->
<div
class="listbox-item {classesBase}"
data-testid="listbox-item"
role="option"
aria-selected={selected}
tabindex="0"
on:keydown={onKeyDown}
on:keydown
on:keyup
on:keypress
>
<!-- NOTE: Don't use `hidden` as it prevents `required` from operating -->
<div class="h-0 w-0 overflow-hidden">
{#if multiple}
<input bind:this={elemInput} type="checkbox" {name} {value} bind:checked tabindex="-1" on:click on:change />
{:else}
<input bind:this={elemInput} type="radio" bind:group {name} {value} tabindex="-1" on:click on:change />
{/if}
</div>
<!-- <slot /> -->
<div class="listbox-label {classesLabel}">
<!-- Slot: Lead -->
{#if $$slots.lead}<div class="listbox-label-lead {classesRegionLead}"><slot name="lead" /></div>{/if}
<!-- Slot: Default -->
<div class="listbox-label-content {classesRegionDefault}"><slot /></div>
<!-- Slot: Trail -->
{#if $$slots.trail}<div class="listbox-label-trail {classesRegionTrail}"><slot name="trail" /></div>{/if}
</div>
</div>
</label>

View File

@ -0,0 +1,40 @@
import { SvelteComponentTyped } from "svelte";
declare const __propDef: {
props: {
[x: string]: any;
/** Set the radio group binding value.*/
group: any;
/** Set a unique name value for the input.*/
name: string;
/** Set the input's value.*/
value: any;
multiple?: string | undefined;
rounded?: string | undefined;
active?: string | undefined;
hover?: string | undefined;
padding?: string | undefined;
regionLead?: string | undefined;
regionDefault?: string | undefined;
regionTrail?: string | undefined;
};
events: {
keydown: KeyboardEvent;
keyup: KeyboardEvent;
keypress: KeyboardEvent;
click: MouseEvent;
change: Event;
} & {
[evt: string]: CustomEvent<any>;
};
slots: {
lead: {};
default: {};
trail: {};
};
};
export type ListBoxItemProps = typeof __propDef.props;
export type ListBoxItemEvents = typeof __propDef.events;
export type ListBoxItemSlots = typeof __propDef.slots;
export default class ListBoxItem extends SvelteComponentTyped<ListBoxItemProps, ListBoxItemEvents, ListBoxItemSlots> {
}
export {};