@pathscale/ui 1.1.42 → 1.1.44

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.
Files changed (61) hide show
  1. package/dist/components/disclosure/Disclosure.classes.d.ts +15 -0
  2. package/dist/components/disclosure/Disclosure.classes.js +16 -0
  3. package/dist/components/disclosure/Disclosure.css +84 -0
  4. package/dist/components/disclosure/Disclosure.d.ts +45 -0
  5. package/dist/components/disclosure/Disclosure.js +302 -0
  6. package/dist/components/disclosure/index.d.ts +11 -0
  7. package/dist/components/disclosure/index.js +9 -0
  8. package/dist/components/disclosure-group/DisclosureGroup.classes.d.ts +3 -0
  9. package/dist/components/disclosure-group/DisclosureGroup.classes.js +4 -0
  10. package/dist/components/disclosure-group/DisclosureGroup.css +9 -0
  11. package/dist/components/disclosure-group/DisclosureGroup.d.ts +25 -0
  12. package/dist/components/disclosure-group/DisclosureGroup.js +73 -0
  13. package/dist/components/disclosure-group/index.d.ts +9 -0
  14. package/dist/components/disclosure-group/index.js +6 -0
  15. package/dist/components/disclosure-group/useDisclosureGroupNavigation.d.ts +14 -0
  16. package/dist/components/disclosure-group/useDisclosureGroupNavigation.js +54 -0
  17. package/dist/components/icon/Icon.js +1 -2
  18. package/dist/components/immersive-landing/ImmersiveLanding.css +1 -1
  19. package/dist/components/input/Input.css +4 -0
  20. package/dist/components/meter/Meter.classes.d.ts +21 -0
  21. package/dist/components/meter/Meter.classes.js +22 -0
  22. package/dist/components/meter/Meter.css +89 -0
  23. package/dist/components/meter/Meter.d.ts +43 -0
  24. package/dist/components/meter/Meter.js +212 -0
  25. package/dist/components/meter/index.d.ts +1 -0
  26. package/dist/components/meter/index.js +8 -0
  27. package/dist/components/popover/Popover.classes.d.ts +10 -0
  28. package/dist/components/popover/Popover.classes.js +11 -0
  29. package/dist/components/popover/Popover.css +125 -0
  30. package/dist/components/popover/Popover.d.ts +47 -0
  31. package/dist/components/popover/Popover.js +310 -0
  32. package/dist/components/popover/index.d.ts +11 -0
  33. package/dist/components/popover/index.js +9 -0
  34. package/dist/components/range-calendar/RangeCalendar.classes.d.ts +11 -0
  35. package/dist/components/range-calendar/RangeCalendar.classes.js +12 -0
  36. package/dist/components/range-calendar/RangeCalendar.css +51 -0
  37. package/dist/components/range-calendar/RangeCalendar.d.ts +24 -0
  38. package/dist/components/range-calendar/RangeCalendar.js +110 -0
  39. package/dist/components/range-calendar/index.d.ts +1 -0
  40. package/dist/components/range-calendar/index.js +3 -0
  41. package/dist/components/scroll-shadow/ScrollShadow.classes.d.ts +13 -0
  42. package/dist/components/scroll-shadow/ScrollShadow.classes.js +14 -0
  43. package/dist/components/scroll-shadow/ScrollShadow.css +93 -0
  44. package/dist/components/scroll-shadow/ScrollShadow.d.ts +18 -0
  45. package/dist/components/scroll-shadow/ScrollShadow.js +87 -0
  46. package/dist/components/scroll-shadow/index.d.ts +2 -0
  47. package/dist/components/scroll-shadow/index.js +3 -0
  48. package/dist/components/scroll-shadow/useScrollShadow.d.ts +13 -0
  49. package/dist/components/scroll-shadow/useScrollShadow.js +97 -0
  50. package/dist/components/toggle/Toggle.css +9 -0
  51. package/dist/components/toolbar/Toolbar.classes.d.ts +10 -0
  52. package/dist/components/toolbar/Toolbar.classes.js +11 -0
  53. package/dist/components/toolbar/Toolbar.css +55 -0
  54. package/dist/components/toolbar/Toolbar.d.ts +15 -0
  55. package/dist/components/toolbar/Toolbar.js +96 -0
  56. package/dist/components/toolbar/index.d.ts +1 -0
  57. package/dist/components/toolbar/index.js +5 -0
  58. package/dist/index.d.ts +13 -0
  59. package/dist/index.js +21 -1
  60. package/dist/purge-manifest.json +176 -0
  61. package/package.json +1 -1
