@nmorph/nmorph-ui-kit 2.2.19 → 2.2.20

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 (104) hide show
  1. package/dist/assets/icons/circle-close.svg.js +4 -4
  2. package/dist/assets/icons/clock.svg.js +2 -2
  3. package/dist/assets/icons/folder-opened.svg.js +8 -8
  4. package/dist/components/basic/nmorph-button/NmorphButton.css +1 -1
  5. package/dist/components/basic/nmorph-link/NmorphLink.vue.js +16 -15
  6. package/dist/components/basic/nmorph-link/NmorphLink.vue2.js +17 -14
  7. package/dist/components/data/nmorph-badge/NmorphBadge.css +1 -1
  8. package/dist/components/data/nmorph-badge/NmorphBadge.vue.js +23 -23
  9. package/dist/components/data/nmorph-badge/NmorphBadge.vue2.js +27 -23
  10. package/dist/components/data/nmorph-calendar/NmorphCalendar.vue.js +14 -13
  11. package/dist/components/data/nmorph-calendar/NmorphCalendar.vue2.js +68 -65
  12. package/dist/components/data/nmorph-calendar/utils.js +4 -3
  13. package/dist/components/data/nmorph-card/NmorphCard.css +1 -1
  14. package/dist/components/data/nmorph-card/NmorphCard.vue.js +27 -26
  15. package/dist/components/data/nmorph-card/NmorphCard.vue2.js +21 -13
  16. package/dist/components/data/nmorph-carousel/NmorphCarousel.vue.js +39 -42
  17. package/dist/components/data/nmorph-carousel/NmorphCarousel.vue2.js +25 -36
  18. package/dist/components/data/nmorph-carousel/components/nmorph-carousel-item/NmorphCarouselItem.vue2.js +15 -11
  19. package/dist/components/data/nmorph-collapse/components/nmorph-collapse-item/NmorphCollapseItem.css +1 -1
  20. package/dist/components/data/nmorph-collapse/components/nmorph-collapse-item/NmorphCollapseItem.vue.js +14 -13
  21. package/dist/components/data/nmorph-collapse/components/nmorph-collapse-item/NmorphCollapseItem.vue2.js +42 -27
  22. package/dist/components/data/nmorph-empty/NmorphEmpty.css +1 -0
  23. package/dist/components/data/nmorph-empty/NmorphEmpty.vue.js +64 -0
  24. package/dist/components/data/nmorph-empty/NmorphEmpty.vue2.js +43 -0
  25. package/dist/components/data/nmorph-image-preview/NmorphImagePreview.css +1 -1
  26. package/dist/components/data/nmorph-image-preview/NmorphImagePreview.vue.js +64 -61
  27. package/dist/components/data/nmorph-image-preview/NmorphImagePreview.vue2.js +70 -60
  28. package/dist/components/data/nmorph-progress/NmorphProgress.vue.js +24 -29
  29. package/dist/components/data/nmorph-progress/NmorphProgress.vue2.js +25 -14
  30. package/dist/components/data/nmorph-skeleton/NmorphSkeleton.vue.js +20 -19
  31. package/dist/components/data/nmorph-skeleton/NmorphSkeleton.vue2.js +15 -12
  32. package/dist/components/data/nmorph-table/NmorphTable.vue.js +35 -31
  33. package/dist/components/data/nmorph-table/NmorphTable.vue2.js +64 -50
  34. package/dist/components/data/nmorph-tag-list/components/nmorph-tag-item/NmorphTagItem.css +1 -1
  35. package/dist/components/feedback/nmorph-alert/NmorphAlert.vue.js +8 -8
  36. package/dist/components/feedback/nmorph-alert/NmorphAlert.vue2.js +26 -22
  37. package/dist/components/feedback/nmorph-callout/NmorphCallout.css +1 -1
  38. package/dist/components/feedback/nmorph-callout/NmorphCallout.vue.js +16 -15
  39. package/dist/components/feedback/nmorph-callout/NmorphCallout.vue2.js +11 -8
  40. package/dist/components/feedback/nmorph-tooltip/NmorphTooltip.css +1 -1
  41. package/dist/components/feedback/nmorph-tooltip/NmorphTooltip.vue.js +13 -13
  42. package/dist/components/feedback/nmorph-tooltip/NmorphTooltip.vue2.js +33 -19
  43. package/dist/components/form/nmorph-autocomplete/NmorphAutocomplete.vue.js +1 -1
  44. package/dist/components/form/nmorph-date-picker/NmorphDatePicker.css +1 -1
  45. package/dist/components/form/nmorph-date-picker/NmorphDatePicker.vue.js +16 -15
  46. package/dist/components/form/nmorph-date-picker/NmorphDatePicker.vue2.js +39 -32
  47. package/dist/components/form/nmorph-number-input/NmorphNumberInput.css +1 -1
  48. package/dist/components/form/nmorph-number-input/NmorphNumberInput.vue.js +7 -7
  49. package/dist/components/form/nmorph-select/NmorphSelect.vue.js +40 -39
  50. package/dist/components/form/nmorph-select/NmorphSelect.vue2.js +53 -50
  51. package/dist/components/form/nmorph-select/components/nmorph-select-option/NmorphSelectOption.vue.js +16 -15
  52. package/dist/components/form/nmorph-select/components/nmorph-select-option/NmorphSelectOption.vue2.js +21 -16
  53. package/dist/components/form/nmorph-select-button/NmorphSelectButton.vue.js +16 -15
  54. package/dist/components/form/nmorph-select-button/NmorphSelectButton.vue2.js +26 -19
  55. package/dist/components/form/nmorph-slider/NmorphSlider.vue.js +4 -4
  56. package/dist/components/form/nmorph-slider/NmorphSlider.vue2.js +48 -38
  57. package/dist/components/form/nmorph-switch/NmorphSwitch.css +1 -1
  58. package/dist/components/form/nmorph-switch/NmorphSwitch.vue.js +18 -17
  59. package/dist/components/form/nmorph-switch/NmorphSwitch.vue2.js +38 -27
  60. package/dist/components/form/nmorph-time-picker/NmorphTimePicker.css +1 -0
  61. package/dist/components/form/nmorph-time-picker/NmorphTimePicker.vue.js +183 -0
  62. package/dist/components/form/nmorph-time-picker/NmorphTimePicker.vue2.js +111 -0
  63. package/dist/components/navigation/nmorph-context-menu/NmorphContextMenu.css +1 -1
  64. package/dist/components/providers/nmorph-notification-provider/NmorphNotificationProvider.vue.js +9 -8
  65. package/dist/components/providers/nmorph-notification-provider/NmorphNotificationProvider.vue2.js +14 -14
  66. package/dist/hooks/use-common-styles.js +75 -9
  67. package/dist/hooks/use-virtual-list.js +3 -1
  68. package/dist/index.es.js +654 -650
  69. package/dist/index.umd.js +101 -35
  70. package/dist/locales/en.js +1 -0
  71. package/dist/locales/ru.js +1 -0
  72. package/dist/locales/zh.js +1 -0
  73. package/dist/package.json.js +1 -1
  74. package/dist/src/components/basic/nmorph-link/NmorphLink.vue.d.ts +2 -0
  75. package/dist/src/components/data/index.d.ts +1 -0
  76. package/dist/src/components/data/nmorph-badge/NmorphBadge.vue.d.ts +2 -0
  77. package/dist/src/components/data/nmorph-calendar/NmorphCalendar.vue.d.ts +2 -0
  78. package/dist/src/components/data/nmorph-card/NmorphCard.vue.d.ts +7 -5
  79. package/dist/src/components/data/nmorph-carousel/NmorphCarousel.vue.d.ts +1 -3
  80. package/dist/src/components/data/nmorph-collapse/components/nmorph-collapse-item/NmorphCollapseItem.vue.d.ts +2 -0
  81. package/dist/src/components/data/nmorph-empty/NmorphEmpty.vue.d.ts +36 -0
  82. package/dist/src/components/data/nmorph-image-preview/NmorphImagePreview.vue.d.ts +6 -0
  83. package/dist/src/components/data/nmorph-progress/NmorphProgress.vue.d.ts +6 -0
  84. package/dist/src/components/data/nmorph-skeleton/NmorphSkeleton.vue.d.ts +2 -0
  85. package/dist/src/components/data/nmorph-table/NmorphTable.vue.d.ts +6 -0
  86. package/dist/src/components/feedback/nmorph-alert/NmorphAlert.vue.d.ts +1 -0
  87. package/dist/src/components/feedback/nmorph-alert/types.d.ts +1 -0
  88. package/dist/src/components/feedback/nmorph-callout/NmorphCallout.vue.d.ts +2 -0
  89. package/dist/src/components/feedback/nmorph-tooltip/NmorphTooltip.vue.d.ts +8 -0
  90. package/dist/src/components/form/index.d.ts +2 -0
  91. package/dist/src/components/form/nmorph-date-picker/NmorphDatePicker.vue.d.ts +4 -0
  92. package/dist/src/components/form/nmorph-select/NmorphSelect.vue.d.ts +2 -0
  93. package/dist/src/components/form/nmorph-select/components/nmorph-select-option/NmorphSelectOption.vue.d.ts +2 -0
  94. package/dist/src/components/form/nmorph-select/types.d.ts +2 -0
  95. package/dist/src/components/form/nmorph-select-button/NmorphSelectButton.vue.d.ts +6 -0
  96. package/dist/src/components/form/nmorph-slider/types.d.ts +4 -0
  97. package/dist/src/components/form/nmorph-switch/NmorphSwitch.vue.d.ts +8 -0
  98. package/dist/src/components/form/nmorph-time-picker/NmorphTimePicker.vue.d.ts +44 -0
  99. package/dist/src/components/form/nmorph-time-picker/types.d.ts +6 -0
  100. package/dist/src/components/navigation/nmorph-context-menu/NmorphContextMenu.vue.d.ts +3 -3
  101. package/dist/src/components/navigation/nmorph-dropdown/NmorphDropdown.vue.d.ts +2 -2
  102. package/dist/src/outside-hooks/use-nmorph-notification.d.ts +2 -0
  103. package/dist/style.css +1 -1
  104. package/package.json +6 -5
