@invopop/popui 0.0.108 → 0.1.2
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/dist/AlertDialog.svelte +84 -59
- package/dist/AlertDialog.svelte.d.ts +5 -29
- package/dist/BaseButton.svelte +106 -101
- package/dist/BaseButton.svelte.d.ts +4 -34
- package/dist/BaseCard.svelte +20 -12
- package/dist/BaseCard.svelte.d.ts +4 -26
- package/dist/BaseCounter.svelte +13 -9
- package/dist/BaseCounter.svelte.d.ts +4 -17
- package/dist/BaseDropdown.svelte +54 -38
- package/dist/BaseDropdown.svelte.d.ts +6 -26
- package/dist/BaseFlag.svelte +6 -4
- package/dist/BaseFlag.svelte.d.ts +4 -17
- package/dist/BaseTable.svelte +226 -188
- package/dist/BaseTable.svelte.d.ts +4 -39
- package/dist/BaseTableActions.svelte +43 -33
- package/dist/BaseTableActions.svelte.d.ts +6 -21
- package/dist/BaseTableCellContent.svelte +19 -13
- package/dist/BaseTableCellContent.svelte.d.ts +4 -24
- package/dist/BaseTableCheckbox.svelte +19 -12
- package/dist/BaseTableCheckbox.svelte.d.ts +4 -21
- package/dist/BaseTableHeaderContent.svelte +30 -22
- package/dist/BaseTableHeaderContent.svelte.d.ts +4 -21
- package/dist/BaseTableHeaderOrderBy.svelte +24 -0
- package/dist/BaseTableHeaderOrderBy.svelte.d.ts +4 -0
- package/dist/BaseTableRow.svelte +78 -60
- package/dist/BaseTableRow.svelte.d.ts +4 -32
- package/dist/Breadcrumbs.svelte +14 -10
- package/dist/Breadcrumbs.svelte.d.ts +4 -19
- package/dist/ButtonFile.svelte +40 -29
- package/dist/ButtonFile.svelte.d.ts +4 -25
- package/dist/ButtonUuidCopy.svelte +27 -20
- package/dist/ButtonUuidCopy.svelte.d.ts +4 -22
- package/dist/CardCheckbox.svelte +28 -19
- package/dist/CardCheckbox.svelte.d.ts +4 -28
- package/dist/CardRelation.svelte +9 -8
- package/dist/CardRelation.svelte.d.ts +4 -22
- package/dist/CompanySelector.svelte +49 -43
- package/dist/CompanySelector.svelte.d.ts +4 -22
- package/dist/CounterWorkflow.svelte +12 -8
- package/dist/CounterWorkflow.svelte.d.ts +4 -17
- package/dist/DataListItem.svelte +24 -14
- package/dist/DataListItem.svelte.d.ts +4 -22
- package/dist/DatePicker.svelte +186 -386
- package/dist/DatePicker.svelte.d.ts +4 -22
- package/dist/DrawerContext.svelte +33 -22
- package/dist/DrawerContext.svelte.d.ts +4 -24
- package/dist/DrawerContextItem.svelte +69 -56
- package/dist/DrawerContextItem.svelte.d.ts +4 -23
- package/dist/DrawerContextSeparator.svelte +1 -1
- package/dist/DrawerContextSeparator.svelte.d.ts +22 -19
- package/dist/DrawerContextWorkspace.svelte +31 -32
- package/dist/DrawerContextWorkspace.svelte.d.ts +4 -20
- package/dist/DropdownSelect.svelte +93 -81
- package/dist/DropdownSelect.svelte.d.ts +4 -27
- package/dist/EmptyStateIcon.svelte +13 -7
- package/dist/EmptyStateIcon.svelte.d.ts +4 -22
- package/dist/EmptyStateIllustration.svelte +41 -33
- package/dist/EmptyStateIllustration.svelte.d.ts +4 -21
- package/dist/FeedEvents.svelte +5 -2
- package/dist/FeedEvents.svelte.d.ts +4 -17
- package/dist/FeedIconEvent.svelte +5 -3
- package/dist/FeedIconEvent.svelte.d.ts +4 -19
- package/dist/FeedIconStatus.svelte +23 -18
- package/dist/FeedIconStatus.svelte.d.ts +4 -17
- package/dist/FeedItem.svelte +33 -28
- package/dist/FeedItem.svelte.d.ts +4 -30
- package/dist/FeedItemDetail.svelte +21 -13
- package/dist/FeedItemDetail.svelte.d.ts +4 -23
- package/dist/FeedViewer.svelte +6 -13
- package/dist/FeedViewer.svelte.d.ts +4 -21
- package/dist/FormLayoutModal.svelte +9 -3
- package/dist/FormLayoutModal.svelte.d.ts +4 -29
- package/dist/GlobalSearch.svelte +38 -31
- package/dist/GlobalSearch.svelte.d.ts +4 -18
- package/dist/InputCheckbox.svelte +23 -14
- package/dist/InputCheckbox.svelte.d.ts +4 -23
- package/dist/InputError.svelte +4 -1
- package/dist/InputError.svelte.d.ts +4 -16
- package/dist/InputLabel.svelte +5 -3
- package/dist/InputLabel.svelte.d.ts +4 -18
- package/dist/InputRadio.svelte +25 -19
- package/dist/InputRadio.svelte.d.ts +4 -21
- package/dist/InputSearch.svelte +66 -46
- package/dist/InputSearch.svelte.d.ts +9 -32
- package/dist/InputSelect.svelte +36 -33
- package/dist/InputSelect.svelte.d.ts +4 -31
- package/dist/InputText.svelte +64 -48
- package/dist/InputText.svelte.d.ts +4 -28
- package/dist/InputTextarea.svelte +38 -29
- package/dist/InputTextarea.svelte.d.ts +4 -25
- package/dist/InputToggle.svelte +29 -22
- package/dist/InputToggle.svelte.d.ts +4 -20
- package/dist/MenuItem.svelte +99 -87
- package/dist/MenuItem.svelte.d.ts +5 -29
- package/dist/MenuItemCollapsible.svelte +26 -18
- package/dist/MenuItemCollapsible.svelte.d.ts +4 -24
- package/dist/Notification.svelte +35 -31
- package/dist/Notification.svelte.d.ts +4 -20
- package/dist/ProfileAvatar.svelte +26 -19
- package/dist/ProfileAvatar.svelte.d.ts +4 -21
- package/dist/ProfileSelector.svelte +25 -17
- package/dist/ProfileSelector.svelte.d.ts +4 -22
- package/dist/SectionLayout.svelte +6 -3
- package/dist/SectionLayout.svelte.d.ts +4 -18
- package/dist/SeparatorHorizontal.svelte +1 -1
- package/dist/SeparatorHorizontal.svelte.d.ts +22 -19
- package/dist/ShortcutWrapper.svelte +7 -1
- package/dist/ShortcutWrapper.svelte.d.ts +4 -27
- package/dist/StatusLabel.svelte +16 -12
- package/dist/StatusLabel.svelte.d.ts +4 -18
- package/dist/StepIconList.svelte +44 -41
- package/dist/StepIconList.svelte.d.ts +4 -17
- package/dist/TagBeta.svelte.d.ts +22 -19
- package/dist/TagSearch.svelte +19 -20
- package/dist/TagSearch.svelte.d.ts +4 -22
- package/dist/TagStatus.svelte +42 -37
- package/dist/TagStatus.svelte.d.ts +4 -19
- package/dist/TitleMain.svelte +9 -2
- package/dist/TitleMain.svelte.d.ts +4 -18
- package/dist/TitleSection.svelte +9 -2
- package/dist/TitleSection.svelte.d.ts +4 -18
- package/dist/UuidCopy.svelte +61 -48
- package/dist/UuidCopy.svelte.d.ts +4 -26
- package/dist/alert-dialog/alert-dialog-action.svelte +15 -15
- package/dist/alert-dialog/alert-dialog-action.svelte.d.ts +5 -26
- package/dist/alert-dialog/alert-dialog-cancel.svelte +13 -10
- package/dist/alert-dialog/alert-dialog-cancel.svelte.d.ts +3 -22
- package/dist/alert-dialog/alert-dialog-content.svelte +19 -15
- package/dist/alert-dialog/alert-dialog-content.svelte.d.ts +6 -15
- package/dist/alert-dialog/alert-dialog-description.svelte +11 -6
- package/dist/alert-dialog/alert-dialog-description.svelte.d.ts +3 -16
- package/dist/alert-dialog/alert-dialog-footer.svelte +11 -5
- package/dist/alert-dialog/alert-dialog-footer.svelte.d.ts +4 -16
- package/dist/alert-dialog/alert-dialog-header.svelte +14 -5
- package/dist/alert-dialog/alert-dialog-header.svelte.d.ts +4 -16
- package/dist/alert-dialog/alert-dialog-overlay.svelte +10 -13
- package/dist/alert-dialog/alert-dialog-overlay.svelte.d.ts +3 -14
- package/dist/alert-dialog/alert-dialog-title.svelte +11 -8
- package/dist/alert-dialog/alert-dialog-title.svelte.d.ts +3 -16
- package/dist/alert-dialog/alert-dialog-trigger.svelte +6 -0
- package/dist/alert-dialog/alert-dialog-trigger.svelte.d.ts +4 -0
- package/dist/alert-dialog/index.d.ts +3 -4
- package/dist/alert-dialog/index.js +2 -2
- package/dist/button/button.svelte +76 -18
- package/dist/button/button.svelte.d.ts +62 -14
- package/dist/button/index.d.ts +2 -60
- package/dist/button/index.js +1 -26
- package/dist/helpers.d.ts +4 -1
- package/dist/helpers.js +35 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.js +0 -4
- package/dist/range-calendar/index.d.ts +20 -0
- package/dist/range-calendar/index.js +22 -0
- package/dist/range-calendar/range-calendar-caption.svelte +71 -0
- package/dist/range-calendar/range-calendar-caption.svelte.d.ts +19 -0
- package/dist/range-calendar/range-calendar-cell.svelte +18 -0
- package/dist/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-day.svelte +41 -0
- package/dist/range-calendar/range-calendar-day.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-grid-row.svelte +11 -0
- package/dist/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-grid.svelte +15 -0
- package/dist/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-head-cell.svelte +18 -0
- package/dist/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-header.svelte +18 -0
- package/dist/range-calendar/range-calendar-header.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-heading.svelte +15 -0
- package/dist/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-month-select.svelte +44 -0
- package/dist/range-calendar/range-calendar-month-select.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar-month.svelte +14 -0
- package/dist/range-calendar/range-calendar-month.svelte.d.ts +5 -0
- package/dist/range-calendar/range-calendar-months.svelte +18 -0
- package/dist/range-calendar/range-calendar-months.svelte.d.ts +5 -0
- package/dist/range-calendar/range-calendar-nav.svelte +18 -0
- package/dist/range-calendar/range-calendar-nav.svelte.d.ts +5 -0
- package/dist/range-calendar/range-calendar-next-button.svelte +30 -0
- package/dist/range-calendar/range-calendar-next-button.svelte.d.ts +8 -0
- package/dist/range-calendar/range-calendar-prev-button.svelte +30 -0
- package/dist/range-calendar/range-calendar-prev-button.svelte.d.ts +8 -0
- package/dist/range-calendar/range-calendar-year-select.svelte +43 -0
- package/dist/range-calendar/range-calendar-year-select.svelte.d.ts +4 -0
- package/dist/range-calendar/range-calendar.svelte +109 -0
- package/dist/range-calendar/range-calendar.svelte.d.ts +21 -0
- package/dist/svg/BgPattern.svelte.d.ts +22 -19
- package/dist/svg/IconContact.svelte +6 -1
- package/dist/svg/IconContact.svelte.d.ts +5 -15
- package/dist/svg/IconEmpty.svelte.d.ts +22 -19
- package/dist/svg/IconFile.svelte +6 -1
- package/dist/svg/IconFile.svelte.d.ts +5 -15
- package/dist/svg/IconInvoice.svelte +6 -1
- package/dist/svg/IconInvoice.svelte.d.ts +5 -15
- package/dist/svg/IconNoResults.svelte +6 -1
- package/dist/svg/IconNoResults.svelte.d.ts +5 -15
- package/dist/svg/IconPdf.svelte +6 -1
- package/dist/svg/IconPdf.svelte.d.ts +5 -15
- package/dist/svg/IconProduct.svelte +6 -1
- package/dist/svg/IconProduct.svelte.d.ts +5 -15
- package/dist/table/table-body.svelte +10 -5
- package/dist/table/table-body.svelte.d.ts +4 -16
- package/dist/table/table-caption.svelte +14 -5
- package/dist/table/table-caption.svelte.d.ts +4 -16
- package/dist/table/table-cell.svelte +16 -7
- package/dist/table/table-cell.svelte.d.ts +4 -19
- package/dist/table/table-footer.svelte +14 -5
- package/dist/table/table-footer.svelte.d.ts +4 -16
- package/dist/table/table-head.svelte +11 -5
- package/dist/table/table-head.svelte.d.ts +4 -16
- package/dist/table/table-header.svelte +17 -8
- package/dist/table/table-header.svelte.d.ts +4 -19
- package/dist/table/table-row.svelte +22 -8
- package/dist/table/table-row.svelte.d.ts +4 -22
- package/dist/table/table.svelte +11 -6
- package/dist/table/table.svelte.d.ts +4 -16
- package/dist/tabs/tabs-content.svelte +13 -8
- package/dist/tabs/tabs-content.svelte.d.ts +3 -16
- package/dist/tabs/tabs-list.svelte +7 -6
- package/dist/tabs/tabs-list.svelte.d.ts +3 -16
- package/dist/tabs/tabs-trigger.svelte +13 -9
- package/dist/tabs/tabs-trigger.svelte.d.ts +3 -14
- package/dist/tabs/tabs.svelte +12 -7
- package/dist/tabs/tabs.svelte.d.ts +3 -16
- package/dist/tooltip/index.d.ts +5 -3
- package/dist/tooltip/index.js +5 -3
- package/dist/tooltip/tooltip-content.svelte +42 -23
- package/dist/tooltip/tooltip-content.svelte.d.ts +5 -15
- package/dist/tooltip/tooltip-trigger.svelte +8 -0
- package/dist/tooltip/tooltip-trigger.svelte.d.ts +4 -0
- package/dist/tw.theme.d.ts +2 -9
- package/dist/tw.theme.js +0 -5
- package/dist/types.d.ts +484 -25
- package/dist/utils.d.ts +10 -1
- package/package.json +32 -41
- package/README.md +0 -234
- package/dist/BaseTableHeaderSortBy.svelte +0 -22
- package/dist/BaseTableHeaderSortBy.svelte.d.ts +0 -20
- package/dist/ComboBox.svelte +0 -12
- package/dist/ComboBox.svelte.d.ts +0 -21
- package/dist/ComboBoxContent.svelte +0 -33
- package/dist/ComboBoxContent.svelte.d.ts +0 -20
- package/dist/ProgressBar.svelte +0 -6
- package/dist/ProgressBar.svelte.d.ts +0 -16
- package/dist/alert-dialog/alert-dialog-portal.svelte +0 -6
- package/dist/alert-dialog/alert-dialog-portal.svelte.d.ts +0 -17
- package/dist/popui.css +0 -1
- package/dist/wcdispatch.d.ts +0 -1
- package/dist/wcdispatch.js +0 -9
package/dist/InputText.svelte
CHANGED
|
@@ -1,46 +1,62 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import InputError from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import clsx from 'clsx'
|
|
3
|
+
import { onMount } from 'svelte'
|
|
4
|
+
import InputLabel from './InputLabel.svelte'
|
|
5
|
+
import InputError from './InputError.svelte'
|
|
6
|
+
import type { InputTextProps } from './types'
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
id = Math.random().toString(36).slice(2, 7),
|
|
10
|
+
label = '',
|
|
11
|
+
placeholder = '',
|
|
12
|
+
errorText = '',
|
|
13
|
+
disabled = false,
|
|
14
|
+
value = $bindable(''),
|
|
15
|
+
focusOnLoad = false,
|
|
16
|
+
oninput,
|
|
17
|
+
onkeydown,
|
|
18
|
+
onfocus,
|
|
19
|
+
onblur,
|
|
20
|
+
...rest
|
|
21
|
+
}: InputTextProps = $props()
|
|
22
|
+
|
|
23
|
+
let inputEl: HTMLInputElement | undefined = $state()
|
|
24
|
+
let timer: ReturnType<typeof setTimeout>
|
|
25
|
+
|
|
26
|
+
const debounce = (target: HTMLInputElement) => {
|
|
27
|
+
clearTimeout(timer)
|
|
28
|
+
timer = setTimeout(() => {
|
|
29
|
+
oninput?.(target.value)
|
|
30
|
+
}, 750)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let inputStyles = $derived(
|
|
34
|
+
clsx(
|
|
35
|
+
{ 'pointer-events-none bg-neutral-50': disabled },
|
|
36
|
+
{
|
|
37
|
+
'text-danger-500 border-danger-400 outline-danger-400': errorText
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
'border-neutral-200 hover:border-neutral-300 text-neutral-800 outline-none caret-workspace-accent focus:border-workspace-accent focus:shadow-active':
|
|
41
|
+
!errorText
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
function handleInput(event: unknown) {
|
|
47
|
+
// If event is not a native event we skip the dispatch to avoid infinite loop
|
|
48
|
+
if (event instanceof CustomEvent) return
|
|
49
|
+
|
|
50
|
+
const target = (event as PointerEvent).target as HTMLInputElement
|
|
51
|
+
|
|
52
|
+
debounce(target)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
onMount(() => {
|
|
56
|
+
if (!focusOnLoad) return
|
|
57
|
+
|
|
58
|
+
inputEl?.focus()
|
|
59
|
+
})
|
|
44
60
|
</script>
|
|
45
61
|
|
|
46
62
|
{#if label}
|
|
@@ -54,11 +70,11 @@ onMount(() => {
|
|
|
54
70
|
class="{inputStyles} py-1.5 px-2.5 border w-full rounded-md placeholder:text-neutral-500 text-base tracking-tight"
|
|
55
71
|
{placeholder}
|
|
56
72
|
readonly={disabled}
|
|
57
|
-
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
73
|
+
{...rest}
|
|
74
|
+
oninput={handleInput}
|
|
75
|
+
{onfocus}
|
|
76
|
+
{onblur}
|
|
77
|
+
{onkeydown}
|
|
62
78
|
/>
|
|
63
79
|
{#if errorText}
|
|
64
80
|
<InputError {errorText} />
|
|
@@ -1,28 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
id?: string | undefined;
|
|
6
|
-
label?: string | undefined;
|
|
7
|
-
placeholder?: string | undefined;
|
|
8
|
-
errorText?: string | undefined;
|
|
9
|
-
disabled?: boolean | undefined;
|
|
10
|
-
value?: string | number | undefined;
|
|
11
|
-
focusOnLoad?: boolean | undefined;
|
|
12
|
-
};
|
|
13
|
-
events: {
|
|
14
|
-
focus: FocusEvent;
|
|
15
|
-
blur: FocusEvent;
|
|
16
|
-
keydown: KeyboardEvent;
|
|
17
|
-
input: CustomEvent<any>;
|
|
18
|
-
} & {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
};
|
|
21
|
-
slots: {};
|
|
22
|
-
};
|
|
23
|
-
export type InputTextProps = typeof __propDef.props;
|
|
24
|
-
export type InputTextEvents = typeof __propDef.events;
|
|
25
|
-
export type InputTextSlots = typeof __propDef.slots;
|
|
26
|
-
export default class InputText extends SvelteComponent<InputTextProps, InputTextEvents, InputTextSlots> {
|
|
27
|
-
}
|
|
28
|
-
export {};
|
|
1
|
+
import type { InputTextProps } from './types';
|
|
2
|
+
declare const InputText: import("svelte").Component<InputTextProps, {}, "value">;
|
|
3
|
+
type InputText = ReturnType<typeof InputText>;
|
|
4
|
+
export default InputText;
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import InputLabel from
|
|
3
|
-
import InputError from
|
|
4
|
-
import clsx from
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import InputLabel from './InputLabel.svelte'
|
|
3
|
+
import InputError from './InputError.svelte'
|
|
4
|
+
import clsx from 'clsx'
|
|
5
|
+
import type { InputTextareaProps } from './types'
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
id = Math.random().toString(36).slice(2, 7),
|
|
9
|
+
label = '',
|
|
10
|
+
placeholder = '',
|
|
11
|
+
errorText = '',
|
|
12
|
+
disabled = false,
|
|
13
|
+
value = $bindable(''),
|
|
14
|
+
rows = 4,
|
|
15
|
+
oninput,
|
|
16
|
+
...rest
|
|
17
|
+
}: InputTextareaProps = $props()
|
|
18
|
+
|
|
19
|
+
let inputStyles = $derived(
|
|
20
|
+
clsx(
|
|
21
|
+
{ 'pointer-events-none bg-neutral-50': disabled },
|
|
22
|
+
{
|
|
23
|
+
'text-danger-500 border-danger-400 outline-danger-400': errorText
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
'border-neutral-200 hover:border-neutral-300 text-neutral-800 outline-none caret-workspace-accent focus:border-workspace-accent focus:shadow-active':
|
|
27
|
+
!errorText
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
function handleInput(event: Event) {
|
|
33
|
+
value = (event.target as HTMLInputElement).value
|
|
34
|
+
oninput?.(value)
|
|
35
|
+
}
|
|
27
36
|
</script>
|
|
28
37
|
|
|
29
38
|
<InputLabel {id} {label} />
|
|
@@ -34,9 +43,9 @@ function handleInput(event) {
|
|
|
34
43
|
class="{inputStyles} py-1.5 px-3 border w-full rounded placeholder-neutral-500 text-base tracking-tight"
|
|
35
44
|
{disabled}
|
|
36
45
|
{rows}
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
{...rest}
|
|
47
|
+
oninput={handleInput}
|
|
48
|
+
></textarea>
|
|
40
49
|
|
|
41
50
|
{#if errorText}
|
|
42
51
|
<InputError {errorText} />
|
|
@@ -1,25 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
id?: string | undefined;
|
|
6
|
-
label?: string | undefined;
|
|
7
|
-
placeholder?: string | undefined;
|
|
8
|
-
errorText?: string | undefined;
|
|
9
|
-
disabled?: boolean | undefined;
|
|
10
|
-
value?: string | number | undefined;
|
|
11
|
-
rows?: number | undefined;
|
|
12
|
-
};
|
|
13
|
-
events: {
|
|
14
|
-
input: CustomEvent<any>;
|
|
15
|
-
} & {
|
|
16
|
-
[evt: string]: CustomEvent<any>;
|
|
17
|
-
};
|
|
18
|
-
slots: {};
|
|
19
|
-
};
|
|
20
|
-
export type InputTextareaProps = typeof __propDef.props;
|
|
21
|
-
export type InputTextareaEvents = typeof __propDef.events;
|
|
22
|
-
export type InputTextareaSlots = typeof __propDef.slots;
|
|
23
|
-
export default class InputTextarea extends SvelteComponent<InputTextareaProps, InputTextareaEvents, InputTextareaSlots> {
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
1
|
+
import type { InputTextareaProps } from './types';
|
|
2
|
+
declare const InputTextarea: import("svelte").Component<InputTextareaProps, {}, "value">;
|
|
3
|
+
type InputTextarea = ReturnType<typeof InputTextarea>;
|
|
4
|
+
export default InputTextarea;
|
package/dist/InputToggle.svelte
CHANGED
|
@@ -1,32 +1,39 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import { createSwitch } from
|
|
4
|
-
import {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
let
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import clsx from 'clsx'
|
|
3
|
+
import { createSwitch } from 'svelte-headlessui'
|
|
4
|
+
import type { InputToggleProps } from './types'
|
|
5
|
+
const sw = createSwitch({ label: 'Set Preference' })
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
id = Math.random().toString(36).slice(2, 7),
|
|
9
|
+
label = '',
|
|
10
|
+
checked = $bindable(false),
|
|
11
|
+
onchange
|
|
12
|
+
}: InputToggleProps = $props()
|
|
13
|
+
|
|
14
|
+
$effect(() => {
|
|
15
|
+
$sw.checked = checked
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
let togleStyles = $derived(
|
|
19
|
+
clsx({ 'bg-gray-200': !$sw.checked }, { 'bg-workspace-accent': $sw.checked })
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
function handleChange() {
|
|
23
|
+
onchange?.($sw.checked)
|
|
24
|
+
checked = $sw.checked
|
|
25
|
+
}
|
|
20
26
|
</script>
|
|
21
27
|
|
|
22
|
-
<label
|
|
28
|
+
<label for={id} class="flex w-full items-center justify-between space-x-2">
|
|
23
29
|
{#if label}
|
|
24
30
|
<span class="text-base text-neutral-500">{label}</span>
|
|
25
31
|
{/if}
|
|
26
32
|
<button
|
|
33
|
+
{id}
|
|
27
34
|
class="{togleStyles} relative inline-flex h-5 w-8 flex-shrink-0 cursor-pointer rounded-md border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-0 focus:ring-offset-0"
|
|
28
35
|
use:sw.toggle
|
|
29
|
-
|
|
36
|
+
onclick={handleChange}
|
|
30
37
|
>
|
|
31
38
|
<span class="sr-only">Use setting</span>
|
|
32
39
|
<span
|
|
@@ -34,6 +41,6 @@ function handleChange() {
|
|
|
34
41
|
class="{$sw.checked
|
|
35
42
|
? 'translate-x-3'
|
|
36
43
|
: 'translate-x-0'} pointer-events-none inline-block h-4 w-4 transform rounded bg-white shadow ring-0 transition duration-200 ease-in-out"
|
|
37
|
-
|
|
44
|
+
></span>
|
|
38
45
|
</button>
|
|
39
46
|
</label>
|
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
checked?: boolean | undefined;
|
|
6
|
-
label?: string | undefined;
|
|
7
|
-
};
|
|
8
|
-
events: {
|
|
9
|
-
change: CustomEvent<any>;
|
|
10
|
-
} & {
|
|
11
|
-
[evt: string]: CustomEvent<any>;
|
|
12
|
-
};
|
|
13
|
-
slots: {};
|
|
14
|
-
};
|
|
15
|
-
export type InputToggleProps = typeof __propDef.props;
|
|
16
|
-
export type InputToggleEvents = typeof __propDef.events;
|
|
17
|
-
export type InputToggleSlots = typeof __propDef.slots;
|
|
18
|
-
export default class InputToggle extends SvelteComponent<InputToggleProps, InputToggleEvents, InputToggleSlots> {
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
1
|
+
import type { InputToggleProps } from './types';
|
|
2
|
+
declare const InputToggle: import("svelte").Component<InputToggleProps, {}, "checked">;
|
|
3
|
+
type InputToggle = ReturnType<typeof InputToggle>;
|
|
4
|
+
export default InputToggle;
|
package/dist/MenuItem.svelte
CHANGED
|
@@ -1,99 +1,110 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import MenuItem from './MenuItem.svelte'
|
|
3
|
+
import { flip, shift, offset } from 'svelte-floating-ui/dom'
|
|
4
|
+
import { createFloatingActions } from 'svelte-floating-ui'
|
|
5
|
+
import clsx from 'clsx'
|
|
6
|
+
import type { MenuItemProps, DrawerOption, AnyProp } from './types.ts'
|
|
7
|
+
import { Icon, type IconSource } from '@steeze-ui/svelte-icon'
|
|
8
|
+
import { ChevronDown, ChevronRight } from '@invopop/ui-icons'
|
|
9
|
+
import { FolderL } from '@invopop/ui-icons'
|
|
10
|
+
import { resolveIcon } from './helpers.js'
|
|
11
|
+
import DrawerContext from './DrawerContext.svelte'
|
|
12
|
+
|
|
13
|
+
const [floatingRef, floatingContent] = createFloatingActions({
|
|
14
|
+
strategy: 'absolute',
|
|
15
|
+
placement: 'bottom-start',
|
|
16
|
+
middleware: [offset(-4), flip(), shift()]
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
let {
|
|
20
|
+
label = '',
|
|
21
|
+
url = '',
|
|
22
|
+
isFolderItem = false,
|
|
23
|
+
collapsable = false,
|
|
24
|
+
open = $bindable(false),
|
|
25
|
+
active = false,
|
|
26
|
+
collapsedSidebar = false,
|
|
27
|
+
iconTheme = 'default',
|
|
28
|
+
icon = undefined,
|
|
29
|
+
children = undefined,
|
|
30
|
+
onclick
|
|
31
|
+
}: MenuItemProps = $props()
|
|
32
|
+
|
|
33
|
+
let resolvedIcon: IconSource | undefined = $state()
|
|
34
|
+
let hovered = $state(false)
|
|
35
|
+
let highlight = $state(false)
|
|
36
|
+
let leaveHoverTimeout: ReturnType<typeof setTimeout> | null = null
|
|
37
|
+
let itemStyles = $derived(
|
|
38
|
+
clsx(
|
|
39
|
+
{ 'text-white font-medium': !isFolderItem },
|
|
40
|
+
{ 'text-white-40': isFolderItem && !active },
|
|
41
|
+
{ 'bg-white-10': active },
|
|
42
|
+
{ 'border border-transparent hover:border-white-5 group p-2': collapsedSidebar },
|
|
43
|
+
{ 'w-full px-2 py-1.5': !collapsedSidebar },
|
|
44
|
+
{
|
|
45
|
+
'bg-white-10 border-white-5 text-white': active
|
|
46
|
+
},
|
|
47
|
+
{ 'hover:bg-white-5 focus:bg-white-10': !active }
|
|
48
|
+
)
|
|
49
|
+
)
|
|
50
|
+
let iconStyles = $derived(clsx({ 'group-hover:text-white': collapsedSidebar }))
|
|
51
|
+
let wrapperStyles = $derived(
|
|
52
|
+
clsx({
|
|
53
|
+
'ml-4 border-l border-white-10 pl-2 pt-0.5 relative': isFolderItem
|
|
54
|
+
})
|
|
55
|
+
)
|
|
56
|
+
let items = $derived([
|
|
55
57
|
{ label, value: url, selected: active, icon: resolvedIcon },
|
|
56
58
|
...(children || []).map((c) => ({
|
|
57
|
-
label: c.label ||
|
|
58
|
-
value: c.url ||
|
|
59
|
+
label: c.label || '',
|
|
60
|
+
value: c.url || '',
|
|
59
61
|
selected: c.active,
|
|
60
62
|
icon: FolderL
|
|
61
63
|
}))
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
] as DrawerOption[])
|
|
65
|
+
|
|
66
|
+
$effect(() => {
|
|
67
|
+
resolveIcon(icon).then((res) => (resolvedIcon = res))
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
function handleClick() {
|
|
71
|
+
if (!url && collapsable) {
|
|
72
|
+
open = !open
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
onclick?.(url)
|
|
66
76
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
function handleHover() {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
|
|
78
|
+
function handleClickChild(value: AnyProp) {
|
|
79
|
+
hovered = false
|
|
80
|
+
onclick?.(value as string)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function handleHover() {
|
|
84
|
+
highlight = true
|
|
85
|
+
if (leaveHoverTimeout) {
|
|
86
|
+
clearTimeout(leaveHoverTimeout)
|
|
87
|
+
}
|
|
88
|
+
hovered = true
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function handleBlur() {
|
|
92
|
+
highlight = false
|
|
93
|
+
leaveHoverTimeout = setTimeout(() => {
|
|
94
|
+
hovered = false
|
|
95
|
+
}, 200)
|
|
77
96
|
}
|
|
78
|
-
hovered = true;
|
|
79
|
-
}
|
|
80
|
-
function handleBlur() {
|
|
81
|
-
highlight = false;
|
|
82
|
-
leaveHoverTimeout = setTimeout(() => {
|
|
83
|
-
hovered = false;
|
|
84
|
-
}, 200);
|
|
85
|
-
}
|
|
86
97
|
</script>
|
|
87
98
|
|
|
88
99
|
<div class={wrapperStyles}>
|
|
89
100
|
{#if isFolderItem && (highlight || active)}
|
|
90
|
-
<div class="border-l border-white h-3 w-px absolute top-[14px] left-0 -m-px"
|
|
101
|
+
<div class="border-l border-white h-3 w-px absolute top-[14px] left-0 -m-px"></div>
|
|
91
102
|
{/if}
|
|
92
103
|
<button
|
|
93
104
|
use:floatingRef
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
105
|
+
onmouseenter={handleHover}
|
|
106
|
+
onmouseleave={handleBlur}
|
|
107
|
+
onclick={handleClick}
|
|
97
108
|
title={label}
|
|
98
109
|
class="{itemStyles} text-base border border-transparent flex items-center justify-between hover:text-white focus:text-white rounded-md"
|
|
99
110
|
>
|
|
@@ -107,7 +118,8 @@ function handleBlur() {
|
|
|
107
118
|
</span>
|
|
108
119
|
{#if collapsable && !collapsedSidebar}
|
|
109
120
|
<button
|
|
110
|
-
|
|
121
|
+
onclick={(e) => {
|
|
122
|
+
e.stopPropagation()
|
|
111
123
|
open = !open
|
|
112
124
|
}}
|
|
113
125
|
>
|
|
@@ -121,18 +133,18 @@ function handleBlur() {
|
|
|
121
133
|
<div
|
|
122
134
|
use:floatingContent
|
|
123
135
|
role="contentinfo"
|
|
124
|
-
|
|
125
|
-
|
|
136
|
+
onmouseenter={handleHover}
|
|
137
|
+
onmouseleave={handleBlur}
|
|
126
138
|
class="pt-4 z-30"
|
|
127
139
|
>
|
|
128
|
-
<DrawerContext
|
|
140
|
+
<DrawerContext onclick={handleClickChild} {items} />
|
|
129
141
|
</div>
|
|
130
142
|
{/if}
|
|
131
143
|
{:else if open || !collapsable}
|
|
132
144
|
<ul>
|
|
133
145
|
{#each children as child}
|
|
134
146
|
<li>
|
|
135
|
-
<
|
|
147
|
+
<MenuItem {...child} isFolderItem {onclick} />
|
|
136
148
|
</li>
|
|
137
149
|
{/each}
|
|
138
150
|
</ul>
|
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
label?: string | undefined;
|
|
7
|
-
url?: string | undefined;
|
|
8
|
-
isFolderItem?: boolean | undefined;
|
|
9
|
-
collapsable?: boolean | undefined;
|
|
10
|
-
open?: boolean | undefined;
|
|
11
|
-
active?: boolean | undefined;
|
|
12
|
-
collapsedSidebar?: boolean | undefined;
|
|
13
|
-
iconTheme?: IconTheme | undefined;
|
|
14
|
-
icon?: IconSource | string | undefined;
|
|
15
|
-
children?: MenuItemProps[] | undefined;
|
|
16
|
-
};
|
|
17
|
-
events: {
|
|
18
|
-
click: CustomEvent<any>;
|
|
19
|
-
} & {
|
|
20
|
-
[evt: string]: CustomEvent<any>;
|
|
21
|
-
};
|
|
22
|
-
slots: {};
|
|
23
|
-
};
|
|
24
|
-
type MenuItemProps_ = typeof __propDef.props;
|
|
25
|
-
export { MenuItemProps_ as MenuItemProps };
|
|
26
|
-
export type MenuItemEvents = typeof __propDef.events;
|
|
27
|
-
export type MenuItemSlots = typeof __propDef.slots;
|
|
28
|
-
export default class MenuItem extends SvelteComponent<MenuItemProps, MenuItemEvents, MenuItemSlots> {
|
|
29
|
-
}
|
|
1
|
+
import MenuItem from './MenuItem.svelte';
|
|
2
|
+
import type { MenuItemProps } from './types.ts';
|
|
3
|
+
declare const MenuItem: import("svelte").Component<MenuItemProps, {}, "open">;
|
|
4
|
+
type MenuItem = ReturnType<typeof MenuItem>;
|
|
5
|
+
export default MenuItem;
|