@smwb/ui-solid 0.2.2 → 0.3.0

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 (50) hide show
  1. package/dist/components/dataDisplay/carousel/carousel.js +7 -7
  2. package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
  3. package/dist/components/dataDisplay/chat/chatAttachmentImage.js +17 -17
  4. package/dist/components/dataDisplay/chat/chatAttachmentImage.js.map +1 -1
  5. package/dist/components/dataDisplay/chat/chatShell.js +16 -16
  6. package/dist/components/dataDisplay/chat/chatShell.js.map +1 -1
  7. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +25 -25
  8. package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  9. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +15 -15
  10. package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  11. package/dist/components/feedBack/modal/modal.js +29 -29
  12. package/dist/components/feedBack/modal/modal.js.map +1 -1
  13. package/dist/components/inputs/datePicker/datePicker.js +43 -43
  14. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  15. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +46 -46
  16. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  17. package/dist/components/inputs/selectField/dropdownMenu.js +30 -30
  18. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  19. package/dist/components/inputs/slider/slider.js +48 -48
  20. package/dist/components/inputs/slider/slider.js.map +1 -1
  21. package/dist/components/inputs/timePicker/timePicker.js +31 -31
  22. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  23. package/dist/components/layout/sheet/sheet.js +29 -29
  24. package/dist/components/layout/sheet/sheet.js.map +1 -1
  25. package/dist/headless/components/dataDisplay/carousel/carousel.js +20 -20
  26. package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
  27. package/dist/headless/components/dataDisplay/chat/chatAttachmentImage.js +17 -17
  28. package/dist/headless/components/dataDisplay/chat/chatAttachmentImage.js.map +1 -1
  29. package/dist/headless/components/dataDisplay/chat/chatShell.js +16 -16
  30. package/dist/headless/components/dataDisplay/chat/chatShell.js.map +1 -1
  31. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +25 -25
  32. package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
  33. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +15 -15
  34. package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
  35. package/dist/headless/components/feedBack/modal/modal.js +25 -25
  36. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  37. package/dist/headless/components/inputs/datePicker/datePicker.js +43 -43
  38. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  39. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +46 -46
  40. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  41. package/dist/headless/components/inputs/selectField/dropdownMenu.js +30 -30
  42. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  43. package/dist/headless/components/inputs/slider/slider.js +90 -90
  44. package/dist/headless/components/inputs/slider/slider.js.map +1 -1
  45. package/dist/headless/components/inputs/timePicker/timePicker.js +31 -31
  46. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  47. package/dist/headless/components/layout/sheet/sheet.js +29 -29
  48. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  49. package/dist/ssr.ssr-spec.d.ts +1 -0
  50. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"timePicker.js","sources":["../../../../src/components/inputs/timePicker/timePicker.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, createSignal, onCleanup, splitProps } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { buildFloatingMiddleware, type Placement, resolvePlacement } from \"../../../utils/floating\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { TimePickerInput } from \"./timePickerInput\";\nimport { TimePickerColumns } from \"./timePickerColumns\";\nimport { isValidTimeDate } from \"./timeUtils\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport type { TextFieldProps } from \"../textField\";\n\nexport interface TimePickerProps\n extends Omit<TextFieldProps, \"onBlur\" | \"onChange\" | \"value\" | \"defaultValue\" | \"ref\" | \"onToggle\"> {\n /** Time format pattern with tokens HH, mm, ss, e.g. \"HH:mm\" or \"HH:mm:ss\". */\n format?: string | undefined;\n placement?: Placement | undefined;\n disableClock?: boolean | undefined;\n label?: string | undefined;\n clockAriaLabel?: string | undefined;\n value?: Date | string | undefined;\n clockIcon?: JSX.Element;\n onChange?: ((event?: Event, value?: Date, data?: TimePickerProps) => void) | undefined;\n onBlur?: ((event?: FocusEvent, value?: Date, data?: TimePickerProps) => void) | undefined;\n ref?: Ref<HTMLInputElement>;\n}\n\nconst FADE_MS = 150;\n\nexport function TimePicker(props: TimePickerProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"onChange\",\n \"placement\",\n \"disabled\",\n \"disableClock\",\n \"clockAriaLabel\",\n \"format\",\n \"onBlur\",\n \"ref\",\n ]);\n\n const value = (): Date | undefined => (local.value === undefined ? undefined : new Date(local.value));\n const [viewValue, setViewValue] = createSignal<Date>(isValidTimeDate(value()) ? (value() as Date) : new Date());\n const [isOpen, setIsOpen] = createSignal(false);\n\n let anchorEl: HTMLElement | undefined;\n let clockEl: HTMLElement | undefined;\n\n const resolved = () => resolvePlacement(local.placement ?? \"bottom-start\");\n const floating = createFloating({\n placement: () => resolved().placement,\n middleware: () => buildFloatingMiddleware(resolved()),\n });\n\n createEffect(() => {\n if (local.disabled) return;\n const v = value();\n setViewValue(isValidTimeDate(v) ? v : new Date());\n });\n\n const shouldOpen = (): boolean => isOpen() && !local.disabled && !local.disableClock;\n const [mounted, setMounted] = createSignal(shouldOpen());\n const [shown, setShown] = createSignal(false);\n let raf: number | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n createEffect(() => {\n if (shouldOpen()) {\n if (timer !== undefined) clearTimeout(timer);\n setMounted(true);\n raf = requestAnimationFrame(() => setShown(true));\n } else {\n setShown(false);\n if (mounted()) timer = setTimeout(() => setMounted(false), FADE_MS);\n }\n });\n onCleanup(() => {\n if (raf !== undefined) cancelAnimationFrame(raf);\n if (timer !== undefined) clearTimeout(timer);\n });\n\n const onToggle = (): void => {\n if (!local.disabled) setIsOpen((prev) => !prev);\n };\n\n const onClickAway = (event: MouseEvent | TouchEvent): void => {\n const target = event.target as HTMLElement;\n if (clockEl?.contains(target) || anchorEl?.contains(target)) return;\n setIsOpen(false);\n };\n\n const onTimeChange = (next: Date): void => {\n setViewValue(next);\n local.onChange?.(undefined, next, props);\n };\n\n return (\n <>\n <TimePickerInput\n ref={mergeRefs(local.ref, floating.setReference, (el) => (anchorEl = el as HTMLElement))}\n value={local.value}\n onChange={local.onChange}\n onBlur={local.onBlur}\n onToggle={onToggle}\n disabled={local.disabled}\n disableClock={local.disableClock}\n format={local.format}\n {...rest}\n />\n <Show when={mounted()}>\n <Portal mount={document.body}>\n <ClickAwayListener onClickAway={onClickAway}>\n <div\n ref={mergeRefs(floating.setFloating, (el) => (clockEl = el as HTMLElement))}\n class=\"smwb-date-picker smwb-time-picker\"\n style={{ ...floating.floatingStyles(), transition: `opacity ${FADE_MS}ms ease-in-out`, opacity: shown() ? 1 : 0 }}\n data-testid=\"time-picker\"\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={local.clockAriaLabel ?? \"Choose time\"}\n >\n <div class=\"smwb-date-picker__inner\">\n <TimePickerColumns\n value={viewValue()}\n format={local.format}\n onChange={onTimeChange}\n onComplete={() => {\n setIsOpen(false);\n }}\n />\n </div>\n </div>\n </ClickAwayListener>\n </Portal>\n </Show>\n </>\n );\n}\n\nexport default TimePicker;\n"],"names":["FADE_MS","TimePicker","props","local","rest","splitProps","value","undefined","Date","viewValue","setViewValue","createSignal","isValidTimeDate","isOpen","setIsOpen","anchorEl","clockEl","resolved","resolvePlacement","placement","floating","createFloating","middleware","buildFloatingMiddleware","createEffect","disabled","v","shouldOpen","disableClock","mounted","setMounted","shown","setShown","raf","timer","clearTimeout","requestAnimationFrame","setTimeout","onCleanup","cancelAnimationFrame","onToggle","prev","onClickAway","event","target","contains","onTimeChange","next","onChange","_$createComponent","TimePickerInput","_$mergeProps","ref","r$","_ref$","mergeRefs","setReference","el","onBlur","format","Show","when","children","Portal","mount","document","body","ClickAwayListener","_el$","_tmpl$","_el$2","firstChild","_ref$2","setFloating","_$use","_$insert","TimePickerColumns","onComplete","_$effect","_p$","_v$","floatingStyles","opacity","_v$2","clockAriaLabel","e","_$style","t","_$setAttribute"],"mappings":"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"}
