@bolio-ui/core 3.0.0-alpha.1 → 3.0.0-alpha.2

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 (130) hide show
  1. package/dist/ContextMenu/index.js +3 -3
  2. package/dist/CssBaseline/index.js +2 -2
  3. package/dist/DateRangePicker/index.js +2 -2
  4. package/dist/ImageZoom/ImageZoom.d.ts +14 -0
  5. package/dist/ImageZoom/index.d.ts +3 -0
  6. package/dist/ImageZoom/index.js +17 -0
  7. package/dist/Menu/index.js +2 -2
  8. package/dist/Splitter/Splitter.d.ts +14 -0
  9. package/dist/Splitter/SplitterContext.d.ts +6 -0
  10. package/dist/Splitter/SplitterPanel.d.ts +13 -0
  11. package/dist/Splitter/index.d.ts +9 -0
  12. package/dist/Splitter/index.js +14 -0
  13. package/dist/Table/Table.d.ts +11 -1
  14. package/dist/Table/TableBody.d.ts +8 -2
  15. package/dist/Table/TableColumn.d.ts +2 -0
  16. package/dist/Table/TableHead.d.ts +9 -1
  17. package/dist/Table/TableSelectBox.d.ts +9 -0
  18. package/dist/Table/TableTypes.d.ts +8 -0
  19. package/dist/Table/index.d.ts +1 -1
  20. package/dist/Table/index.js +2 -2
  21. package/dist/Tour/Tour.d.ts +26 -0
  22. package/dist/Tour/index.d.ts +3 -0
  23. package/dist/Tour/index.js +23 -0
  24. package/dist/{chunk-AVO2SK2I.js → chunk-3S6G7WGK.js} +2 -2
  25. package/dist/{chunk-GYFW5NLU.js → chunk-BHQRX76X.js} +22 -4
  26. package/dist/chunk-FFEAKF3A.js +220 -0
  27. package/dist/{chunk-XLPOECCE.js → chunk-FL6J36B7.js} +3 -2
  28. package/dist/chunk-REWKR7S3.js +109 -0
  29. package/dist/chunk-STYC6O24.js +232 -0
  30. package/dist/{chunk-TDJGMSGT.js → chunk-WIIDIZYK.js} +3 -1
  31. package/dist/{chunk-TKICX5R6.js → chunk-ZNDN2VPZ.js} +225 -33
  32. package/dist/css/ButtonDropdown-ButtonDropdownItem.css +0 -1
  33. package/dist/css/ButtonGroup.css +0 -1
  34. package/dist/css/Calendar.css +0 -1
  35. package/dist/css/Carousel.css +0 -1
  36. package/dist/css/ColorInput.css +0 -2
  37. package/dist/css/ColorPicker.css +0 -3
  38. package/dist/css/Combobox.css +0 -2
  39. package/dist/css/DatePicker.css +0 -3
  40. package/dist/css/DateRangePicker.css +6 -3
  41. package/dist/css/Dropzone.css +0 -3
  42. package/dist/css/Fieldset-FieldsetGroup.css +0 -1
  43. package/dist/css/ImageZoom.css +93 -0
  44. package/dist/css/Input.css +0 -1
  45. package/dist/css/Menu-MenuList.css +0 -1
  46. package/dist/css/NumberInput.css +0 -1
  47. package/dist/css/PinInput.css +0 -1
  48. package/dist/css/Radio.css +0 -1
  49. package/dist/css/SegmentedControl.css +0 -1
  50. package/dist/css/Select-SelectDropdown.css +0 -1
  51. package/dist/css/Select-SelectOption.css +0 -1
  52. package/dist/css/Select.css +0 -1
  53. package/dist/css/Splitter.css +77 -0
  54. package/dist/css/Table-TableBody.css +10 -0
  55. package/dist/css/Table-TableHead.css +41 -0
  56. package/dist/css/Table-TableSelectBox.css +11 -0
  57. package/dist/css/TagsInput.css +0 -2
  58. package/dist/css/Textarea.css +0 -1
  59. package/dist/css/Toggle.css +0 -1
  60. package/dist/css/Tour.css +81 -0
  61. package/dist/css/use-toasts-toast-item.css +0 -1
  62. package/dist/index.d.ts +7 -1
  63. package/dist/index.js +31 -19
  64. package/dist/styles.css +3227 -2939
  65. package/esm/ContextMenu/index.js +2 -2
  66. package/esm/CssBaseline/index.js +1 -1
  67. package/esm/DateRangePicker/index.js +1 -1
  68. package/esm/ImageZoom/ImageZoom.d.ts +14 -0
  69. package/esm/ImageZoom/index.d.ts +3 -0
  70. package/esm/ImageZoom/index.js +17 -0
  71. package/esm/Menu/index.js +1 -1
  72. package/esm/Splitter/Splitter.d.ts +14 -0
  73. package/esm/Splitter/SplitterContext.d.ts +6 -0
  74. package/esm/Splitter/SplitterPanel.d.ts +13 -0
  75. package/esm/Splitter/index.d.ts +9 -0
  76. package/esm/Splitter/index.js +14 -0
  77. package/esm/Table/Table.d.ts +11 -1
  78. package/esm/Table/TableBody.d.ts +8 -2
  79. package/esm/Table/TableColumn.d.ts +2 -0
  80. package/esm/Table/TableHead.d.ts +9 -1
  81. package/esm/Table/TableSelectBox.d.ts +9 -0
  82. package/esm/Table/TableTypes.d.ts +8 -0
  83. package/esm/Table/index.d.ts +1 -1
  84. package/esm/Table/index.js +1 -1
  85. package/esm/Tour/Tour.d.ts +26 -0
  86. package/esm/Tour/index.d.ts +3 -0
  87. package/esm/Tour/index.js +23 -0
  88. package/esm/{chunk-AVO2SK2I.js → chunk-3S6G7WGK.js} +1 -1
  89. package/esm/{chunk-GYFW5NLU.js → chunk-BHQRX76X.js} +22 -4
  90. package/esm/chunk-FFEAKF3A.js +220 -0
  91. package/esm/{chunk-XLPOECCE.js → chunk-FL6J36B7.js} +3 -2
  92. package/esm/chunk-REWKR7S3.js +109 -0
  93. package/esm/chunk-STYC6O24.js +232 -0
  94. package/esm/{chunk-TDJGMSGT.js → chunk-WIIDIZYK.js} +3 -1
  95. package/esm/chunk-ZNDN2VPZ.js +543 -0
  96. package/esm/css/ButtonDropdown-ButtonDropdownItem.css +0 -1
  97. package/esm/css/ButtonGroup.css +0 -1
  98. package/esm/css/Calendar.css +0 -1
  99. package/esm/css/Carousel.css +0 -1
  100. package/esm/css/ColorInput.css +0 -2
  101. package/esm/css/ColorPicker.css +0 -3
  102. package/esm/css/Combobox.css +0 -2
  103. package/esm/css/DatePicker.css +0 -3
  104. package/esm/css/DateRangePicker.css +6 -3
  105. package/esm/css/Dropzone.css +0 -3
  106. package/esm/css/Fieldset-FieldsetGroup.css +0 -1
  107. package/esm/css/ImageZoom.css +93 -0
  108. package/esm/css/Input.css +0 -1
  109. package/esm/css/Menu-MenuList.css +0 -1
  110. package/esm/css/NumberInput.css +0 -1
  111. package/esm/css/PinInput.css +0 -1
  112. package/esm/css/Radio.css +0 -1
  113. package/esm/css/SegmentedControl.css +0 -1
  114. package/esm/css/Select-SelectDropdown.css +0 -1
  115. package/esm/css/Select-SelectOption.css +0 -1
  116. package/esm/css/Select.css +0 -1
  117. package/esm/css/Splitter.css +77 -0
  118. package/esm/css/Table-TableBody.css +10 -0
  119. package/esm/css/Table-TableHead.css +41 -0
  120. package/esm/css/Table-TableSelectBox.css +11 -0
  121. package/esm/css/TagsInput.css +0 -2
  122. package/esm/css/Textarea.css +0 -1
  123. package/esm/css/Toggle.css +0 -1
  124. package/esm/css/Tour.css +81 -0
  125. package/esm/css/use-toasts-toast-item.css +0 -1
  126. package/esm/index.d.ts +7 -1
  127. package/esm/index.js +36 -24
  128. package/esm/styles.css +2987 -2699
  129. package/package.json +1 -1
  130. package/esm/chunk-TKICX5R6.js +0 -351
