@smwb/ui-solid 0.7.0 → 0.8.1

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 (99) hide show
  1. package/dist/assets/styles/less/components/confirmDialog/confirmDialog.entry.css +1 -0
  2. package/dist/components/clickAwayListener/clickAwayListener.js +12 -8
  3. package/dist/components/clickAwayListener/clickAwayListener.js.map +1 -1
  4. package/dist/components/dataDisplay/treeView/treeView.d.ts +5 -1
  5. package/dist/components/dataDisplay/treeView/treeView.js +60 -50
  6. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  7. package/dist/components/feedBack/confirmDialog/confirmDialog.d.ts +27 -0
  8. package/dist/components/feedBack/confirmDialog/confirmDialog.js +108 -0
  9. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -0
  10. package/dist/components/feedBack/confirmDialog/index.d.ts +2 -0
  11. package/dist/components/feedBack/modal/modal.js +49 -48
  12. package/dist/components/feedBack/modal/modal.js.map +1 -1
  13. package/dist/components/inputs/datePicker/datePicker.js +22 -22
  14. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  15. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +21 -21
  16. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  17. package/dist/components/inputs/selectField/dropdownMenu.js +1 -0
  18. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  19. package/dist/components/inputs/timePicker/timePicker.js +16 -16
  20. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  21. package/dist/components/layout/sheet/sheet.js +95 -92
  22. package/dist/components/layout/sheet/sheet.js.map +1 -1
  23. package/dist/headless/components/clickAwayListener/clickAwayListener.js +12 -8
  24. package/dist/headless/components/clickAwayListener/clickAwayListener.js.map +1 -1
  25. package/dist/headless/components/dataDisplay/treeView/treeView.js +60 -50
  26. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  27. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js +107 -0
  28. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js.map +1 -0
  29. package/dist/headless/components/feedBack/modal/modal.js +49 -48
  30. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  31. package/dist/headless/components/inputs/datePicker/datePicker.js +19 -19
  32. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  33. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +21 -21
  34. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  35. package/dist/headless/components/inputs/selectField/dropdownMenu.js +1 -0
  36. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  37. package/dist/headless/components/inputs/timePicker/timePicker.js +16 -16
  38. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  39. package/dist/headless/components/layout/sheet/sheet.js +95 -92
  40. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  41. package/dist/headless/index.js +201 -199
  42. package/dist/headless/index.js.map +1 -1
  43. package/dist/headless/primitives/overlayLayer.js +11 -0
  44. package/dist/headless/primitives/overlayLayer.js.map +1 -0
  45. package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx +2 -0
  46. package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx.map +1 -1
  47. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +10 -2
  48. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  49. package/dist/headless/source/components/feedBack/confirmDialog/confirmDialog.jsx +76 -0
  50. package/dist/headless/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -0
  51. package/dist/headless/source/components/feedBack/confirmDialog/index.js +5 -0
  52. package/dist/headless/source/components/feedBack/confirmDialog/index.js.map +7 -0
  53. package/dist/headless/source/components/feedBack/modal/modal.jsx +5 -1
  54. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  55. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +1 -0
  56. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  57. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -0
  58. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  59. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +1 -0
  60. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  61. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +1 -0
  62. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  63. package/dist/headless/source/components/layout/sheet/sheet.jsx +13 -3
  64. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  65. package/dist/headless/source/index.js +2 -0
  66. package/dist/headless/source/index.js.map +2 -2
  67. package/dist/headless/source/primitives/overlayLayer.js +18 -0
  68. package/dist/headless/source/primitives/overlayLayer.js.map +7 -0
  69. package/dist/index.d.ts +2 -0
  70. package/dist/index.js +201 -199
  71. package/dist/index.js.map +1 -1
  72. package/dist/primitives/overlayLayer.d.ts +13 -0
  73. package/dist/primitives/overlayLayer.js +11 -0
  74. package/dist/primitives/overlayLayer.js.map +1 -0
  75. package/dist/source/components/clickAwayListener/clickAwayListener.jsx +2 -0
  76. package/dist/source/components/clickAwayListener/clickAwayListener.jsx.map +1 -1
  77. package/dist/source/components/dataDisplay/treeView/treeView.jsx +10 -2
  78. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  79. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx +77 -0
  80. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -0
  81. package/dist/source/components/feedBack/confirmDialog/index.js +5 -0
  82. package/dist/source/components/feedBack/confirmDialog/index.js.map +7 -0
  83. package/dist/source/components/feedBack/modal/modal.jsx +5 -1
  84. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  85. package/dist/source/components/inputs/datePicker/datePicker.jsx +1 -0
  86. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  87. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -0
  88. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  89. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +1 -0
  90. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  91. package/dist/source/components/inputs/timePicker/timePicker.jsx +1 -0
  92. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  93. package/dist/source/components/layout/sheet/sheet.jsx +13 -3
  94. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  95. package/dist/source/index.js +2 -0
  96. package/dist/source/index.js.map +2 -2
  97. package/dist/source/primitives/overlayLayer.js +18 -0
  98. package/dist/source/primitives/overlayLayer.js.map +7 -0
  99. package/package.json +11 -5
@@ -1,12 +1,13 @@
1
- import { createComponent as d, Portal as f, addEventListener as b, insert as s, Dynamic as w, mergeProps as g, effect as i, className as l, isServer as y, template as C, delegateEvents as k } from "solid-js/web";
1
+ import { createComponent as c, Portal as w, addEventListener as y, use as g, insert as s, Dynamic as C, mergeProps as k, effect as l, className as i, isServer as E, template as _, delegateEvents as A } from "solid-js/web";
2
2
  import '../../../assets/styles/less/components/modal/modal.entry.css';/* empty css */
