@nmorph/nmorph-ui-kit 2.2.12 → 2.2.13

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 (53) hide show
  1. package/README.md +11 -7
  2. package/dist/components/basic/nmorph-icon/NmorphIcon.css +1 -1
  3. package/dist/components/basic/nmorph-icon/NmorphIcon.vue2.js +11 -11
  4. package/dist/components/data/nmorph-pagination/NmorphPagination.css +1 -1
  5. package/dist/components/data/nmorph-pagination/NmorphPagination.vue.js +13 -12
  6. package/dist/components/data/nmorph-pagination/NmorphPagination.vue2.js +46 -40
  7. package/dist/components/data/nmorph-table/NmorphTable.css +1 -1
  8. package/dist/components/data/nmorph-table/NmorphTable.vue.js +228 -103
  9. package/dist/components/data/nmorph-table/NmorphTable.vue2.js +49 -30
  10. package/dist/components/form/nmorph-autocomplete/NmorphAutocomplete.css +1 -1
  11. package/dist/components/form/nmorph-autocomplete/NmorphAutocomplete.vue.js +91 -35
  12. package/dist/components/form/nmorph-autocomplete/NmorphAutocomplete.vue2.js +48 -35
  13. package/dist/components/form/nmorph-checkbox/NmorphCheckbox.css +1 -1
  14. package/dist/components/form/nmorph-color-picker/NmorphColorPicker.vue2.js +11 -10
  15. package/dist/components/form/nmorph-radio/NmorphRadio.css +1 -1
  16. package/dist/components/form/nmorph-select/NmorphSelect.css +1 -1
  17. package/dist/components/form/nmorph-select/NmorphSelect.vue.js +115 -58
  18. package/dist/components/form/nmorph-select/NmorphSelect.vue2.js +104 -75
  19. package/dist/components/form/nmorph-select/components/nmorph-select-option/NmorphSelectOption.vue2.js +12 -10
  20. package/dist/components/navigation/nmorph-dropdown/NmorphDropdown.vue.js +29 -42
  21. package/dist/components/navigation/nmorph-dropdown/NmorphDropdown.vue2.js +39 -20
  22. package/dist/components/others/nmorph-overlay/NmorphOverlay.vue.js +29 -24
  23. package/dist/components/others/nmorph-overlay/NmorphOverlay.vue2.js +17 -15
  24. package/dist/hooks/use-common-styles.js +16 -12
  25. package/dist/hooks/use-placement.js +76 -44
  26. package/dist/hooks/use-virtual-list.js +46 -0
  27. package/dist/index.es.js +22 -19
  28. package/dist/index.umd.js +38 -29
  29. package/dist/nuxt.mjs +21 -37
  30. package/dist/outside-hooks/use-nmorph-browser.js +9 -9
  31. package/dist/outside-hooks/use-nmorph-theme.js +133 -87
  32. package/dist/package.json.js +1 -1
  33. package/dist/plugin.js +31 -27
  34. package/dist/src/components/data/nmorph-table/NmorphTable.vue.d.ts +9 -0
  35. package/dist/src/components/data/nmorph-table/types.d.ts +2 -2
  36. package/dist/src/components/feedback/nmorph-tooltip/NmorphTooltip.vue.d.ts +1 -1
  37. package/dist/src/components/form/nmorph-autocomplete/NmorphAutocomplete.vue.d.ts +11 -0
  38. package/dist/src/components/form/nmorph-select/NmorphSelect.vue.d.ts +8 -0
  39. package/dist/src/components/form/nmorph-select/components/nmorph-select-option/NmorphSelectOption.vue.d.ts +1 -0
  40. package/dist/src/components/form/nmorph-select/types.d.ts +1 -0
  41. package/dist/src/components/navigation/nmorph-dropdown/NmorphDropdown.vue.d.ts +3 -1
  42. package/dist/src/components/others/nmorph-overlay/NmorphOverlay.vue.d.ts +4 -0
  43. package/dist/src/components/providers/nmorph-notification-provider/NmorphNotificationProvider.vue.d.ts +1 -1
  44. package/dist/src/hooks/index.d.ts +1 -0
  45. package/dist/src/hooks/use-common-styles.d.ts +1 -0
  46. package/dist/src/hooks/use-placement.d.ts +8 -4
  47. package/dist/src/hooks/use-virtual-list.d.ts +21 -0
  48. package/dist/src/outside-hooks/use-nmorph-notification.d.ts +2 -2
  49. package/dist/src/outside-hooks/use-nmorph-theme.d.ts +1 -0
  50. package/dist/src/plugin.d.ts +2 -0
  51. package/dist/src/types/index.d.ts +3 -1
  52. package/dist/style.css +1 -1
  53. package/package.json +1 -1
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # Neumorphic UI Library for Vue 3
1
+ # Neumorphic UI Library for Vue 3 and Nuxt
2
2
 
