@pismo/marola 0.0.1-alpha.11 → 0.0.1-alpha.12

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 (34) hide show
  1. package/dist/{ClickAwayListener-BKznXF1d.js → ClickAwayListener-HI1G6ob9.js} +2 -1
  2. package/dist/Popup-DFJQc_jn.js +1249 -0
  3. package/dist/{Portal-BcdMtRGF.js → Portal-D__zvwbZ.js} +1 -1
  4. package/dist/SelectButton-DWtqAiwt.js +45 -0
  5. package/dist/Tabs.module-jkH1Qjn7.js +22 -0
  6. package/dist/assets/SelectButton.css +1 -0
  7. package/dist/combineHooksSlotProps-BHqhiBfc.js +81 -0
  8. package/dist/components/Button/Button.stories.js +7 -6
  9. package/dist/components/Dialog/Dialog.js +13 -12
  10. package/dist/components/Dialog/Dialog.stories.js +8 -7
  11. package/dist/components/LoadingSpinner/LoadingSpinner.stories.js +5 -4
  12. package/dist/components/PageHeader/PageHeader.stories.js +3 -3
  13. package/dist/components/Select/Select.d.ts +25 -0
  14. package/dist/components/Select/Select.js +860 -0
  15. package/dist/components/Select/Select.stories.d.ts +31 -0
  16. package/dist/components/Select/Select.stories.js +66 -0
  17. package/dist/components/Select/SelectButton.d.ts +13 -0
  18. package/dist/components/Select/SelectButton.js +8 -0
  19. package/dist/components/Snackbar/Snackbar.js +5 -4
  20. package/dist/components/Tabs/Tab.js +180 -6
  21. package/dist/components/Tabs/TabPanel.js +19 -18
  22. package/dist/components/Tabs/Tabs.js +237 -662
  23. package/dist/components/Tooltip/Tooltip.js +89 -1328
  24. package/dist/components/Typography/Typography.stories.js +5 -4
  25. package/dist/components/Typography/typography.test.js +3 -2
  26. package/dist/{index-BNWbc5Kh.js → index-BJ8HbRCy.js} +3109 -3152
  27. package/dist/main.d.ts +1 -0
  28. package/dist/main.js +34 -31
  29. package/dist/useCompoundItem-D1iRfg8D.js +84 -0
  30. package/dist/useEventCallback-vAfOD-oT.js +45 -0
  31. package/dist/useList-ByMguSS_.js +437 -0
  32. package/package.json +1 -1
  33. package/dist/Tab-CRwnhsj5.js +0 -254
  34. package/dist/Tabs.module-yYcTJnj6.js +0 -103
@@ -1,5 +1,5 @@
1
1
  import * as o from "react";
2
- import { r as P, a as y } from "./index-BNWbc5Kh.js";
2
+ import { r as P, e as y } from "./index-BJ8HbRCy.js";
3
3
  import { u as T, s as a, P as i } from "./index-CqjC7P5Y.js";
4
4
  import { jsx as c } from "react/jsx-runtime";
5
5
  import { u as f } from "./useEnhancedEffect-CJGo-L3B.js";