@@ -1,14 +1,15 @@
1
1
  import './NmorphSwitch.css';
2
- import l from "./NmorphSwitch.vue2.js";
3
- import { openBlock as r, createElementBlock as t, normalizeClass as a, createElementVNode as n, renderSlot as i, createBlock as c, withCtx as d, createVNode as s } from "vue";
2
+ import a from "./NmorphSwitch.vue2.js";
3
+ import { openBlock as l, createElementBlock as t, normalizeStyle as c, normalizeClass as r, createElementVNode as n, renderSlot as i, createBlock as d, withCtx as s, createVNode as h } from "vue";
4
4
  /* empty css */
5
- import h from "../../../_virtual/_plugin-vue_export-helper.js";
6
- const m = ["id", "name", "value", "checked", "disabled", "tabindex"], f = { class: "nmorph-switch-thumb" };
7
- function p(e, b, _, o, k, u) {
8
- return r(), t(
5
+ import m from "../../../_virtual/_plugin-vue_export-helper.js";
6
+ const f = ["id", "name", "value", "checked", "disabled", "tabindex"], b = { class: "nmorph-switch-thumb" };
7
+ function p(e, _, k, o, y, v) {
8
+ return l(), t(
9
9
  "div",
10
10
  {
11
- class: a(o.modifiers)
11
+ class: r(o.modifiers),
12
+ style: c(o.styles)
12
13
  },
13
14
  [
14
15
  n("div", {
@@ -27,11 +28,11 @@ function p(e, b, _, o, k, u) {
27
28
  class: "nmorph-native-input",
28
29
  onFocus: o.focusHandler,
29
30
  onBlur: o.blurHandler
30
- }, null, 40, m),
31
+ }, null, 40, f),
31
32
  n(
32
33
  "div",
33
34
  {
34
- class: a(["nmorph-switch__bg-content", { "nmorph-switch__bg-content--enable": o.initialValue }])
35
+ class: r(["nmorph-switch__bg-content", { "nmorph-switch__bg-content--enable": o.initialValue }])
35
36
  },
36
37
  [
37
38
  o.initialValue ? i(e.$slots, "bg-on", { key: 0 }) : i(e.$slots, "bg-off", { key: 1 })
@@ -39,14 +40,14 @@ function p(e, b, _, o, k, u) {
39
40
  2
40
41
  /* CLASS */
41
42
  ),
42
- n("div", f, [
43
- o.props.loading ? (r(), c(o.NmorphIcon, {
43
+ n("div", b, [
44
+ o.props.loading ? (l(), d(o.NmorphIcon, {
44
45
  key: 0,
45
46
  width: "14px",
46
47
  height: "14px"
47
48
  }, {
48
- default: d(() => [
49
- s(o.NmorphIconLoader)
49
+ default: s(() => [
50
+ h(o.NmorphIconLoader)
50
51
  ]),
51
52
  _: 1
52
53
  /* STABLE */
@@ -54,11 +55,11 @@ function p(e, b, _, o, k, u) {
54
55
  ])
55
56
  ])
56
57
  ],
57
- 2
58
- /* CLASS */
58
+ 6
59
+ /* CLASS, STYLE */
59
60
  );
60
61
  }
61
- const V = /* @__PURE__ */ h(l, [["render", p], ["__file", "/builds/ketjo/nmorph/library/src/components/form/nmorph-switch/NmorphSwitch.vue"]]);
62
+ const x = /* @__PURE__ */ m(a, [["render", p], ["__file", "/builds/ketjo/nmorph/library/src/components/form/nmorph-switch/NmorphSwitch.vue"]]);
62
63
  export {
63
- V as default
64
+ x as default
64
65
  };
@@ -1,16 +1,20 @@
1
1
  import './NmorphSwitch.css';
2
- import { defineComponent as h, ref as o, computed as y, watch as V } from "vue";
3
- import { useModifiers as _ } from "../../../utils/create-modifiers.js";
4
- import { useFormItemInput as q } from "../nmorph-form/use-form-item-input.js";
5
- import N from "../../basic/nmorph-icon/NmorphIcon.vue.js";
6
- import S from "../../../assets/icons/loader.svg.js";
7
- const H = /* @__PURE__ */ h({
2
+ import { defineComponent as q, ref as o, computed as n, watch as N } from "vue";
3
+ import { useModifiers as V } from "../../../utils/create-modifiers.js";
4
+ import { useFormItemInput as _ } from "../nmorph-form/use-form-item-input.js";
5
+ import w from "../../basic/nmorph-icon/NmorphIcon.vue.js";
6
+ import H from "../../../assets/icons/loader.svg.js";
7
+ const L = /* @__PURE__ */ q({
8
8
  __name: "NmorphSwitch",
9
9
  props: {
10
10
  modelValue: { type: [Boolean, String, Number], required: !1, default: !1 },
11
11
  loading: { type: Boolean, required: !1, default: !1 },
12
12
  activeValue: { type: [Boolean, String, Number], required: !1, default: !0 },
13
13
  inactiveValue: { type: [Boolean, String, Number], required: !1, default: !1 },
14
+ width: { type: [Number, String], required: !1, default: void 0 },
15
+ height: { type: [Number, String], required: !1, default: void 0 },
16
+ offset: { type: [Number, String], required: !1, default: void 0 },
17
+ thumbHeight: { type: [Number, String], required: !1, default: void 0 },
14
18
  id: { type: String, required: !1 },
15
19
  name: { type: String, required: !1 },
16
20
  autocomplete: { type: String, required: !1 },
@@ -18,40 +22,47 @@ const H = /* @__PURE__ */ h({
18
22
  tabindex: { type: Number, required: !1 }
19
23
  },
20
24
  emits: ["update:model-value"],
21
- setup(i, { expose: s, emit: d }) {
22
- const e = i, { id: f, name: m, tabindex: p } = q(e), l = d, t = o(!1), c = () => {
23
- t.value = !0;
25
+ setup(s, { expose: f, emit: m }) {
26
+ const e = s, { id: p, name: c, tabindex: h } = _(e), u = m, i = o(!1), g = () => {
27
+ i.value = !0;
24
28
  }, v = () => {
25
- t.value = !1;
26
- }, b = y(
27
- () => _({
29
+ i.value = !1;
30
+ }, b = n(
31
+ () => V({
28
32
  "nmorph-switch": [
29
33
  `${e.disabled && "disabled"}`,
30
- `${a.value ? "on" : "off"}`,
34
+ `${r.value ? "on" : "off"}`,
31
35
  `${e.loading && "loading"}`,
32
- `${t.value && "focus"}`
36
+ `${i.value && "focus"}`
33
37
  ]
34
38
  })
35
- ), a = o(e.modelValue === e.activeValue), g = () => {
39
+ ), r = o(e.modelValue === e.activeValue), y = () => {
36
40
  if (e.disabled) return;
37
- a.value = !a.value;
38
- const r = a.value ? e.activeValue : e.inactiveValue;
39
- l("update:model-value", r);
40
- }, u = o(null);
41
- s({ inputDOMRef: u }), V(
41
+ r.value = !r.value;
42
+ const t = r.value ? e.activeValue : e.inactiveValue;
43
+ u("update:model-value", t);
44
+ }, l = o(null);
45
+ f({ inputDOMRef: l });
46
+ const a = (t) => typeof t == "number" ? `${t}px` : t, S = n(() => ({
47
+ ...e.width !== void 0 && { "--width": a(e.width) },
48
+ ...e.height !== void 0 && { "--height": a(e.height) },
49
+ ...e.offset !== void 0 && { "--offset": a(e.offset) },
50
+ ...e.thumbHeight !== void 0 && { "--thumb-height": a(e.thumbHeight) }
51
+ }));
52
+ N(
42
53
  () => e.modelValue,
43
- (r) => {
44
- a.value = r === e.activeValue;
54
+ (t) => {
55
+ r.value = t === e.activeValue;
45
56
  }
46
57
  );
47
- const n = { props: e, id: f, name: m, tabindex: p, emit: l, focus: t, focusHandler: c, blurHandler: v, modifiers: b, initialValue: a, changeHandler: g, inputDOMRef: u, get NmorphIcon() {
48
- return N;
58
+ const d = { props: e, id: p, name: c, tabindex: h, emit: u, focus: i, focusHandler: g, blurHandler: v, modifiers: b, initialValue: r, changeHandler: y, inputDOMRef: l, getCssSize: a, styles: S, get NmorphIcon() {
59
+ return w;
49
60
  }, get NmorphIconLoader() {
50
- return S;
61
+ return H;
51
62
  } };
52
- return Object.defineProperty(n, "__isScriptSetup", { enumerable: !1, value: !0 }), n;
63
+ return Object.defineProperty(d, "__isScriptSetup", { enumerable: !1, value: !0 }), d;
53
64
  }
54
65
  });
55
66
  export {
56
- H as default
67
+ L as default
57
68
  };
@@ -0,0 +1 @@
1
+ .nmorph-time-picker{--width: 160px;position:relative;width:var(--width);height:var(--height)}.nmorph-time-picker .nmorph-time-picker__input{display:flex;align-items:center;height:100%;padding:0 var(--default-indentation-input);overflow:hidden;background:var(--nmorph-main-color);border-radius:var(--default-border-radius);box-shadow:var(--nmorph-shadow-outset);cursor:pointer}.nmorph-time-picker .nmorph-time-picker__native{position:absolute;width:0;height:0;padding:0;border:0;opacity:0;pointer-events:none}.nmorph-time-picker .nmorph-time-picker__clock-icon{flex:0 0 auto;margin-right:6px}.nmorph-time-picker .nmorph-time-picker__selected-value{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nmorph-time-picker .nmorph-time-picker__clear{display:inline-flex;flex:0 0 auto;justify-content:center;align-items:center;width:18px;height:18px;padding:0;color:var(--nmorph-text-color);background:transparent;border:0;cursor:pointer}.nmorph-time-picker .nmorph-time-picker__panel{display:grid;grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr);gap:4px;padding:8px}.nmorph-time-picker .nmorph-time-picker__panel--with-seconds{grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr) auto minmax(48px,1fr)}.nmorph-time-picker .nmorph-time-picker__column{display:grid;max-height:220px;overflow-y:auto}.nmorph-time-picker .nmorph-time-picker__separator{display:flex;justify-content:center;align-items:center;color:var(--nmorph-semi-contrast-text-color);font-weight:700}.nmorph-time-picker .nmorph-time-picker__option{min-height:28px;padding:0 8px;color:var(--nmorph-text-color);background:transparent;border:0;border-radius:4px;cursor:pointer}.nmorph-time-picker .nmorph-time-picker__option:hover,.nmorph-time-picker .nmorph-time-picker__option--active{color:var(--nmorph-focus-text-color);background:var(--nmorph-accent-color)}.nmorph-time-picker .nmorph-time-picker__option:disabled{cursor:not-allowed;opacity:.35}.nmorph-time-picker.nmorph-time-picker--open .nmorph-time-picker__input{box-shadow:var(--nmorph-shadow-inset)}.nmorph-time-picker.nmorph-time-picker--focus{outline:2px solid var(--nmorph-accent-color)}.nmorph-time-picker.nmorph-time-picker--placeholder .nmorph-time-picker__selected-value{color:var(--nmorph-placeholder-text-color)}.nmorph-time-picker.nmorph-time-picker--disabled{cursor:not-allowed;opacity:.6}.nmorph-time-picker.nmorph-time-picker--disabled .nmorph-time-picker__input{pointer-events:none}
@@ -0,0 +1,183 @@
1
+ import './NmorphTimePicker.css';
2
+ import b from "./NmorphTimePicker.vue2.js";
3
+ import { openBlock as i, createElementBlock as n, normalizeStyle as v, normalizeClass as r, createElementVNode as l, withKeys as m, withModifiers as t, createVNode as c, withCtx as p, toDisplayString as d, createCommentVNode as _, createBlock as u, Fragment as s, renderList as h } from "vue";
4
+ /* empty css */
5
+ import f from "../../../_virtual/_plugin-vue_export-helper.js";
6
+ const y = ["aria-expanded", "aria-controls", "tabindex", "onKeydown"], w = ["id", "name", "autocomplete", "step", "value", "disabled"], x = { class: "nmorph-time-picker__selected-value" }, C = ["id"], O = {
7
+ class: "nmorph-time-picker__column",
8
+ role: "listbox",
9
+ "aria-label": "Hours"
10
+ }, N = ["disabled", "onClick"], g = {
11
+ class: "nmorph-time-picker__column",
12
+ role: "listbox",
13
+ "aria-label": "Minutes"
14
+ }, H = ["disabled", "onClick"], V = {
15
+ class: "nmorph-time-picker__column",
16
+ role: "listbox",
17
+ "aria-label": "Seconds"
18
+ }, I = ["disabled", "onClick"];
19
+ function S(z, a, B, e, D, M) {
20
+ return i(), n(
21
+ "div",
22
+ {
23
+ class: r(e.modifiers),
24
+ style: v(e.styles)
25
+ },
26
+ [
27
+ l("div", {
28
+ ref: "inputDOMRef",
29
+ class: "nmorph-time-picker__input",
30
+ role: "combobox",
31
+ "aria-expanded": e.open,
32
+ "aria-controls": `${e.id}-dropdown`,
33
+ tabindex: e.props.disabled ? -1 : e.tabindex,
34
+ onClick: e.toggleOpen,
35
+ onFocus: e.focusHandler,
36
+ onBlur: e.blurHandler,
37
+ onKeydown: [
38
+ m(t(e.toggleOpen, ["prevent"]), ["space"]),
39
+ m(t(e.toggleOpen, ["prevent"]), ["enter"]),
40
+ m(t(e.closeHandler, ["prevent"]), ["escape"])
41
+ ]
42
+ }, [
43
+ l("input", {
44
+ id: e.id,
45
+ class: "nmorph-time-picker__native",
46
+ name: e.name,
47
+ autocomplete: e.autocomplete,
48
+ type: "time",
49
+ step: e.inputStep,
50
+ value: e.props.modelValue || "",
51
+ disabled: e.props.disabled,
52
+ onInput: e.nativeInputHandler
53
+ }, null, 40, w),
54
+ c(e.NmorphIcon, { class: "nmorph-time-picker__clock-icon" }, {
55
+ default: p(() => [
56
+ c(e.NmorphIconClock)
57
+ ]),
58
+ _: 1
59
+ /* STABLE */
60
+ }),
61
+ l(
62
+ "div",
63
+ x,
64
+ d(e.displayValue),
65
+ 1
66
+ /* TEXT */
67
+ ),
68
+ e.showClearButton ? (i(), n("button", {
69
+ key: 0,
70
+ class: "nmorph-time-picker__clear",
71
+ type: "button",
72
+ "aria-label": "Clear time",
73
+ onClick: t(e.clearHandler, ["stop"])
74
+ }, [
75
+ c(e.NmorphIcon, {
76
+ width: "14px",
77
+ height: "14px"
78
+ }, {
79
+ default: p(() => [
80
+ c(e.NmorphIconCircleClose)
81
+ ]),
82
+ _: 1
83
+ /* STABLE */
84
+ })
85
+ ])) : _("v-if", !0)
86
+ ], 40, y),
87
+ e.inputDOMRef && !e.props.disabled ? (i(), u(e.NmorphDropdown, {
88
+ key: 0,
89
+ open: e.open,
90
+ "relative-element": e.inputDOMRef,
91
+ width: e.props.showSeconds ? 216 : 152,
92
+ "fill-width": !1,
93
+ "z-index": e.props.zIndex,
94
+ "aria-label": e.name,
95
+ onOnOutsideClick: e.closeHandler,
96
+ onOnEscapeKeydown: e.closeHandler
97
+ }, {
98
+ default: p(() => [
99
+ l("div", {
100
+ id: `${e.id}-dropdown`,
101
+ class: r(["nmorph-time-picker__panel", { "nmorph-time-picker__panel--with-seconds": e.props.showSeconds }])
102
+ }, [
103
+ l("div", O, [
104
+ (i(!0), n(
105
+ s,
106
+ null,
107
+ h(e.hourOptions, (o) => (i(), n("button", {
108
+ key: o.value,
109
+ type: "button",
110
+ class: r(["nmorph-time-picker__option", { "nmorph-time-picker__option--active": o.value === e.pickerValue.hour }]),
111
+ disabled: o.disabled,
112
+ onClick: (k) => e.selectUnit("hour", o.value)
113
+ }, d(o.label), 11, N))),
114
+ 128
115
+ /* KEYED_FRAGMENT */
116
+ ))
117
+ ]),
118
+ a[1] || (a[1] = l(
119
+ "div",
120
+ { class: "nmorph-time-picker__separator" },
121
+ ":",
122
+ -1
123
+ /* CACHED */
124
+ )),
125
+ l("div", g, [
126
+ (i(!0), n(
127
+ s,
128
+ null,
129
+ h(e.minuteOptions, (o) => (i(), n("button", {
130
+ key: o.value,
131
+ type: "button",
132
+ class: r(["nmorph-time-picker__option", { "nmorph-time-picker__option--active": o.value === e.pickerValue.minute }]),
133
+ disabled: o.disabled,
134
+ onClick: (k) => e.selectUnit("minute", o.value)
135
+ }, d(o.label), 11, H))),
136
+ 128
137
+ /* KEYED_FRAGMENT */
138
+ ))
139
+ ]),
140
+ e.props.showSeconds ? (i(), n(
141
+ s,
142
+ { key: 0 },
143
+ [
144
+ a[0] || (a[0] = l(
145
+ "div",
146
+ { class: "nmorph-time-picker__separator" },
147
+ ":",
148
+ -1
149
+ /* CACHED */
150
+ )),
151
+ l("div", V, [
152
+ (i(!0), n(
153
+ s,
154
+ null,
155
+ h(e.secondOptions, (o) => (i(), n("button", {
156
+ key: o.value,
157
+ type: "button",
158
+ class: r(["nmorph-time-picker__option", { "nmorph-time-picker__option--active": o.value === e.pickerValue.second }]),
159
+ disabled: o.disabled,
160
+ onClick: (k) => e.selectUnit("second", o.value)
161
+ }, d(o.label), 11, I))),
162
+ 128
163
+ /* KEYED_FRAGMENT */
164
+ ))
165
+ ])
166
+ ],
167
+ 64
168
+ /* STABLE_FRAGMENT */
169
+ )) : _("v-if", !0)
170
+ ], 10, C)
171
+ ]),
172
+ _: 1
173
+ /* STABLE */
174
+ }, 8, ["open", "relative-element", "width", "z-index", "aria-label"])) : _("v-if", !0)
175
+ ],
176
+ 6
177
+ /* CLASS, STYLE */
178
+ );
179
+ }
180
+ const F = /* @__PURE__ */ f(b, [["render", S], ["__file", "/builds/ketjo/nmorph/library/src/components/form/nmorph-time-picker/NmorphTimePicker.vue"]]);
181
+ export {
182
+ F as default
183
+ };
@@ -0,0 +1,111 @@
1
+ import './NmorphTimePicker.css';
2
+ import { defineComponent as X, ref as v, computed as l, watch as Y } from "vue";
3
+ import { NmorphComponentHeight as Z } from "../../../types/index.js";
4
+ import { useI18n as ee } from "vue-i18n";
5
+ import { useModifiers as te } from "../../../utils/create-modifiers.js";
6
+ import { useFormItemInput as oe } from "../nmorph-form/use-form-item-input.js";
7
+ import re from "../../../assets/icons/clock.svg.js";
8
+ import ne from "../../../assets/icons/circle-close.svg.js";
9
+ import le from "../../basic/nmorph-icon/NmorphIcon.vue.js";
10
+ import ue from "../../navigation/nmorph-dropdown/NmorphDropdown.vue.js";
11
+ const be = /* @__PURE__ */ X({
12
+ __name: "NmorphTimePicker",
13
+ props: {
14
+ modelValue: { type: [String, null], required: !1, default: null },
15
+ placeholder: { type: String, required: !1, default: "" },
16
+ hourStep: { type: Number, required: !1, default: 1 },
17
+ minuteStep: { type: Number, required: !1, default: 5 },
18
+ secondStep: { type: Number, required: !1, default: 1 },
19
+ showSeconds: { type: Boolean, required: !1, default: !1 },
20
+ minTime: { type: String, required: !1, default: "" },
21
+ maxTime: { type: String, required: !1, default: "" },
22
+ clearable: { type: Boolean, required: !1, default: !0 },
23
+ zIndex: { type: Number, required: !1, default: void 0 },
24
+ width: { type: [Number, String], required: !1, default: void 0 },
25
+ id: { type: String, required: !1 },
26
+ name: { type: String, required: !1 },
27
+ autocomplete: { type: String, required: !1 },
28
+ height: { type: null, required: !1, default: "basic" },
29
+ disabled: { type: Boolean, required: !1, default: !1 },
30
+ tabindex: { type: Number, required: !1 }
31
+ },
32
+ emits: ["update:model-value", "focus", "blur"],
33
+ setup(_, { expose: $, emit: O }) {
34
+ const t = _, s = O, { t: T } = ee(), { id: k, name: H, autocomplete: B, tabindex: P } = oe(t), a = v(!1), c = v(!1), w = v(null), m = (e) => String(e).padStart(2, "0"), p = (e) => Math.max(1, Math.floor(Number.isFinite(e) ? e : 1)), i = (e) => {
35
+ if (!e) return null;
36
+ const o = e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);
37
+ if (!o) return null;
38
+ const r = Number(o[1]), S = Number(o[2]), d = Number(o[3] || 0);
39
+ return r > 23 || S > 59 || d > 59 ? null : { hour: r, minute: S, second: d };
40
+ }, g = (e) => {
41
+ const o = `${m(e.hour)}:${m(e.minute)}`;
42
+ return t.showSeconds ? `${o}:${m(e.second)}` : o;
43
+ }, f = (e) => e.hour * 3600 + e.minute * 60 + e.second, y = l(() => i(t.minTime)), N = l(() => i(t.maxTime)), x = l(() => i(t.modelValue)), u = v(x.value || { hour: 0, minute: 0, second: 0 }), V = l(() => t.placeholder || T("pickATime"));
44
+ Y(
45
+ () => t.modelValue,
46
+ (e) => {
47
+ const o = i(e);
48
+ o && (u.value = o);
49
+ }
50
+ );
51
+ const h = (e) => {
52
+ const o = f(e);
53
+ return !!(y.value && o < f(y.value) || N.value && o > f(N.value));
54
+ }, b = (e, o, r) => {
55
+ const S = p(r), d = /* @__PURE__ */ new Set();
56
+ for (let n = 0; n <= o; n += S) d.add(n);
57
+ return d.add(u.value[e]), Array.from(d).filter((n) => n >= 0 && n <= o).sort((n, q) => n - q).map((n) => {
58
+ const q = { ...u.value, [e]: n };
59
+ return {
60
+ label: m(n),
61
+ value: n,
62
+ disabled: h(q)
63
+ };
64
+ });
65
+ }, z = l(() => b("hour", 23, t.hourStep)), M = l(() => b("minute", 59, t.minuteStep)), D = l(() => b("second", 59, t.secondStep)), A = (e, o) => {
66
+ const r = { ...u.value, [e]: o };
67
+ h(r) || (u.value = r, s("update:model-value", g(r)));
68
+ }, F = () => {
69
+ s("update:model-value", null), a.value = !1;
70
+ }, R = () => {
71
+ a.value = !1;
72
+ }, U = () => {
73
+ t.disabled || (a.value = !a.value);
74
+ }, j = () => {
75
+ c.value = !0, s("focus");
76
+ }, E = () => {
77
+ c.value = !1, s("blur");
78
+ }, G = (e) => {
79
+ const o = e.target, r = i(o.value);
80
+ !r || h(r) || (u.value = r, s("update:model-value", g(r)));
81
+ }, J = l(() => t.modelValue || V.value), K = l(
82
+ () => t.showSeconds ? p(t.secondStep) : p(t.minuteStep) * 60
83
+ ), L = l(() => t.clearable && !!t.modelValue && !t.disabled), Q = l(
84
+ () => te({
85
+ nmorph: [Z[t.height]],
86
+ "nmorph-time-picker": [
87
+ `${t.disabled && "disabled"}`,
88
+ `${a.value && "open"}`,
89
+ `${c.value && "focus"}`,
90
+ `${!t.modelValue && "placeholder"}`
91
+ ]
92
+ })
93
+ ), I = (e) => typeof e == "number" ? `${e}px` : e, W = l(() => ({
94
+ ...t.width !== void 0 && { "--width": I(t.width) }
95
+ }));
96
+ $({ inputDOMRef: w });
97
+ const C = { props: t, emit: s, t: T, id: k, name: H, autocomplete: B, tabindex: P, open: a, focused: c, inputDOMRef: w, pad: m, normalizeStep: p, parseTime: i, formatTime: g, timeToSeconds: f, minTimeParts: y, maxTimeParts: N, modelTimeParts: x, pickerValue: u, placeholderText: V, isOutsideRange: h, getUnitOptions: b, hourOptions: z, minuteOptions: M, secondOptions: D, selectUnit: A, clearHandler: F, closeHandler: R, toggleOpen: U, focusHandler: j, blurHandler: E, nativeInputHandler: G, displayValue: J, inputStep: K, showClearButton: L, modifiers: Q, getCssSize: I, styles: W, get NmorphDropdown() {
98
+ return ue;
99
+ }, get NmorphIcon() {
100
+ return le;
101
+ }, get NmorphIconCircleClose() {
102
+ return ne;
103
+ }, get NmorphIconClock() {
104
+ return re;
105
+ } };
106
+ return Object.defineProperty(C, "__isScriptSetup", { enumerable: !1, value: !0 }), C;
107
+ }
108
+ });
109
+ export {
110
+ be as default
111
+ };
@@ -1 +1 @@
1
- .nmorph-context-menu{display:inline-block;max-width:100%}.nmorph-context-menu__dropdown{text-align:left}.nmorph-context-menu__options{display:grid;gap:4px;padding:4px}.nmorph-context-menu__item{display:flex;gap:var(--indentation-02);justify-content:flex-start;align-items:center;box-sizing:border-box;width:100%;min-width:120px;padding:var(--indentation-02) var(--indentation-04);color:var(--nmorph-context-menu-item-color, var(--nmorph-text-color));font:inherit;line-height:var(--line-height-regular);text-align:left;background:transparent;border:0;border-radius:var(--default-border-radius);cursor:pointer}.nmorph-context-menu__item-label{color:var(--nmorph-context-menu-item-color, var(--nmorph-text-color));text-align:left}.nmorph-context-menu__item:not(:disabled):not(.nmorph-context-menu__item--disabled):hover{background:color-mix(in srgb,var(--nmorph-context-menu-item-color, var(--nmorph-text-color)) 12%,transparent)}.nmorph-context-menu__item:disabled,.nmorph-context-menu__item--disabled{cursor:default;opacity:.56;pointer-events:none}.nmorph-context-menu__dropdown .nmorph-button--transparent .nmorph-button__content{justify-content:flex-start;text-align:left}.nmorph-context-menu__dropdown .nmorph-button--transparent .nmorph-button__content span{text-align:left}.nmorph-context-menu__dropdown .nmorph-button--transparent .nmorph-button__content:not(:disabled,[loading=true]):hover{background:color-mix(in srgb,var(--nmorph-button-hover-color, var(--nmorph-button-color, var(--transparent-button-color, var(--nmorph-text-color)))) 12%,transparent)}
1
+ .nmorph-context-menu{display:inline-block;max-width:100%}.nmorph-context-menu__dropdown{text-align:left}.nmorph-context-menu__options{display:grid;gap:4px;padding:4px}.nmorph-context-menu__item{display:flex;gap:var(--indentation-02);justify-content:flex-start;align-items:center;box-sizing:border-box;width:100%;min-width:120px;padding:var(--indentation-02) var(--indentation-04);color:var(--nmorph-context-menu-item-color, var(--nmorph-text-color));font:inherit;line-height:var(--line-height-regular);text-align:left;background:transparent;border:0;border-radius:var(--default-border-radius);cursor:pointer}.nmorph-context-menu__item-label{color:var(--nmorph-context-menu-item-color, var(--nmorph-text-color));text-align:left}.nmorph-context-menu__item:not(:disabled,.nmorph-context-menu__item--disabled):hover{background:color-mix(in srgb,var(--nmorph-context-menu-item-color, var(--nmorph-text-color)) 12%,transparent)}.nmorph-context-menu__item:disabled,.nmorph-context-menu__item--disabled{cursor:default;opacity:.56;pointer-events:none}.nmorph-context-menu__dropdown .nmorph-button--transparent .nmorph-button__content{justify-content:flex-start;text-align:left}.nmorph-context-menu__dropdown .nmorph-button--transparent .nmorph-button__content span{text-align:left}.nmorph-context-menu__dropdown .nmorph-button--transparent .nmorph-button__content:not(:disabled,[loading=true]):hover{background:color-mix(in srgb,var(--nmorph-button-hover-color, var(--nmorph-button-color, var(--transparent-button-color, var(--nmorph-text-color)))) 12%,transparent)}
@@ -1,6 +1,6 @@
1
1
  import './NmorphNotificationProvider.css';
2
- import c from "./NmorphNotificationProvider.vue2.js";
3
- import { openBlock as i, createElementBlock as n, normalizeStyle as a, Fragment as t, renderList as l, createBlock as s, TransitionGroup as d, normalizeClass as m, withCtx as p, mergeProps as f } from "vue";
2
+ import s from "./NmorphNotificationProvider.vue2.js";
3
+ import { openBlock as i, createElementBlock as n, normalizeStyle as c, Fragment as t, renderList as l, createBlock as a, TransitionGroup as p, normalizeClass as d, withCtx as m, mergeProps as f } from "vue";
4
4
  /* empty css */
5
5
  import _ from "../../../_virtual/_plugin-vue_export-helper.js";
6
6
  function h(v, u, y, o, k, x) {
@@ -8,23 +8,24 @@ function h(v, u, y, o, k, x) {
8
8
  "div",
9
9
  {
10
10
  class: "nmorph-notification-provider",
11
- style: a({ zIndex: o.zIndex })
11
+ style: c({ zIndex: o.zIndex })
12
12
  },
13
13
  [
14
14
  (i(!0), n(
15
15
  t,
16
16
  null,
17
- l(o.notificationGroups, (e) => (i(), s(d, {
17
+ l(o.notificationGroups, (e) => (i(), a(p, {
18
18
  key: e.placement,
19
+ appear: "",
19
20
  name: "nmorph-notification",
20
21
  tag: "div",
21
- class: m(`nmorph-notification-provider__list nmorph-notification-provider__list--${e.placement}`)
22
+ class: d(`nmorph-notification-provider__list nmorph-notification-provider__list--${e.placement}`)
22
23
  }, {
23
- default: p(() => [
24
+ default: m(() => [
24
25
  (i(!0), n(
25
26
  t,
26
27
  null,
27
- l(e.notifications, (r) => (i(), s(o.NmorphAlert, f({
28
+ l(e.notifications, (r) => (i(), a(o.NmorphAlert, f({
28
29
  key: r.id,
29
30
  style: { width: r.width },
30
31
  class: [
@@ -49,7 +50,7 @@ function h(v, u, y, o, k, x) {
49
50
  /* STYLE */
50
51
  );
51
52
  }
52
- const w = /* @__PURE__ */ _(c, [["render", h], ["__file", "/builds/ketjo/nmorph/library/src/components/providers/nmorph-notification-provider/NmorphNotificationProvider.vue"]]);
53
+ const w = /* @__PURE__ */ _(s, [["render", h], ["__file", "/builds/ketjo/nmorph/library/src/components/providers/nmorph-notification-provider/NmorphNotificationProvider.vue"]]);
53
54
  export {
54
55
  w as default
55
56
  };
@@ -1,8 +1,8 @@
1
1
  import './NmorphNotificationProvider.css';
2
- import { defineComponent as g, ref as u, computed as v, watch as x } from "vue";
2
+ import { defineComponent as x, ref as u, computed as v, watch as g } from "vue";
3
3
  import { NmorphNotificationPlacement as q } from "./types.js";
4
4
  import A from "../../feedback/nmorph-alert/NmorphAlert.vue.js";
5
- const h = 500, z = /* @__PURE__ */ g({
5
+ const N = 500, z = /* @__PURE__ */ x({
6
6
  __name: "NmorphNotificationProvider",
7
7
  props: {
8
8
  notifications: { type: Array, required: !0 },
@@ -10,41 +10,41 @@ const h = 500, z = /* @__PURE__ */ g({
10
10
  zIndex: { type: Number, required: !1, default: 1e3 },
11
11
  quantity: { type: Number, required: !1, default: 100 }
12
12
  },
13
- setup(N, { expose: _ }) {
13
+ setup(h, { expose: _ }) {
14
14
  _();
15
- const c = (e) => typeof e.id == "string" && e.id.length > 0, a = u([]), o = u([]), r = u([]), d = Object.values(q), f = (e) => {
16
- r.value = r.value.filter((i) => i.id !== e), o.value = o.value.filter((i) => i !== e);
15
+ const c = (e) => typeof e.id == "string" && e.id.length > 0, a = u([]), n = u([]), r = u([]), d = Object.values(q), f = (e) => {
16
+ r.value = r.value.filter((i) => i.id !== e), n.value = n.value.filter((i) => i !== e);
17
17
  }, p = (e, i = !0) => {
18
- o.value.includes(e) || (i && !a.value.includes(e) && (a.value = [...a.value, e]), o.value = [...o.value, e], setTimeout(() => f(e), h));
19
- }, s = N, y = v(
18
+ n.value.includes(e) || (i && !a.value.includes(e) && (a.value = [...a.value, e]), n.value = [...n.value, e], setTimeout(() => f(e), N));
19
+ }, s = h, y = v(
20
20
  () => d.map((e) => {
21
21
  const i = r.value.filter(
22
- (n) => (n.placement ?? s.placement) === e
22
+ (o) => (o.placement ?? s.placement) === e
23
23
  ), t = Math.max(i.length - s.quantity, 0);
24
24
  return {
25
25
  placement: e,
26
26
  notifications: i.slice(t)
27
27
  };
28
- }).filter((e) => e.notifications.length > 0)
28
+ })
29
29
  );
30
- x(
30
+ g(
31
31
  () => s.notifications,
32
32
  (e) => {
33
33
  const i = e.filter(c).filter((t) => !a.value.includes(t.id));
34
34
  r.value = r.value.map((t) => {
35
- const n = i.find((l) => l.id === t.id);
36
- return n ? { ...t, ...n } : t;
35
+ const o = i.find((l) => l.id === t.id);
36
+ return o ? { ...t, ...o } : t;
37
37
  }), i.forEach((t) => {
38
38
  r.value.some(
39
39
  (l) => l.id === t.id
40
40
  ) || r.value.push(t);
41
41
  }), r.value.filter(
42
- (t) => !i.some((n) => n.id === t.id)
42
+ (t) => !i.some((o) => o.id === t.id)
43
43
  ).forEach((t) => p(t.id, !1));
44
44
  },
45
45
  { deep: !0, immediate: !0 }
46
46
  );
47
- const I = v(() => s.zIndex), m = { ANIMATION_DURATION: h, hasNotificationId: c, removedIds: a, closingIds: o, renderedNotifications: r, placementList: d, removeRenderedNotification: f, closeHandler: p, props: s, notificationGroups: y, zIndex: I, get NmorphAlert() {
47
+ const I = v(() => s.zIndex), m = { ANIMATION_DURATION: N, hasNotificationId: c, removedIds: a, closingIds: n, renderedNotifications: r, placementList: d, removeRenderedNotification: f, closeHandler: p, props: s, notificationGroups: y, zIndex: I, get NmorphAlert() {
48
48
  return A;
49
49
  } };
50
50
  return Object.defineProperty(m, "__isScriptSetup", { enumerable: !1, value: !0 }), m;