3
3
  ## Overview
4
4
 
5
- This is a UI component library for Vue 3, designed using the neumorphism/skeuomorphism style. It offers a set of simple
6
- components for creating unique user interfaces with a modern, 3D-like appearance.
5
+ This is a UI component library for Vue 3 and Nuxt, designed using the neumorphism/skeuomorphism style. It offers a set
6
+ of simple components for creating unique user interfaces with a modern, 3D-like appearance.
7
7
 
8
8
  ### What is Neumorphism/Skeuomorphism?
9
9
 
@@ -19,8 +19,7 @@ its stability, fixing bugs, and ensuring high-quality components.
19
19
  If you encounter any issues, please don't hesitate to report them. Your feedback is highly appreciated and will help
20
20
  enhance the library.
21
21
 
22
- **Documentation:** For detailed instructions and examples, visit the
23
- [official documentation site](https://nmorph.dev).
22
+ **Documentation:** For detailed instructions and examples, visit the [official documentation site](https://nmorph.dev).
24
23
 
25
24
  ---
26
25
 
@@ -29,14 +28,17 @@ enhance the library.
29
28
  - **Neumorphic Design:** 3D-like components with soft shadows and smooth gradients.
30
29
  - **Customizable Themes:** Easily modify the base color, text color, and accent color to match your application's
31
30
  design.
32
- - **Lightweight and Intuitive:** Simple integration with Vue 3 using modern tools like Vite and Composition API.
31
+ - **Vue and Nuxt Support:** Use the library in Vue 3 apps or through the Nuxt module.
32
+ - **Nuxt SSR Support:** The Nuxt module installs a universal plugin so component markup can render during SSR while
33
+ browser-only theme and measurement effects run on the client.
34
+ - **Lightweight and Intuitive:** Simple integration with modern tools like Vite, Nuxt, and Composition API.
33
35
 
34
36
  ---
35
37
 
36
38
  ## Requirements
37
39
 
38
40
  - **Node.js:** Version 18.13.0 or higher is required to use this library.
39
- - **Vue 3:** Ensure your project is set up with Vue 3 and Vite for best compatibility.
41
+ - **Vue 3 or Nuxt:** Ensure your project is set up with Vue 3 or Nuxt 3 for best compatibility.
40
42
 
41
43
  ---
42
44
 
@@ -45,6 +47,8 @@ enhance the library.
45
47
  - Neumorphism
46
48
  - Skeuomorphism
47
49
  - Vue 3
50
+ - Nuxt
51
+ - Nuxt Module
48
52
  - UI Components
49
53
  - Neumorphic Design
50
54
  - Customizable Themes
@@ -1 +1 @@
1
- .nmorph-icon{width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);display:flex;align-items:center;--color: var(--nmorph-icon-color)}.nmorph-icon .nmorph-icon__content{display:flex;align-items:center;justify-content:center;width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height)}.nmorph-icon svg{width:100%;height:100%;fill:var(--color);stroke-width:0}.nmorph-icon path{stroke:var(--color)}.nmorph-icon.nmorph-icon--small{--width: 14px;--height: 14px}.nmorph-icon.nmorph-icon--medium{--width: 20px;--height: 20px}.nmorph-icon.nmorph-icon--large{--width: 32px;--height: 32px}
1
+ .nmorph-icon{width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);display:flex;align-items:center;--color: var(--nmorph-icon-color, var(--nmorph-text-color))}.nmorph-icon .nmorph-icon__content{display:flex;align-items:center;justify-content:center;width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height)}.nmorph-icon svg{width:100%;height:100%;fill:var(--color);stroke-width:0}.nmorph-icon path{stroke:var(--color)}.nmorph-icon.nmorph-icon--small{--width: 14px;--height: 14px}.nmorph-icon.nmorph-icon--medium{--width: 20px;--height: 20px}.nmorph-icon.nmorph-icon--large{--width: 32px;--height: 32px}
@@ -1,31 +1,31 @@
1
1
  import './NmorphIcon.css';
