@human-kit/svelte-components 1.0.0-alpha.3 → 1.0.0-alpha.4
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/FOCUS_STATE_CONTRACT.md +12 -0
- package/dist/calendar/body-cell/README.md +15 -0
- package/dist/calendar/grid/README.md +13 -0
- package/dist/calendar/grid-body/README.md +13 -0
- package/dist/calendar/grid-header/README.md +13 -0
- package/dist/calendar/header-cell/README.md +14 -0
- package/dist/calendar/heading/README.md +13 -0
- package/dist/calendar/root/README.md +24 -0
- package/dist/calendar/trigger-next/README.md +14 -0
- package/dist/calendar/trigger-previous/README.md +14 -0
- package/dist/clock/README.md +75 -0
- package/dist/clock/axis/README.md +24 -0
- package/dist/clock/axis/clock-axis.svelte +37 -0
- package/dist/clock/axis/clock-axis.svelte.d.ts +8 -0
- package/dist/clock/hooks/use-wheel-scroll.svelte.d.ts +16 -0
- package/dist/clock/hooks/use-wheel-scroll.svelte.js +336 -0
- package/dist/clock/index.d.ts +10 -0
- package/dist/clock/index.js +10 -0
- package/dist/clock/index.parts.d.ts +4 -0
- package/dist/clock/index.parts.js +4 -0
- package/dist/clock/root/README.md +38 -0
- package/dist/clock/root/clock-root-test.svelte +62 -0
- package/dist/clock/root/clock-root-test.svelte.d.ts +14 -0
- package/dist/clock/root/clock-root.svelte +329 -0
- package/dist/clock/root/clock-root.svelte.d.ts +25 -0
- package/dist/clock/root/context.d.ts +22 -0
- package/dist/clock/root/context.js +15 -0
- package/dist/clock/root/resolve-visible-columns.d.ts +7 -0
- package/dist/clock/root/resolve-visible-columns.js +16 -0
- package/dist/clock/root/time-utils.d.ts +48 -0
- package/dist/clock/root/time-utils.js +314 -0
- package/dist/clock/root/wheel-options.d.ts +17 -0
- package/dist/clock/root/wheel-options.js +63 -0
- package/dist/clock/wheel-column/README.md +25 -0
- package/dist/clock/wheel-column/clock-wheel-column-bindable-test.svelte +16 -0
- package/dist/clock/wheel-column/clock-wheel-column-bindable-test.svelte.d.ts +3 -0
- package/dist/clock/wheel-column/clock-wheel-column-custom-snippet-test.svelte +29 -0
- package/dist/clock/wheel-column/clock-wheel-column-custom-snippet-test.svelte.d.ts +6 -0
- package/dist/clock/wheel-column/clock-wheel-column-default-height-test.svelte +11 -0
- package/dist/clock/wheel-column/clock-wheel-column-default-height-test.svelte.d.ts +3 -0
- package/dist/clock/wheel-column/clock-wheel-column-test.svelte +38 -0
- package/dist/clock/wheel-column/clock-wheel-column-test.svelte.d.ts +12 -0
- package/dist/clock/wheel-column/clock-wheel-column-tp-test.svelte +38 -0
- package/dist/clock/wheel-column/clock-wheel-column-tp-test.svelte.d.ts +12 -0
- package/dist/clock/wheel-column/clock-wheel-column-untagged-snippet-test.svelte +29 -0
- package/dist/clock/wheel-column/clock-wheel-column-untagged-snippet-test.svelte.d.ts +6 -0
- package/dist/clock/wheel-column/clock-wheel-column.svelte +499 -0
- package/dist/clock/wheel-column/clock-wheel-column.svelte.d.ts +17 -0
- package/dist/clock/wheel-item/README.md +17 -0
- package/dist/clock/wheel-item/clock-wheel-item.svelte +49 -0
- package/dist/clock/wheel-item/clock-wheel-item.svelte.d.ts +17 -0
- package/dist/datepicker/TODO.md +2 -2
- package/dist/datepicker/calendar/README.md +19 -0
- package/dist/datepicker/input/README.md +15 -0
- package/dist/datepicker/popover/README.md +20 -0
- package/dist/datepicker/root/README.md +38 -0
- package/dist/datepicker/segment/README.md +14 -0
- package/dist/datepicker/trigger/README.md +14 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/primitives/focus-trap.js +11 -12
- package/dist/primitives/input-modality.js +10 -1
- package/dist/timepicker/IMPLEMENTATION_PLAN.md +254 -0
- package/dist/timepicker/README.md +97 -0
- package/dist/timepicker/TODO.md +86 -0
- package/dist/timepicker/clock/README.md +14 -0
- package/dist/timepicker/clock/time-picker-clock-test.svelte +45 -0
- package/dist/timepicker/clock/time-picker-clock-test.svelte.d.ts +11 -0
- package/dist/timepicker/clock/time-picker-clock.svelte +65 -0
- package/dist/timepicker/clock/time-picker-clock.svelte.d.ts +10 -0
- package/dist/timepicker/index.d.ts +14 -0
- package/dist/timepicker/index.js +14 -0
- package/dist/timepicker/index.parts.d.ts +8 -0
- package/dist/timepicker/index.parts.js +8 -0
- package/dist/timepicker/input/README.md +15 -0
- package/dist/timepicker/input/time-picker-input-forwarding-test.svelte +40 -0
- package/dist/timepicker/input/time-picker-input-forwarding-test.svelte.d.ts +3 -0
- package/dist/timepicker/input/time-picker-input.svelte +109 -0
- package/dist/timepicker/input/time-picker-input.svelte.d.ts +11 -0
- package/dist/timepicker/internal/strict-props.d.ts +4 -0
- package/dist/timepicker/internal/strict-props.js +51 -0
- package/dist/timepicker/popover/README.md +20 -0
- package/dist/timepicker/popover/time-picker-popover-unsafe-props-test.svelte +22 -0
- package/dist/timepicker/popover/time-picker-popover-unsafe-props-test.svelte.d.ts +3 -0
- package/dist/timepicker/popover/time-picker-popover.svelte +89 -0
- package/dist/timepicker/popover/time-picker-popover.svelte.d.ts +7 -0
- package/dist/timepicker/root/README.md +42 -0
- package/dist/timepicker/root/context.d.ts +51 -0
- package/dist/timepicker/root/context.js +15 -0
- package/dist/timepicker/root/time-picker-12h-test.svelte +22 -0
- package/dist/timepicker/root/time-picker-12h-test.svelte.d.ts +3 -0
- package/dist/timepicker/root/time-picker-bindable-test.svelte +25 -0
- package/dist/timepicker/root/time-picker-bindable-test.svelte.d.ts +3 -0
- package/dist/timepicker/root/time-picker-empty-test.svelte +20 -0
- package/dist/timepicker/root/time-picker-empty-test.svelte.d.ts +3 -0
- package/dist/timepicker/root/time-picker-root.svelte +625 -0
- package/dist/timepicker/root/time-picker-root.svelte.d.ts +28 -0
- package/dist/timepicker/root/time-picker-test.svelte +72 -0
- package/dist/timepicker/root/time-picker-test.svelte.d.ts +15 -0
- package/dist/timepicker/root/time-utils.d.ts +1 -0
- package/dist/timepicker/root/time-utils.js +3 -0
- package/dist/timepicker/segment/README.md +14 -0
- package/dist/timepicker/segment/time-picker-segment.svelte +365 -0
- package/dist/timepicker/segment/time-picker-segment.svelte.d.ts +9 -0
- package/dist/timepicker/trigger/README.md +14 -0
- package/dist/timepicker/trigger/time-picker-trigger-forwarding-test.svelte +35 -0
- package/dist/timepicker/trigger/time-picker-trigger-forwarding-test.svelte.d.ts +3 -0
- package/dist/timepicker/trigger/time-picker-trigger.svelte +122 -0
- package/dist/timepicker/trigger/time-picker-trigger.svelte.d.ts +9 -0
- package/package.json +11 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { TimePickerEditableSegmentType, TimePickerGranularity, TimePickerHourCycle, TimePickerSegmentPart, TimePickerSegmentType, TimePickerTimeValue } from './time-utils';
|
|
2
|
+
import type { PopoverChangeReason, PopoverOpenChangeDetails } from '../../popover/root/context';
|
|
3
|
+
export type TimePickerOpenChangeReason = PopoverChangeReason;
|
|
4
|
+
export type TimePickerOpenChangeDetails = PopoverOpenChangeDetails;
|
|
5
|
+
export type TimePickerContext = {
|
|
6
|
+
id: string;
|
|
7
|
+
isDisabled: boolean;
|
|
8
|
+
isReadOnly: boolean;
|
|
9
|
+
isRequired: boolean;
|
|
10
|
+
granularity: TimePickerGranularity;
|
|
11
|
+
hourCycle: TimePickerHourCycle;
|
|
12
|
+
open: boolean;
|
|
13
|
+
focusVisible: boolean;
|
|
14
|
+
focusWithin: boolean;
|
|
15
|
+
isInvalidDraft: boolean;
|
|
16
|
+
value: TimePickerTimeValue | null;
|
|
17
|
+
locale: string;
|
|
18
|
+
triggerRef: HTMLElement | null;
|
|
19
|
+
activeSegment: Exclude<TimePickerSegmentType, 'literal'> | null;
|
|
20
|
+
setTriggerRef: (element: HTMLElement | null) => void;
|
|
21
|
+
setFocusVisible: (visible: boolean) => void;
|
|
22
|
+
syncFocusWithin: () => void;
|
|
23
|
+
setActiveSegment: (segment: Exclude<TimePickerSegmentType, 'literal'> | null) => void;
|
|
24
|
+
openPopover: (reason?: TimePickerOpenChangeReason, event?: Event) => void;
|
|
25
|
+
closePopover: (reason?: TimePickerOpenChangeReason, event?: Event) => void;
|
|
26
|
+
togglePopover: (reason?: TimePickerOpenChangeReason, event?: Event) => void;
|
|
27
|
+
onOpenChange: (open: boolean, details: TimePickerOpenChangeDetails) => void;
|
|
28
|
+
setValue: (nextValue: TimePickerTimeValue | null) => void;
|
|
29
|
+
getSegments: () => TimePickerSegmentPart[];
|
|
30
|
+
getSegmentValue: (type: Exclude<TimePickerSegmentType, 'literal'>) => string;
|
|
31
|
+
setSegmentValue: (type: Exclude<TimePickerSegmentType, 'literal'>, nextValue: string) => void;
|
|
32
|
+
typeSegmentDigit: (type: Exclude<TimePickerSegmentType, 'literal'>, digit: string) => boolean;
|
|
33
|
+
adjustSegmentValue: (type: Exclude<TimePickerSegmentType, 'literal'>, step: number) => void;
|
|
34
|
+
getSegmentLabel: (type: TimePickerEditableSegmentType) => string;
|
|
35
|
+
registerSegmentRef: (type: TimePickerEditableSegmentType, element: HTMLElement | null) => void;
|
|
36
|
+
focusNextPlaceholderOrLastSegment: () => boolean;
|
|
37
|
+
focusNextSegment: (type: TimePickerEditableSegmentType) => boolean;
|
|
38
|
+
focusPreviousSegment: (type: TimePickerEditableSegmentType) => boolean;
|
|
39
|
+
focusLastSegment: () => boolean;
|
|
40
|
+
selectWheelValue: (type: TimePickerEditableSegmentType, value: string) => void;
|
|
41
|
+
getSelectedWheelValue: (type: TimePickerEditableSegmentType) => string | null;
|
|
42
|
+
getWheelOptions: (type: TimePickerEditableSegmentType) => Array<{
|
|
43
|
+
value: string;
|
|
44
|
+
label: string;
|
|
45
|
+
disabled: boolean;
|
|
46
|
+
}>;
|
|
47
|
+
};
|
|
48
|
+
export declare function setTimePickerContext(context: TimePickerContext): void;
|
|
49
|
+
export declare function getTimePickerContext(): TimePickerContext | undefined;
|
|
50
|
+
export declare function useTimePickerContext(): TimePickerContext;
|
|
51
|
+
export type { TimePickerSegmentPart, TimePickerSegmentType, TimePickerEditableSegmentType };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getContext, setContext } from 'svelte';
|
|
2
|
+
const KEY = Symbol('time-picker');
|
|
3
|
+
export function setTimePickerContext(context) {
|
|
4
|
+
setContext(KEY, context);
|
|
5
|
+
}
|
|
6
|
+
export function getTimePickerContext() {
|
|
7
|
+
return getContext(KEY);
|
|
8
|
+
}
|
|
9
|
+
export function useTimePickerContext() {
|
|
10
|
+
const context = getTimePickerContext();
|
|
11
|
+
if (!context) {
|
|
12
|
+
throw new Error('TimePicker components must be used within TimePicker.Root.');
|
|
13
|
+
}
|
|
14
|
+
return context;
|
|
15
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { LocaleProvider } from '../../locale-provider';
|
|
3
|
+
import TimePicker from '../index';
|
|
4
|
+
|
|
5
|
+
let value = $state<string | null>('14:30');
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<LocaleProvider locale="en-US">
|
|
9
|
+
<TimePicker.Root bind:value hourCycle={12}>
|
|
10
|
+
<TimePicker.Input aria-label="Time input">
|
|
11
|
+
{#snippet children(segment)}
|
|
12
|
+
<TimePicker.Segment {segment} />
|
|
13
|
+
{/snippet}
|
|
14
|
+
</TimePicker.Input>
|
|
15
|
+
<TimePicker.Trigger>Open time picker</TimePicker.Trigger>
|
|
16
|
+
<TimePicker.Popover>
|
|
17
|
+
<TimePicker.Clock />
|
|
18
|
+
</TimePicker.Popover>
|
|
19
|
+
</TimePicker.Root>
|
|
20
|
+
</LocaleProvider>
|
|
21
|
+
|
|
22
|
+
<p data-testid="bind-value">{value}</p>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import TimePicker from '../index';
|
|
3
|
+
|
|
4
|
+
let value = $state<string | null | undefined>('14:30');
|
|
5
|
+
let open = $state(false);
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<TimePicker.Root bind:value bind:open hourCycle={24}>
|
|
9
|
+
<TimePicker.Input aria-label="Time input">
|
|
10
|
+
{#snippet children(segment)}
|
|
11
|
+
<TimePicker.Segment {segment} />
|
|
12
|
+
{/snippet}
|
|
13
|
+
</TimePicker.Input>
|
|
14
|
+
<TimePicker.Trigger>Open time picker</TimePicker.Trigger>
|
|
15
|
+
<TimePicker.Popover>
|
|
16
|
+
<TimePicker.Clock />
|
|
17
|
+
</TimePicker.Popover>
|
|
18
|
+
</TimePicker.Root>
|
|
19
|
+
|
|
20
|
+
<p data-testid="bind-value">{value}</p>
|
|
21
|
+
<p data-testid="bind-open">{String(open)}</p>
|
|
22
|
+
<button type="button" data-testid="clear-undefined" onclick={() => (value = undefined)}
|
|
23
|
+
>Clear undefined</button
|
|
24
|
+
>
|
|
25
|
+
<button type="button" data-testid="clear-null" onclick={() => (value = null)}>Clear null</button>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import TimePicker from '../index';
|
|
3
|
+
|
|
4
|
+
let value = $state<string | null>(null);
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<TimePicker.Root bind:value hourCycle={24}>
|
|
8
|
+
<TimePicker.Input aria-label="Time input">
|
|
9
|
+
{#snippet children(segment)}
|
|
10
|
+
<TimePicker.Segment {segment} />
|
|
11
|
+
{/snippet}
|
|
12
|
+
</TimePicker.Input>
|
|
13
|
+
<TimePicker.Trigger>Open time picker</TimePicker.Trigger>
|
|
14
|
+
<TimePicker.Popover>
|
|
15
|
+
<TimePicker.Clock />
|
|
16
|
+
</TimePicker.Popover>
|
|
17
|
+
</TimePicker.Root>
|
|
18
|
+
|
|
19
|
+
<p data-testid="bind-value">{value}</p>
|
|
20
|
+
<button type="button" data-testid="outside-button">Outside</button>
|