@@ -0,0 +1,45 @@
1
+ import './assets/SelectButton.css';
2
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
3
+ import * as o from "react";
4
+ import { forwardRef as x } from "react";
5
+ import { c as p } from "./clsx-DB4S2d7J.js";
6
+ import { Typography as w } from "./components/Typography/Typography.js";
7
+ const d = "_select_yw431_1", m = "_select__listbox_yw431_4", u = "_select__listbox__option_yw431_12", y = "_select__listbox__option__icon_yw431_20", h = "_select__listbox__option__text_yw431_24", C = "_select__list__option__icon_yw431_44", _ = {
8
+ select: d,
9
+ select__listbox: m,
10
+ select__listbox__option: u,
11
+ select__listbox__option__icon: y,
12
+ select__listbox__option__text: h,
13
+ "select__listbox__option--disabled": "_select__listbox__option--disabled_yw431_27",
14
+ "select__listbox__option--selected": "_select__listbox__option--selected_yw431_36",
15
+ select__list__option__icon: C,
16
+ "select-button": "_select-button_yw431_49",
17
+ "select-button__text": "_select-button__text_yw431_62",
18
+ "select-button__text__prefix": "_select-button__text__prefix_yw431_69",
19
+ "select-button__icon": "_select-button__icon_yw431_72",
20
+ "select-button--active": "_select-button--active_yw431_78"
21
+ }, f = (t) => /* @__PURE__ */ o.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", ...t }, /* @__PURE__ */ o.createElement("path", { d: "M2.11104 4.9999C2.36691 4.9999 2.62291 5.09756 2.81791 5.29287L8.11104 10.5843L13.4048 5.29053C13.7954 4.8999 14.4282 4.8999 14.8188 5.29053C15.2095 5.68115 15.2095 6.31396 14.8188 6.70459L8.81885 12.7046C8.42822 13.0952 7.79541 13.0952 7.40479 12.7046L1.40479 6.70459C1.01416 6.31396 1.01416 5.68115 1.40479 5.29053C1.59854 5.09678 1.85479 4.9999 2.11104 4.9999Z", fill: "currentColor" })), v = (t) => /* @__PURE__ */ o.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...t }, /* @__PURE__ */ o.createElement("path", { d: "M13.8889 11C13.633 11 13.377 10.9023 13.182 10.707L7.8889 5.41563L2.59515 10.7094C2.20453 11.1 1.57172 11.1 1.18109 10.7094C0.790466 10.3188 0.790466 9.68594 1.18109 9.29532L7.18109 3.29532C7.57172 2.90469 8.20453 2.90469 8.59515 3.29532L14.5952 9.29532C14.9858 9.68594 14.9858 10.3188 14.5952 10.7094C14.4014 10.9031 14.1452 11 13.8889 11Z", fill: "#3F3D4B", fillOpacity: 0.88 })), E = x((t, c) => {
22
+ const { children: n, type: i = "button", disabled: a, className: b, "data-testid": r } = t, s = t["aria-expanded"];
23
+ return /* @__PURE__ */ l(
24
+ "button",
25
+ {
26
+ className: p(b, s ? _["select-button--active"] : "", _["select-button"]),
27
+ type: i,
28
+ onClick: t.onClick,
29
+ disabled: a,
30
+ "data-testid": r,
31
+ ref: c,
32
+ children: [
33
+ /* @__PURE__ */ l("span", { className: _["select-button__text"], children: [
34
+ /* @__PURE__ */ e("span", { className: _["select-button__text__prefix"], children: t["aria-labelledby"] }),
35
+ /* @__PURE__ */ e(w, { element: "span", variant: "body-small", className: _["select-button__text__content"], children: n })
36
+ ] }),
37
+ /* @__PURE__ */ e("span", { className: _["select-button__icon"], children: s ? /* @__PURE__ */ e(v, {}) : /* @__PURE__ */ e(f, {}) })
38
+ ]
39
+ }
40
+ );
41
+ });
42
+ export {
43
+ E as B,
44
+ _ as s
45
+ };
@@ -0,0 +1,22 @@
1
+ import './assets/Tabs.css';
2
+ import * as a from "react";
3
+ const s = /* @__PURE__ */ a.createContext(null);
4
+ process.env.NODE_ENV !== "production" && (s.displayName = "TabsContext");
5
+ function b() {
6
+ const t = a.useContext(s);
7
+ if (t == null)
8
+ throw new Error("No TabsContext provided");
9
+ return t;
10
+ }
11
+ const _ = "_tabs_18ymz_1", e = "_tabs__tab_18ymz_5", o = {
12
+ tabs: _,
13
+ tabs__tab: e,
14
+ "tabs__tab--disabled": "_tabs__tab--disabled_18ymz_22",
15
+ "tabs__tab--selected": "_tabs__tab--selected_18ymz_31",
16
+ "tabs__tab-panel": "_tabs__tab-panel_18ymz_35"
17
+ };
18
+ export {
19
+ s as T,
20
+ o as s,
21
+ b as u
22
+ };
@@ -0,0 +1 @@
1
+ ._select_yw431_1{background-color:red}._select__listbox_yw431_4{min-width:10.75rem;padding:.5rem;margin-top:.25rem;background-color:#fff;border-radius:var(--border-radius);box-shadow:0 6px 12px rgba(var(--black-100-rgb),20%)}._select__listbox__option_yw431_12{display:flex;padding:.625rem;color:rgba(var(--gray-95-rgb),88%);list-style:none;cursor:pointer;border-radius:var(--border-radius-soft)}._select__listbox__option__icon_yw431_20{display:flex;margin-right:.5rem}._select__listbox__option__text_yw431_24{font-weight:700}._select__listbox__option_yw431_12:hover:not(._select__listbox__option--disabled_yw431_27){padding:.625rem;color:var(--accent);background-color:rgba(var(--black-100-rgb),4%);border-radius:var(--border-radius-soft)}._select__listbox__option_yw431_12:active:not(._select__listbox__option--disabled_yw431_27){color:var(--accent-dark)}._select__listbox__option--selected_yw431_36{background-color:var(--accent-lighter)}._select__listbox__option--disabled_yw431_27{color:rgba(var(--gray-95-rgb),25%);cursor:default;border:transparent}._select__listbox__option--disabled_yw431_27 ._select__list__option__icon_yw431_44{color:rgba(var(--gray-95-rgb),25%);fill:rgba(var(--gray-95-rgb),25%)}._select-button_yw431_49{display:flex;align-items:center;justify-content:space-between;width:11.875rem;padding:.625rem 1rem;color:rgba(var(--gray-95-rgb),88%);cursor:pointer;background-color:var(--white-100);border:1px solid rgba(var(--black-100-rgb),6%);border-radius:var(--border-radius);outline:none}._select-button__text_yw431_62{width:100%;overflow:hidden;text-align:start;text-overflow:ellipsis;text-wrap:nowrap}._select-button__text__prefix_yw431_69{margin-right:.625rem}._select-button__icon_yw431_72{display:flex}._select-button__icon_yw431_72 svg{color:rgba(var(--gray-95-rgb),88%)}._select-button--active_yw431_78{border:1px solid var(--accent)}._select-button_yw431_49:disabled{color:rgba(var(--gray-95-rgb),25%);cursor:default;border:1px solid var(--gray-10)}._select-button_yw431_49:disabled ._select-button__icon_yw431_72 svg{color:rgba(var(--gray-95-rgb),25%)}._select-button_yw431_49:hover:not(._select-button_yw431_49:disabled){border:1px solid var(--gray-25)}._select-button_yw431_49:focus:not(._select-button_yw431_49:disabled),._select-button_yw431_49:active:not(._select-button_yw431_49:disabled){border:1px solid var(--accent)}
@@ -0,0 +1,81 @@
1
+ import { a as c } from "./objectWithoutPropertiesLoose-D7Cp0Pg_.js";
2
+ import * as r from "react";
3
+ import { e as E } from "./index-CqjC7P5Y.js";
4
+ const m = {
5
+ blur: "list:blur",
6
+ focus: "list:focus",
7
+ itemClick: "list:itemClick",
8
+ itemHover: "list:itemHover",
9
+ itemsChange: "list:itemsChange",
10
+ keyDown: "list:keyDown",
11
+ resetHighlight: "list:resetHighlight",
12
+ highlightLast: "list:highlightLast",
13
+ textNavigation: "list:textNavigation",
14
+ clearSelection: "list:clearSelection"
15
+ }, f = /* @__PURE__ */ r.createContext(null);
16
+ process.env.NODE_ENV !== "production" && (f.displayName = "ListContext");
17
+ function H(l) {
18
+ const {
19
+ handlePointerOverEvents: a = !1,
20
+ item: t
21
+ } = l, s = r.useContext(f);
22
+ if (!s)
23
+ throw new Error("useListItem must be used within a ListProvider");
24
+ const {
25
+ dispatch: n,
26
+ getItemState: u
27
+ } = s, {
28
+ highlighted: d,
29
+ selected: p,
30
+ focusable: g
31
+ } = u(t), v = r.useCallback((i) => (e) => {
32
+ var o;
33
+ if ((o = i.onClick) == null || o.call(i, e), !e.defaultPrevented) {
34
+ if (process.env.NODE_ENV !== "production" && t === void 0)
35
+ throw new Error(["MUI: The `item` provided to useListItem() is undefined.", "This should happen only during server-side rendering under React 17."].join(`
36
+ `));
37
+ n({
38
+ type: m.itemClick,
39
+ item: t,
40
+ event: e
41
+ });
42
+ }
43
+ }, [n, t]), C = r.useCallback((i) => (e) => {
44
+ var o;
45
+ if ((o = i.onMouseOver) == null || o.call(i, e), !e.defaultPrevented) {
46
+ if (process.env.NODE_ENV !== "production" && t === void 0)
47
+ throw new Error(["MUI: The `item` provided to useListItem() is undefined.", "This should happen only during server-side rendering under React 17."].join(`
48
+ `));
49
+ n({
50
+ type: m.itemHover,
51
+ item: t,
52
+ event: e
53
+ });
54
+ }
55
+ }, [n, t]);
56
+ let h;
57
+ return g && (h = d ? 0 : -1), {
58
+ getRootProps: (i = {}) => {
59
+ const e = E(i);
60
+ return c({}, i, {
61
+ onClick: v(e),
62
+ onPointerOver: a ? C(e) : void 0,
63
+ tabIndex: h
64
+ });
65
+ },
66
+ highlighted: d,
67
+ selected: p
68
+ };
69
+ }
70
+ function b(l, a) {
71
+ return function(s = {}) {
72
+ const n = c({}, s, l(s));
73
+ return c({}, n, a(n));
74
+ };
75
+ }
76
+ export {
77
+ m as L,
78
+ f as a,
79
+ b as c,
80
+ H as u
81
+ };
@@ -6,9 +6,10 @@ import "react";
6
6
  import "../Dialog/Backdrop.js";
7
7
  import "../Typography/Typography.js";
8
8
  import "../IconButton/IconButton.js";
9
+ import "../Select/Select.js";
9
10
  import "../Table/Table.js";
10
11
  import "../Tabs/Tabs.js";
11
- const d = {
12
+ const k = {
12
13
  title: "Components/Button",
13
14
  component: i,
14
15
  tags: ["autodocs"],
@@ -28,13 +29,13 @@ const d = {
28
29
  if: { arg: "onClick", exists: !1 }
29
30
  }
30
31
  }
31
- }, k = {
32
- args: { children: "Button", onClick: () => alert("Button was clicked!") }
33
32
  }, f = {
33
+ args: { children: "Button", onClick: () => alert("Button was clicked!") }
34
+ }, g = {
34
35
  args: { children: "Button", link: "https://marola.pismolabs.io" }
35
36
  };
36
37
  export {
37
- f as Link,
38
- k as Simple,
39
- d as default
38
+ g as Link,
39
+ f as Simple,
40
+ k as default
40
41
  };
@@ -1,15 +1,16 @@
1
1
  import { jsxs as $, jsx as S } from "react/jsx-runtime";
2
- import { default as $e } from "./Actions.js";
2
+ import { default as Ye } from "./Actions.js";
3
3
  import oe from "./Backdrop.js";
4
4
  import re from "./CloseIconButton.js";
5
- import { default as ze } from "./Content.js";
5
+ import { default as Ge } from "./Content.js";
6
6
  import { s as q } from "../../Dialog.module-CGVM5V_D.js";
7
7
  import se from "./Title.js";
8
8
  import { a as C, _ as ie } from "../../objectWithoutPropertiesLoose-D7Cp0Pg_.js";
9
9
  import * as f from "react";
10
10
  import { u as Z, P as i, e as ae, g as le, a as ce, b as z, c as de, d as ue } from "../../index-CqjC7P5Y.js";
11
- import { o as w, e as ee, a as fe, u as G } from "../../index-BNWbc5Kh.js";
12
- import { P as pe, H as be } from "../../Portal-BcdMtRGF.js";
11
+ import { o as w, e as ee, u as G } from "../../useEventCallback-vAfOD-oT.js";
12
+ import { P as fe, H as pe } from "../../Portal-D__zvwbZ.js";
13
+ import { e as be } from "../../index-BJ8HbRCy.js";
13
14
  function X(...e) {
14
15
  return e.reduce((t, o) => o == null ? t : function(...s) {
15
16
  t.apply(this, s), o.apply(this, s);
@@ -187,7 +188,7 @@ process.env.NODE_ENV !== "production" && (W.propTypes = {
187
188
  */
188
189
  open: i.bool.isRequired
189
190
  });
190
- process.env.NODE_ENV !== "production" && (W.propTypes = fe(W.propTypes));
191
+ process.env.NODE_ENV !== "production" && (W.propTypes = be(W.propTypes));
191
192
  function Re(e) {
192
193
  const t = w(e);
193
194
  return t.body === e ? Y(e).innerWidth > t.documentElement.clientWidth : e.scrollHeight > e.clientHeight;
@@ -478,7 +479,7 @@ const Oe = ["children", "closeAfterTransition", "container", "disableAutoFocus",
478
479
  className: H.backdrop,
479
480
  ownerState: F
480
481
  });
481
- return !c && !I && (!M || y) ? null : /* @__PURE__ */ S(pe, {
482
+ return !c && !I && (!M || y) ? null : /* @__PURE__ */ S(fe, {
482
483
  ref: T,
483
484
  container: a,
484
485
  disablePortal: h,
@@ -518,7 +519,7 @@ process.env.NODE_ENV !== "production" && (ne.propTypes = {
518
519
  * By default, it uses the body of the top-level document object,
519
520
  * so it's simply `document.body` most of the time.
520
521
  */
521
- container: i.oneOfType([be, i.func]),
522
+ container: i.oneOfType([pe, i.func]),
522
523
  /**
523
524
  * If `true`, the modal will not automatically shift focus to itself when it opens, and
524
525
  * replace it to the last focused element when it closes.
@@ -613,7 +614,7 @@ process.env.NODE_ENV !== "production" && (ne.propTypes = {
613
614
  root: i.elementType
614
615
  })
615
616
  });
616
- const je = ({
617
+ const qe = ({
617
618
  children: e,
618
619
  dialogTitle: t,
619
620
  dialogSubtitle: o,
@@ -638,9 +639,9 @@ const je = ({
638
639
  }
639
640
  );
640
641
  export {
641
- $e as Actions,
642
- ze as Content,
643
- je as Dialog,
642
+ Ye as Actions,
643
+ Ge as Content,
644
+ qe as Dialog,
644
645
  se as DialogTitle,
645
- je as default
646
+ qe as default
646
647
  };
@@ -1,16 +1,17 @@
1
1
  import '../../assets/global.css';
2
2
  import { jsx as e, Fragment as r, jsxs as i } from "react/jsx-runtime";
3
- import { useState as m } from "react";
3
+ import { useState as d } from "react";
4
4
  /* empty css */
5
5
  import { Button as l } from "../Button/Button.js";
6
6
  import { Dialog as a } from "./Dialog.js";
7
7
  import "../IconButton/IconButton.js";
8
8
  import { Typography as n } from "../Typography/Typography.js";
9
+ import "../Select/Select.js";
9
10
  import "../Table/Table.js";
10
11
  import "../Tabs/Tabs.js";
11
12
  import s from "./Content.js";
12
13
  import c from "./Actions.js";
13
- const q = {
14
+ const y = {
14
15
  title: "Components/Dialog",
15
16
  component: a,
16
17
  tags: ["autodocs"],
@@ -19,7 +20,7 @@ const q = {
19
20
  ]
20
21
  };
21
22
  function p(o) {
22
- const [d, t] = m(!1);
23
+ const [m, t] = d(!1);
23
24
  return /* @__PURE__ */ i(r, { children: [
24
25
  /* @__PURE__ */ e(l, { onClick: () => t(!0), children: "Open" }),
25
26
  /* @__PURE__ */ e(
@@ -27,7 +28,7 @@ function p(o) {
27
28
  {
28
29
  dialogTitle: o.dialogTitle,
29
30
  dialogSubtitle: o.dialogSubtitle,
30
- open: d,
31
+ open: m,
31
32
  onClose: () => {
32
33
  t(!1), o != null && o.onClose && (o == null || o.onClose());
33
34
  },
@@ -43,7 +44,7 @@ function p(o) {
43
44
  )
44
45
  ] });
45
46
  }
46
- const y = {
47
+ const O = {
47
48
  render: p,
48
49
  args: {
49
50
  dialogTitle: "This is a dialog title",
@@ -54,6 +55,6 @@ const y = {
54
55
  }
55
56
  };
56
57
  export {
57
- y as Simple,
58
- q as default
58
+ O as Simple,
59
+ y as default
59
60
  };
@@ -7,9 +7,10 @@ import "../Dialog/Backdrop.js";
7
7
  import "../Typography/Typography.js";
8
8
  import "../IconButton/IconButton.js";
9
9
  import { LoadingSpinner as i } from "./LoadingSpinner.js";
10
+ import "../Select/Select.js";
10
11
  import "../Table/Table.js";
11
12
  import "../Tabs/Tabs.js";
12
- const g = {
13
+ const f = {
13
14
  title: "Components/LoadingSpinner",
14
15
  component: i,
15
16
  tags: ["autodocs"],
@@ -29,10 +30,10 @@ const g = {
29
30
  }
30
31
  )
31
32
  ]
32
- }, f = {
33
+ }, h = {
33
34
  args: {}
34
35
  };
35
36
  export {
36
- f as Simple,
37
- g as default
37
+ h as Simple,
38
+ f as default
38
39
  };
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
2
2
  import { Button as r } from "../Button/Button.js";
3
- import { T as e } from "../../Tab-CRwnhsj5.js";
3
+ import { Tab as e } from "../Tabs/Tab.js";
4
4
  import { TabPanel as a } from "../Tabs/TabPanel.js";
5
5
  import { Tabs as o } from "../Tabs/Tabs.js";
6
6
  import { PageHeader as l } from "./PageHeader.js";
@@ -26,7 +26,7 @@ const g = {
26
26
  ...i.args,
27
27
  rightChildren: /* @__PURE__ */ t(r, { variant: "quick", onClick: () => alert("button clicked"), children: "Click me!" })
28
28
  }
29
- }, T = {
29
+ }, p = {
30
30
  name: "With bottom children",
31
31
  args: {
32
32
  ...i.args,
@@ -43,7 +43,7 @@ const g = {
43
43
  export {
44
44
  c as Simple,
45
45
  i as WithBackLink,
46
- T as WithBottomChildren,
46
+ p as WithBottomChildren,
47
47
  u as WithRightChildren,
48
48
  g as default
49
49
  };
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ type SelectOptionProps = {
4
+ disabled?: boolean;
5
+ value: string | number;
6
+ children: ReactNode;
7
+ icon?: ReactNode;
8
+ className?: string;
9
+ 'data-testid'?: string;
10
+ };
11
+ type SelectProps = {
12
+ children: ReactNode;
13
+ disabled?: boolean;
14
+ placeholder?: string | number;
15
+ ariaLabelledby?: string;
16
+ onChange?: (value: number | string | null, event?: React.SyntheticEvent<Element, Event> | null) => void;
17
+ className?: string;
18
+ 'data-testid'?: string;
19
+ };
20
+ export declare const Option: (props: SelectOptionProps) => import("react/jsx-runtime").JSX.Element;
21
+ declare const Select: {
22
+ (props: SelectProps): import("react/jsx-runtime").JSX.Element;
23
+ Option: (props: SelectOptionProps) => import("react/jsx-runtime").JSX.Element;
24
+ };
25
+ export { Select };