2
- import { defineComponent as d, computed as o } from "vue";
3
- import { useModifiers as u } from "../../../utils/create-modifiers.js";
4
- const c = /* @__PURE__ */ d({
2
+ import { defineComponent as h, computed as i } from "vue";
3
+ import { useModifiers as l } from "../../../utils/create-modifiers.js";
4
+ const p = /* @__PURE__ */ h({
5
5
  __name: "NmorphIcon",
6
6
  props: {
7
7
  size: { type: null, required: !1, default: "small" },
8
8
  width: { type: String, required: !1, default: void 0 },
9
9
  height: { type: String, required: !1, default: void 0 },
10
- color: { type: String, required: !1, default: "var(--nmorph-text-color)" }
10
+ color: { type: String, required: !1, default: void 0 }
11
11
  },
12
12
  setup(r, { expose: s }) {
13
13
  s();
14
- const e = r, n = o(
15
- () => u({
14
+ const e = r, d = i(
15
+ () => l({
16
16
  "nmorph-icon": [
17
17
  `${!e.width && !e.height && e.size}`,
18
18
  `${e.width && "custom-width"}`,
19
19
  `${e.height && "custom-height"}`
20
20
  ]
21
21
  })
22
- ), h = o(() => {
22
+ ), n = i(() => {
23
23
  const t = {};
24
- return e.width && (t["--width"] = e.width), e.height && (t["--height"] = e.height), t["--nmorph-icon-color"] = e.color, t;
25
- }), i = { props: e, modifiers: n, customStyles: h };
26
- return Object.defineProperty(i, "__isScriptSetup", { enumerable: !1, value: !0 }), i;
24
+ return e.width && (t["--width"] = e.width), e.height && (t["--height"] = e.height), e.color && (t["--nmorph-icon-color"] = e.color, t["--color"] = e.color), t;
25
+ }), o = { props: e, modifiers: d, customStyles: n };
26
+ return Object.defineProperty(o, "__isScriptSetup", { enumerable: !1, value: !0 }), o;
27
27
  }
28
28
  });
29
29
  export {
30
- c as default
30
+ p as default
31
31
  };
@@ -1 +1 @@
1
- .nmorph-pagination{display:flex;justify-content:center;margin-top:var(--indentation-04)}.nmorph-pagination .nmorph-radio-group__content{display:flex;justify-content:center;gap:8px}.nmorph-pagination .nmorph-radio-group{display:inline-flex;align-items:center}.nmorph-pagination .nmorph-radio-group .nmorph-radio:not(:last-child){margin-bottom:0;margin-right:0}.nmorph-pagination .nmorph-pagination__page-group{margin:0 var(--indentation-01)}.nmorph-pagination .nmorph-pagination__prev-icon{rotate:90deg}.nmorph-pagination .nmorph-pagination__next-icon{rotate:-90deg}.nmorph-pagination .nmorph-pagination__prev-btn{margin-right:8px}.nmorph-pagination .nmorph-pagination__next-btn{margin-left:8px}.nmorph-pagination .nmorph-pagination__page-btn{width:40px;height:var(--height)}.nmorph-pagination .nmorph-pagination__page-btn-wrapper{display:flex}.nmorph-pagination .nmorph-pagination__prev-secondary-btn{margin-right:8px}.nmorph-pagination .nmorph-pagination__next-secondary-btn{margin-left:8px}
1
+ .nmorph-pagination{display:flex;justify-content:center;margin-top:var(--indentation-04)}.nmorph-pagination .nmorph-radio-group__content{display:flex;justify-content:center;gap:8px}.nmorph-pagination .nmorph-radio-group{display:inline-flex;align-items:center}.nmorph-pagination .nmorph-radio-group .nmorph-radio:not(:last-child){margin-bottom:0;margin-right:0}.nmorph-pagination .nmorph-pagination__page-group{margin:0 var(--indentation-01)}.nmorph-pagination .nmorph-pagination__prev-icon{rotate:90deg}.nmorph-pagination .nmorph-pagination__next-icon{rotate:-90deg}.nmorph-pagination .nmorph-pagination__prev-btn{margin-right:8px}.nmorph-pagination .nmorph-pagination__next-btn{margin-left:8px}.nmorph-pagination .nmorph-pagination__page-btn{--height: var(--nmorph-pagination-height);--size: var(--nmorph-pagination-height);width:40px;min-width:40px;height:var(--height);min-height:var(--height)}.nmorph-pagination .nmorph-pagination__page-btn.nmorph-radio .nmorph-radio__content,.nmorph-pagination .nmorph-pagination__page-btn.nmorph-radio .nmorph-radio__fake{width:100%;height:100%}.nmorph-pagination .nmorph-pagination__page-btn.nmorph-radio.nmorph-radio--button .nmorph-radio__fake{padding:0}.nmorph-pagination .nmorph-pagination__page-btn-wrapper{display:flex}.nmorph-pagination .nmorph-pagination__prev-secondary-btn{margin-right:8px}.nmorph-pagination .nmorph-pagination__next-secondary-btn{margin-left:8px}
@@ -1,14 +1,15 @@
1
1
  import './NmorphPagination.css';
2
2
  import h from "./NmorphPagination.vue2.js";
3
- import { openBlock as a, createElementBlock as r, normalizeClass as l, createVNode as e, withCtx as i, Fragment as d, renderList as p, createBlock as t, mergeProps as c, createCommentVNode as m } from "vue";
3
+ import { openBlock as a, createElementBlock as r, normalizeStyle as d, normalizeClass as l, createVNode as e, withCtx as i, Fragment as p, renderList as m, createBlock as t, mergeProps as c, createCommentVNode as _ } from "vue";
4
4
  /* empty css */
5
- import _ from "../../../_virtual/_plugin-vue_export-helper.js";
6
- function s(g, b, v, o, f, k) {
5
+ import s from "../../../_virtual/_plugin-vue_export-helper.js";
6
+ function g(b, v, f, o, k, N) {
7
7
  return o.show ? (a(), r(
8
8
  "div",
9
9
  {
10
10
  key: 0,
11
- class: l(o.modifiers)
11
+ class: l(o.modifiers),
12
+ style: d(o.paginationStyle)
12
13
  },
13
14
  [
14
15
  e(o.NmorphButton, {
@@ -38,9 +39,9 @@ function s(g, b, v, o, f, k) {
38
39
  }, {
39
40
  default: i(() => [
40
41
  (a(!0), r(
41
- d,
42
+ p,
42
43
  null,
43
- p(o.visiblePages, (n) => (a(), r("div", {
44
+ m(o.visiblePages, (n) => (a(), r("div", {
44
45
  key: n.value,
45
46
  class: "nmorph-pagination__page-btn-wrapper"
46
47
  }, [
@@ -50,7 +51,7 @@ function s(g, b, v, o, f, k) {
50
51
  text: n.label,
51
52
  height: o.props.height,
52
53
  disabled: o.props.disabled,
53
- onClick: (N) => o.bigStepUpdate(n.value)
54
+ onClick: (x) => o.bigStepUpdate(n.value)
54
55
  }, null, 8, ["class", "text", "height", "disabled", "onClick"])) : (a(), t(o.NmorphRadio, c({
55
56
  key: 1,
56
57
  ref_for: !0
@@ -86,11 +87,11 @@ function s(g, b, v, o, f, k) {
86
87
  /* STABLE */
87
88
  }, 8, ["height", "disabled"])
88
89
  ],
89
- 2
90
- /* CLASS */
91
- )) : m("v-if", !0);
90
+ 6
91
+ /* CLASS, STYLE */
92
+ )) : _("v-if", !0);
92
93
  }
93
- const P = /* @__PURE__ */ _(h, [["render", s], ["__file", "/builds/ketjo/nmorph/library/src/components/data/nmorph-pagination/NmorphPagination.vue"]]);
94
+ const u = /* @__PURE__ */ s(h, [["render", g], ["__file", "/builds/ketjo/nmorph/library/src/components/data/nmorph-pagination/NmorphPagination.vue"]]);
94
95
  export {
95
- P as default
96
+ u as default
96
97
  };
@@ -1,12 +1,12 @@
1
1
  import './NmorphPagination.css';
2
- import { defineComponent as P, computed as o, ref as _, watch as q } from "vue";
3
- import { useModifiers as x } from "../../../utils/create-modifiers.js";
4
- import w from "../../form/nmorph-radio/NmorphRadio.vue.js";
5
- import B from "../../basic/nmorph-icon/NmorphIcon.vue.js";
6
- import O from "../../basic/nmorph-button/NmorphButton.vue.js";
7
- import Q from "../../form/nmorph-radio-group/NmorphRadioGroup.vue.js";
8
- import R from "../../../assets/icons/chevron-down.svg.js";
9
- const M = /* @__PURE__ */ P({
2
+ import { defineComponent as q, computed as o, ref as x, watch as k } from "vue";
3
+ import { useModifiers as w } from "../../../utils/create-modifiers.js";
4
+ import B from "../../form/nmorph-radio/NmorphRadio.vue.js";
5
+ import O from "../../basic/nmorph-icon/NmorphIcon.vue.js";
6
+ import Q from "../../basic/nmorph-button/NmorphButton.vue.js";
7
+ import R from "../../form/nmorph-radio-group/NmorphRadioGroup.vue.js";
8
+ import V from "../../../assets/icons/chevron-down.svg.js";
9
+ const j = /* @__PURE__ */ q({
10
10
  __name: "NmorphPagination",
11
11
  props: {
12
12
  totalElementsQuantity: { type: Number, required: !0 },
@@ -19,55 +19,61 @@ const M = /* @__PURE__ */ P({
19
19
  height: { type: null, required: !1, default: "basic" }
20
20
  },
21
21
  emits: ["update:model-value"],
22
- setup(p, { expose: d, emit: c }) {
22
+ setup(c, { expose: d, emit: f }) {
23
23
  d();
24
- const a = p, s = c, f = o(
25
- () => x({
26
- "nmorph-pagination": [`${a.disabled && "disabled"}`]
24
+ const r = c, i = f, v = o(
25
+ () => w({
26
+ "nmorph-pagination": [`${r.disabled && "disabled"}`]
27
27
  })
28
- ), v = () => {
29
- r.value = String(Number(r.value) - 1);
30
- }, g = () => {
31
- r.value = String(Number(r.value) + 1);
32
- }, r = _(String(a.modelValue)), t = o(() => {
33
- const e = a.totalElementsQuantity / a.elementsQuantityOnPage + 1, u = e % 1 === 0 ? -1 : 0;
34
- return Array.from({ length: e + u }, (n, m) => ({ value: String(m + 1), label: String(m + 1) }));
35
- }), b = o(() => a.hideOnSinglePage || a.totalElementsQuantity / a.elementsQuantityOnPage > 1);
36
- q(r, (e) => {
37
- s("update:model-value", Number(e));
28
+ ), s = {
29
+ thick: "var(--thick-component)",
30
+ basic: "var(--default-thickness-component)",
31
+ thin: "var(--thin-component)"
32
+ }, g = o(() => ({
33
+ "--nmorph-pagination-height": s[r.height]
34
+ })), h = () => {
35
+ a.value = String(Number(a.value) - 1);
36
+ }, b = () => {
37
+ a.value = String(Number(a.value) + 1);
38
+ }, a = x(String(r.modelValue)), t = o(() => {
39
+ const e = r.totalElementsQuantity / r.elementsQuantityOnPage + 1, n = e % 1 === 0 ? -1 : 0;
40
+ return Array.from({ length: e + n }, (u, p) => ({ value: String(p + 1), label: String(p + 1) }));
41
+ }), N = o(() => r.hideOnSinglePage || r.totalElementsQuantity / r.elementsQuantityOnPage > 1);
42
+ k(a, (e) => {
43
+ i("update:model-value", Number(e));
38
44
  });
39
- const h = (e) => {
40
- r.value = e;
41
- }, N = o(() => Number(r.value) === 1), y = o(() => t.value.length === Number(r.value)), S = o(() => {
42
- const e = t.value.length, u = Number(r.value), l = a.maxVisiblePages;
45
+ const y = (e) => {
46
+ a.value = e;
47
+ }, S = o(() => Number(a.value) === 1), P = o(() => t.value.length === Number(a.value)), _ = o(() => {
48
+ const e = t.value.length, n = Number(a.value), l = r.maxVisiblePages;
43
49
  if (e <= l)
44
50
  return t.value;
45
- const n = Math.floor(l / 2);
46
- return u <= n ? [...t.value.slice(0, l - 2), { value: "next", label: "..." }, t.value[e - 1]] : u >= e - n ? [t.value[0], { value: "prev", label: "..." }, ...t.value.slice(e - (l - 2))] : [
51
+ const u = Math.floor(l / 2);
52
+ return n <= u ? [...t.value.slice(0, l - 2), { value: "next", label: "..." }, t.value[e - 1]] : n >= e - u ? [t.value[0], { value: "prev", label: "..." }, ...t.value.slice(e - (l - 2))] : [
47
53
  t.value[0],
48
54
  { value: "prev", label: "..." },
49
- ...t.value.slice(u - n, u + n - 1),
55
+ ...t.value.slice(n - u, n + u - 1),
50
56
  { value: "next", label: "..." },
51
57
  t.value[e - 1]
52
58
  ];
53
- }), i = { props: a, emit: s, modifiers: f, prevClick: v, nextClick: g, selectedPage: r, pages: t, show: b, updateSelectedValue: h, blockPrevButton: N, blockNextButton: y, visiblePages: S, bigStepUpdate: (e) => {
54
- const u = Number(r.value);
55
- let l = e === "prev" ? u - a.fastForwardStep : u + a.fastForwardStep;
56
- l <= 0 && (l = 1), l >= t.value.length && (l = t.value.length), r.value = String(l);
59
+ }), m = { props: r, emit: i, modifiers: v, heightMap: s, paginationStyle: g, prevClick: h, nextClick: b, selectedPage: a, pages: t, show: N, updateSelectedValue: y, blockPrevButton: S, blockNextButton: P, visiblePages: _, bigStepUpdate: (e) => {
60
+ const n = Number(a.value);
61
+ let l = e === "prev" ? n - r.fastForwardStep : n + r.fastForwardStep;
62
+ l <= 0 && (l = 1), l >= t.value.length && (l = t.value.length), a.value = String(l);
57
63
  }, get NmorphRadioGroup() {
58
- return Q;
64
+ return R;
59
65
  }, get NmorphButton() {
60
- return O;
66
+ return Q;
61
67
  }, get NmorphIcon() {
62
- return B;
68
+ return O;
63
69
  }, get NmorphRadio() {
64
- return w;
70
+ return B;
65
71
  }, get NmorphIconChevronDown() {
66
- return R;
72
+ return V;
67
73
  } };
68
- return Object.defineProperty(i, "__isScriptSetup", { enumerable: !1, value: !0 }), i;
74
+ return Object.defineProperty(m, "__isScriptSetup", { enumerable: !1, value: !0 }), m;
69
75
  }
70
76
  });
71
77
  export {
72
- M as default
78
+ j as default
73
79
  };
@@ -1 +1 @@
1
- .nmorph-table{--border-color: var(--nmorph-info-text-color);--table-cell-height: auto;--table-background-row-hover: var(--nmorph-info-color)}.nmorph-table .nmorph-table__header th{border-bottom:0}.nmorph-table .nmorph-table__button-wrapper{display:flex;align-items:center;margin-left:var(--indentation-03)}.nmorph-table table{width:calc(100% - 2px);margin-left:1px;border-collapse:collapse;border-spacing:0}.nmorph-table .nmorph-table__table-data{padding:var(--indentation-03) 0;border-bottom:1px solid var(--border-color)}.nmorph-table .nmorph-table__table-data--bordered{border:1px solid var(--border-color)}.nmorph-table .nmorph-table__cell{padding:0 var(--indentation-03)}.nmorph-table .nmorph-table__cell-content{display:flex;align-items:center}.nmorph-table .nmorph-table__cell--data{height:var(--table-cell-height)}.nmorph-table .nmorph-table__body{position:relative}.nmorph-table .nmorph-table__table-data-row--row-hover:hover{background:var(--table-background-row-hover)}.nmorph-table--nmorph{background:var(--nmorph-main-color);box-shadow:var(--base-shadow-width) var(--base-shadow-width) var(--base-shadow-blur) var(--nmorph-dark-shade-color),calc(-1 * var(--base-shadow-width)) calc(-1 * var(--base-shadow-width)) var(--base-shadow-blur) var(--nmorph-light-shade-color);overflow:hidden;border-radius:var(--default-border-radius);--border-color: transparent}.nmorph-table--nmorph .nmorph-table__button-wrapper{padding:var(--indentation-02)}.nmorph-table--nmorph .nmorph-table__table-row{background:var(--nmorph-main-color);box-shadow:inset var(--base-shadow-width) var(--base-shadow-width) var(--base-shadow-blur) var(--nmorph-dark-shade-color),inset calc(-1 * var(--base-shadow-width)) calc(-1 * var(--base-shadow-width)) var(--base-shadow-blur) var(--nmorph-light-shade-color)}
1
+ .nmorph-table{--border-color: var(--nmorph-info-text-color);--table-cell-height: auto;--table-background-row-hover: var(--nmorph-info-color)}.nmorph-table .nmorph-table__header th{border-bottom:0}.nmorph-table .nmorph-table__button-wrapper{display:flex;align-items:center;margin-left:var(--indentation-03)}.nmorph-table table{width:calc(100% - 2px);margin-left:1px;border-collapse:collapse;border-spacing:0}.nmorph-table .nmorph-table__table-data{padding:var(--indentation-03) 0;border-bottom:1px solid var(--border-color)}.nmorph-table .nmorph-table__table-data--bordered{border:1px solid var(--border-color)}.nmorph-table .nmorph-table__cell{padding:0 var(--indentation-03)}.nmorph-table .nmorph-table__cell-content{display:flex;align-items:center}.nmorph-table .nmorph-table__cell--data{height:var(--table-cell-height)}.nmorph-table .nmorph-table__body{position:relative}.nmorph-table .nmorph-table__body--virtual{overflow-x:hidden}.nmorph-table .nmorph-table__body--virtual .nmorph-table__table-data{height:var(--table-virtual-row-height);padding-top:0;padding-bottom:0}.nmorph-table .nmorph-table__virtual-spacer{position:relative;min-width:100%}.nmorph-table .nmorph-table__virtual-content{position:absolute;top:0;right:0;left:0}.nmorph-table .nmorph-table__table-data-row--row-hover:hover{background:var(--table-background-row-hover)}.nmorph-table--nmorph{background:var(--nmorph-main-color);box-shadow:var(--base-shadow-width) var(--base-shadow-width) var(--base-shadow-blur) var(--nmorph-dark-shade-color),calc(-1 * var(--base-shadow-width)) calc(-1 * var(--base-shadow-width)) var(--base-shadow-blur) var(--nmorph-light-shade-color);overflow:hidden;border-radius:var(--default-border-radius);--border-color: transparent}.nmorph-table--nmorph .nmorph-table__button-wrapper{padding:var(--indentation-02)}.nmorph-table--nmorph .nmorph-table__table-row{background:var(--nmorph-main-color);box-shadow:inset var(--base-shadow-width) var(--base-shadow-width) var(--base-shadow-blur) var(--nmorph-dark-shade-color),inset calc(-1 * var(--base-shadow-width)) calc(-1 * var(--base-shadow-width)) var(--base-shadow-blur) var(--nmorph-light-shade-color)}