1
+ {"version":3,"file":"timePicker.js","sources":["../../../../src/components/inputs/timePicker/timePicker.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, createSignal, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport { buildFloatingMiddleware, type Placement, resolvePlacement } from \"../../../utils/floating\";\nimport { createFloating } from \"../../../primitives/createFloating\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { TimePickerInput } from \"./timePickerInput\";\nimport { TimePickerColumns } from \"./timePickerColumns\";\nimport { isValidTimeDate } from \"./timeUtils\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\nimport type { TextFieldProps } from \"../textField\";\n\nexport interface TimePickerProps\n extends Omit<TextFieldProps, \"onBlur\" | \"onChange\" | \"value\" | \"defaultValue\" | \"ref\" | \"onToggle\"> {\n /** Time format pattern with tokens HH, mm, ss, e.g. \"HH:mm\" or \"HH:mm:ss\". */\n format?: string | undefined;\n placement?: Placement | undefined;\n disableClock?: boolean | undefined;\n label?: string | undefined;\n clockAriaLabel?: string | undefined;\n value?: Date | string | undefined;\n clockIcon?: JSX.Element;\n onChange?: ((event?: Event, value?: Date, data?: TimePickerProps) => void) | undefined;\n onBlur?: ((event?: FocusEvent, value?: Date, data?: TimePickerProps) => void) | undefined;\n ref?: Ref<HTMLInputElement>;\n}\n\nconst FADE_MS = 150;\n\nexport function TimePicker(props: TimePickerProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"onChange\",\n \"placement\",\n \"disabled\",\n \"disableClock\",\n \"clockAriaLabel\",\n \"format\",\n \"onBlur\",\n \"ref\",\n ]);\n\n const value = (): Date | undefined => (local.value === undefined ? undefined : new Date(local.value));\n const [viewValue, setViewValue] = createSignal<Date>(isValidTimeDate(value()) ? (value() as Date) : new Date());\n const [isOpen, setIsOpen] = createSignal(false);\n\n let anchorEl: HTMLElement | undefined;\n let clockEl: HTMLElement | undefined;\n\n const resolved = () => resolvePlacement(local.placement ?? \"bottom-start\");\n const floating = createFloating({\n placement: () => resolved().placement,\n middleware: () => buildFloatingMiddleware(resolved()),\n });\n\n createEffect(() => {\n if (local.disabled) return;\n const v = value();\n setViewValue(isValidTimeDate(v) ? v : new Date());\n });\n\n const shouldOpen = (): boolean => isOpen() && !local.disabled && !local.disableClock;\n const [mounted, setMounted] = createSignal(shouldOpen());\n const [shown, setShown] = createSignal(false);\n let raf: number | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n createEffect(() => {\n if (shouldOpen()) {\n if (timer !== undefined) clearTimeout(timer);\n setMounted(true);\n raf = requestAnimationFrame(() => setShown(true));\n } else {\n setShown(false);\n if (mounted()) timer = setTimeout(() => setMounted(false), FADE_MS);\n }\n });\n onCleanup(() => {\n if (raf !== undefined) cancelAnimationFrame(raf);\n if (timer !== undefined) clearTimeout(timer);\n });\n\n const onToggle = (): void => {\n if (!local.disabled) setIsOpen((prev) => !prev);\n };\n\n const onClickAway = (event: MouseEvent | TouchEvent): void => {\n const target = event.target as HTMLElement;\n if (clockEl?.contains(target) || anchorEl?.contains(target)) return;\n setIsOpen(false);\n };\n\n const onTimeChange = (next: Date): void => {\n setViewValue(next);\n local.onChange?.(undefined, next, props);\n };\n\n return (\n <>\n <TimePickerInput\n ref={mergeRefs(local.ref, floating.setReference, (el) => (anchorEl = el as HTMLElement))}\n value={local.value}\n onChange={local.onChange}\n onBlur={local.onBlur}\n onToggle={onToggle}\n disabled={local.disabled}\n disableClock={local.disableClock}\n format={local.format}\n {...rest}\n />\n <Show when={mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <ClickAwayListener onClickAway={onClickAway}>\n <div\n ref={mergeRefs(floating.setFloating, (el) => (clockEl = el as HTMLElement))}\n class=\"smwb-date-picker smwb-time-picker\"\n style={{ ...floating.floatingStyles(), transition: `opacity ${FADE_MS}ms ease-in-out`, opacity: shown() ? 1 : 0 }}\n data-testid=\"time-picker\"\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={local.clockAriaLabel ?? \"Choose time\"}\n >\n <div class=\"smwb-date-picker__inner\">\n <TimePickerColumns\n value={viewValue()}\n format={local.format}\n onChange={onTimeChange}\n onComplete={() => {\n setIsOpen(false);\n }}\n />\n </div>\n </div>\n </ClickAwayListener>\n </Portal>\n </Show>\n </>\n );\n}\n\nexport default TimePicker;\n"],"names":["FADE_MS","TimePicker","props","local","rest","splitProps","value","undefined","Date","viewValue","setViewValue","createSignal","isValidTimeDate","isOpen","setIsOpen","anchorEl","clockEl","resolved","resolvePlacement","placement","floating","createFloating","middleware","buildFloatingMiddleware","createEffect","disabled","v","shouldOpen","disableClock","mounted","setMounted","shown","setShown","raf","timer","clearTimeout","requestAnimationFrame","setTimeout","onCleanup","cancelAnimationFrame","onToggle","prev","onClickAway","event","target","contains","onTimeChange","next","onChange","_$createComponent","TimePickerInput","_$mergeProps","ref","r$","_ref$","mergeRefs","setReference","el","onBlur","format","Show","when","children","Portal","mount","isServer","document","body","ClickAwayListener","_el$","_tmpl$","_el$2","firstChild","_ref$2","setFloating","_$use","_$insert","TimePickerColumns","onComplete","_$effect","_p$","_v$","floatingStyles","opacity","_v$2","clockAriaLabel","e","_$style","t","_$setAttribute"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { createComponent as o, Portal as j, insert as d, effect as _, className as H, template as v, mergeProps as L, use as V, spread as q, setAttribute as w, memo as F, delegateEvents as G } from "solid-js/web";
1
+ import { createComponent as o, Portal as j, insert as d, effect as _, className as H, isServer as V, template as b, mergeProps as L, use as q, spread as F, setAttribute as w, memo as G, delegateEvents as J } from "solid-js/web";
2
2
  import '../../../assets/styles/less/components/sheet/sheet.entry.css';/* empty css */
3
- import { mergeProps as T, splitProps as R, createSignal as B, createEffect as M, onCleanup as J, Show as g } from "solid-js";
3
+ import { mergeProps as T, splitProps as R, createSignal as B, createEffect as M, onCleanup as Q, Show as g } from "solid-js";
4
4
  import C from "clsx";
5
5
  import { createCssTransition as I } from "../../../primitives/createCssTransition.js";
6
- import { mergeRefs as Q } from "../../../primitives/mergeRefs.js";
7
- import { ClickAwayListener as Z } from "../../clickAwayListener/clickAwayListener.js";
6
+ import { mergeRefs as Z } from "../../../primitives/mergeRefs.js";
7
+ import { ClickAwayListener as ee } from "../../clickAwayListener/clickAwayListener.js";
8
8
  import { Button as P } from "../../inputs/button/button.js";
9
9
  import { Icon as E } from "../../base/icon/icon.js";
10
- var ee = /* @__PURE__ */ v("<div class=smwb-sheet__drag-handle data-testid=sheet-drag-handle role=separator tabindex=0><span class=smwb-sheet__drag-handle-bar>"), te = /* @__PURE__ */ v("<div class=smwb-sheet__header>"), ne = /* @__PURE__ */ v("<div class=smwb-sheet__inner>"), x = /* @__PURE__ */ v("<div>");
11
- const re = (m) => m === "bottom" || m === "top";
12
- function ie(m) {
10
+ var te = /* @__PURE__ */ b("<div class=smwb-sheet__drag-handle data-testid=sheet-drag-handle role=separator tabindex=0><span class=smwb-sheet__drag-handle-bar>"), ne = /* @__PURE__ */ b("<div class=smwb-sheet__header>"), re = /* @__PURE__ */ b("<div class=smwb-sheet__inner>"), x = /* @__PURE__ */ b("<div>");
11
+ const ie = (m) => m === "bottom" || m === "top";
12
+ function oe(m) {
13
13
  const S = T({
14
14
  size: "60%",
15
15
  withSizeToggle: !0,
@@ -21,7 +21,7 @@ function ie(m) {
21
21
  resizeHandleAriaLabel: "Resize sheet"
22
22
  }, m), [e, y] = R(S, ["isOpen", "placement", "class", "mode", "size", "variant", "onClose", "withSizeToggle", "hideHeaderActions", "reverseHeaderActions", "resizable", "minSize", "maxSize", "resizeStep", "resizeHandleAriaLabel", "onResize", "style", "handleClose", "handleSizeButton", "children", "ref"]);
23
23
  let p;
24
- const [c, u] = B(null), a = () => re(e.placement), f = I({
24
+ const [c, u] = B(null), a = () => ie(e.placement), f = I({
25
25
  in: () => e.isOpen,
26
26
  timeout: {
27
27
  enter: 120,
@@ -31,14 +31,14 @@ function ie(m) {
31
31
  enterDone: "smwb-sheet_entered"
32
32
  },
33
33
  appear: !0
34
- }), z = (t) => {
34
+ }), v = (t) => {
35
35
  const s = a() ? window.innerHeight : window.innerWidth, n = e.maxSize ?? s;
36
36
  return Math.max(e.minSize, Math.min(n, t));
37
37
  }, r = () => {
38
38
  const t = p?.getBoundingClientRect();
39
39
  return t ? a() ? t.height : t.width : e.minSize;
40
40
  }, l = (t) => {
41
- const s = z(t);
41
+ const s = v(t);
42
42
  u(s), e.onResize?.(s);
43
43
  };
44
44
  let h = null;
@@ -58,8 +58,8 @@ function ie(m) {
58
58
  }, A = (t) => {
59
59
  h = null, t.currentTarget.hasPointerCapture?.(t.pointerId) && t.currentTarget.releasePointerCapture?.(t.pointerId);
60
60
  }, W = (t) => {
61
- const s = c() ?? r(), n = e.maxSize ?? (a() ? window.innerHeight : window.innerWidth), i = e.placement === "bottom" ? "ArrowUp" : e.placement === "top" ? "ArrowDown" : e.placement === "left" ? "ArrowRight" : "ArrowLeft", b = e.placement === "bottom" ? "ArrowDown" : e.placement === "top" ? "ArrowUp" : e.placement === "left" ? "ArrowLeft" : "ArrowRight";
62
- t.key === i ? (t.preventDefault(), l(s + e.resizeStep)) : t.key === b ? (t.preventDefault(), l(s - e.resizeStep)) : t.key === "Home" ? (t.preventDefault(), l(e.minSize)) : t.key === "End" && (t.preventDefault(), l(n));
61
+ const s = c() ?? r(), n = e.maxSize ?? (a() ? window.innerHeight : window.innerWidth), i = e.placement === "bottom" ? "ArrowUp" : e.placement === "top" ? "ArrowDown" : e.placement === "left" ? "ArrowRight" : "ArrowLeft", z = e.placement === "bottom" ? "ArrowDown" : e.placement === "top" ? "ArrowUp" : e.placement === "left" ? "ArrowLeft" : "ArrowRight";
62
+ t.key === i ? (t.preventDefault(), l(s + e.resizeStep)) : t.key === z ? (t.preventDefault(), l(s - e.resizeStep)) : t.key === "Home" ? (t.preventDefault(), l(e.minSize)) : t.key === "End" && (t.preventDefault(), l(n));
63
63
  };
64
64
  M(() => {
65
65
  if (!e.isOpen) {
@@ -108,8 +108,8 @@ function ie(m) {
108
108
  return {};
109
109
  };
110
110
  return (() => {
111
- var t = x(), s = Q(e.ref, (n) => p = n);
112
- return typeof s == "function" && V(s, t), q(t, L(y, {
111
+ var t = x(), s = Z(e.ref, (n) => p = n);
112
+ return typeof s == "function" && q(s, t), F(t, L(y, {
113
113
  "data-testid": "sheet",
114
114
  tabindex: -1,
115
115
  role: "dialog",
@@ -135,10 +135,10 @@ function ie(m) {
135
135
  return e.resizable;
136
136
  },
137
137
  get children() {
138
- var n = ee();
138
+ var n = te();
139
139
  return n.$$keydown = W, n.addEventListener("pointercancel", A), n.$$pointerup = A, n.$$pointermove = N, n.$$pointerdown = K, _((i) => {
140
- var b = a() ? "horizontal" : "vertical", k = e.resizeHandleAriaLabel, $ = e.minSize, O = Math.round(e.maxSize ?? (a() ? window.innerHeight : window.innerWidth)), D = Math.round(c() ?? r());
141
- return b !== i.e && w(n, "aria-orientation", i.e = b), k !== i.t && w(n, "aria-label", i.t = k), $ !== i.a && w(n, "aria-valuemin", i.a = $), O !== i.o && w(n, "aria-valuemax", i.o = O), D !== i.i && w(n, "aria-valuenow", i.i = D), i;
140
+ var z = a() ? "horizontal" : "vertical", k = e.resizeHandleAriaLabel, $ = e.minSize, O = Math.round(e.maxSize ?? (a() ? window.innerHeight : window.innerWidth)), D = Math.round(c() ?? r());
141
+ return z !== i.e && w(n, "aria-orientation", i.e = z), k !== i.t && w(n, "aria-label", i.t = k), $ !== i.a && w(n, "aria-valuemin", i.a = $), O !== i.o && w(n, "aria-valuemax", i.o = O), D !== i.i && w(n, "aria-valuenow", i.i = D), i;
142
142
  }, {
143
143
  e: void 0,
144
144
  t: void 0,
@@ -152,21 +152,21 @@ function ie(m) {
152
152
  return U();
153
153
  },
154
154
  get children() {
155
- var n = te();
155
+ var n = ne();
156
156
  return d(n, X), n;
157
157
  }
158
158
  }), null), d(t, o(g, {
159
159
  get when() {
160
- return F(() => !!e.isOpen)() && e.mode !== "small";
160
+ return G(() => !!e.isOpen)() && e.mode !== "small";
161
161
  },
162
162
  get children() {
163
- var n = ne();
163
+ var n = re();
164
164
  return d(n, () => e.children), n;
165
165
  }
166
166
  }), null), t;
167
167
  })();
168
168
  }
169
- function he(m) {
169
+ function we(m) {
170
170
  const S = T({
171
171
  variant: "default",
172
172
  placement: "bottom",
@@ -187,13 +187,13 @@ function he(m) {
187
187
  const r = (l) => {
188
188
  l.key === "Escape" && e.onClose?.();
189
189
  };
190
- document.addEventListener("keydown", r), J(() => document.removeEventListener("keydown", r));
190
+ document.addEventListener("keydown", r), Q(() => document.removeEventListener("keydown", r));
191
191
  });
192
192
  const a = () => {
193
193
  c((r) => r === "expanded" ? "small" : r === null ? "expanded" : null);
194
194
  }, f = () => {
195
195
  e.onClose?.(), c(null);
196
- }, z = () => o(ie, L(y, {
196
+ }, v = () => o(oe, L(y, {
197
197
  ref(r) {
198
198
  var l = e.ref;
199
199
  typeof l == "function" ? l(r) : e.ref = r;
@@ -226,7 +226,7 @@ function he(m) {
226
226
  get children() {
227
227
  return o(j, {
228
228
  get mount() {
229
- return document.body;
229
+ return V ? void 0 : document.body;
230
230
  },
231
231
  get children() {
232
232
  return o(g, {
@@ -236,17 +236,17 @@ function he(m) {
236
236
  get fallback() {
237
237
  return (() => {
238
238
  var r = x();
239
- return d(r, o(Z, {
239
+ return d(r, o(ee, {
240
240
  onClickAway: () => !e.disableOutsideClick && f(),
241
241
  get children() {
242
- return z();
242
+ return v();
243
243
  }
244
244
  })), _(() => H(r, C("smwb-sheet__overlay", "smwb-dark", `smwb-${e.placement}`, `smwb-sheet_${e.variant}`, u.classes()))), r;
245
245
  })();
246
246
  },
247
247
  get children() {
248
248
  var r = x();
249
- return d(r, z), _(() => H(r, C(e.disableOutsideClick ? "smwb-sheet__overlay" : "smwb-sheet__default", u.classes()))), r;
249
+ return d(r, v), _(() => H(r, C(e.disableOutsideClick ? "smwb-sheet__overlay" : "smwb-sheet__default", u.classes()))), r;
250
250
  }
251
251
  });
252
252
  }
@@ -254,8 +254,8 @@ function he(m) {
254
254
  }
255
255
  });
256
256
  }
257
- G(["pointerdown", "pointermove", "pointerup", "keydown"]);
257
+ J(["pointerdown", "pointermove", "pointerup", "keydown"]);
258
258
  export {
259
- he as Sheet
259
+ we as Sheet
260
260
  };
261
261
  //# sourceMappingURL=sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../../src/components/layout/sheet/sheet.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Button } from \"../../inputs/button\";\nimport { Icon } from \"../../base/icon\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface SheetProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onResize\"> {\n placement?: \"top\" | \"bottom\" | \"right\" | \"left\";\n isOpen: boolean;\n onClose?: (() => void) | undefined;\n variant?: \"default\" | \"modal\";\n withSizeToggle?: boolean;\n /** Hide built-in header actions; onClose still handles Esc and backdrop. */\n hideHeaderActions?: boolean;\n reverseHeaderActions?: boolean;\n size?: string;\n disableOutsideClick?: boolean;\n /** Close the sheet when Escape is pressed. */\n closeOnEsc?: boolean;\n /** Allow drag-to-resize (mobile bottom-sheet style). Off by default. */\n resizable?: boolean;\n /** Minimum size in px while resizing (default 80). */\n minSize?: number;\n /** Maximum size in px while resizing (default: viewport dimension). */\n maxSize?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Called with the new size in px while/after resizing. */\n onResize?: (size: number) => void;\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ntype Mode = \"small\" | \"expanded\" | null;\n\nconst isVerticalAxis = (placement: SheetProps[\"placement\"]): boolean => placement === \"bottom\" || placement === \"top\";\n\ninterface SheetBlockProps extends ParentProps<SheetProps> {\n mode: Mode;\n handleSizeButton: () => void;\n handleClose: () => void;\n}\n\nfunction SheetBlock(props: SheetBlockProps): JSX.Element {\n const merged = mergeProps(\n {\n size: \"60%\",\n withSizeToggle: true,\n hideHeaderActions: false,\n reverseHeaderActions: false,\n resizable: false,\n minSize: 80,\n resizeStep: 24,\n resizeHandleAriaLabel: \"Resize sheet\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"isOpen\",\n \"placement\",\n \"class\",\n \"mode\",\n \"size\",\n \"variant\",\n \"onClose\",\n \"withSizeToggle\",\n \"hideHeaderActions\",\n \"reverseHeaderActions\",\n \"resizable\",\n \"minSize\",\n \"maxSize\",\n \"resizeStep\",\n \"resizeHandleAriaLabel\",\n \"onResize\",\n \"style\",\n \"handleClose\",\n \"handleSizeButton\",\n \"children\",\n \"ref\",\n ]);\n\n let rootEl: HTMLDivElement | undefined;\n const [dragSize, setDragSize] = createSignal<number | null>(null);\n const vertical = (): boolean => isVerticalAxis(local.placement);\n\n const inner = createCssTransition({\n in: () => local.isOpen,\n timeout: { enter: 120, exit: 120 },\n classNames: { enterDone: \"smwb-sheet_entered\" },\n appear: true,\n });\n\n const clamp = (px: number): number => {\n const viewport = vertical() ? window.innerHeight : window.innerWidth;\n const max = local.maxSize ?? viewport;\n return Math.max(local.minSize, Math.min(max, px));\n };\n\n const currentSizePx = (): number => {\n const rect = rootEl?.getBoundingClientRect();\n if (!rect) return local.minSize;\n return vertical() ? rect.height : rect.width;\n };\n\n const applySize = (px: number): void => {\n const next = clamp(px);\n setDragSize(next);\n local.onResize?.(next);\n };\n\n let drag: { start: number; size: number } | null = null;\n\n const onPointerDown = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n event.preventDefault();\n drag = { start: vertical() ? event.clientY : event.clientX, size: currentSizePx() };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* best-effort */\n }\n };\n\n const onPointerMove = (event: PointerEvent): void => {\n if (!drag) return;\n const pos = vertical() ? event.clientY : event.clientX;\n const delta = pos - drag.start;\n const grow = local.placement === \"bottom\" || local.placement === \"right\" ? -delta : delta;\n applySize(drag.size + grow);\n };\n\n const endDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n drag = null;\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n };\n\n const onHandleKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n const base = dragSize() ?? currentSizePx();\n const max = local.maxSize ?? (vertical() ? window.innerHeight : window.innerWidth);\n const incKey =\n local.placement === \"bottom\" ? \"ArrowUp\" : local.placement === \"top\" ? \"ArrowDown\" : local.placement === \"left\" ? \"ArrowRight\" : \"ArrowLeft\";\n const decKey =\n local.placement === \"bottom\" ? \"ArrowDown\" : local.placement === \"top\" ? \"ArrowUp\" : local.placement === \"left\" ? \"ArrowLeft\" : \"ArrowRight\";\n if (event.key === incKey) {\n event.preventDefault();\n applySize(base + local.resizeStep);\n } else if (event.key === decKey) {\n event.preventDefault();\n applySize(base - local.resizeStep);\n } else if (event.key === \"Home\") {\n event.preventDefault();\n applySize(local.minSize);\n } else if (event.key === \"End\") {\n event.preventDefault();\n applySize(max);\n }\n };\n\n createEffect(() => {\n if (!local.isOpen) {\n setDragSize(null);\n return;\n }\n rootEl?.focus();\n });\n\n const showActions = (): boolean => !local.hideHeaderActions && (!!local.onClose || local.withSizeToggle);\n const actionNodes = (): JSX.Element[] => {\n const nodes: JSX.Element[] = [];\n if (local.withSizeToggle) {\n nodes.push(\n <Button variant=\"outlined\" size=\"small\" onClick={local.handleSizeButton}>\n <Icon name=\"open_in_full\" />\n </Button>\n );\n }\n if (local.onClose) {\n nodes.push(\n <Button variant=\"outlined\" size=\"small\" onClick={local.handleClose}>\n <Icon name=\"close\" />\n </Button>\n );\n }\n if (local.reverseHeaderActions) nodes.reverse();\n return nodes;\n };\n\n const sizeStyle = (): JSX.CSSProperties => {\n if (local.resizable && dragSize() !== null) {\n const px = `${dragSize()}px`;\n return { ...(vertical() ? { height: px } : { width: px }), transition: \"none\" };\n }\n return {};\n };\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref, (el) => (rootEl = el as HTMLDivElement))}\n data-testid=\"sheet\"\n tabindex={-1}\n role=\"dialog\"\n aria-modal={local.variant === \"modal\" || undefined}\n class={cn(\"smwb-sheet\", local.class, `smwb-sheet_${local.variant}`, `smwb-${local.placement}`, inner.classes(), {\n \"smwb-expanded\": local.mode === \"expanded\",\n \"smwb-small\": local.mode === \"small\",\n \"smwb-sheet_resizable\": local.resizable,\n })}\n style={{\n \"--sizeProp\": local.size,\n ...sizeStyle(),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n }}\n >\n <Show when={local.resizable}>\n <div\n class=\"smwb-sheet__drag-handle\"\n data-testid=\"sheet-drag-handle\"\n role=\"separator\"\n tabindex={0}\n aria-orientation={vertical() ? \"horizontal\" : \"vertical\"}\n aria-label={local.resizeHandleAriaLabel}\n aria-valuemin={local.minSize}\n aria-valuemax={Math.round(local.maxSize ?? (vertical() ? window.innerHeight : window.innerWidth))}\n aria-valuenow={Math.round(dragSize() ?? currentSizePx())}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onHandleKeyDown}\n >\n <span class=\"smwb-sheet__drag-handle-bar\" />\n </div>\n </Show>\n <Show when={showActions()}>\n <div class=\"smwb-sheet__header\">{actionNodes()}</div>\n </Show>\n <Show when={local.isOpen && local.mode !== \"small\"}>\n <div class=\"smwb-sheet__inner\">{local.children}</div>\n </Show>\n </div>\n );\n}\n\nexport function Sheet(props: ParentProps<SheetProps>): JSX.Element {\n const merged = mergeProps({ variant: \"default\" as const, placement: \"bottom\" as const, closeOnEsc: true }, props);\n const [local, rest] = splitProps(merged, [\n \"isOpen\",\n \"onClose\",\n \"variant\",\n \"children\",\n \"placement\",\n \"disableOutsideClick\",\n \"closeOnEsc\",\n \"ref\",\n ]);\n\n const [mode, setMode] = createSignal<Mode>(null);\n\n const outer = createCssTransition({\n in: () => local.isOpen,\n timeout: { enter: 70, exit: 70 },\n classNames: { enterDone: \"smwb-entered\" },\n appear: true,\n });\n\n createEffect(() => {\n if (!local.isOpen || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n const handleSizeButton = (): void => {\n setMode((prev) => (prev === \"expanded\" ? \"small\" : prev === null ? \"expanded\" : null));\n };\n const handleClose = (): void => {\n local.onClose?.();\n setMode(null);\n };\n\n const block = (): JSX.Element => (\n <SheetBlock\n {...rest}\n ref={local.ref}\n isOpen={local.isOpen}\n onClose={local.onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n mode={mode()}\n placement={local.placement}\n variant={local.variant}\n >\n {local.children}\n </SheetBlock>\n );\n\n return (\n <Show when={outer.mounted()}>\n <Portal mount={document.body}>\n <Show\n when={local.variant === \"default\"}\n fallback={\n <div class={cn(\"smwb-sheet__overlay\", \"smwb-dark\", `smwb-${local.placement}`, `smwb-sheet_${local.variant}`, outer.classes())}>\n <ClickAwayListener onClickAway={() => !local.disableOutsideClick && handleClose()}>\n {block()}\n </ClickAwayListener>\n </div>\n }\n >\n <div class={cn(local.disableOutsideClick ? \"smwb-sheet__overlay\" : \"smwb-sheet__default\", outer.classes())}>\n {block()}\n </div>\n </Show>\n </Portal>\n </Show>\n );\n}\n\nexport default Sheet;\n"],"names":["isVerticalAxis","placement","SheetBlock","props","merged","mergeProps","size","withSizeToggle","hideHeaderActions","reverseHeaderActions","resizable","minSize","resizeStep","resizeHandleAriaLabel","local","rest","splitProps","rootEl","dragSize","setDragSize","createSignal","vertical","inner","createCssTransition","in","isOpen","timeout","enter","exit","classNames","enterDone","appear","clamp","px","viewport","window","innerHeight","innerWidth","max","maxSize","Math","min","currentSizePx","rect","getBoundingClientRect","height","width","applySize","next","onResize","drag","onPointerDown","event","preventDefault","start","clientY","clientX","currentTarget","setPointerCapture","pointerId","onPointerMove","delta","grow","endDrag","hasPointerCapture","releasePointerCapture","onHandleKeyDown","base","incKey","decKey","key","createEffect","focus","showActions","onClose","actionNodes","nodes","push","_$createComponent","Button","variant","onClick","handleSizeButton","children","Icon","name","handleClose","reverse","sizeStyle","transition","_el$","_tmpl$4","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","undefined","cn","class","classes","mode","style","_$insert","Show","when","_el$2","_tmpl$","$$keydown","addEventListener","$$pointerup","$$pointermove","$$pointerdown","_$effect","_p$","_v$","_v$2","_v$3","_v$4","round","_v$5","e","_$setAttribute","t","a","o","i","_el$3","_tmpl$2","_$memo","_el$4","_tmpl$3","Sheet","closeOnEsc","setMode","outer","onKeyDown","document","onCleanup","removeEventListener","prev","block","r$","_ref$2","mounted","Portal","mount","body","fallback","_el$6","ClickAwayListener","onClickAway","disableOutsideClick","_$className","_el$5","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../../src/components/layout/sheet/sheet.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, createSignal, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { Button } from \"../../inputs/button\";\nimport { Icon } from \"../../base/icon\";\nimport { ClickAwayListener } from \"../../clickAwayListener\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface SheetProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onResize\"> {\n placement?: \"top\" | \"bottom\" | \"right\" | \"left\";\n isOpen: boolean;\n onClose?: (() => void) | undefined;\n variant?: \"default\" | \"modal\";\n withSizeToggle?: boolean;\n /** Hide built-in header actions; onClose still handles Esc and backdrop. */\n hideHeaderActions?: boolean;\n reverseHeaderActions?: boolean;\n size?: string;\n disableOutsideClick?: boolean;\n /** Close the sheet when Escape is pressed. */\n closeOnEsc?: boolean;\n /** Allow drag-to-resize (mobile bottom-sheet style). Off by default. */\n resizable?: boolean;\n /** Minimum size in px while resizing (default 80). */\n minSize?: number;\n /** Maximum size in px while resizing (default: viewport dimension). */\n maxSize?: number;\n /** Step in px for keyboard resizing (default 24). */\n resizeStep?: number;\n /** Accessible label for the resize handle. */\n resizeHandleAriaLabel?: string;\n /** Called with the new size in px while/after resizing. */\n onResize?: (size: number) => void;\n \"aria-label\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\ntype Mode = \"small\" | \"expanded\" | null;\n\nconst isVerticalAxis = (placement: SheetProps[\"placement\"]): boolean => placement === \"bottom\" || placement === \"top\";\n\ninterface SheetBlockProps extends ParentProps<SheetProps> {\n mode: Mode;\n handleSizeButton: () => void;\n handleClose: () => void;\n}\n\nfunction SheetBlock(props: SheetBlockProps): JSX.Element {\n const merged = mergeProps(\n {\n size: \"60%\",\n withSizeToggle: true,\n hideHeaderActions: false,\n reverseHeaderActions: false,\n resizable: false,\n minSize: 80,\n resizeStep: 24,\n resizeHandleAriaLabel: \"Resize sheet\",\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"isOpen\",\n \"placement\",\n \"class\",\n \"mode\",\n \"size\",\n \"variant\",\n \"onClose\",\n \"withSizeToggle\",\n \"hideHeaderActions\",\n \"reverseHeaderActions\",\n \"resizable\",\n \"minSize\",\n \"maxSize\",\n \"resizeStep\",\n \"resizeHandleAriaLabel\",\n \"onResize\",\n \"style\",\n \"handleClose\",\n \"handleSizeButton\",\n \"children\",\n \"ref\",\n ]);\n\n let rootEl: HTMLDivElement | undefined;\n const [dragSize, setDragSize] = createSignal<number | null>(null);\n const vertical = (): boolean => isVerticalAxis(local.placement);\n\n const inner = createCssTransition({\n in: () => local.isOpen,\n timeout: { enter: 120, exit: 120 },\n classNames: { enterDone: \"smwb-sheet_entered\" },\n appear: true,\n });\n\n const clamp = (px: number): number => {\n const viewport = vertical() ? window.innerHeight : window.innerWidth;\n const max = local.maxSize ?? viewport;\n return Math.max(local.minSize, Math.min(max, px));\n };\n\n const currentSizePx = (): number => {\n const rect = rootEl?.getBoundingClientRect();\n if (!rect) return local.minSize;\n return vertical() ? rect.height : rect.width;\n };\n\n const applySize = (px: number): void => {\n const next = clamp(px);\n setDragSize(next);\n local.onResize?.(next);\n };\n\n let drag: { start: number; size: number } | null = null;\n\n const onPointerDown = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n event.preventDefault();\n drag = { start: vertical() ? event.clientY : event.clientX, size: currentSizePx() };\n try {\n event.currentTarget.setPointerCapture?.(event.pointerId);\n } catch {\n /* best-effort */\n }\n };\n\n const onPointerMove = (event: PointerEvent): void => {\n if (!drag) return;\n const pos = vertical() ? event.clientY : event.clientX;\n const delta = pos - drag.start;\n const grow = local.placement === \"bottom\" || local.placement === \"right\" ? -delta : delta;\n applySize(drag.size + grow);\n };\n\n const endDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }): void => {\n drag = null;\n if (event.currentTarget.hasPointerCapture?.(event.pointerId)) {\n event.currentTarget.releasePointerCapture?.(event.pointerId);\n }\n };\n\n const onHandleKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (event) => {\n const base = dragSize() ?? currentSizePx();\n const max = local.maxSize ?? (vertical() ? window.innerHeight : window.innerWidth);\n const incKey =\n local.placement === \"bottom\" ? \"ArrowUp\" : local.placement === \"top\" ? \"ArrowDown\" : local.placement === \"left\" ? \"ArrowRight\" : \"ArrowLeft\";\n const decKey =\n local.placement === \"bottom\" ? \"ArrowDown\" : local.placement === \"top\" ? \"ArrowUp\" : local.placement === \"left\" ? \"ArrowLeft\" : \"ArrowRight\";\n if (event.key === incKey) {\n event.preventDefault();\n applySize(base + local.resizeStep);\n } else if (event.key === decKey) {\n event.preventDefault();\n applySize(base - local.resizeStep);\n } else if (event.key === \"Home\") {\n event.preventDefault();\n applySize(local.minSize);\n } else if (event.key === \"End\") {\n event.preventDefault();\n applySize(max);\n }\n };\n\n createEffect(() => {\n if (!local.isOpen) {\n setDragSize(null);\n return;\n }\n rootEl?.focus();\n });\n\n const showActions = (): boolean => !local.hideHeaderActions && (!!local.onClose || local.withSizeToggle);\n const actionNodes = (): JSX.Element[] => {\n const nodes: JSX.Element[] = [];\n if (local.withSizeToggle) {\n nodes.push(\n <Button variant=\"outlined\" size=\"small\" onClick={local.handleSizeButton}>\n <Icon name=\"open_in_full\" />\n </Button>\n );\n }\n if (local.onClose) {\n nodes.push(\n <Button variant=\"outlined\" size=\"small\" onClick={local.handleClose}>\n <Icon name=\"close\" />\n </Button>\n );\n }\n if (local.reverseHeaderActions) nodes.reverse();\n return nodes;\n };\n\n const sizeStyle = (): JSX.CSSProperties => {\n if (local.resizable && dragSize() !== null) {\n const px = `${dragSize()}px`;\n return { ...(vertical() ? { height: px } : { width: px }), transition: \"none\" };\n }\n return {};\n };\n\n return (\n <div\n {...rest}\n ref={mergeRefs(local.ref, (el) => (rootEl = el as HTMLDivElement))}\n data-testid=\"sheet\"\n tabindex={-1}\n role=\"dialog\"\n aria-modal={local.variant === \"modal\" || undefined}\n class={cn(\"smwb-sheet\", local.class, `smwb-sheet_${local.variant}`, `smwb-${local.placement}`, inner.classes(), {\n \"smwb-expanded\": local.mode === \"expanded\",\n \"smwb-small\": local.mode === \"small\",\n \"smwb-sheet_resizable\": local.resizable,\n })}\n style={{\n \"--sizeProp\": local.size,\n ...sizeStyle(),\n ...(typeof local.style === \"object\" && local.style ? local.style : {}),\n }}\n >\n <Show when={local.resizable}>\n <div\n class=\"smwb-sheet__drag-handle\"\n data-testid=\"sheet-drag-handle\"\n role=\"separator\"\n tabindex={0}\n aria-orientation={vertical() ? \"horizontal\" : \"vertical\"}\n aria-label={local.resizeHandleAriaLabel}\n aria-valuemin={local.minSize}\n aria-valuemax={Math.round(local.maxSize ?? (vertical() ? window.innerHeight : window.innerWidth))}\n aria-valuenow={Math.round(dragSize() ?? currentSizePx())}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={onHandleKeyDown}\n >\n <span class=\"smwb-sheet__drag-handle-bar\" />\n </div>\n </Show>\n <Show when={showActions()}>\n <div class=\"smwb-sheet__header\">{actionNodes()}</div>\n </Show>\n <Show when={local.isOpen && local.mode !== \"small\"}>\n <div class=\"smwb-sheet__inner\">{local.children}</div>\n </Show>\n </div>\n );\n}\n\nexport function Sheet(props: ParentProps<SheetProps>): JSX.Element {\n const merged = mergeProps({ variant: \"default\" as const, placement: \"bottom\" as const, closeOnEsc: true }, props);\n const [local, rest] = splitProps(merged, [\n \"isOpen\",\n \"onClose\",\n \"variant\",\n \"children\",\n \"placement\",\n \"disableOutsideClick\",\n \"closeOnEsc\",\n \"ref\",\n ]);\n\n const [mode, setMode] = createSignal<Mode>(null);\n\n const outer = createCssTransition({\n in: () => local.isOpen,\n timeout: { enter: 70, exit: 70 },\n classNames: { enterDone: \"smwb-entered\" },\n appear: true,\n });\n\n createEffect(() => {\n if (!local.isOpen || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n const handleSizeButton = (): void => {\n setMode((prev) => (prev === \"expanded\" ? \"small\" : prev === null ? \"expanded\" : null));\n };\n const handleClose = (): void => {\n local.onClose?.();\n setMode(null);\n };\n\n const block = (): JSX.Element => (\n <SheetBlock\n {...rest}\n ref={local.ref}\n isOpen={local.isOpen}\n onClose={local.onClose}\n handleSizeButton={handleSizeButton}\n handleClose={handleClose}\n mode={mode()}\n placement={local.placement}\n variant={local.variant}\n >\n {local.children}\n </SheetBlock>\n );\n\n return (\n <Show when={outer.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <Show\n when={local.variant === \"default\"}\n fallback={\n <div class={cn(\"smwb-sheet__overlay\", \"smwb-dark\", `smwb-${local.placement}`, `smwb-sheet_${local.variant}`, outer.classes())}>\n <ClickAwayListener onClickAway={() => !local.disableOutsideClick && handleClose()}>\n {block()}\n </ClickAwayListener>\n </div>\n }\n >\n <div class={cn(local.disableOutsideClick ? \"smwb-sheet__overlay\" : \"smwb-sheet__default\", outer.classes())}>\n {block()}\n </div>\n </Show>\n </Portal>\n </Show>\n );\n}\n\nexport default Sheet;\n"],"names":["isVerticalAxis","placement","SheetBlock","props","merged","mergeProps","size","withSizeToggle","hideHeaderActions","reverseHeaderActions","resizable","minSize","resizeStep","resizeHandleAriaLabel","local","rest","splitProps","rootEl","dragSize","setDragSize","createSignal","vertical","inner","createCssTransition","in","isOpen","timeout","enter","exit","classNames","enterDone","appear","clamp","px","viewport","window","innerHeight","innerWidth","max","maxSize","Math","min","currentSizePx","rect","getBoundingClientRect","height","width","applySize","next","onResize","drag","onPointerDown","event","preventDefault","start","clientY","clientX","currentTarget","setPointerCapture","pointerId","onPointerMove","delta","grow","endDrag","hasPointerCapture","releasePointerCapture","onHandleKeyDown","base","incKey","decKey","key","createEffect","focus","showActions","onClose","actionNodes","nodes","push","_$createComponent","Button","variant","onClick","handleSizeButton","children","Icon","name","handleClose","reverse","sizeStyle","transition","_el$","_tmpl$4","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","undefined","cn","class","classes","mode","style","_$insert","Show","when","_el$2","_tmpl$","$$keydown","addEventListener","$$pointerup","$$pointermove","$$pointerdown","_$effect","_p$","_v$","_v$2","_v$3","_v$4","round","_v$5","e","_$setAttribute","t","a","o","i","_el$3","_tmpl$2","_$memo","_el$4","_tmpl$3","Sheet","closeOnEsc","setMode","outer","onKeyDown","document","onCleanup","removeEventListener","prev","block","r$","_ref$2","mounted","Portal","mount","isServer","body","fallback","_el$6","ClickAwayListener","onClickAway","disableOutsideClick","_$className","_el$5","_$delegateEvents"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { addEventListener as k, use as Y, insert as g, createComponent as v, effect as I, setAttribute as V, style as oe, className as D, setStyleProperty as L, template as P, delegateEvents as Fe } from "solid-js/web";
2
2
  import { mergeProps as Me, splitProps as ze, children as De, createSignal as b, createUniqueId as Le, createEffect as A, createMemo as le, onCleanup as ae, Show as y, For as W } from "solid-js";
3
- import x from "clsx";
4
- import { toCssLength as K, toCssNumber as Ae, dragPrevent as ie, getSlideStyle as He, getStartSlide as Ne, getSlidesToShow as Re, clamp as Oe, getSlideIndexForMultipleParts as ce, coordX as q, coordY as ue, getSlideWidth as Ye, isMouseEvent as de, isTouchEvent as Ve } from "./utils.js";
3
+ import p from "clsx";
4
+ import { toCssLength as K, toCssNumber as Ae, dragPrevent as ie, getSlideStyle as Ne, getStartSlide as He, getSlidesToShow as Re, clamp as Oe, getSlideIndexForMultipleParts as ce, coordX as q, coordY as ue, getSlideWidth as Ye, isMouseEvent as de, isTouchEvent as Ve } from "./utils.js";
5
5
  import { mergeRefs as We } from "../../../primitives/mergeRefs.js";
6
6
  import { Icon as T } from "../../base/icon/icon.js";
7
7
  import { Modal as Ke } from "../../feedBack/modal/modal.js";
@@ -18,7 +18,7 @@ function nt(he) {
18
18
  autoplayInterval: 4e3,
19
19
  pauseOnHover: !0,
20
20
  enableFullscreen: !1
21
- }, he), [s] = ze(ve, ["slidesToShow", "startSlide", "children", "class", "showNavigation", "showArrows", "arrowsSize", "navigationClassName", "onSlideChange", "navigationDotRenderer", "aria-label", "autoplay", "autoplayInterval", "pauseOnHover", "cellHeight", "aspectRatio", "gap", "maxWidth", "enableFullscreen", "ref"]), ge = De(() => s.children), H = () => ge.toArray(), o = () => H().length, d = () => Re(s.slidesToShow, o()), G = () => Ne(s.startSlide, o()), U = () => !!s.showArrows && o() > 1, F = () => Math.max(0, o() - d()), [w, j] = b(G()), [N, R] = b(void 0), [we, J] = b(!1), [_e, Q] = b(0), [be, Z] = b(!1), [p, M] = b(null), [xe, ee] = b(0), [pe, te] = b(!1);
21
+ }, he), [s] = ze(ve, ["slidesToShow", "startSlide", "children", "class", "showNavigation", "showArrows", "arrowsSize", "navigationClassName", "onSlideChange", "navigationDotRenderer", "aria-label", "autoplay", "autoplayInterval", "pauseOnHover", "cellHeight", "aspectRatio", "gap", "maxWidth", "enableFullscreen", "ref"]), ge = De(() => s.children), N = () => ge.toArray(), o = () => N().length, d = () => Re(s.slidesToShow, o()), G = () => He(s.startSlide, o()), U = () => !!s.showArrows && o() > 1, F = () => Math.max(0, o() - d()), [w, j] = b(G()), [H, R] = b(void 0), [we, J] = b(!1), [_e, Q] = b(0), [be, Z] = b(!1), [x, M] = b(null), [pe, ee] = b(0), [xe, te] = b(!1);
22
22
  let z, _;
23
23
  const i = {
24
24
  isPressed: !1,
@@ -35,7 +35,7 @@ function nt(he) {
35
35
  d(), R(!1);
36
36
  }), A(() => {
37
37
  const e = G();
38
- j(e), s.onSlideChange?.(e), N() !== void 0 && R(!0);
38
+ j(e), s.onSlideChange?.(e), H() !== void 0 && R(!0);
39
39
  });
40
40
  const $ = (e) => {
41
41
  const t = Oe(e, 0, F());
@@ -114,16 +114,16 @@ function nt(he) {
114
114
  const e = {}, t = K(s.cellHeight), a = Ae(s.aspectRatio), c = K(s.gap), u = K(s.maxWidth);
115
115
  return t && (e["--smwb-carousel-cell-height"] = t), a && (e["--smwb-carousel-aspect-ratio"] = a), c && (e["--smwb-carousel-gap"] = c), u && (e["--smwb-carousel-max-width"] = u), e;
116
116
  }), E = (e) => {
117
- const t = p();
117
+ const t = x();
118
118
  t !== null && M((t + e + o()) % o());
119
- }, Xe = le(() => H().map((e) => e instanceof Node ? e.cloneNode(!0) : e == null ? "" : String(e)));
119
+ }, Xe = le(() => N().map((e) => typeof Node < "u" && e instanceof Node ? e.cloneNode(!0) : e == null ? "" : String(e)));
120
120
  A(() => {
121
- if (!s.autoplay || o() <= 1 || s.pauseOnHover && we() || p() !== null)
121
+ if (!s.autoplay || o() <= 1 || s.pauseOnHover && we() || x() !== null)
122
122
  return;
123
123
  const e = window.setInterval(() => $(O(1)), s.autoplayInterval);
124
124
  ae(() => window.clearInterval(e));
125
125
  }), A(() => {
126
- if (p() === null || o() <= 1) return;
126
+ if (x() === null || o() <= 1) return;
127
127
  const e = (t) => {
128
128
  t.key === "ArrowLeft" ? E(-1) : t.key === "ArrowRight" && E(1);
129
129
  };
@@ -156,7 +156,7 @@ function nt(he) {
156
156
  return s.arrowsSize;
157
157
  },
158
158
  get class() {
159
- return x("smwb-carousel__arrow", "smwb-carousel__arrow_prev");
159
+ return p("smwb-carousel__arrow", "smwb-carousel__arrow_prev");
160
160
  },
161
161
  get style() {
162
162
  return {
@@ -169,12 +169,12 @@ function nt(he) {
169
169
  }
170
170
  }), a), k(a, "dragend", ie), k(a, "dragstart", ie), a.$$touchstart = se, a.$$mousedown = se, Y((r) => _ = r, a), g(c, v(W, {
171
171
  get each() {
172
- return H();
172
+ return N();
173
173
  },
174
174
  children: (r, n) => (() => {
175
175
  var l = Ge(), m = l.firstChild;
176
176
  return k(m, "click", s.enableFullscreen ? () => Ce(n()) : void 0, !0), g(m, r), I((f) => {
177
- var h = `${Se}${n()}`, X = He(d()), ne = x("smwb-carousel__slide-inner", s.enableFullscreen && "smwb-carousel__slide-inner_clickable");
177
+ var h = `${Se}${n()}`, X = Ne(d()), ne = p("smwb-carousel__slide-inner", s.enableFullscreen && "smwb-carousel__slide-inner_clickable");
178
178
  return h !== f.e && V(l, "id", f.e = h), f.t = oe(l, X, f.t), ne !== f.a && D(m, f.a = ne), f;
179
179
  }, {
180
180
  e: void 0,
@@ -193,7 +193,7 @@ function nt(he) {
193
193
  return s.arrowsSize;
194
194
  },
195
195
  get class() {
196
- return x("smwb-carousel__arrow", "smwb-carousel__arrow_next");
196
+ return p("smwb-carousel__arrow", "smwb-carousel__arrow_next");
197
197
  },
198
198
  get style() {
199
199
  return {
@@ -216,9 +216,9 @@ function nt(he) {
216
216
  },
217
217
  children: (n) => s.navigationDotRenderer ? s.navigationDotRenderer(n.index, n.isActive, (l) => $(l)) : (() => {
218
218
  var l = fe();
219
- return l.$$click = () => $(n.nextIndex), I(() => D(l, x("smwb-carousel__navigation__dot", n.isActive && "current"))), l;
219
+ return l.$$click = () => $(n.nextIndex), I(() => D(l, p("smwb-carousel__navigation__dot", n.isActive && "current"))), l;
220
220
  })()
221
- })), I(() => D(r, x("smwb-carousel__navigation", s.navigationClassName))), r;
221
+ })), I(() => D(r, p("smwb-carousel__navigation", s.navigationClassName))), r;
222
222
  }
223
223
  }), null), g(e, v(y, {
224
224
  get when() {
@@ -227,7 +227,7 @@ function nt(he) {
227
227
  get children() {
228
228
  return v(Ke, {
229
229
  get open() {
230
- return p() !== null;
230
+ return x() !== null;
231
231
  },
232
232
  size: "fullscreen",
233
233
  backdrop: "darkBlured",
@@ -245,7 +245,7 @@ function nt(he) {
245
245
  name: "chevron_left",
246
246
  size: 40,
247
247
  get class() {
248
- return x("smwb-carousel__fullscreen-arrow", "smwb-carousel__fullscreen-arrow_prev");
248
+ return p("smwb-carousel__fullscreen-arrow", "smwb-carousel__fullscreen-arrow_prev");
249
249
  },
250
250
  onClick: () => E(-1)
251
251
  });
@@ -256,7 +256,7 @@ function nt(he) {
256
256
  },
257
257
  children: (m, f) => (() => {
258
258
  var h = Ue();
259
- return g(h, m), I(() => V(h, "aria-hidden", f() !== p())), h;
259
+ return g(h, m), I(() => V(h, "aria-hidden", f() !== x())), h;
260
260
  })()
261
261
  })), g(r, v(y, {
262
262
  get when() {
@@ -267,7 +267,7 @@ function nt(he) {
267
267
  name: "chevron_right",
268
268
  size: 40,
269
269
  get class() {
270
- return x("smwb-carousel__fullscreen-arrow", "smwb-carousel__fullscreen-arrow_next");
270
+ return p("smwb-carousel__fullscreen-arrow", "smwb-carousel__fullscreen-arrow_next");
271
271
  },
272
272
  onClick: () => E(1)
273
273
  });
@@ -278,7 +278,7 @@ function nt(he) {
278
278
  class: "smwb-carousel__fullscreen-close",
279
279
  onClick: () => M(null)
280
280
  }), null), I((m) => {
281
- var f = `translateX(calc(-${(p() ?? 0) * 100}% + ${xe()}px))`, h = pe() ? "none" : "transform 350ms cubic-bezier(.22, .61, .36, 1)";
281
+ var f = `translateX(calc(-${(x() ?? 0) * 100}% + ${pe()}px))`, h = xe() ? "none" : "transform 350ms cubic-bezier(.22, .61, .36, 1)";
282
282
  return f !== m.e && L(l, "transform", m.e = f), h !== m.t && L(l, "transition", m.t = h), m;
283
283
  }, {
284
284
  e: void 0,
@@ -288,7 +288,7 @@ function nt(he) {
288
288
  });
289
289
  }
290
290
  }), null), I((r) => {
291
- var n = x("smwb-carousel", s.class), l = s["aria-label"], m = Ee(), f = `translateX(calc(-${ye()}% + ${_e()}px))`, h = be() || N() === void 0 ? "none" : N() ? "transform 500ms cubic-bezier(.1, 0, .25, 1)" : "none";
291
+ var n = p("smwb-carousel", s.class), l = s["aria-label"], m = Ee(), f = `translateX(calc(-${ye()}% + ${_e()}px))`, h = be() || H() === void 0 ? "none" : H() ? "transform 500ms cubic-bezier(.1, 0, .25, 1)" : "none";
292
292
  return n !== r.e && D(e, r.e = n), l !== r.t && V(e, "aria-label", r.t = l), r.a = oe(e, m, r.a), f !== r.o && L(c, "transform", r.o = f), h !== r.i && L(c, "transition", r.i = h), r;
293
293
  }, {
294
294
  e: void 0,