Skip to content

Commit

Permalink
turn Toggle styles into CSS custom props
Browse files Browse the repository at this point in the history
breaking: highlight_matches action rename optional acceptNode to node_filter
  • Loading branch information
janosh committed Feb 2, 2024
1 parent b2d45dc commit f8457d5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 28 deletions.
2 changes: 1 addition & 1 deletion src/lib/Slider.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
place-items: center;
gap: var(--zoo-slider-gap, 1ex);
margin: var(--zoo-slider-margin);
padding: var(--zoo-slider-padding, 0 4pt);
padding: var(--zoo-slider-padding);
}
input[type='number'] {
background: transparent;
Expand Down
42 changes: 21 additions & 21 deletions src/lib/Toggle.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -21,42 +21,42 @@

<style>
label {
display: inline-flex;
align-items: center;
width: max-content;
vertical-align: middle;
display: var(--zoo-toggle-label-display, inline-flex);
align-items: var(--zoo-toggle-label-align-items, center);
width: var(--zoo-toggle-label-width, max-content);
vertical-align: var(--zoo-toggle-label-vertical-align, middle);
}
span {
height: 1.5em;
width: 2.7em;
padding: 0.1em;
box-sizing: border-box;
border: 1px solid lightgray;
border-radius: 0.75em;
transition: 0.3s;
height: var(--zoo-toggle-knob-height, 1.5em);
width: var(--zoo-toggle-knob-width, 3em);
padding: var(--zoo-toggle-knob-padding, 0.1em);
border: var(--zoo-toggle-knob-border, 1px solid lightgray);
border-radius: var(--zoo-toggle-knob-border-radius, 0.75em);
transition: var(--zoo-toggle-knob-transition, 0.3s);
}
input:checked + span {
background: black;
background: var(--zoo-toggle-background, black);
}
input {
position: absolute;
opacity: 0;
width: 1em;
width: var(--zoo-toggle-input-width, 1em);
}
input + span::after {
content: '';
display: block;
height: 1.2em;
width: 1.2em;
border-radius: 50%;
background: gray;
transition: 0.3s;
display: var(--zoo-toggle-knob-after-display, block);
height: var(--zoo-toggle-knob-after-height, 1.2em);
width: var(--zoo-toggle-knob-after-width, 1.2em);
border-radius: var(--zoo-toggle-knob-after-border-radius, 50%);
background: var(--zoo-toggle-knob-after-background, gray);
transition: var(--zoo-toggle-knob-after-transition, 0.3s);
}
input:checked + span::after {
background: green;
transform: translate(100%);
background: var(--zoo-toggle-knob-after-background, green);
transform: var(--zoo-toggle-knob-after-transform, translate(100%));
}
input:focus + span {
border: 1px solid cornflowerblue;
border: var(--zoo-toggle-knob-focus-border, 1px solid cornflowerblue);
}
</style>
12 changes: 6 additions & 6 deletions src/lib/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ export function sortable(
}

type HighlightOptions = {
query: string
disabled: boolean
acceptNode: (node: Node) => number
css_class: string
query?: string
disabled?: boolean
node_filter?: (node: Node) => number
css_class?: string
}

export function highlight_matches(node: HTMLElement, ops: HighlightOptions) {
Expand All @@ -65,7 +65,7 @@ function update_highlights(node: Node, ops: HighlightOptions) {
const {
query = ``,
disabled = false,
acceptNode = () => NodeFilter.FILTER_ACCEPT,
node_filter = () => NodeFilter.FILTER_ACCEPT,
css_class = `highlight-match`,
} = ops

Expand All @@ -75,7 +75,7 @@ function update_highlights(node: Node, ops: HighlightOptions) {
if (!query || disabled || typeof CSS == `undefined` || !CSS.highlights) return // abort if CSS highlight API not supported

const tree_walker = document.createTreeWalker(node, NodeFilter.SHOW_TEXT, {
acceptNode,
acceptNode: node_filter,
})
const text_nodes: Node[] = []
let current_node = tree_walker.nextNode()
Expand Down

0 comments on commit f8457d5

Please sign in to comment.