@@ -0,0 +1,109 @@
1
+ import {
2
+ Image_default
3
+ } from "./chunk-TWIOSRRP.js";
4
+ import {
5
+ use_classes_default
6
+ } from "./chunk-5KUROAEP.js";
7
+
8
+ // core/ImageZoom/ImageZoom.tsx
9
+ import React, { useEffect, useRef, useState } from "react";
10
+
11
+ // css-module-source:/Users/brunnoandrade/Desktop/BolioUI/bolio-ui/core/ImageZoom/ImageZoom.module.css.bolio-css-module-source
12
+ var ImageZoom_module_css_default = { "trigger": "ImageZoom-module_trigger__-42Bz", "dialog": "ImageZoom-module_dialog__TjA9E", "figure": "ImageZoom-module_figure__YIBq1", "zoomed": "ImageZoom-module_zoomed__7gfCP", "caption": "ImageZoom-module_caption__6SFRA", "close": "ImageZoom-module_close__iEiwJ" };
13
+
14
+ // core/ImageZoom/ImageZoom.tsx
15
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
+ var ImageZoom = React.forwardRef(
17
+ ({
18
+ src,
19
+ alt,
20
+ zoomSrc,
21
+ caption,
22
+ closeLabel = "Close",
23
+ className = "",
24
+ ...imageProps
25
+ }, ref) => {
26
+ const [open, setOpen] = useState(false);
27
+ const dialog = useRef(null);
28
+ useEffect(() => {
29
+ var _a;
30
+ if (open) (_a = dialog.current) == null ? void 0 : _a.showModal();
31
+ }, [open]);
32
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
33
+ /* @__PURE__ */ jsx(
34
+ "button",
35
+ {
36
+ ref,
37
+ type: "button",
38
+ className: use_classes_default(ImageZoom_module_css_default.trigger, className),
39
+ "aria-haspopup": "dialog",
40
+ onClick: () => setOpen(true),
41
+ children: /* @__PURE__ */ jsx(Image_default, { src, alt, ...imageProps })
42
+ }
43
+ ),
44
+ open && /* @__PURE__ */ jsxs(
45
+ "dialog",
46
+ {
47
+ ref: dialog,
48
+ "aria-label": alt,
49
+ className: ImageZoom_module_css_default.dialog,
50
+ onClose: () => setOpen(false),
51
+ onKeyDown: (event) => {
52
+ var _a;
53
+ if (event.key === "Escape") (_a = dialog.current) == null ? void 0 : _a.close();
54
+ },
55
+ onClick: (event) => {
56
+ var _a;
57
+ if (event.target === event.currentTarget) (_a = dialog.current) == null ? void 0 : _a.close();
58
+ },
59
+ children: [
60
+ /* @__PURE__ */ jsxs("figure", { className: ImageZoom_module_css_default.figure, children: [
61
+ /* @__PURE__ */ jsx("img", { src: zoomSrc || src, alt, className: ImageZoom_module_css_default.zoomed }),
62
+ caption && /* @__PURE__ */ jsx("figcaption", { className: ImageZoom_module_css_default.caption, children: caption })
63
+ ] }),
64
+ /* @__PURE__ */ jsx(
65
+ "button",
66
+ {
67
+ type: "button",
68
+ className: ImageZoom_module_css_default.close,
69
+ "aria-label": closeLabel,
70
+ onClick: () => {
71
+ var _a;
72
+ return (_a = dialog.current) == null ? void 0 : _a.close();
73
+ },
74
+ children: /* @__PURE__ */ jsx(
75
+ "svg",
76
+ {
77
+ viewBox: "0 0 24 24",
78
+ width: "1.5em",
79
+ height: "1.5em",
80
+ "aria-hidden": "true",
81
+ children: /* @__PURE__ */ jsx(
82
+ "path",
83
+ {
84
+ d: "M6 6l12 12M18 6L6 18",
85
+ fill: "none",
86
+ stroke: "currentColor",
87
+ strokeWidth: "2",
88
+ strokeLinecap: "round"
89
+ }
90
+ )
91
+ }
92
+ )
93
+ }
94
+ )
95
+ ]
96
+ }
97
+ )
98
+ ] });
99
+ }
100
+ );
101
+ ImageZoom.displayName = "BolioUIImageZoom";
102
+ var ImageZoom_default = ImageZoom;
103
+
104
+ // core/ImageZoom/index.ts
105
+ var ImageZoom_default2 = ImageZoom_default;
106
+
107
+ export {
108
+ ImageZoom_default2 as ImageZoom_default
109
+ };
@@ -0,0 +1,232 @@
1
+ import {
2
+ log_warning_default
3
+ } from "./chunk-AXYDJGTN.js";
4
+ import {
5
+ use_portal_default
6
+ } from "./chunk-BXDUHMWS.js";
7
+ import {
8
+ use_latest_default
9
+ } from "./chunk-ZRORQ2WH.js";
10
+ import {
11
+ Button_default
12
+ } from "./chunk-DXHNQANX.js";
13
+ import {
14
+ use_theme_default
15
+ } from "./chunk-V5I4ORQQ.js";
16
+ import {
17
+ joinClasses
18
+ } from "./chunk-5KUROAEP.js";
19
+
20
+ // core/Tour/Tour.tsx
21
+ import React, { useEffect, useId, useRef, useState } from "react";
22
+ import { createPortal } from "react-dom";
23
+
24
+ // css-module-source:/Users/brunnoandrade/Desktop/BolioUI/bolio-ui/core/Tour/Tour.module.css.bolio-css-module-source
25
+ var Tour_module_css_default = { "tour": "Tour-module_tour__FLAxG", "spotlight": "Tour-module_spotlight__o7ukV", "dim": "Tour-module_dim__ZPmGZ", "card": "Tour-module_card__p9LCI", "centered": "Tour-module_centered__KJvbZ", "count": "Tour-module_count__2K7-G", "title": "Tour-module_title__Z-spV", "content": "Tour-module_content__qLvnb", "actions": "Tour-module_actions__HKbHi", "spacer": "Tour-module_spacer__dkdPy" };
26
+
27
+ // core/Tour/Tour.tsx
28
+ import { jsx, jsxs } from "react/jsx-runtime";
29
+ var CARD_WIDTH = 320;
30
+ var MARGIN = 8;
31
+ var GAP = 8;
32
+ var ROOM_BELOW = 240;
33
+ var resolve = (target) => !target ? null : typeof target === "string" ? document.querySelector(target) : typeof target === "function" ? target() : target;
34
+ var Tour = React.forwardRef(
35
+ ({
36
+ steps,
37
+ open,
38
+ onClose,
39
+ current: customCurrent,
40
+ initialCurrent = 0,
41
+ onCurrentChange,
42
+ onFinish,
43
+ previousLabel = "Back",
44
+ nextLabel = "Next",
45
+ finishLabel = "Done",
46
+ skipLabel = "Skip",
47
+ stepLabel = (index, count) => `${index + 1} of ${count}`,
48
+ spotlightPadding = 6,
49
+ className = "",
50
+ style,
51
+ onKeyDown,
52
+ ...props
53
+ }, ref) => {
54
+ const theme = use_theme_default();
55
+ const portal = use_portal_default("tour");
56
+ const id = useId();
57
+ const [selfCurrent, setSelfCurrent] = useState(initialCurrent);
58
+ const current = Math.max(
59
+ 0,
60
+ Math.min(customCurrent != null ? customCurrent : selfCurrent, steps.length - 1)
61
+ );
62
+ const step = steps[current];
63
+ const last = current === steps.length - 1;
64
+ const [rect, setRect] = useState(null);
65
+ const card = useRef(null);
66
+ const previous = useRef(null);
67
+ const latestSteps = use_latest_default(steps);
68
+ useEffect(() => {
69
+ var _a, _b;
70
+ const target = (_a = latestSteps.current[current]) == null ? void 0 : _a.target;
71
+ if (!open) return;
72
+ const element = resolve(target);
73
+ if (!element) {
74
+ if (target) log_warning_default("The target of the step was not found.", "Tour");
75
+ setRect(null);
76
+ return;
77
+ }
78
+ (_b = element.scrollIntoView) == null ? void 0 : _b.call(element, { block: "center", inline: "nearest" });
79
+ const update = () => setRect(element.getBoundingClientRect());
80
+ update();
81
+ window.addEventListener("resize", update);
82
+ window.addEventListener("scroll", update, true);
83
+ return () => {
84
+ window.removeEventListener("resize", update);
85
+ window.removeEventListener("scroll", update, true);
86
+ };
87
+ }, [open, current, latestSteps]);
88
+ useEffect(() => {
89
+ if (!open) return;
90
+ previous.current = document.activeElement;
91
+ return () => {
92
+ var _a, _b;
93
+ return (_b = (_a = previous.current) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);
94
+ };
95
+ }, [open]);
96
+ useEffect(() => {
97
+ var _a;
98
+ if (open && portal) (_a = card.current) == null ? void 0 : _a.focus({ preventScroll: true });
99
+ }, [open, current, portal]);
100
+ if (!open || !step || !portal) return null;
101
+ const go = (next) => {
102
+ if (customCurrent === void 0) setSelfCurrent(next);
103
+ if (onCurrentChange) onCurrentChange(next);
104
+ };
105
+ const finish = () => {
106
+ if (onFinish) onFinish();
107
+ onClose();
108
+ };
109
+ const keyDownHandler = (event) => {
110
+ var _a, _b;
111
+ if (onKeyDown) onKeyDown(event);
112
+ if (event.key === "Escape") {
113
+ event.stopPropagation();
114
+ return onClose();
115
+ }
116
+ if (event.key !== "Tab") return;
117
+ const buttons = Array.from(
118
+ (_b = (_a = card.current) == null ? void 0 : _a.querySelectorAll("button")) != null ? _b : []
119
+ );
120
+ const [first, end] = [buttons[0], buttons[buttons.length - 1]];
121
+ const onCard = document.activeElement === card.current;
122
+ if (!first) return;
123
+ if (event.shiftKey && (onCard || document.activeElement === first)) {
124
+ event.preventDefault();
125
+ end.focus();
126
+ } else if (!event.shiftKey && (onCard || document.activeElement === end)) {
127
+ event.preventDefault();
128
+ first.focus();
129
+ }
130
+ };
131
+ const width = Math.min(CARD_WIDTH, window.innerWidth - 2 * MARGIN);
132
+ const room = rect ? window.innerHeight - rect.bottom : 0;
133
+ const above = Boolean(rect && room < ROOM_BELOW && rect.top > room);
134
+ const cardStyle = rect ? {
135
+ width,
136
+ left: Math.max(
137
+ MARGIN,
138
+ Math.min(rect.left, window.innerWidth - width - MARGIN)
139
+ ),
140
+ ...above ? { bottom: window.innerHeight - rect.top + spotlightPadding + GAP } : { top: rect.bottom + spotlightPadding + GAP }
141
+ } : { width };
142
+ const dark = theme.type === "dark";
143
+ const tourStyle = {
144
+ "--tour-color": theme.palette.foreground,
145
+ "--tour-muted": theme.palette.accents_5,
146
+ "--tour-radius": theme.layout.radius,
147
+ "--tour-bg": dark ? theme.palette.accents_3 : theme.palette.background,
148
+ "--tour-shadow": theme.expressiveness.shadowMedium,
149
+ "--tour-dim": dark ? "rgb(0 0 0 / 60%)" : "rgb(0 0 0 / 55%)",
150
+ ...style
151
+ };
152
+ return createPortal(
153
+ /* @__PURE__ */ jsxs(
154
+ "div",
155
+ {
156
+ ref,
157
+ className: joinClasses(Tour_module_css_default.tour, className),
158
+ ...props,
159
+ style: tourStyle,
160
+ onKeyDown: keyDownHandler,
161
+ children: [
162
+ rect ? /* @__PURE__ */ jsx(
163
+ "div",
164
+ {
165
+ className: Tour_module_css_default.spotlight,
166
+ style: {
167
+ left: rect.left - spotlightPadding,
168
+ top: rect.top - spotlightPadding,
169
+ width: rect.width + 2 * spotlightPadding,
170
+ height: rect.height + 2 * spotlightPadding
171
+ }
172
+ }
173
+ ) : /* @__PURE__ */ jsx("div", { className: Tour_module_css_default.dim }),
174
+ /* @__PURE__ */ jsxs(
175
+ "div",
176
+ {
177
+ ref: card,
178
+ role: "dialog",
179
+ "aria-modal": "true",
180
+ "aria-labelledby": `${id}-title`,
181
+ "aria-describedby": `${id}-content`,
182
+ tabIndex: -1,
183
+ className: joinClasses(Tour_module_css_default.card, { [Tour_module_css_default.centered]: !rect }),
184
+ style: cardStyle,
185
+ children: [
186
+ /* @__PURE__ */ jsx("div", { className: Tour_module_css_default.count, children: stepLabel(current, steps.length) }),
187
+ /* @__PURE__ */ jsx("div", { id: `${id}-title`, className: Tour_module_css_default.title, children: step.title }),
188
+ /* @__PURE__ */ jsx("div", { id: `${id}-content`, className: Tour_module_css_default.content, children: step.content }),
189
+ /* @__PURE__ */ jsxs("div", { className: Tour_module_css_default.actions, children: [
190
+ !last && /* @__PURE__ */ jsx(Button_default, { auto: true, scale: 0.75, effect: false, onClick: onClose, children: skipLabel }),
191
+ /* @__PURE__ */ jsx("span", { className: Tour_module_css_default.spacer }),
192
+ current > 0 && /* @__PURE__ */ jsx(
193
+ Button_default,
194
+ {
195
+ auto: true,
196
+ scale: 0.75,
197
+ effect: false,
198
+ onClick: () => go(current - 1),
199
+ children: previousLabel
200
+ }
201
+ ),
202
+ /* @__PURE__ */ jsx(
203
+ Button_default,
204
+ {
205
+ auto: true,
206
+ scale: 0.75,
207
+ type: "primary",
208
+ effect: false,
209
+ onClick: last ? finish : () => go(current + 1),
210
+ children: last ? finishLabel : nextLabel
211
+ }
212
+ )
213
+ ] })
214
+ ]
215
+ }
216
+ )
217
+ ]
218
+ }
219
+ ),
220
+ portal
221
+ );
222
+ }
223
+ );
224
+ Tour.displayName = "BolioUITour";
225
+ var Tour_default = Tour;
226
+
227
+ // core/Tour/index.ts
228
+ var Tour_default2 = Tour_default;
229
+
230
+ export {
231
+ Tour_default2 as Tour_default
232
+ };
@@ -26,6 +26,9 @@ var CssBaseline = ({
26
26
  font-size: 16px;
27
27
  --bolioui-icons-background: ${theme.palette.background};
28
28
  box-sizing: border-box;
29
+ /* the native parts of the page follow the theme: the clock of a time
30
+ field, the scrollbars and the pickers of the browser */
31
+ color-scheme: ${theme.type};
29
32
  }
30
33
 
31
34
  body {
@@ -53,7 +56,6 @@ var CssBaseline = ({
53
56
  *:before,
54
57
  *:after {
55
58
  box-sizing: inherit;
56
- text-rendering: geometricPrecision;
57
59
  -webkit-tap-highlight-color: transparent;
58
60
  }
59
61