@@ -0,0 +1,47 @@
1
+ import "./Popover.css";
2
+ import { type Component, type JSX, type ParentComponent } from "solid-js";
3
+ import type { IComponentBaseProps } from "../types";
4
+ export type PopoverPlacement = "top" | "bottom" | "left" | "right";
5
+ export type PopoverRootProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & {
6
+ children: JSX.Element;
7
+ isOpen?: boolean;
8
+ defaultOpen?: boolean;
9
+ onOpenChange?: (open: boolean) => void;
10
+ placement?: PopoverPlacement;
11
+ offset?: number;
12
+ closeOnOutsideClick?: boolean;
13
+ closeOnEscape?: boolean;
14
+ onInteractOutside?: (event: Event) => void;
15
+ };
16
+ declare const PopoverRoot: ParentComponent<PopoverRootProps>;
17
+ export type PopoverTriggerProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & {
18
+ children: JSX.Element;
19
+ };
20
+ declare const PopoverTrigger: Component<PopoverTriggerProps>;
21
+ export type PopoverContentProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & {
22
+ children: JSX.Element;
23
+ sideOffset?: number;
24
+ };
25
+ declare const PopoverContent: Component<PopoverContentProps>;
26
+ export type PopoverDialogProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & {
27
+ children: JSX.Element;
28
+ };
29
+ declare const PopoverDialog: Component<PopoverDialogProps>;
30
+ export type PopoverArrowProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLSpanElement>, "children"> & {
31
+ children?: JSX.Element;
32
+ };
33
+ declare const PopoverArrow: Component<PopoverArrowProps>;
34
+ export type PopoverHeadingProps = IComponentBaseProps & Omit<JSX.HTMLAttributes<HTMLHeadingElement>, "children"> & {
35
+ children: JSX.Element;
36
+ };
37
+ declare const PopoverHeading: Component<PopoverHeadingProps>;
38
+ declare const Popover: ParentComponent<PopoverRootProps> & {
39
+ Root: ParentComponent<PopoverRootProps>;
40
+ Trigger: Component<PopoverTriggerProps>;
41
+ Content: Component<PopoverContentProps>;
42
+ Dialog: Component<PopoverDialogProps>;
43
+ Arrow: Component<PopoverArrowProps>;
44
+ Heading: Component<PopoverHeadingProps>;
45
+ };
46
+ export default Popover;
47
+ export { PopoverRoot, PopoverTrigger, PopoverContent, PopoverDialog, PopoverArrow, PopoverHeading, };
@@ -0,0 +1,310 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
2
+ import "./Popover.css";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__ from "./Popover.classes.js";
6
+ var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg aria-hidden=true data-slot=popover-arrow-svg height=12 viewBox="0 0 12 12"width=12 xmlns=http://www.w3.org/2000/svg><path d="M0 0C5.48483 8 6.5 8 12 0Z"fill=currentColor>'), _tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span>"), _tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<h3>");
7
+ const PopoverContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)();
8
+ const usePopoverContext = ()=>{
9
+ const ctx = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(PopoverContext);
10
+ if (!ctx) throw new Error("Popover compound components must be used within <Popover>");
11
+ return ctx;
12
+ };
13
+ const PopoverRoot = (props)=>{
14
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
15
+ "children",
16
+ "class",
17
+ "className",
18
+ "dataTheme",
19
+ "style",
20
+ "isOpen",
21
+ "defaultOpen",
22
+ "onOpenChange",
23
+ "placement",
24
+ "offset",
25
+ "closeOnOutsideClick",
26
+ "closeOnEscape",
27
+ "onInteractOutside"
28
+ ]);
29
+ const [internalOpen, setInternalOpen] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(Boolean(local.defaultOpen));
30
+ const [triggerRef, setTriggerRef] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)();
31
+ const [contentRef, setContentRef] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)();
32
+ const [triggerId] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(`popover-trigger-${Math.random().toString(36).slice(2, 8)}`);
33
+ const [contentId] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(`popover-content-${Math.random().toString(36).slice(2, 8)}`);
34
+ const isControlled = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>void 0 !== local.isOpen);
35
+ const isOpen = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>isControlled() ? Boolean(local.isOpen) : internalOpen());
36
+ const setIsOpen = (next, options)=>{
37
+ if (!isControlled()) setInternalOpen(next);
38
+ if (isOpen() !== next) local.onOpenChange?.(next);
39
+ if (!next && options?.focusTrigger) triggerRef()?.focus();
40
+ };
41
+ const placement = ()=>local.placement ?? "bottom";
42
+ const offset = ()=>local.offset ?? 8;
43
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onMount)(()=>{
44
+ const handlePointerDown = (event)=>{
45
+ if (!isOpen()) return;
46
+ if (false === local.closeOnOutsideClick) return;
47
+ const content = contentRef();
48
+ const trigger = triggerRef();
49
+ if (content?.contains(event.target)) return;
50
+ if (trigger?.contains(event.target)) return;
51
+ local.onInteractOutside?.(event);
52
+ setIsOpen(false, {
53
+ focusTrigger: false
54
+ });
55
+ };
56
+ const handleKeyDown = (event)=>{
57
+ if (!isOpen()) return;
58
+ if (false === local.closeOnEscape) return;
59
+ if ("Escape" !== event.key) return;
60
+ event.preventDefault();
61
+ setIsOpen(false, {
62
+ focusTrigger: true
63
+ });
64
+ };
65
+ document.addEventListener("pointerdown", handlePointerDown);
66
+ document.addEventListener("keydown", handleKeyDown);
67
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
68
+ document.removeEventListener("pointerdown", handlePointerDown);
69
+ document.removeEventListener("keydown", handleKeyDown);
70
+ });
71
+ });
72
+ const ctx = {
73
+ isOpen,
74
+ setIsOpen,
75
+ placement,
76
+ triggerRef,
77
+ setTriggerRef,
78
+ contentRef,
79
+ setContentRef,
80
+ triggerId,
81
+ contentId,
82
+ offset,
83
+ onInteractOutside: local.onInteractOutside
84
+ };
85
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(PopoverContext.Provider, {
86
+ value: ctx,
87
+ get children () {
88
+ var _el$ = _tmpl$();
89
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, ()=>({
90
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__.CLASSES.slot.root, local.class, local.className)
91
+ }), {
92
+ "data-slot": "popover-root",
93
+ get ["data-theme"] () {
94
+ return local.dataTheme;
95
+ },
96
+ get style () {
97
+ return local.style;
98
+ }
99
+ }), false, true);
100
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, ()=>local.children);
101
+ return _el$;
102
+ }
103
+ });
104
+ };
105
+ const PopoverTrigger = (props)=>{
106
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
107
+ "children",
108
+ "class",
109
+ "className",
110
+ "dataTheme",
111
+ "style",
112
+ "onClick",
113
+ "onKeyDown"
114
+ ]);
115
+ const ctx = usePopoverContext();
116
+ const handleClick = (event)=>{
117
+ if ("function" == typeof local.onClick) local.onClick(event);
118
+ if (event.defaultPrevented) return;
119
+ ctx.setIsOpen(!ctx.isOpen());
120
+ };
121
+ const handleKeyDown = (event)=>{
122
+ if ("function" == typeof local.onKeyDown) local.onKeyDown(event);
123
+ if (event.defaultPrevented) return;
124
+ if ("Enter" === event.key || " " === event.key) {
125
+ event.preventDefault();
126
+ ctx.setIsOpen(!ctx.isOpen());
127
+ }
128
+ if ("Escape" === event.key && ctx.isOpen()) {
129
+ event.preventDefault();
130
+ ctx.setIsOpen(false, {
131
+ focusTrigger: true
132
+ });
133
+ }
134
+ };
135
+ return (()=>{
136
+ var _el$2 = _tmpl$();
137
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)((el)=>ctx.setTriggerRef(el), _el$2);
138
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
139
+ get id () {
140
+ return ctx.triggerId();
141
+ },
142
+ role: "button",
143
+ tabIndex: 0
144
+ }, ()=>({
145
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__.CLASSES.slot.trigger, local.class, local.className)
146
+ }), {
147
+ "data-slot": "popover-trigger",
148
+ get ["data-theme"] () {
149
+ return local.dataTheme;
150
+ },
151
+ get style () {
152
+ return local.style;
153
+ },
154
+ "aria-haspopup": "dialog",
155
+ get ["aria-expanded"] () {
156
+ return ctx.isOpen() ? "true" : "false";
157
+ },
158
+ get ["aria-controls"] () {
159
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>!!ctx.isOpen())() ? ctx.contentId() : void 0;
160
+ },
161
+ onClick: handleClick,
162
+ onKeyDown: handleKeyDown
163
+ }), false, true);
164
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, ()=>local.children);
165
+ return _el$2;
166
+ })();
167
+ };
168
+ const PopoverContent = (props)=>{
169
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
170
+ "children",
171
+ "class",
172
+ "className",
173
+ "dataTheme",
174
+ "style",
175
+ "sideOffset"
176
+ ]);
177
+ const ctx = usePopoverContext();
178
+ const style = ()=>{
179
+ if ("string" == typeof local.style) return `${local.style}; --popover-offset: ${local.sideOffset ?? ctx.offset()}px;`;
180
+ return {
181
+ ...local.style ?? {},
182
+ "--popover-offset": `${local.sideOffset ?? ctx.offset()}px`
183
+ };
184
+ };
185
+ return (()=>{
186
+ var _el$3 = _tmpl$();
187
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)((el)=>ctx.setContentRef(el), _el$3);
188
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$3, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
189
+ get id () {
190
+ return ctx.contentId();
191
+ },
192
+ role: "dialog"
193
+ }, ()=>({
194
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__.CLASSES.base, local.class, local.className)
195
+ }), {
196
+ "data-slot": "popover-content",
197
+ get ["data-open"] () {
198
+ return ctx.isOpen() ? "true" : "false";
199
+ },
200
+ get ["data-placement"] () {
201
+ return ctx.placement();
202
+ },
203
+ get ["data-theme"] () {
204
+ return local.dataTheme;
205
+ },
206
+ get style () {
207
+ return style();
208
+ },
209
+ get ["aria-labelledby"] () {
210
+ return ctx.triggerId();
211
+ },
212
+ get ["aria-hidden"] () {
213
+ return ctx.isOpen() ? "false" : "true";
214
+ }
215
+ }), false, true);
216
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, ()=>local.children);
217
+ return _el$3;
218
+ })();
219
+ };
220
+ const PopoverDialog = (props)=>{
221
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
222
+ "children",
223
+ "class",
224
+ "className",
225
+ "dataTheme",
226
+ "style"
227
+ ]);
228
+ return (()=>{
229
+ var _el$4 = _tmpl$();
230
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$4, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, ()=>({
231
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__.CLASSES.slot.dialog, local.class, local.className)
232
+ }), {
233
+ "data-slot": "popover-dialog",
234
+ get ["data-theme"] () {
235
+ return local.dataTheme;
236
+ },
237
+ get style () {
238
+ return local.style;
239
+ }
240
+ }), false, true);
241
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$4, ()=>local.children);
242
+ return _el$4;
243
+ })();
244
+ };
245
+ const PopoverArrow = (props)=>{
246
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
247
+ "children",
248
+ "class",
249
+ "className",
250
+ "dataTheme",
251
+ "style"
252
+ ]);
253
+ const ctx = usePopoverContext();
254
+ const defaultArrow = _tmpl$2();
255
+ return (()=>{
256
+ var _el$6 = _tmpl$3();
257
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$6, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, ()=>({
258
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__.CLASSES.slot.arrow, local.class, local.className)
259
+ }), {
260
+ "data-slot": "popover-arrow",
261
+ get ["data-placement"] () {
262
+ return ctx.placement();
263
+ },
264
+ get ["data-theme"] () {
265
+ return local.dataTheme;
266
+ },
267
+ get style () {
268
+ return local.style;
269
+ },
270
+ "aria-hidden": "true"
271
+ }), false, true);
272
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$6, ()=>local.children ?? defaultArrow);
273
+ return _el$6;
274
+ })();
275
+ };
276
+ const PopoverHeading = (props)=>{
277
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
278
+ "children",
279
+ "class",
280
+ "className",
281
+ "dataTheme",
282
+ "style"
283
+ ]);
284
+ return (()=>{
285
+ var _el$7 = _tmpl$4();
286
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$7, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, ()=>({
287
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Popover_classes_js_917d7621__.CLASSES.slot.heading, local.class, local.className)
288
+ }), {
289
+ "data-slot": "popover-heading",
290
+ get ["data-theme"] () {
291
+ return local.dataTheme;
292
+ },
293
+ get style () {
294
+ return local.style;
295
+ }
296
+ }), false, true);
297
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$7, ()=>local.children);
298
+ return _el$7;
299
+ })();
300
+ };
301
+ const Popover = Object.assign(PopoverRoot, {
302
+ Root: PopoverRoot,
303
+ Trigger: PopoverTrigger,
304
+ Content: PopoverContent,
305
+ Dialog: PopoverDialog,
306
+ Arrow: PopoverArrow,
307
+ Heading: PopoverHeading
308
+ });
309
+ const popover_Popover = Popover;
310
+ export { PopoverArrow, PopoverContent, PopoverDialog, PopoverHeading, PopoverRoot, PopoverTrigger, popover_Popover as default };
@@ -0,0 +1,11 @@
1
+ import type { ComponentProps } from "solid-js";
2
+ import Popover, { PopoverRoot, PopoverTrigger, PopoverContent, PopoverDialog, PopoverArrow, PopoverHeading } from "./Popover";
3
+ export type PopoverProps = ComponentProps<typeof PopoverRoot>;
4
+ export type PopoverRootProps = ComponentProps<typeof PopoverRoot>;
5
+ export type PopoverTriggerProps = ComponentProps<typeof PopoverTrigger>;
6
+ export type PopoverContentProps = ComponentProps<typeof PopoverContent>;
7
+ export type PopoverDialogProps = ComponentProps<typeof PopoverDialog>;
8
+ export type PopoverArrowProps = ComponentProps<typeof PopoverArrow>;
9
+ export type PopoverHeadingProps = ComponentProps<typeof PopoverHeading>;
10
+ export { PopoverRoot, PopoverTrigger, PopoverContent, PopoverDialog, PopoverArrow, PopoverHeading, };
11
+ export default Popover;
@@ -0,0 +1,9 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__ from "./Popover.js";
2
+ const popover = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__["default"];
3
+ var __webpack_exports__PopoverArrow = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__.PopoverArrow;
4
+ var __webpack_exports__PopoverContent = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__.PopoverContent;
5
+ var __webpack_exports__PopoverDialog = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__.PopoverDialog;
6
+ var __webpack_exports__PopoverHeading = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__.PopoverHeading;
7
+ var __webpack_exports__PopoverRoot = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__.PopoverRoot;
8
+ var __webpack_exports__PopoverTrigger = __WEBPACK_EXTERNAL_MODULE__Popover_js_1c9672de__.PopoverTrigger;
9
+ export { popover as default, __webpack_exports__PopoverArrow as PopoverArrow, __webpack_exports__PopoverContent as PopoverContent, __webpack_exports__PopoverDialog as PopoverDialog, __webpack_exports__PopoverHeading as PopoverHeading, __webpack_exports__PopoverRoot as PopoverRoot, __webpack_exports__PopoverTrigger as PopoverTrigger };
@@ -0,0 +1,11 @@
1
+ export declare const CLASSES: {
2
+ readonly Root: {
3
+ readonly base: "range-calendar";
4
+ readonly flag: {
5
+ readonly disabled: "range-calendar--disabled";
6
+ };
7
+ };
8
+ readonly Calendar: {
9
+ readonly base: "range-calendar__calendar";
10
+ };
11
+ };
@@ -0,0 +1,12 @@
1
+ const CLASSES = {
2
+ Root: {
3
+ base: "range-calendar",
4
+ flag: {
5
+ disabled: "range-calendar--disabled"
6
+ }
7
+ },
8
+ Calendar: {
9
+ base: "range-calendar__calendar"
10
+ }
11
+ };
12
+ export { CLASSES };
@@ -0,0 +1,51 @@
1
+ @layer components {
2
+ .range-calendar {
3
+ width: 15.75rem;
4
+ max-width: 100%;
5
+ container-type: inline-size;
6
+ }
7
+
8
+ .range-calendar--disabled {
9
+ opacity: var(--disabled-opacity, 0.72);
10
+ }
11
+
12
+ .range-calendar__calendar {
13
+ width: 100%;
14
+ max-width: 100%;
15
+ }
16
+
17
+ .range-calendar__calendar .calendar {
18
+ width: 100%;
19
+ max-width: 100%;
20
+ }
21
+
22
+ .range-calendar__calendar .calendar__heading {
23
+ text-align: center;
24
+ }
25
+
26
+ .range-calendar__calendar .calendar__cell--in-range,
27
+ .range-calendar__calendar .calendar__cell--in-preview-range {
28
+ border-radius: 0.5rem;
29
+ }
30
+
31
+ .range-calendar__calendar .calendar__cell--range-start.calendar__cell--in-range,
32
+ .range-calendar__calendar .calendar__cell--range-start.calendar__cell--in-preview-range {
33
+ border-top-left-radius: 9999px;
34
+ border-bottom-left-radius: 9999px;
35
+ border-top-right-radius: 0.5rem;
36
+ border-bottom-right-radius: 0.5rem;
37
+ }
38
+
39
+ .range-calendar__calendar .calendar__cell--range-end.calendar__cell--in-range,
40
+ .range-calendar__calendar .calendar__cell--range-end.calendar__cell--in-preview-range {
41
+ border-top-right-radius: 9999px;
42
+ border-bottom-right-radius: 9999px;
43
+ border-top-left-radius: 0.5rem;
44
+ border-bottom-left-radius: 0.5rem;
45
+ }
46
+
47
+ .range-calendar__calendar .calendar__cell--range-start.calendar__cell--range-end {
48
+ border-radius: 9999px;
49
+ }
50
+ }
51
+
@@ -0,0 +1,24 @@
1
+ import "./RangeCalendar.css";
2
+ import { type JSX } from "solid-js";
3
+ import { type ControlledDateRangeValue } from "../../hooks/date";
4
+ import { type CalendarWeekdayFormat } from "../calendar";
5
+ import type { IComponentBaseProps } from "../types";
6
+ export type RangeCalendarValue = ControlledDateRangeValue;
7
+ type RangeCalendarBaseProps = {
8
+ value?: RangeCalendarValue;
9
+ defaultValue?: RangeCalendarValue;
10
+ onChange?: (value: RangeCalendarValue) => void;
11
+ locale?: string;
12
+ weekdayFormat?: CalendarWeekdayFormat;
13
+ minValue?: Date;
14
+ maxValue?: Date;
15
+ isDateUnavailable?: (date: Date) => boolean;
16
+ showOutsideDays?: boolean;
17
+ isDisabled?: boolean;
18
+ disabled?: boolean;
19
+ onDaySelect?: (date: Date) => void;
20
+ onDayHover?: (date?: Date) => void;
21
+ };
22
+ export type RangeCalendarProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange" | "children"> & IComponentBaseProps & RangeCalendarBaseProps;
23
+ declare const RangeCalendar: (props: RangeCalendarProps) => JSX.Element;
24
+ export default RangeCalendar;
@@ -0,0 +1,110 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
2
+ import "./RangeCalendar.css";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__hooks_date_index_js_897f0efe__ from "../../hooks/date/index.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__calendar_index_js_fe41d1b9__ from "../calendar/index.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__RangeCalendar_classes_js_4681dcc3__ from "./RangeCalendar.classes.js";
8
+ var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>");
9
+ const RangeCalendar_RangeCalendar = (props)=>{
10
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
11
+ "class",
12
+ "className",
13
+ "dataTheme",
14
+ "style",
15
+ "ref",
16
+ "value",
17
+ "defaultValue",
18
+ "onChange",
19
+ "locale",
20
+ "weekdayFormat",
21
+ "minValue",
22
+ "maxValue",
23
+ "isDateUnavailable",
24
+ "showOutsideDays",
25
+ "isDisabled",
26
+ "disabled",
27
+ "onDaySelect",
28
+ "onDayHover"
29
+ ]);
30
+ const isDisabled = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>Boolean(local.isDisabled) || Boolean(local.disabled));
31
+ const rangeSelection = (0, __WEBPACK_EXTERNAL_MODULE__hooks_date_index_js_897f0efe__.useRangeSelection)({
32
+ value: ()=>local.value,
33
+ defaultValue: ()=>local.defaultValue,
34
+ onChange: ()=>local.onChange
35
+ });
36
+ const handleDaySelect = (date)=>{
37
+ local.onDaySelect?.(date);
38
+ rangeSelection.selectDate(date);
39
+ };
40
+ const handleDayHover = (date)=>{
41
+ local.onDayHover?.(date);
42
+ rangeSelection.setHoverDate(date);
43
+ };
44
+ return (()=>{
45
+ var _el$ = _tmpl$();
46
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)((node)=>{
47
+ if ("function" == typeof local.ref) local.ref(node);
48
+ }, _el$);
49
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
50
+ "data-slot": "range-calendar",
51
+ get ["data-disabled"] () {
52
+ return isDisabled() ? "true" : "false";
53
+ },
54
+ get ["data-theme"] () {
55
+ return local.dataTheme;
56
+ },
57
+ get style () {
58
+ return local.style;
59
+ },
60
+ get ["aria-disabled"] () {
61
+ return isDisabled() ? "true" : void 0;
62
+ }
63
+ }, ()=>({
64
+ class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__RangeCalendar_classes_js_4681dcc3__.CLASSES.Root.base, isDisabled() && __WEBPACK_EXTERNAL_MODULE__RangeCalendar_classes_js_4681dcc3__.CLASSES.Root.flag.disabled, local.class, local.className)
65
+ })), false, true);
66
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE__calendar_index_js_fe41d1b9__["default"], (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
67
+ class: __WEBPACK_EXTERNAL_MODULE__RangeCalendar_classes_js_4681dcc3__.CLASSES.Calendar.base
68
+ }), {
69
+ selectionMode: "range",
70
+ get value () {
71
+ return rangeSelection.focusDate() ?? void 0;
72
+ },
73
+ get rangeStart () {
74
+ return rangeSelection.rangeStart() ?? void 0;
75
+ },
76
+ get rangeEnd () {
77
+ return rangeSelection.rangeEnd() ?? void 0;
78
+ },
79
+ get rangePreview () {
80
+ return rangeSelection.hoveredDate() ?? void 0;
81
+ },
82
+ get locale () {
83
+ return local.locale;
84
+ },
85
+ get weekdayFormat () {
86
+ return local.weekdayFormat;
87
+ },
88
+ get minValue () {
89
+ return local.minValue;
90
+ },
91
+ get maxValue () {
92
+ return local.maxValue;
93
+ },
94
+ get isDateUnavailable () {
95
+ return local.isDateUnavailable;
96
+ },
97
+ get showOutsideDays () {
98
+ return local.showOutsideDays;
99
+ },
100
+ get isDisabled () {
101
+ return isDisabled();
102
+ },
103
+ onDaySelect: handleDaySelect,
104
+ onDayHover: handleDayHover
105
+ })));
106
+ return _el$;
107
+ })();
108
+ };
109
+ const RangeCalendar = RangeCalendar_RangeCalendar;
110
+ export { RangeCalendar as default };
@@ -0,0 +1 @@
1
+ export { default, type RangeCalendarProps, type RangeCalendarValue, } from "./RangeCalendar";
@@ -0,0 +1,3 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__RangeCalendar_js_087f6a97__ from "./RangeCalendar.js";
2
+ var __webpack_exports__default = __WEBPACK_EXTERNAL_MODULE__RangeCalendar_js_087f6a97__["default"];
3
+ export { __webpack_exports__default as default };
@@ -0,0 +1,13 @@
1
+ export declare const CLASSES: {
2
+ readonly base: "scroll-shadow";
3
+ readonly orientation: {
4
+ readonly vertical: "scroll-shadow--vertical";
5
+ readonly horizontal: "scroll-shadow--horizontal";
6
+ };
7
+ readonly variant: {
8
+ readonly fade: "scroll-shadow--fade";
9
+ };
10
+ readonly flag: {
11
+ readonly hideScrollBar: "scroll-shadow--hide-scrollbar";
12
+ };
13
+ };
@@ -0,0 +1,14 @@
1
+ const CLASSES = {
2
+ base: "scroll-shadow",
3
+ orientation: {
4
+ vertical: "scroll-shadow--vertical",
5
+ horizontal: "scroll-shadow--horizontal"
6
+ },
7
+ variant: {
8
+ fade: "scroll-shadow--fade"
9
+ },
10
+ flag: {
11
+ hideScrollBar: "scroll-shadow--hide-scrollbar"
12
+ }
13
+ };
14
+ export { CLASSES };