3
- import { mergeProps as A, splitProps as E, createEffect as h, onCleanup as O, Show as $ } from "solid-js";
4
- import a from "clsx";
5
- import { createCssTransition as x } from "../../../primitives/createCssTransition.js";
6
- import { createFocusTrap as P } from "../../../primitives/createFocusTrap.js";
7
- import { mergeRefs as F } from "../../../primitives/mergeRefs.js";
8
- var c = /* @__PURE__ */ C("<div>");
9
- const L = {
3
+ import { mergeProps as O, splitProps as $, createEffect as h, onCleanup as x, Show as L } from "solid-js";
4
+ import n from "clsx";
5
+ import { createCssTransition as P } from "../../../primitives/createCssTransition.js";
6
+ import { createFocusTrap as F } from "../../../primitives/createFocusTrap.js";
7
+ import { isTopOverlayLayer as S } from "../../../primitives/overlayLayer.js";
8
+ import { mergeRefs as z } from "../../../primitives/mergeRefs.js";
9
+ var D = /* @__PURE__ */ _("<div data-smwb-overlay-layer>"), d = /* @__PURE__ */ _("<div>");
10
+ const M = {
10
11
  appear: "smwb-modal__overlay-appear",
11
12
  appearActive: "smwb-modal__overlay-appear-active",
12
13
  appearDone: "smwb-modal__overlay-appear-done",
@@ -16,8 +17,8 @@ const L = {
16
17
  exit: "smwb-modal__overlay-exit",
17
18
  exitActive: "smwb-modal__overlay-exit-active"
18
19
  };
19
- function S(o) {
20
- const r = A({
20
+ function N(o) {
21
+ const r = O({
21
22
  animation: "fade",
22
23
  backdrop: "dark",
23
24
  size: "large",
@@ -26,51 +27,51 @@ function S(o) {
26
27
  disableAppearAnimation: !1,
27
28
  role: "dialog",
28
29
  closeOnEsc: !0
29
- }, o), [e, v] = E(r, ["children", "onClose", "open", "class", "animation", "backdrop", "size", "closeOnOutsideClick", "asForm", "disableAppearAnimation", "role", "closeOnEsc", "ref"]);
30
- let p;
31
- const m = x({
30
+ }, o), [e, f] = $(r, ["children", "onClose", "open", "class", "animation", "backdrop", "size", "closeOnOutsideClick", "asForm", "disableAppearAnimation", "role", "closeOnEsc", "ref"]);
31
+ let p, u;
32
+ const m = P({
32
33
  in: () => e.open,
33
34
  timeout: {
34
35
  appear: 225,
35
36
  enter: 225,
36
37
  exit: 150
37
38
  },
38
- classNames: L,
39
+ classNames: M,
39
40
  appear: !e.disableAppearAnimation
40
41
  });
41
- return P({
42
+ return F({
42
43
  active: () => e.open && m.mounted(),
43
44
  container: () => p
44
45
  }), h(() => {
45
46
  if (!e.open || !e.closeOnEsc || !e.onClose) return;
46
- const t = (n) => {
47
- n.key === "Escape" && e.onClose?.();
47
+ const t = (a) => {
48
+ a.key === "Escape" && S(u) && e.onClose?.();
48
49
  };
49
- document.addEventListener("keydown", t), O(() => document.removeEventListener("keydown", t));
50
- }), d($, {
50
+ document.addEventListener("keydown", t), x(() => document.removeEventListener("keydown", t));
51
+ }), c(L, {
51
52
  get when() {
52
53
  return m.mounted();
53
54
  },
54
55
  get children() {
55
- return d(f, {
56
+ return c(w, {
56
57
  get mount() {
57
- return y ? void 0 : document.body;
58
+ return E ? void 0 : document.body;
58
59
  },
59
60
  get children() {
60
- var t = c();
61
- return b(t, "click", e.closeOnOutsideClick && e.onClose ? () => e.onClose?.() : void 0, !0), s(t, d(w, g({
61
+ var t = D();
62
+ return y(t, "click", e.closeOnOutsideClick && e.onClose ? () => e.onClose?.() : void 0, !0), g((a) => u = a, t), s(t, c(C, k({
62
63
  get component() {
63
64
  return e.asForm ? "form" : "div";
64
65
  }
65
- }, v, {
66
- ref(n) {
67
- var u = F(e.ref, (_) => p = _);
68
- typeof u == "function" && u(n);
66
+ }, f, {
67
+ ref(a) {
68
+ var v = z(e.ref, (b) => p = b);
69
+ typeof v == "function" && v(a);
69
70
  },
70
71
  get class() {
71
- return a("smwb-modal", `smwb-${e.size}`, `smwb-${e.animation}`, e.class);
72
+ return n("smwb-modal", `smwb-${e.size}`, `smwb-${e.animation}`, e.class);
72
73
  },
73
- onClick: (n) => n.stopPropagation(),
74
+ onClick: (a) => a.stopPropagation(),
74
75
  get role() {
75
76
  return e.role;
76
77
  },
@@ -78,40 +79,40 @@ function S(o) {
78
79
  get children() {
79
80
  return e.children;
80
81
  }
81
- }))), i(() => l(t, a("smwb-modal__overlay", `smwb-${e.backdrop}`, `smwb-${e.size}`, m.classes()))), t;
82
+ }))), l(() => i(t, n("smwb-modal__overlay", `smwb-${e.backdrop}`, `smwb-${e.size}`, m.classes()))), t;
82
83
  }
83
84
  });
84
85
  }
85
86
  });
86
87
  }
87
- function z(o) {
88
+ function T(o) {
88
89
  return (() => {
89
- var r = c();
90
- return s(r, () => o.children), i(() => l(r, a("smwb-modal__header", o.class))), r;
90
+ var r = d();
91
+ return s(r, () => o.children), l(() => i(r, n("smwb-modal__header", o.class))), r;
91
92
  })();
92
93
  }
93
- function D(o) {
94
+ function R(o) {
94
95
  return (() => {
95
- var r = c();
96
- return s(r, () => o.children), i(() => l(r, a("smwb-modal__content", o.class))), r;
96
+ var r = d();
97
+ return s(r, () => o.children), l(() => i(r, n("smwb-modal__content", o.class))), r;
97
98
  })();
98
99
  }
99
- function M(o) {
100
+ function j(o) {
100
101
  return (() => {
101
- var r = c();
102
- return s(r, () => o.children), i(() => l(r, a("smwb-modal__footer", o.class))), r;
102
+ var r = d();
103
+ return s(r, () => o.children), l(() => i(r, n("smwb-modal__footer", o.class))), r;
103
104
  })();
104
105
  }
105
- const V = Object.assign(S, {
106
- Footer: M,
107
- Header: z,
108
- Content: D
106
+ const J = Object.assign(N, {
107
+ Footer: j,
108
+ Header: T,
109
+ Content: R
109
110
  });
110
- k(["click"]);
111
+ A(["click"]);
111
112
  export {
112
- D as Content,
113
- M as Footer,
114
- z as Header,
115
- V as Modal
113
+ R as Content,
114
+ j as Footer,
115
+ T as Header,
116
+ J as Modal
116
117
  };
117
118
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sources":["../../../../src/components/feedBack/modal/modal.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Dynamic, Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { createFocusTrap } from \"../../../primitives/createFocusTrap\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ModalProps {\n size?: \"small\" | \"medium\" | \"large\" | \"fullscreen\";\n closeOnOutsideClick?: boolean;\n onClose?: () => void;\n open: boolean;\n animation?: \"fade\" | \"scale\" | \"drop\";\n class?: string;\n backdrop?: \"blured\" | \"dark\" | \"transparent\" | \"darkBlured\";\n asForm?: boolean;\n disableAppearAnimation?: boolean;\n /** ARIA role of the dialog. */\n role?: \"dialog\" | \"alertdialog\";\n /** Close the modal when Escape is pressed. */\n closeOnEsc?: boolean;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst OVERLAY_CLASSNAMES = {\n appear: \"smwb-modal__overlay-appear\",\n appearActive: \"smwb-modal__overlay-appear-active\",\n appearDone: \"smwb-modal__overlay-appear-done\",\n enter: \"smwb-modal__overlay-enter\",\n enterActive: \"smwb-modal__overlay-enter-active\",\n enterDone: \"smwb-modal__overlay-enter-done\",\n exit: \"smwb-modal__overlay-exit\",\n exitActive: \"smwb-modal__overlay-exit-active\",\n};\n\nfunction ModalBase(props: ParentProps<ModalProps>): JSX.Element {\n const merged = mergeProps(\n {\n animation: \"fade\" as const,\n backdrop: \"dark\" as const,\n size: \"large\" as const,\n closeOnOutsideClick: true,\n asForm: false,\n disableAppearAnimation: false,\n role: \"dialog\" as const,\n closeOnEsc: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"children\",\n \"onClose\",\n \"open\",\n \"class\",\n \"animation\",\n \"backdrop\",\n \"size\",\n \"closeOnOutsideClick\",\n \"asForm\",\n \"disableAppearAnimation\",\n \"role\",\n \"closeOnEsc\",\n \"ref\",\n ]);\n\n let contentEl: HTMLDivElement | undefined;\n\n const transition = createCssTransition({\n in: () => local.open,\n timeout: { appear: 225, enter: 225, exit: 150 },\n classNames: OVERLAY_CLASSNAMES,\n appear: !local.disableAppearAnimation,\n });\n\n createFocusTrap({ active: () => local.open && transition.mounted(), container: () => contentEl });\n\n createEffect(() => {\n if (!local.open || !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 return (\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n class={cn(\"smwb-modal__overlay\", `smwb-${local.backdrop}`, `smwb-${local.size}`, transition.classes())}\n onClick={local.closeOnOutsideClick && local.onClose ? () => local.onClose?.() : undefined}\n >\n <Dynamic\n component={local.asForm ? \"form\" : \"div\"}\n {...rest}\n ref={mergeRefs(local.ref, (el) => (contentEl = el as HTMLDivElement))}\n class={cn(\"smwb-modal\", `smwb-${local.size}`, `smwb-${local.animation}`, local.class)}\n onClick={(event: MouseEvent) => event.stopPropagation()}\n role={local.role}\n aria-modal=\"true\"\n >\n {local.children}\n </Dynamic>\n </div>\n </Portal>\n </Show>\n );\n}\n\nexport interface ModalSlotProps {\n class?: string;\n}\n\nexport function Header(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__header\", props.class)}>{props.children}</div>;\n}\n\nexport function Content(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__content\", props.class)}>{props.children}</div>;\n}\n\nexport function Footer(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__footer\", props.class)}>{props.children}</div>;\n}\n\nexport const Modal = Object.assign(ModalBase, { Footer, Header, Content });\n\nexport default Modal;\n"],"names":["OVERLAY_CLASSNAMES","appear","appearActive","appearDone","enter","enterActive","enterDone","exit","exitActive","ModalBase","props","merged","mergeProps","animation","backdrop","size","closeOnOutsideClick","asForm","disableAppearAnimation","role","closeOnEsc","local","rest","splitProps","contentEl","transition","createCssTransition","in","open","timeout","classNames","createFocusTrap","active","mounted","container","createEffect","onClose","onKeyDown","event","key","document","addEventListener","onCleanup","removeEventListener","_$createComponent","Show","when","children","Portal","mount","isServer","undefined","body","_el$","_tmpl$","_$addEventListener","_$insert","Dynamic","_$mergeProps","component","ref","r$","_ref$","mergeRefs","el","cn","class","onClick","stopPropagation","_$effect","_$className","classes","Header","_el$2","Content","_el$3","Footer","_el$4","Modal","Object","assign","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","sources":["../../../../src/components/feedBack/modal/modal.tsx"],"sourcesContent":["import { type JSX, type ParentProps, Show, createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { Dynamic, Portal, isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { createCssTransition } from \"../../../primitives/createCssTransition\";\nimport { createFocusTrap } from \"../../../primitives/createFocusTrap\";\nimport { isTopOverlayLayer } from \"../../../primitives/overlayLayer\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport interface ModalProps {\n size?: \"small\" | \"medium\" | \"large\" | \"fullscreen\";\n closeOnOutsideClick?: boolean;\n onClose?: () => void;\n open: boolean;\n animation?: \"fade\" | \"scale\" | \"drop\";\n class?: string;\n backdrop?: \"blured\" | \"dark\" | \"transparent\" | \"darkBlured\";\n asForm?: boolean;\n disableAppearAnimation?: boolean;\n /** ARIA role of the dialog. */\n role?: \"dialog\" | \"alertdialog\";\n /** Close the modal when Escape is pressed. */\n closeOnEsc?: boolean;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst OVERLAY_CLASSNAMES = {\n appear: \"smwb-modal__overlay-appear\",\n appearActive: \"smwb-modal__overlay-appear-active\",\n appearDone: \"smwb-modal__overlay-appear-done\",\n enter: \"smwb-modal__overlay-enter\",\n enterActive: \"smwb-modal__overlay-enter-active\",\n enterDone: \"smwb-modal__overlay-enter-done\",\n exit: \"smwb-modal__overlay-exit\",\n exitActive: \"smwb-modal__overlay-exit-active\",\n};\n\nfunction ModalBase(props: ParentProps<ModalProps>): JSX.Element {\n const merged = mergeProps(\n {\n animation: \"fade\" as const,\n backdrop: \"dark\" as const,\n size: \"large\" as const,\n closeOnOutsideClick: true,\n asForm: false,\n disableAppearAnimation: false,\n role: \"dialog\" as const,\n closeOnEsc: true,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"children\",\n \"onClose\",\n \"open\",\n \"class\",\n \"animation\",\n \"backdrop\",\n \"size\",\n \"closeOnOutsideClick\",\n \"asForm\",\n \"disableAppearAnimation\",\n \"role\",\n \"closeOnEsc\",\n \"ref\",\n ]);\n\n let contentEl: HTMLDivElement | undefined;\n let overlayEl: HTMLDivElement | undefined;\n\n const transition = createCssTransition({\n in: () => local.open,\n timeout: { appear: 225, enter: 225, exit: 150 },\n classNames: OVERLAY_CLASSNAMES,\n appear: !local.disableAppearAnimation,\n });\n\n createFocusTrap({ active: () => local.open && transition.mounted(), container: () => contentEl });\n\n createEffect(() => {\n if (!local.open || !local.closeOnEsc || !local.onClose) return;\n const onKeyDown = (event: KeyboardEvent): void => {\n // Only the topmost overlay layer reacts to Escape.\n if (event.key === \"Escape\" && isTopOverlayLayer(overlayEl)) local.onClose?.();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => document.removeEventListener(\"keydown\", onKeyDown));\n });\n\n return (\n <Show when={transition.mounted()}>\n <Portal mount={(isServer ? undefined : document.body) as Node}>\n <div\n ref={(el) => (overlayEl = el)}\n data-smwb-overlay-layer\n class={cn(\"smwb-modal__overlay\", `smwb-${local.backdrop}`, `smwb-${local.size}`, transition.classes())}\n onClick={local.closeOnOutsideClick && local.onClose ? () => local.onClose?.() : undefined}\n >\n <Dynamic\n component={local.asForm ? \"form\" : \"div\"}\n {...rest}\n ref={mergeRefs(local.ref, (el) => (contentEl = el as HTMLDivElement))}\n class={cn(\"smwb-modal\", `smwb-${local.size}`, `smwb-${local.animation}`, local.class)}\n onClick={(event: MouseEvent) => event.stopPropagation()}\n role={local.role}\n aria-modal=\"true\"\n >\n {local.children}\n </Dynamic>\n </div>\n </Portal>\n </Show>\n );\n}\n\nexport interface ModalSlotProps {\n class?: string;\n}\n\nexport function Header(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__header\", props.class)}>{props.children}</div>;\n}\n\nexport function Content(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__content\", props.class)}>{props.children}</div>;\n}\n\nexport function Footer(props: ParentProps<ModalSlotProps>): JSX.Element {\n return <div class={cn(\"smwb-modal__footer\", props.class)}>{props.children}</div>;\n}\n\nexport const Modal = Object.assign(ModalBase, { Footer, Header, Content });\n\nexport default Modal;\n"],"names":["OVERLAY_CLASSNAMES","appear","appearActive","appearDone","enter","enterActive","enterDone","exit","exitActive","ModalBase","props","merged","mergeProps","animation","backdrop","size","closeOnOutsideClick","asForm","disableAppearAnimation","role","closeOnEsc","local","rest","splitProps","contentEl","overlayEl","transition","createCssTransition","in","open","timeout","classNames","createFocusTrap","active","mounted","container","createEffect","onClose","onKeyDown","event","key","isTopOverlayLayer","document","addEventListener","onCleanup","removeEventListener","_$createComponent","Show","when","children","Portal","mount","isServer","undefined","body","_el$","_tmpl$","_$addEventListener","_$use","el","_$insert","Dynamic","_$mergeProps","component","ref","r$","_ref$","mergeRefs","cn","class","onClick","stopPropagation","_$effect","_$className","classes","Header","_el$2","_tmpl$2","Content","_el$3","Footer","_el$4","Modal","Object","assign","_$delegateEvents"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { createComponent as a, mergeProps as $, Portal as ne, use as oe, insert as x, effect as ie, style as le, setAttribute as se, isServer as ce, template as de } from "solid-js/web";
1
+ import { createComponent as a, mergeProps as $, Portal as ne, use as oe, insert as x, effect as le, style as ie, setAttribute as se, isServer as ce, template as de } from "solid-js/web";
2
2
  import '../../../assets/styles/less/components/datePicker/dataPicker.entry.css';/* empty css */
3
- import { splitProps as ue, createSignal as c, createEffect as B, createMemo as ge, onCleanup as me, Show as p } from "solid-js";
3
+ import { splitProps as ue, createSignal as c, createEffect as B, createMemo as ge, onCleanup as me, Show as b } from "solid-js";
4
4
  import { buildFloatingMiddleware as fe, resolvePlacement as he } from "../../../utils/floating.js";
5
- import { createFloating as pe } from "../../../primitives/createFloating.js";
6
- import { DataPickerHeader as be } from "./dataPickerHeader.js";
5
+ import { createFloating as be } from "../../../primitives/createFloating.js";
6
+ import { DataPickerHeader as pe } from "./dataPickerHeader.js";
7
7
  import { DataPickerDays as ve } from "./dataPickerDays.js";
8
8
  import { DatePickerList as L } from "./datePickerList.js";
9
9
  import { DataPickerInput as we } from "./dataPickerInput.js";
@@ -14,18 +14,18 @@ import { mergeRefs as E } from "../../../primitives/mergeRefs.js";
14
14
  import { TextField as Oe } from "../textField/textField.js";
15
15
  import { Icon as Pe } from "../../base/icon/icon.js";
16
16
  import { ClickAwayListener as Se } from "../../clickAwayListener/clickAwayListener.js";
17
- var Fe = /* @__PURE__ */ de('<div class=smwb-date-picker data-testid=date-picker role=dialog aria-modal=false style="transition:opacity 150ms ease-in-out"><div class=smwb-date-picker__inner><div class=smwb-date-picker__body>');
17
+ var Fe = /* @__PURE__ */ de('<div class=smwb-date-picker data-testid=date-picker data-smwb-overlay-layer role=dialog aria-modal=false style="transition:opacity 150ms ease-in-out"><div class=smwb-date-picker__inner><div class=smwb-date-picker__body>');
18
18
  const Me = 150;
19
19
  function Je(C) {
20
- const [e, y] = ue(C, ["value", "onChange", "showDaysOutsideMonth", "disablePast", "disableFuture", "weekStartsOn", "placement", "disabled", "disableCalendar", "calendarAriaLabel", "minDate", "maxDate", "isDateDisabled", "locale", "format", "range", "rangeValue", "onRangeChange", "calendarIcon", "onBlur", "ref"]), b = () => e.value === void 0 ? void 0 : new Date(e.value), k = () => e.rangeValue !== void 0, [q, z] = c([void 0, void 0]), l = () => k() && e.rangeValue ? e.rangeValue : q(), V = b(), [s, u] = c(D(V) ? V : /* @__PURE__ */ new Date()), [g, m] = c(o.days), [H, f] = c(!1);
20
+ const [e, y] = ue(C, ["value", "onChange", "showDaysOutsideMonth", "disablePast", "disableFuture", "weekStartsOn", "placement", "disabled", "disableCalendar", "calendarAriaLabel", "minDate", "maxDate", "isDateDisabled", "locale", "format", "range", "rangeValue", "onRangeChange", "calendarIcon", "onBlur", "ref"]), p = () => e.value === void 0 ? void 0 : new Date(e.value), k = () => e.rangeValue !== void 0, [q, z] = c([void 0, void 0]), i = () => k() && e.rangeValue ? e.rangeValue : q(), V = p(), [s, u] = c(D(V) ? V : /* @__PURE__ */ new Date()), [g, m] = c(o.days), [H, f] = c(!1);
21
21
  let O, P;
22
- const S = () => he(e.placement ?? "bottom-start"), v = pe({
22
+ const S = () => he(e.placement ?? "bottom-start"), v = be({
23
23
  placement: () => S().placement,
24
24
  middleware: () => fe(S())
25
25
  });
26
26
  B(() => {
27
27
  if (e.disabled) return;
28
- const t = b();
28
+ const t = p();
29
29
  u(D(t) ? t : /* @__PURE__ */ new Date());
30
30
  });
31
31
  const j = () => e.weekStartsOn ?? 1, G = (t) => {
@@ -41,9 +41,9 @@ function Je(C) {
41
41
  }, U = (t, n) => {
42
42
  if (e.range) {
43
43
  if (!n) return;
44
- const [i, h] = l();
44
+ const [l, h] = i();
45
45
  let r;
46
- !i || i && h ? r = [n, void 0] : r = D(i) && n.getTime() < i.getTime() ? [n, i] : [i, n], k() || z(r), e.onRangeChange?.(r), r[0] && r[1] && f(!1);
46
+ !l || l && h ? r = [n, void 0] : r = D(l) && n.getTime() < l.getTime() ? [n, l] : [l, n], k() || z(r), e.onRangeChange?.(r), r[0] && r[1] && f(!1);
47
47
  return;
48
48
  }
49
49
  e.onChange?.(t, n, C), f(!1);
@@ -85,7 +85,7 @@ function Je(C) {
85
85
  return s();
86
86
  },
87
87
  get value() {
88
- return b();
88
+ return p();
89
89
  },
90
90
  get showDaysOutsideMonth() {
91
91
  return e.showDaysOutsideMonth;
@@ -116,15 +116,15 @@ function Je(C) {
116
116
  return e.range;
117
117
  },
118
118
  get rangeStart() {
119
- return l()[0];
119
+ return i()[0];
120
120
  },
121
121
  get rangeEnd() {
122
- return l()[1];
122
+ return i()[1];
123
123
  }
124
124
  });
125
125
  }
126
- }, re = () => e.range && (l()[0] || l()[1]) ? `${Y(l()[0], e.format)} – ${Y(l()[1], e.format)}` : "", R = E(e.ref, v.setReference, (t) => O = t);
127
- return [a(p, {
126
+ }, re = () => e.range && (i()[0] || i()[1]) ? `${Y(i()[0], e.format)} – ${Y(i()[1], e.format)}` : "", R = E(e.ref, v.setReference, (t) => O = t);
127
+ return [a(b, {
128
128
  get when() {
129
129
  return e.range;
130
130
  },
@@ -171,7 +171,7 @@ function Je(C) {
171
171
  placeholder: `${e.format} – ${e.format}`
172
172
  } : {}, {
173
173
  get endAdornment() {
174
- return a(p, {
174
+ return a(b, {
175
175
  get when() {
176
176
  return !e.disableCalendar;
177
177
  },
@@ -184,7 +184,7 @@ function Je(C) {
184
184
  },
185
185
  "data-testid": "date-picker-icon-button",
186
186
  get children() {
187
- return a(p, {
187
+ return a(b, {
188
188
  get when() {
189
189
  return e.calendarIcon;
190
190
  },
@@ -207,7 +207,7 @@ function Je(C) {
207
207
  }
208
208
  }, y));
209
209
  }
210
- }), a(p, {
210
+ }), a(b, {
211
211
  get when() {
212
212
  return A();
213
213
  },
@@ -220,8 +220,8 @@ function Je(C) {
220
220
  return a(Se, {
221
221
  onClickAway: W,
222
222
  get children() {
223
- var t = Fe(), n = t.firstChild, i = n.firstChild, h = E(v.setFloating, (r) => P = r);
224
- return typeof h == "function" && oe(h, t), x(n, a(be, {
223
+ var t = Fe(), n = t.firstChild, l = n.firstChild, h = E(v.setFloating, (r) => P = r);
224
+ return typeof h == "function" && oe(h, t), x(n, a(pe, {
225
225
  get viewValue() {
226
226
  return s();
227
227
  },
@@ -234,12 +234,12 @@ function Je(C) {
234
234
  onChange: G,
235
235
  onMonthLabelClick: J,
236
236
  onYearLabelClick: K
237
- }), i), x(i, te), ie((r) => {
237
+ }), l), x(l, te), le((r) => {
238
238
  var ae = {
239
239
  ...v.floatingStyles(),
240
240
  opacity: ee() ? 1 : 0
241
241
  }, T = e.calendarAriaLabel ?? "Choose date";
242
- return r.e = le(t, ae, r.e), T !== r.t && se(t, "aria-label", r.t = T), r;
242
+ return r.e = ie(t, ae, r.e), T !== r.t && se(t, "aria-label", r.t = T), r;
243
243
  }, {
244
244
  e: void 0,
245
245
  t: void 0
@@ -1 +1 @@
1
- {"version":3,"file":"datePicker.js","sources":["../../../../src/components/inputs/datePicker/datePicker.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, createMemo, 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 { TextField, type TextFieldProps } from \"../textField\";\nimport { DataPickerHeader } from \"./dataPickerHeader\";\nimport { DataPickerDays } from \"./dataPickerDays\";\nimport { DatePickerList } from \"./datePickerList\";\nimport { DataPickerInput } from \"./dataPickerInput\";\nimport { DatePickerIconButton } from \"./datePickerIconButton\";\nimport { OpenView } from \"./openView\";\nimport {\n type WeekStart,\n getDisplayDate,\n getMonths,\n getYears,\n isValidDate,\n setMonth,\n setYear,\n} from \"./dateUtils\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport { OpenView } from \"./openView\";\n\nexport interface DatePickerProps\n extends Omit<TextFieldProps, \"onBlur\" | \"onChange\" | \"value\" | \"defaultValue\" | \"ref\" | \"onToggle\"> {\n showDaysOutsideMonth?: boolean | undefined;\n disablePast?: boolean | undefined;\n disableFuture?: boolean | undefined;\n /** Earliest selectable date (inclusive). */\n minDate?: Date | undefined;\n /** Latest selectable date (inclusive). */\n maxDate?: Date | undefined;\n /** Predicate to disable arbitrary days. */\n isDateDisabled?: ((day: Date) => boolean) | undefined;\n weekStartsOn?: WeekStart | undefined;\n /** BCP-47 locale for calendar labels (day/month/year names). */\n locale?: string | undefined;\n /** Input format pattern with tokens dd, MM, yyyy, e.g. \"dd/MM/yyyy\". */\n format?: string | undefined;\n /** Enables date-range selection. */\n range?: boolean | undefined;\n /** Controlled range value `[start, end]`. */\n rangeValue?: [Date | undefined, Date | undefined] | undefined;\n /** Called when the range changes. */\n onRangeChange?: ((range: [Date | undefined, Date | undefined]) => void) | undefined;\n placement?: Placement | undefined;\n disableCalendar?: boolean | undefined;\n label?: string | undefined;\n /** Accessible label for the calendar popup dialog. */\n calendarAriaLabel?: string | undefined;\n value?: Date | string | undefined;\n calendarIcon?: JSX.Element;\n onChange?: ((event?: Event, value?: Date, data?: DatePickerProps) => void) | undefined;\n onBlur?: ((event?: FocusEvent, value?: Date, data?: DatePickerProps) => void) | undefined;\n ref?: Ref<HTMLInputElement>;\n}\n\nconst FADE_MS = 150;\n\nexport function DatePicker(props: DatePickerProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"onChange\",\n \"showDaysOutsideMonth\",\n \"disablePast\",\n \"disableFuture\",\n \"weekStartsOn\",\n \"placement\",\n \"disabled\",\n \"disableCalendar\",\n \"calendarAriaLabel\",\n \"minDate\",\n \"maxDate\",\n \"isDateDisabled\",\n \"locale\",\n \"format\",\n \"range\",\n \"rangeValue\",\n \"onRangeChange\",\n \"calendarIcon\",\n \"onBlur\",\n \"ref\",\n ]);\n\n const value = (): Date | undefined => (local.value === undefined ? undefined : new Date(local.value));\n const isRangeControlled = (): boolean => local.rangeValue !== undefined;\n const [rangeState, setRangeState] = createSignal<[Date | undefined, Date | undefined]>([undefined, undefined]);\n const currentRange = (): [Date | undefined, Date | undefined] =>\n isRangeControlled() && local.rangeValue ? local.rangeValue : rangeState();\n\n const initialValue = value();\n const [viewValue, setViewValue] = createSignal<Date>(isValidDate(initialValue) ? initialValue : new Date());\n const [openView, setOpenView] = createSignal<OpenView>(OpenView.days);\n const [isOpen, setIsOpen] = createSignal(false);\n\n let anchorEl: HTMLElement | undefined;\n let calendarEl: HTMLElement | undefined;\n\n const resolved = (): ReturnType<typeof resolvePlacement> => 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(isValidDate(v) ? v : new Date());\n });\n\n const weekStartsOn = (): WeekStart => local.weekStartsOn ?? 1;\n\n const onViewValueChange = (v: Date): void => {\n setViewValue(v);\n };\n\n const onMonthLabelClick = (): void => {\n setOpenView(openView() === OpenView.months ? OpenView.days : OpenView.months);\n };\n\n const onYearLabelClick = (): void => {\n setOpenView(openView() === OpenView.years ? OpenView.days : OpenView.years);\n };\n\n const onMonthChange = (month: number): void => {\n setViewValue(setMonth(viewValue(), month));\n setOpenView(OpenView.days);\n };\n\n const onYearChange = (year: number): void => {\n setViewValue(setYear(viewValue(), year));\n setOpenView(OpenView.days);\n };\n\n const onChange = (event?: Event, date?: Date): void => {\n if (local.range) {\n if (!date) return;\n const [start, end] = currentRange();\n let next: [Date | undefined, Date | undefined];\n if (!start || (start && end)) {\n next = [date, undefined];\n } else {\n next = isValidDate(start) && date.getTime() < start.getTime() ? [date, start] : [start, date];\n }\n if (!isRangeControlled()) setRangeState(next);\n local.onRangeChange?.(next);\n if (next[0] && next[1]) setIsOpen(false);\n return;\n }\n local.onChange?.(event, date, props);\n setIsOpen(false);\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 (calendarEl?.contains(target) || anchorEl?.contains(target)) return;\n setIsOpen(false);\n };\n\n const months = createMemo(() => getMonths(local.locale));\n const years = getYears(new Date().getFullYear(), 100);\n\n const shouldOpen = (): boolean => isOpen() && !local.disabled && !local.disableCalendar;\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 view = (): JSX.Element => {\n switch (openView()) {\n case OpenView.months:\n return <DatePickerList value={viewValue().getMonth()} items={months()} onChange={onMonthChange} />;\n case OpenView.years:\n return <DatePickerList value={viewValue().getFullYear()} items={years} onChange={onYearChange} />;\n default:\n return (\n <DataPickerDays\n viewValue={viewValue()}\n value={value()}\n showDaysOutsideMonth={local.showDaysOutsideMonth}\n onChange={onChange}\n disablePast={local.disablePast}\n disableFuture={local.disableFuture}\n weekStartsOn={weekStartsOn()}\n minDate={local.minDate}\n maxDate={local.maxDate}\n isDateDisabled={local.isDateDisabled}\n locale={local.locale}\n range={local.range}\n rangeStart={currentRange()[0]}\n rangeEnd={currentRange()[1]}\n />\n );\n }\n };\n\n const rangeDisplay = (): string =>\n local.range && (currentRange()[0] || currentRange()[1])\n ? `${getDisplayDate(currentRange()[0], local.format)} – ${getDisplayDate(currentRange()[1], local.format)}`\n : \"\";\n\n const anchorRef = mergeRefs(local.ref, floating.setReference, (el) => (anchorEl = el as HTMLElement));\n\n return (\n <>\n <Show\n when={local.range}\n fallback={\n <DataPickerInput\n ref={anchorRef}\n value={local.value}\n onChange={local.onChange}\n onBlur={local.onBlur}\n onToggle={onToggle}\n disabled={local.disabled}\n disableCalendar={local.disableCalendar}\n format={local.format}\n calendarIcon={local.calendarIcon}\n {...rest}\n />\n }\n >\n <TextField\n ref={anchorRef}\n value={rangeDisplay()}\n readOnly\n onChange={() => undefined}\n disabled={Boolean(local.disabled)}\n {...(local.format ? { placeholder: `${local.format} – ${local.format}` } : {})}\n endAdornment={\n <Show when={!local.disableCalendar}>\n <DatePickerIconButton\n edge=\"end\"\n onClick={onToggle}\n disabled={Boolean(local.disabled)}\n data-testid=\"date-picker-icon-button\"\n >\n <Show\n when={local.calendarIcon}\n fallback={<Icon name=\"calendar_today\" fill={1} weight={500} size={24} />}\n >\n {local.calendarIcon}\n </Show>\n </DatePickerIconButton>\n </Show>\n }\n {...rest}\n />\n </Show>\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) => (calendarEl = el as HTMLElement))}\n class=\"smwb-date-picker\"\n style={{\n ...floating.floatingStyles(),\n transition: `opacity ${FADE_MS}ms ease-in-out`,\n opacity: shown() ? 1 : 0,\n }}\n data-testid=\"date-picker\"\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={local.calendarAriaLabel ?? \"Choose date\"}\n >\n <div class=\"smwb-date-picker__inner\">\n <DataPickerHeader\n viewValue={viewValue()}\n locale={local.locale}\n openView={openView()}\n onChange={onViewValueChange}\n onMonthLabelClick={onMonthLabelClick}\n onYearLabelClick={onYearLabelClick}\n />\n <div class=\"smwb-date-picker__body\">{view()}</div>\n </div>\n </div>\n </ClickAwayListener>\n </Portal>\n </Show>\n </>\n );\n}\n\nexport default DatePicker;\n"],"names":["FADE_MS","DatePicker","props","local","rest","splitProps","value","undefined","Date","isRangeControlled","rangeValue","rangeState","setRangeState","createSignal","currentRange","initialValue","viewValue","setViewValue","isValidDate","openView","setOpenView","OpenView","days","isOpen","setIsOpen","anchorEl","calendarEl","resolved","resolvePlacement","placement","floating","createFloating","middleware","buildFloatingMiddleware","createEffect","disabled","v","weekStartsOn","onViewValueChange","onMonthLabelClick","months","onYearLabelClick","years","onMonthChange","month","setMonth","onYearChange","year","setYear","onChange","event","date","range","start","end","next","getTime","onRangeChange","onToggle","prev","onClickAway","target","contains","createMemo","getMonths","locale","getYears","getFullYear","shouldOpen","disableCalendar","mounted","setMounted","shown","setShown","raf","timer","clearTimeout","requestAnimationFrame","setTimeout","onCleanup","cancelAnimationFrame","view","_$createComponent","DatePickerList","getMonth","items","DataPickerDays","showDaysOutsideMonth","disablePast","disableFuture","minDate","maxDate","isDateDisabled","rangeStart","rangeEnd","rangeDisplay","getDisplayDate","format","anchorRef","mergeRefs","ref","setReference","el","Show","when","fallback","DataPickerInput","_$mergeProps","onBlur","calendarIcon","children","TextField","readOnly","Boolean","placeholder","endAdornment","DatePickerIconButton","edge","onClick","Icon","name","fill","weight","size","Portal","mount","isServer","document","body","ClickAwayListener","_el$","_tmpl$","_el$2","firstChild","_el$3","_ref$","setFloating","_$use","_$insert","DataPickerHeader","_$effect","_p$","_v$","floatingStyles","opacity","_v$2","calendarAriaLabel","e","_$style","t","_$setAttribute"],"mappings":"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"}
1
+ {"version":3,"file":"datePicker.js","sources":["../../../../src/components/inputs/datePicker/datePicker.tsx"],"sourcesContent":["import { type JSX, Show, createEffect, createMemo, 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 { TextField, type TextFieldProps } from \"../textField\";\nimport { DataPickerHeader } from \"./dataPickerHeader\";\nimport { DataPickerDays } from \"./dataPickerDays\";\nimport { DatePickerList } from \"./datePickerList\";\nimport { DataPickerInput } from \"./dataPickerInput\";\nimport { DatePickerIconButton } from \"./datePickerIconButton\";\nimport { OpenView } from \"./openView\";\nimport {\n type WeekStart,\n getDisplayDate,\n getMonths,\n getYears,\n isValidDate,\n setMonth,\n setYear,\n} from \"./dateUtils\";\nimport { Icon } from \"../../base/icon\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport { OpenView } from \"./openView\";\n\nexport interface DatePickerProps\n extends Omit<TextFieldProps, \"onBlur\" | \"onChange\" | \"value\" | \"defaultValue\" | \"ref\" | \"onToggle\"> {\n showDaysOutsideMonth?: boolean | undefined;\n disablePast?: boolean | undefined;\n disableFuture?: boolean | undefined;\n /** Earliest selectable date (inclusive). */\n minDate?: Date | undefined;\n /** Latest selectable date (inclusive). */\n maxDate?: Date | undefined;\n /** Predicate to disable arbitrary days. */\n isDateDisabled?: ((day: Date) => boolean) | undefined;\n weekStartsOn?: WeekStart | undefined;\n /** BCP-47 locale for calendar labels (day/month/year names). */\n locale?: string | undefined;\n /** Input format pattern with tokens dd, MM, yyyy, e.g. \"dd/MM/yyyy\". */\n format?: string | undefined;\n /** Enables date-range selection. */\n range?: boolean | undefined;\n /** Controlled range value `[start, end]`. */\n rangeValue?: [Date | undefined, Date | undefined] | undefined;\n /** Called when the range changes. */\n onRangeChange?: ((range: [Date | undefined, Date | undefined]) => void) | undefined;\n placement?: Placement | undefined;\n disableCalendar?: boolean | undefined;\n label?: string | undefined;\n /** Accessible label for the calendar popup dialog. */\n calendarAriaLabel?: string | undefined;\n value?: Date | string | undefined;\n calendarIcon?: JSX.Element;\n onChange?: ((event?: Event, value?: Date, data?: DatePickerProps) => void) | undefined;\n onBlur?: ((event?: FocusEvent, value?: Date, data?: DatePickerProps) => void) | undefined;\n ref?: Ref<HTMLInputElement>;\n}\n\nconst FADE_MS = 150;\n\nexport function DatePicker(props: DatePickerProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"onChange\",\n \"showDaysOutsideMonth\",\n \"disablePast\",\n \"disableFuture\",\n \"weekStartsOn\",\n \"placement\",\n \"disabled\",\n \"disableCalendar\",\n \"calendarAriaLabel\",\n \"minDate\",\n \"maxDate\",\n \"isDateDisabled\",\n \"locale\",\n \"format\",\n \"range\",\n \"rangeValue\",\n \"onRangeChange\",\n \"calendarIcon\",\n \"onBlur\",\n \"ref\",\n ]);\n\n const value = (): Date | undefined => (local.value === undefined ? undefined : new Date(local.value));\n const isRangeControlled = (): boolean => local.rangeValue !== undefined;\n const [rangeState, setRangeState] = createSignal<[Date | undefined, Date | undefined]>([undefined, undefined]);\n const currentRange = (): [Date | undefined, Date | undefined] =>\n isRangeControlled() && local.rangeValue ? local.rangeValue : rangeState();\n\n const initialValue = value();\n const [viewValue, setViewValue] = createSignal<Date>(isValidDate(initialValue) ? initialValue : new Date());\n const [openView, setOpenView] = createSignal<OpenView>(OpenView.days);\n const [isOpen, setIsOpen] = createSignal(false);\n\n let anchorEl: HTMLElement | undefined;\n let calendarEl: HTMLElement | undefined;\n\n const resolved = (): ReturnType<typeof resolvePlacement> => 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(isValidDate(v) ? v : new Date());\n });\n\n const weekStartsOn = (): WeekStart => local.weekStartsOn ?? 1;\n\n const onViewValueChange = (v: Date): void => {\n setViewValue(v);\n };\n\n const onMonthLabelClick = (): void => {\n setOpenView(openView() === OpenView.months ? OpenView.days : OpenView.months);\n };\n\n const onYearLabelClick = (): void => {\n setOpenView(openView() === OpenView.years ? OpenView.days : OpenView.years);\n };\n\n const onMonthChange = (month: number): void => {\n setViewValue(setMonth(viewValue(), month));\n setOpenView(OpenView.days);\n };\n\n const onYearChange = (year: number): void => {\n setViewValue(setYear(viewValue(), year));\n setOpenView(OpenView.days);\n };\n\n const onChange = (event?: Event, date?: Date): void => {\n if (local.range) {\n if (!date) return;\n const [start, end] = currentRange();\n let next: [Date | undefined, Date | undefined];\n if (!start || (start && end)) {\n next = [date, undefined];\n } else {\n next = isValidDate(start) && date.getTime() < start.getTime() ? [date, start] : [start, date];\n }\n if (!isRangeControlled()) setRangeState(next);\n local.onRangeChange?.(next);\n if (next[0] && next[1]) setIsOpen(false);\n return;\n }\n local.onChange?.(event, date, props);\n setIsOpen(false);\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 (calendarEl?.contains(target) || anchorEl?.contains(target)) return;\n setIsOpen(false);\n };\n\n const months = createMemo(() => getMonths(local.locale));\n const years = getYears(new Date().getFullYear(), 100);\n\n const shouldOpen = (): boolean => isOpen() && !local.disabled && !local.disableCalendar;\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 view = (): JSX.Element => {\n switch (openView()) {\n case OpenView.months:\n return <DatePickerList value={viewValue().getMonth()} items={months()} onChange={onMonthChange} />;\n case OpenView.years:\n return <DatePickerList value={viewValue().getFullYear()} items={years} onChange={onYearChange} />;\n default:\n return (\n <DataPickerDays\n viewValue={viewValue()}\n value={value()}\n showDaysOutsideMonth={local.showDaysOutsideMonth}\n onChange={onChange}\n disablePast={local.disablePast}\n disableFuture={local.disableFuture}\n weekStartsOn={weekStartsOn()}\n minDate={local.minDate}\n maxDate={local.maxDate}\n isDateDisabled={local.isDateDisabled}\n locale={local.locale}\n range={local.range}\n rangeStart={currentRange()[0]}\n rangeEnd={currentRange()[1]}\n />\n );\n }\n };\n\n const rangeDisplay = (): string =>\n local.range && (currentRange()[0] || currentRange()[1])\n ? `${getDisplayDate(currentRange()[0], local.format)} – ${getDisplayDate(currentRange()[1], local.format)}`\n : \"\";\n\n const anchorRef = mergeRefs(local.ref, floating.setReference, (el) => (anchorEl = el as HTMLElement));\n\n return (\n <>\n <Show\n when={local.range}\n fallback={\n <DataPickerInput\n ref={anchorRef}\n value={local.value}\n onChange={local.onChange}\n onBlur={local.onBlur}\n onToggle={onToggle}\n disabled={local.disabled}\n disableCalendar={local.disableCalendar}\n format={local.format}\n calendarIcon={local.calendarIcon}\n {...rest}\n />\n }\n >\n <TextField\n ref={anchorRef}\n value={rangeDisplay()}\n readOnly\n onChange={() => undefined}\n disabled={Boolean(local.disabled)}\n {...(local.format ? { placeholder: `${local.format} – ${local.format}` } : {})}\n endAdornment={\n <Show when={!local.disableCalendar}>\n <DatePickerIconButton\n edge=\"end\"\n onClick={onToggle}\n disabled={Boolean(local.disabled)}\n data-testid=\"date-picker-icon-button\"\n >\n <Show\n when={local.calendarIcon}\n fallback={<Icon name=\"calendar_today\" fill={1} weight={500} size={24} />}\n >\n {local.calendarIcon}\n </Show>\n </DatePickerIconButton>\n </Show>\n }\n {...rest}\n />\n </Show>\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) => (calendarEl = el as HTMLElement))}\n class=\"smwb-date-picker\"\n style={{\n ...floating.floatingStyles(),\n transition: `opacity ${FADE_MS}ms ease-in-out`,\n opacity: shown() ? 1 : 0,\n }}\n data-testid=\"date-picker\"\n data-smwb-overlay-layer\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={local.calendarAriaLabel ?? \"Choose date\"}\n >\n <div class=\"smwb-date-picker__inner\">\n <DataPickerHeader\n viewValue={viewValue()}\n locale={local.locale}\n openView={openView()}\n onChange={onViewValueChange}\n onMonthLabelClick={onMonthLabelClick}\n onYearLabelClick={onYearLabelClick}\n />\n <div class=\"smwb-date-picker__body\">{view()}</div>\n </div>\n </div>\n </ClickAwayListener>\n </Portal>\n </Show>\n </>\n );\n}\n\nexport default DatePicker;\n"],"names":["FADE_MS","DatePicker","props","local","rest","splitProps","value","undefined","Date","isRangeControlled","rangeValue","rangeState","setRangeState","createSignal","currentRange","initialValue","viewValue","setViewValue","isValidDate","openView","setOpenView","OpenView","days","isOpen","setIsOpen","anchorEl","calendarEl","resolved","resolvePlacement","placement","floating","createFloating","middleware","buildFloatingMiddleware","createEffect","disabled","v","weekStartsOn","onViewValueChange","onMonthLabelClick","months","onYearLabelClick","years","onMonthChange","month","setMonth","onYearChange","year","setYear","onChange","event","date","range","start","end","next","getTime","onRangeChange","onToggle","prev","onClickAway","target","contains","createMemo","getMonths","locale","getYears","getFullYear","shouldOpen","disableCalendar","mounted","setMounted","shown","setShown","raf","timer","clearTimeout","requestAnimationFrame","setTimeout","onCleanup","cancelAnimationFrame","view","_$createComponent","DatePickerList","getMonth","items","DataPickerDays","showDaysOutsideMonth","disablePast","disableFuture","minDate","maxDate","isDateDisabled","rangeStart","rangeEnd","rangeDisplay","getDisplayDate","format","anchorRef","mergeRefs","ref","setReference","el","Show","when","fallback","DataPickerInput","_$mergeProps","onBlur","calendarIcon","children","TextField","readOnly","Boolean","placeholder","endAdornment","DatePickerIconButton","edge","onClick","Icon","name","fill","weight","size","Portal","mount","isServer","document","body","ClickAwayListener","_el$","_tmpl$","_el$2","firstChild","_el$3","_ref$","setFloating","_$use","_$insert","DataPickerHeader","_$effect","_p$","_v$","floatingStyles","opacity","_v$2","calendarAriaLabel","e","_$style","t","_$setAttribute"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createComponent as i, mergeProps as ee, Portal as te, use as re, insert as b, effect as ae, style as ne, setAttribute as oe, isServer as ie, template as se } from "solid-js/web";
1
+ import { createComponent as i, mergeProps as ee, Portal as te, use as ae, insert as b, effect as re, style as ne, setAttribute as oe, isServer as ie, template as se } from "solid-js/web";
2
2
  import { splitProps as le, createSignal as u, createEffect as L, createMemo as me, onCleanup as ce, Show as ue } from "solid-js";
3
3
  import { buildFloatingMiddleware as de, resolvePlacement as ge } from "../../../utils/floating.js";
4
4
  import { createFloating as fe } from "../../../primitives/createFloating.js";
@@ -6,16 +6,16 @@ import { DataPickerHeader as he } from "../datePicker/dataPickerHeader.js";
6
6
  import { DataPickerDays as pe } from "../datePicker/dataPickerDays.js";
7
7
  import { DatePickerList as E } from "../datePicker/datePickerList.js";
8
8
  import { isValidDate as w, getMonths as ve, getYears as be, setYear as we, setMonth as De } from "../datePicker/dateUtils.js";
9
- import { OpenView as a } from "../datePicker/openView.js";
9
+ import { OpenView as r } from "../datePicker/openView.js";
10
10
  import { TimePickerColumns as Ce } from "../timePicker/timePickerColumns.js";
11
11
  import { isValidTimeDate as D, mergeTime as ye, DEFAULT_TIME_FORMAT as ke, mergeDate as _e } from "../timePicker/timeUtils.js";
12
12
  import { DateTimePickerInput as Fe } from "./dateTimePickerInput.js";
13
13
  import { mergeRefs as I } from "../../../primitives/mergeRefs.js";
14
14
  import { ClickAwayListener as Me } from "../../clickAwayListener/clickAwayListener.js";
15
- var Te = /* @__PURE__ */ se('<div class="smwb-date-picker smwb-date-time-picker"data-testid=date-time-picker role=dialog aria-modal=false style="transition:opacity 150ms ease-in-out"><div class="smwb-date-picker__inner smwb-date-time-picker__inner"><div class=smwb-date-time-picker__content><div class="smwb-date-picker__body smwb-date-time-picker__body">');
15
+ var Te = /* @__PURE__ */ se('<div class="smwb-date-picker smwb-date-time-picker"data-testid=date-time-picker data-smwb-overlay-layer role=dialog aria-modal=false style="transition:opacity 150ms ease-in-out"><div class="smwb-date-picker__inner smwb-date-time-picker__inner"><div class=smwb-date-time-picker__content><div class="smwb-date-picker__body smwb-date-time-picker__body">');
16
16
  const Ve = 150;
17
17
  function Ue(C) {
18
- const [e, Y] = le(C, ["value", "onChange", "showDaysOutsideMonth", "disablePast", "disableFuture", "weekStartsOn", "placement", "disabled", "disableCalendar", "calendarAriaLabel", "minDate", "maxDate", "isDateDisabled", "locale", "format", "timeFormat", "calendarIcon", "onBlur", "ref"]), l = () => e.value === void 0 ? void 0 : new Date(e.value), f = l(), [o, m] = u(w(f) || D(f) ? f : /* @__PURE__ */ new Date()), [d, g] = u(a.days), [H, y] = u(!1);
18
+ const [e, Y] = le(C, ["value", "onChange", "showDaysOutsideMonth", "disablePast", "disableFuture", "weekStartsOn", "placement", "disabled", "disableCalendar", "calendarAriaLabel", "minDate", "maxDate", "isDateDisabled", "locale", "format", "timeFormat", "calendarIcon", "onBlur", "ref"]), l = () => e.value === void 0 ? void 0 : new Date(e.value), f = l(), [o, m] = u(w(f) || D(f) ? f : /* @__PURE__ */ new Date()), [d, g] = u(r.days), [H, y] = u(!1);
19
19
  let k, _;
20
20
  const F = () => ge(e.placement ?? "bottom-start"), h = fe({
21
21
  placement: () => F().placement,
@@ -29,27 +29,27 @@ function Ue(C) {
29
29
  const $ = () => e.weekStartsOn ?? 1, x = (t) => {
30
30
  m(t);
31
31
  }, B = () => {
32
- g(d() === a.months ? a.days : a.months);
32
+ g(d() === r.months ? r.days : r.months);
33
33
  }, R = () => {
34
- g(d() === a.years ? a.days : a.years);
34
+ g(d() === r.years ? r.days : r.years);
35
35
  }, q = (t) => {
36
- m(De(o(), t)), g(a.days);
36
+ m(De(o(), t)), g(r.days);
37
37
  }, U = (t) => {
38
- m(we(o(), t)), g(a.days);
38
+ m(we(o(), t)), g(r.days);
39
39
  }, M = (t) => {
40
40
  m(t), e.onChange?.(void 0, t, C);
41
- }, j = (t, r) => {
42
- if (!r) return;
41
+ }, j = (t, a) => {
42
+ if (!a) return;
43
43
  const n = l(), v = D(n) ? n : o();
44
- M(_e(r, v));
44
+ M(_e(a, v));
45
45
  }, z = (t) => {
46
- const r = l(), n = w(r) ? r : o();
46
+ const a = l(), n = w(a) ? a : o();
47
47
  M(ye(n, t));
48
48
  }, G = () => {
49
49
  e.disabled || y((t) => !t);
50
50
  }, J = (t) => {
51
- const r = t.target;
52
- _?.contains(r) || k?.contains(r) || y(!1);
51
+ const a = t.target;
52
+ _?.contains(a) || k?.contains(a) || y(!1);
53
53
  }, K = () => e.timeFormat ? e.timeFormat : e.format?.includes("HH:mm:ss") ? "HH:mm:ss" : ke, N = me(() => ve(e.locale)), Q = be((/* @__PURE__ */ new Date()).getFullYear(), 100), T = () => H() && !e.disabled && !e.disableCalendar, [V, O] = u(T()), [W, P] = u(!1);
54
54
  let p, c;
55
55
  L(() => {
@@ -59,7 +59,7 @@ function Ue(C) {
59
59
  });
60
60
  const X = () => {
61
61
  switch (d()) {
62
- case a.months:
62
+ case r.months:
63
63
  return i(E, {
64
64
  get value() {
65
65
  return o().getMonth();
@@ -69,7 +69,7 @@ function Ue(C) {
69
69
  },
70
70
  onChange: q
71
71
  });
72
- case a.years:
72
+ case r.years:
73
73
  return i(E, {
74
74
  get value() {
75
75
  return o().getFullYear();
@@ -115,8 +115,8 @@ function Ue(C) {
115
115
  };
116
116
  return [i(Fe, ee({
117
117
  ref(t) {
118
- var r = I(e.ref, h.setReference, (n) => k = n);
119
- typeof r == "function" && r(t);
118
+ var a = I(e.ref, h.setReference, (n) => k = n);
119
+ typeof a == "function" && a(t);
120
120
  },
121
121
  get value() {
122
122
  return e.value;
@@ -153,8 +153,8 @@ function Ue(C) {
153
153
  return i(Me, {
154
154
  onClickAway: J,
155
155
  get children() {
156
- var t = Te(), r = t.firstChild, n = r.firstChild, v = n.firstChild, S = I(h.setFloating, (s) => _ = s);
157
- return typeof S == "function" && re(S, t), b(r, i(he, {
156
+ var t = Te(), a = t.firstChild, n = a.firstChild, v = n.firstChild, S = I(h.setFloating, (s) => _ = s);
157
+ return typeof S == "function" && ae(S, t), b(a, i(he, {
158
158
  get viewValue() {
159
159
  return o();
160
160
  },
@@ -175,7 +175,7 @@ function Ue(C) {
175
175
  return K();
176
176
  },
177
177
  onChange: z
178
- }), null), ae((s) => {
178
+ }), null), re((s) => {
179
179
  var Z = {
180
180
  ...h.floatingStyles(),
181
181
  opacity: W() ? 1 : 0