@bolio-ui/core 3.0.0-alpha.0 → 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 (249) hide show
  1. package/dist/BolioUIProvider/index.js +3 -3
  2. package/dist/Calendar/Calendar.d.ts +1 -0
  3. package/dist/Calendar/index.js +2 -2
  4. package/dist/Carousel/Carousel.d.ts +21 -0
  5. package/dist/Carousel/index.d.ts +3 -0
  6. package/dist/Carousel/index.js +14 -0
  7. package/dist/Collapse/Collapse.d.ts +3 -0
  8. package/dist/Collapse/index.js +3 -3
  9. package/dist/ColorInput/ColorInput.d.ts +24 -0
  10. package/dist/ColorInput/index.d.ts +3 -0
  11. package/dist/ColorInput/index.js +20 -0
  12. package/dist/ColorPicker/ColorPicker.d.ts +17 -0
  13. package/dist/ColorPicker/color-utils.d.ts +10 -0
  14. package/dist/ColorPicker/index.d.ts +3 -0
  15. package/dist/ColorPicker/index.js +14 -0
  16. package/dist/Command/index.js +4 -4
  17. package/dist/ContextMenu/ContextMenu.d.ts +13 -0
  18. package/dist/ContextMenu/index.d.ts +3 -0
  19. package/dist/ContextMenu/index.js +25 -0
  20. package/dist/CssBaseline/index.js +2 -2
  21. package/dist/DatePicker/index.js +3 -3
  22. package/dist/DateRangePicker/DateRangePicker.d.ts +29 -0
  23. package/dist/DateRangePicker/index.d.ts +3 -0
  24. package/dist/DateRangePicker/index.js +19 -0
  25. package/dist/Drawer/index.js +2 -2
  26. package/dist/Dropzone/Dropzone.d.ts +25 -0
  27. package/dist/Dropzone/DropzoneThumbnail.d.ts +9 -0
  28. package/dist/Dropzone/index.d.ts +3 -0
  29. package/dist/Dropzone/index.js +14 -0
  30. package/dist/ImageZoom/ImageZoom.d.ts +14 -0
  31. package/dist/ImageZoom/index.d.ts +3 -0
  32. package/dist/ImageZoom/index.js +17 -0
  33. package/dist/Menu/index.js +3 -3
  34. package/dist/Modal/index.js +2 -2
  35. package/dist/PinInput/PinInput.d.ts +25 -0
  36. package/dist/PinInput/index.d.ts +3 -0
  37. package/dist/PinInput/index.js +16 -0
  38. package/dist/SegmentedControl/SegmentedControl.d.ts +16 -0
  39. package/dist/SegmentedControl/SegmentedControlContext.d.ts +10 -0
  40. package/dist/SegmentedControl/SegmentedControlItem.d.ts +13 -0
  41. package/dist/SegmentedControl/index.d.ts +10 -0
  42. package/dist/SegmentedControl/index.js +14 -0
  43. package/dist/Select/SelectDropdown.d.ts +2 -0
  44. package/dist/Select/index.js +6 -6
  45. package/dist/Slider/index.js +3 -3
  46. package/dist/Splitter/Splitter.d.ts +14 -0
  47. package/dist/Splitter/SplitterContext.d.ts +6 -0
  48. package/dist/Splitter/SplitterPanel.d.ts +13 -0
  49. package/dist/Splitter/index.d.ts +9 -0
  50. package/dist/Splitter/index.js +14 -0
  51. package/dist/Table/Table.d.ts +11 -1
  52. package/dist/Table/TableBody.d.ts +8 -2
  53. package/dist/Table/TableColumn.d.ts +2 -0
  54. package/dist/Table/TableHead.d.ts +9 -1
  55. package/dist/Table/TableSelectBox.d.ts +9 -0
  56. package/dist/Table/TableTypes.d.ts +8 -0
  57. package/dist/Table/index.d.ts +1 -1
  58. package/dist/Table/index.js +3 -3
  59. package/dist/TagsInput/TagsInput.d.ts +26 -0
  60. package/dist/TagsInput/index.d.ts +3 -0
  61. package/dist/TagsInput/index.js +17 -0
  62. package/dist/Tour/Tour.d.ts +26 -0
  63. package/dist/Tour/index.d.ts +3 -0
  64. package/dist/Tour/index.js +23 -0
  65. package/dist/Tree/Tree.d.ts +17 -0
  66. package/dist/Tree/TreeContext.d.ts +17 -0
  67. package/dist/Tree/TreeNode.d.ts +8 -0
  68. package/dist/Tree/index.d.ts +3 -0
  69. package/dist/Tree/index.js +14 -0
  70. package/dist/chunk-2A4BSQ66.js +130 -0
  71. package/dist/{chunk-HIFS4JIO.js → chunk-2EYJZXS4.js} +7 -7
  72. package/dist/chunk-3S6G7WGK.js +109 -0
  73. package/dist/chunk-4X4ELIMQ.js +231 -0
  74. package/dist/{chunk-UVVBMWR4.js → chunk-AG2NWQYL.js} +18 -4
  75. package/dist/chunk-BHQRX76X.js +275 -0
  76. package/dist/{chunk-YHZFOVVI.js → chunk-DIMJQLWY.js} +27 -37
  77. package/dist/chunk-FFEAKF3A.js +220 -0
  78. package/dist/{chunk-6BCLZSSK.js → chunk-FL6J36B7.js} +5 -4
  79. package/dist/chunk-G4KB56RO.js +217 -0
  80. package/dist/chunk-IJGIEX5J.js +211 -0
  81. package/dist/chunk-K6UULETP.js +244 -0
  82. package/dist/chunk-MDSRXACM.js +212 -0
  83. package/dist/chunk-OKZRHSSG.js +271 -0
  84. package/dist/{chunk-IBC5BABS.js → chunk-P245HSVB.js} +190 -155
  85. package/dist/chunk-REWKR7S3.js +109 -0
  86. package/dist/chunk-STYC6O24.js +232 -0
  87. package/dist/{chunk-FQU5SKDF.js → chunk-WFGUAR7K.js} +58 -24
  88. package/dist/{chunk-6KMHJRCY.js → chunk-WIIDIZYK.js} +4 -1
  89. package/dist/chunk-X4TPC7HS.js +160 -0
  90. package/dist/{chunk-TKICX5R6.js → chunk-ZNDN2VPZ.js} +225 -33
  91. package/dist/css/Button-ButtonIcon.css +3 -2
  92. package/dist/css/ButtonDropdown-ButtonDropdownItem.css +0 -1
  93. package/dist/css/Calendar.css +11 -1
  94. package/dist/css/Carousel.css +127 -0
  95. package/dist/css/Collapse.css +29 -9
  96. package/dist/css/ColorInput.css +95 -0
  97. package/dist/css/ColorPicker.css +183 -0
  98. package/dist/css/ContextMenu.css +17 -0
  99. package/dist/css/DatePicker.css +1 -1
  100. package/dist/css/DateRangePicker.css +113 -0
  101. package/dist/css/Dropzone.css +160 -0
  102. package/dist/css/ImageZoom.css +93 -0
  103. package/dist/css/Input.css +3 -3
  104. package/dist/css/NumberInput.css +4 -4
  105. package/dist/css/PinInput.css +40 -0
  106. package/dist/css/SegmentedControl-SegmentedControlItem.css +65 -0
  107. package/dist/css/SegmentedControl.css +13 -0
  108. package/dist/css/Select-SelectDropdown.css +4 -2
  109. package/dist/css/Select-SelectMultipleValue.css +1 -0
  110. package/dist/css/Select-SelectOption.css +27 -7
  111. package/dist/css/Select.css +2 -1
  112. package/dist/css/Splitter.css +77 -0
  113. package/dist/css/Table-TableBody.css +10 -0
  114. package/dist/css/Table-TableHead.css +41 -0
  115. package/dist/css/Table-TableSelectBox.css +11 -0
  116. package/dist/css/TagsInput.css +99 -0
  117. package/dist/css/Tour.css +81 -0
  118. package/dist/css/Tree.css +88 -0
  119. package/dist/index.d.ts +27 -1
  120. package/dist/index.js +98 -46
  121. package/dist/styles.css +3902 -2520
  122. package/esm/BolioUIProvider/index.js +2 -2
  123. package/esm/Calendar/Calendar.d.ts +1 -0
  124. package/esm/Calendar/index.js +1 -1
  125. package/esm/Carousel/Carousel.d.ts +21 -0
  126. package/esm/Carousel/index.d.ts +3 -0
  127. package/esm/Carousel/index.js +14 -0
  128. package/esm/Collapse/Collapse.d.ts +3 -0
  129. package/esm/Collapse/index.js +2 -2
  130. package/esm/ColorInput/ColorInput.d.ts +24 -0
  131. package/esm/ColorInput/index.d.ts +3 -0
  132. package/esm/ColorInput/index.js +20 -0
  133. package/esm/ColorPicker/ColorPicker.d.ts +17 -0
  134. package/esm/ColorPicker/color-utils.d.ts +10 -0
  135. package/esm/ColorPicker/index.d.ts +3 -0
  136. package/esm/ColorPicker/index.js +14 -0
  137. package/esm/Command/index.js +4 -4
  138. package/esm/ContextMenu/ContextMenu.d.ts +13 -0
  139. package/esm/ContextMenu/index.d.ts +3 -0
  140. package/esm/ContextMenu/index.js +25 -0
  141. package/esm/CssBaseline/index.js +1 -1
  142. package/esm/DatePicker/index.js +2 -2
  143. package/esm/DateRangePicker/DateRangePicker.d.ts +29 -0
  144. package/esm/DateRangePicker/index.d.ts +3 -0
  145. package/esm/DateRangePicker/index.js +19 -0
  146. package/esm/Drawer/index.js +2 -2
  147. package/esm/Dropzone/Dropzone.d.ts +25 -0
  148. package/esm/Dropzone/DropzoneThumbnail.d.ts +9 -0
  149. package/esm/Dropzone/index.d.ts +3 -0
  150. package/esm/Dropzone/index.js +14 -0
  151. package/esm/ImageZoom/ImageZoom.d.ts +14 -0
  152. package/esm/ImageZoom/index.d.ts +3 -0
  153. package/esm/ImageZoom/index.js +17 -0
  154. package/esm/Menu/index.js +2 -2
  155. package/esm/Modal/index.js +2 -2
  156. package/esm/PinInput/PinInput.d.ts +25 -0
  157. package/esm/PinInput/index.d.ts +3 -0
  158. package/esm/PinInput/index.js +16 -0
  159. package/esm/SegmentedControl/SegmentedControl.d.ts +16 -0
  160. package/esm/SegmentedControl/SegmentedControlContext.d.ts +10 -0
  161. package/esm/SegmentedControl/SegmentedControlItem.d.ts +13 -0
  162. package/esm/SegmentedControl/index.d.ts +10 -0
  163. package/esm/SegmentedControl/index.js +14 -0
  164. package/esm/Select/SelectDropdown.d.ts +2 -0
  165. package/esm/Select/index.js +5 -5
  166. package/esm/Slider/index.js +2 -2
  167. package/esm/Splitter/Splitter.d.ts +14 -0
  168. package/esm/Splitter/SplitterContext.d.ts +6 -0
  169. package/esm/Splitter/SplitterPanel.d.ts +13 -0
  170. package/esm/Splitter/index.d.ts +9 -0
  171. package/esm/Splitter/index.js +14 -0
  172. package/esm/Table/Table.d.ts +11 -1
  173. package/esm/Table/TableBody.d.ts +8 -2
  174. package/esm/Table/TableColumn.d.ts +2 -0
  175. package/esm/Table/TableHead.d.ts +9 -1
  176. package/esm/Table/TableSelectBox.d.ts +9 -0
  177. package/esm/Table/TableTypes.d.ts +8 -0
  178. package/esm/Table/index.d.ts +1 -1
  179. package/esm/Table/index.js +2 -2
  180. package/esm/TagsInput/TagsInput.d.ts +26 -0
  181. package/esm/TagsInput/index.d.ts +3 -0
  182. package/esm/TagsInput/index.js +17 -0
  183. package/esm/Tour/Tour.d.ts +26 -0
  184. package/esm/Tour/index.d.ts +3 -0
  185. package/esm/Tour/index.js +23 -0
  186. package/esm/Tree/Tree.d.ts +17 -0
  187. package/esm/Tree/TreeContext.d.ts +17 -0
  188. package/esm/Tree/TreeNode.d.ts +8 -0
  189. package/esm/Tree/index.d.ts +3 -0
  190. package/esm/Tree/index.js +14 -0
  191. package/esm/chunk-2A4BSQ66.js +130 -0
  192. package/esm/{chunk-HIFS4JIO.js → chunk-2EYJZXS4.js} +4 -4
  193. package/esm/chunk-3S6G7WGK.js +109 -0
  194. package/esm/chunk-4X4ELIMQ.js +231 -0
  195. package/esm/{chunk-UVVBMWR4.js → chunk-AG2NWQYL.js} +18 -4
  196. package/esm/chunk-BHQRX76X.js +275 -0
  197. package/esm/{chunk-YHZFOVVI.js → chunk-DIMJQLWY.js} +27 -37
  198. package/esm/chunk-FFEAKF3A.js +220 -0
  199. package/esm/{chunk-6BCLZSSK.js → chunk-FL6J36B7.js} +4 -3
  200. package/esm/chunk-G4KB56RO.js +217 -0
  201. package/esm/chunk-IJGIEX5J.js +211 -0
  202. package/esm/chunk-K6UULETP.js +244 -0
  203. package/esm/chunk-MDSRXACM.js +212 -0
  204. package/esm/chunk-OKZRHSSG.js +271 -0
  205. package/esm/chunk-P245HSVB.js +450 -0
  206. package/esm/chunk-REWKR7S3.js +109 -0
  207. package/esm/chunk-STYC6O24.js +232 -0
  208. package/esm/{chunk-FQU5SKDF.js → chunk-WFGUAR7K.js} +60 -26
  209. package/esm/{chunk-6KMHJRCY.js → chunk-WIIDIZYK.js} +4 -1
  210. package/esm/chunk-X4TPC7HS.js +160 -0
  211. package/esm/chunk-ZNDN2VPZ.js +543 -0
  212. package/esm/css/Button-ButtonIcon.css +3 -2
  213. package/esm/css/ButtonDropdown-ButtonDropdownItem.css +0 -1
  214. package/esm/css/Calendar.css +11 -1
  215. package/esm/css/Carousel.css +127 -0
  216. package/esm/css/Collapse.css +29 -9
  217. package/esm/css/ColorInput.css +95 -0
  218. package/esm/css/ColorPicker.css +183 -0
  219. package/esm/css/ContextMenu.css +17 -0
  220. package/esm/css/DatePicker.css +1 -1
  221. package/esm/css/DateRangePicker.css +113 -0
  222. package/esm/css/Dropzone.css +160 -0
  223. package/esm/css/ImageZoom.css +93 -0
  224. package/esm/css/Input.css +3 -3
  225. package/esm/css/NumberInput.css +4 -4
  226. package/esm/css/PinInput.css +40 -0
  227. package/esm/css/SegmentedControl-SegmentedControlItem.css +65 -0
  228. package/esm/css/SegmentedControl.css +13 -0
  229. package/esm/css/Select-SelectDropdown.css +4 -2
  230. package/esm/css/Select-SelectMultipleValue.css +1 -0
  231. package/esm/css/Select-SelectOption.css +27 -7
  232. package/esm/css/Select.css +2 -1
  233. package/esm/css/Splitter.css +77 -0
  234. package/esm/css/Table-TableBody.css +10 -0
  235. package/esm/css/Table-TableHead.css +41 -0
  236. package/esm/css/Table-TableSelectBox.css +11 -0
  237. package/esm/css/TagsInput.css +99 -0
  238. package/esm/css/Tour.css +81 -0
  239. package/esm/css/Tree.css +88 -0
  240. package/esm/index.d.ts +27 -1
  241. package/esm/index.js +115 -63
  242. package/esm/styles.css +3564 -2182
  243. package/package.json +3 -3
  244. package/esm/chunk-IBC5BABS.js +0 -415
  245. package/esm/chunk-TKICX5R6.js +0 -351
  246. package/dist/{chunk-2PRUFY2Q.js → chunk-4ZGR7UMX.js} +2 -2
  247. package/dist/{chunk-FLK7EAOE.js → chunk-IUZV5Y27.js} +2 -2
  248. package/esm/{chunk-2PRUFY2Q.js → chunk-4ZGR7UMX.js} +3 -3
  249. package/esm/{chunk-FLK7EAOE.js → chunk-IUZV5Y27.js} +3 -3
@@ -0,0 +1,232 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkAXYDJGTNjs = require('./chunk-AXYDJGTN.js');
4
+
5
+
6
+ var _chunkBXDUHMWSjs = require('./chunk-BXDUHMWS.js');
7
+
8
+
9
+ var _chunkZRORQ2WHjs = require('./chunk-ZRORQ2WH.js');
10
+
11
+
12
+ var _chunkDXHNQANXjs = require('./chunk-DXHNQANX.js');
13
+
14
+
15
+ var _chunkV5I4ORQQjs = require('./chunk-V5I4ORQQ.js');
16
+
17
+
18
+ var _chunk5KUROAEPjs = require('./chunk-5KUROAEP.js');
19
+
20
+ // core/Tour/Tour.tsx
21
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
22
+ var _reactdom = require('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
+ var _jsxruntime = require('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 = _react2.default.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 = _chunkV5I4ORQQjs.use_theme_default.call(void 0, );
55
+ const portal = _chunkBXDUHMWSjs.use_portal_default.call(void 0, "tour");
56
+ const id = _react.useId.call(void 0, );
57
+ const [selfCurrent, setSelfCurrent] = _react.useState.call(void 0, 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] = _react.useState.call(void 0, null);
65
+ const card = _react.useRef.call(void 0, null);
66
+ const previous = _react.useRef.call(void 0, null);
67
+ const latestSteps = _chunkZRORQ2WHjs.use_latest_default.call(void 0, steps);
68
+ _react.useEffect.call(void 0, () => {
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) _chunkAXYDJGTNjs.log_warning_default.call(void 0, "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
+ _react.useEffect.call(void 0, () => {
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
+ _react.useEffect.call(void 0, () => {
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 _reactdom.createPortal.call(void 0,
153
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
154
+ "div",
155
+ {
156
+ ref,
157
+ className: _chunk5KUROAEPjs.joinClasses.call(void 0, Tour_module_css_default.tour, className),
158
+ ...props,
159
+ style: tourStyle,
160
+ onKeyDown: keyDownHandler,
161
+ children: [
162
+ rect ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
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__ */ _jsxruntime.jsx.call(void 0, "div", { className: Tour_module_css_default.dim }),
174
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
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: _chunk5KUROAEPjs.joinClasses.call(void 0, Tour_module_css_default.card, { [Tour_module_css_default.centered]: !rect }),
184
+ style: cardStyle,
185
+ children: [
186
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: Tour_module_css_default.count, children: stepLabel(current, steps.length) }),
187
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id: `${id}-title`, className: Tour_module_css_default.title, children: step.title }),
188
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { id: `${id}-content`, className: Tour_module_css_default.content, children: step.content }),
189
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: Tour_module_css_default.actions, children: [
190
+ !last && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDXHNQANXjs.Button_default, { auto: true, scale: 0.75, effect: false, onClick: onClose, children: skipLabel }),
191
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: Tour_module_css_default.spacer }),
192
+ current > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
193
+ _chunkDXHNQANXjs.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__ */ _jsxruntime.jsx.call(void 0,
203
+ _chunkDXHNQANXjs.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
+
231
+
232
+ exports.Tour_default = Tour_default2;
@@ -6,10 +6,10 @@ var _chunkHKOESPKZjs = require('./chunk-HKOESPKZ.js');
6
6
  var _chunkAXYDJGTNjs = require('./chunk-AXYDJGTN.js');
7
7
 
8
8
 
9
- var _chunkZRORQ2WHjs = require('./chunk-ZRORQ2WH.js');
9
+ var _chunk33BUV2RXjs = require('./chunk-33BUV2RX.js');
10
10
 
11
11
 
12
- var _chunk33BUV2RXjs = require('./chunk-33BUV2RX.js');
12
+ var _chunkZRORQ2WHjs = require('./chunk-ZRORQ2WH.js');
13
13
 
14
14
 
15
15
 
@@ -127,7 +127,7 @@ var CollapseContext = _react2.default.createContext(defaultContext);
127
127
  var useCollapseContext = () => _react2.default.useContext(CollapseContext);
128
128
 
129
129
  // css-module-source:/Users/brunnoandrade/Desktop/BolioUI/bolio-ui/core/Collapse/Collapse.module.css.bolio-css-module-source
130
- var Collapse_module_css_default = { "view": "Collapse-module_view__wymqp", "title": "Collapse-module_title__ceZ1h", "subtitle": "Collapse-module_subtitle__wv5KS", "content": "Collapse-module_content__xZkpG" };
130
+ var Collapse_module_css_default = { "view": "Collapse-module_view__wymqp", "title": "Collapse-module_title__ceZ1h", "trigger": "Collapse-module_trigger__0Q0YR", "label": "Collapse-module_label__tdCh3", "subtitle": "Collapse-module_subtitle__wv5KS", "content": "Collapse-module_content__xZkpG" };
131
131
 
132
132
  // core/Collapse/Collapse.tsx
133
133
 
@@ -137,6 +137,9 @@ var CollapseComponent = _react2.default.forwardRef(
137
137
  title,
138
138
  subtitle,
139
139
  initialVisible = false,
140
+ visible: controlledVisible,
141
+ onVisibleChange,
142
+ disabled = false,
140
143
  shadow = false,
141
144
  className = "",
142
145
  index,
@@ -146,7 +149,12 @@ var CollapseComponent = _react2.default.forwardRef(
146
149
  const theme = _chunkV5I4ORQQjs.use_theme_default.call(void 0, );
147
150
  const { SCALES } = _chunkMAICNLTYjs.use_scale_default.call(void 0, );
148
151
  const { values, updateValues } = useCollapseContext();
149
- const [visible, setVisible, visibleRef] = _chunk33BUV2RXjs.use_current_state_default.call(void 0, initialVisible);
152
+ const [selfVisible, setVisible, visibleRef] = _chunk33BUV2RXjs.use_current_state_default.call(void 0, initialVisible);
153
+ const isControlled = controlledVisible !== void 0;
154
+ const visible = isControlled ? controlledVisible : selfVisible;
155
+ const baseId = _react.useId.call(void 0, );
156
+ const triggerId = `${baseId}-trigger`;
157
+ const panelId = `${baseId}-panel`;
150
158
  if (!title) {
151
159
  _chunkAXYDJGTNjs.log_warning_default.call(void 0, '"title" is required.', "Collapse");
152
160
  }
@@ -156,15 +164,12 @@ var CollapseComponent = _react2.default.forwardRef(
156
164
  setVisible(isActive);
157
165
  }, [index, setVisible, values]);
158
166
  const clickHandler = () => {
159
- const next = !visibleRef.current;
160
- setVisible(next);
167
+ if (disabled) return;
168
+ const next = !(isControlled ? controlledVisible : visibleRef.current);
169
+ if (!isControlled) setVisible(next);
170
+ if (onVisibleChange) onVisibleChange(next);
161
171
  if (updateValues) updateValues(index, next);
162
172
  };
163
- const keyDownHandler = (event) => {
164
- if (event.key !== "Enter" && event.key !== " ") return;
165
- event.preventDefault();
166
- clickHandler();
167
- };
168
173
  const collapseStyle = shadow ? {
169
174
  boxShadow: theme.expressiveness.shadowSmall,
170
175
  border: "none",
@@ -195,27 +200,29 @@ var CollapseComponent = _react2.default.forwardRef(
195
200
  "div",
196
201
  {
197
202
  className: Collapse_module_css_default.view,
198
- role: "button",
199
- tabIndex: 0,
200
- "aria-expanded": visible,
201
203
  onClick: clickHandler,
202
- onKeyDown: keyDownHandler,
203
204
  style: {
204
- "--collapse-focus-color": theme.palette.primary
205
+ "--collapse-focus-color": theme.palette.primary,
206
+ cursor: disabled ? "not-allowed" : void 0
205
207
  },
206
208
  children: [
207
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
208
- "div",
209
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: Collapse_module_css_default.title, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
210
+ "button",
209
211
  {
210
- className: Collapse_module_css_default.title,
212
+ type: "button",
213
+ id: triggerId,
214
+ className: Collapse_module_css_default.trigger,
215
+ "data-collapse-trigger": "",
216
+ "aria-expanded": visible,
217
+ "aria-controls": panelId,
218
+ disabled,
211
219
  style: { color: theme.palette.foreground },
212
220
  children: [
213
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { children: title }),
214
- " ",
221
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: Collapse_module_css_default.label, children: title }),
215
222
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CollapseIcon_default, { active: visible })
216
223
  ]
217
224
  }
218
- ),
225
+ ) }),
219
226
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
220
227
  "div",
221
228
  {
@@ -230,9 +237,10 @@ var CollapseComponent = _react2.default.forwardRef(
230
237
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, expand_default, { isExpanded: visible, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
231
238
  "div",
232
239
  {
240
+ id: panelId,
233
241
  className: Collapse_module_css_default.content,
234
242
  style: {
235
- padding: `${SCALES.pt(1.2)} ${SCALES.pr(0)} ${SCALES.pb(1.2)} ${SCALES.pl(0)}`
243
+ padding: `${SCALES.pt(0.6)} ${SCALES.pr(0)} ${SCALES.pb(0)} ${SCALES.pl(0)}`
236
244
  },
237
245
  children
238
246
  }
@@ -259,6 +267,7 @@ function CollapseGroupComponent({
259
267
  accordion = true,
260
268
  className = "",
261
269
  style,
270
+ onKeyDown,
262
271
  ...props
263
272
  }) {
264
273
  const { SCALES } = _chunkMAICNLTYjs.use_scale_default.call(void 0, );
@@ -290,6 +299,22 @@ function CollapseGroupComponent({
290
299
  () => _chunkUX2B3G6Ujs.setChildrenIndex.call(void 0, children, [Collapse_default]),
291
300
  [children]
292
301
  );
302
+ const keyDownHandler = (event) => {
303
+ if (onKeyDown) onKeyDown(event);
304
+ const { key } = event;
305
+ if (!["ArrowDown", "ArrowUp", "Home", "End"].includes(key)) return;
306
+ const triggers = Array.from(
307
+ event.currentTarget.querySelectorAll(
308
+ "[data-collapse-trigger]"
309
+ )
310
+ ).filter((trigger) => !trigger.disabled);
311
+ const current = triggers.indexOf(event.target);
312
+ if (current < 0) return;
313
+ event.preventDefault();
314
+ const last = triggers.length - 1;
315
+ const next = key === "Home" ? 0 : key === "End" ? last : key === "ArrowDown" ? (current + 1) % triggers.length : (current + last) % triggers.length;
316
+ triggers[next].focus();
317
+ };
293
318
  const groupStyle = {
294
319
  width: SCALES.width(1, "auto"),
295
320
  height: SCALES.height(1, "auto"),
@@ -297,7 +322,16 @@ function CollapseGroupComponent({
297
322
  margin: `${SCALES.mt(0)} ${SCALES.mr(0)} ${SCALES.mb(0)} ${SCALES.ml(0)}`,
298
323
  ...style
299
324
  };
300
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CollapseContext.Provider, { value: initialValue, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: classes, ...props, style: groupStyle, children: hasIndexChildren }) });
325
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CollapseContext.Provider, { value: initialValue, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
326
+ "div",
327
+ {
328
+ className: classes,
329
+ ...props,
330
+ onKeyDown: keyDownHandler,
331
+ style: groupStyle,
332
+ children: hasIndexChildren
333
+ }
334
+ ) });
301
335
  }
302
336
  CollapseGroupComponent.displayName = "BolioUICollapseGroup";
303
337
  var CollapseGroup = _chunkMAICNLTYjs.with_scale_default.call(void 0, CollapseGroupComponent);
@@ -25,6 +25,10 @@ var CssBaseline = ({
25
25
  html {
26
26
  font-size: 16px;
27
27
  --bolioui-icons-background: ${theme.palette.background};
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};
28
32
  }
29
33
 
30
34
  body {
@@ -52,7 +56,6 @@ var CssBaseline = ({
52
56
  *:before,
53
57
  *:after {
54
58
  box-sizing: inherit;
55
- text-rendering: geometricPrecision;
56
59
  -webkit-tap-highlight-color: transparent;
57
60
  }
58
61
 
@@ -0,0 +1,160 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkKBZEYKCZjs = require('./chunk-KBZEYKCZ.js');
4
+
5
+
6
+
7
+ var _chunkMAICNLTYjs = require('./chunk-MAICNLTY.js');
8
+
9
+
10
+ var _chunkV5I4ORQQjs = require('./chunk-V5I4ORQQ.js');
11
+
12
+
13
+ var _chunk5KUROAEPjs = require('./chunk-5KUROAEP.js');
14
+
15
+ // core/PinInput/PinInput.tsx
16
+ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
17
+
18
+ // css-module-source:/Users/brunnoandrade/Desktop/BolioUI/bolio-ui/core/PinInput/PinInput.module.css.bolio-css-module-source
19
+ var PinInput_module_css_default = { "pin": "PinInput-module_pin__XgaDZ", "box": "PinInput-module_box__DIU85" };
20
+
21
+ // core/PinInput/PinInput.tsx
22
+ var _jsxruntime = require('react/jsx-runtime');
23
+ var defaultBoxLabel = (index, length) => `Character ${index + 1} of ${length}`;
24
+ var PinInputComponent = _react2.default.forwardRef(
25
+ ({
26
+ length = 6,
27
+ value: customValue,
28
+ initialValue = "",
29
+ onChange,
30
+ onComplete,
31
+ numeric = false,
32
+ mask = false,
33
+ boxLabel = defaultBoxLabel,
34
+ disabled = false,
35
+ error = false,
36
+ type = "default",
37
+ rounded = false,
38
+ filled = false,
39
+ light = false,
40
+ ghost = false,
41
+ subtle = false,
42
+ className = "",
43
+ style,
44
+ ...props
45
+ }, ref) => {
46
+ const theme = _chunkV5I4ORQQjs.use_theme_default.call(void 0, );
47
+ const { SCALES } = _chunkMAICNLTYjs.use_scale_default.call(void 0, );
48
+ const colors = _chunkKBZEYKCZjs.getColors.call(void 0, theme.palette, error ? "error" : type, disabled, {
49
+ filled,
50
+ light,
51
+ ghost,
52
+ subtle
53
+ });
54
+ const isControlled = customValue !== void 0;
55
+ const [selfValue, setSelfValue] = _react.useState.call(void 0, initialValue.slice(0, length));
56
+ const value = isControlled ? customValue : selfValue;
57
+ const boxes = _react.useRef.call(void 0, []);
58
+ const latest = _react.useRef.call(void 0, value);
59
+ latest.current = value;
60
+ const focusBox = (index) => {
61
+ var _a;
62
+ return (_a = boxes.current[Math.max(0, Math.min(index, length - 1))]) == null ? void 0 : _a.focus();
63
+ };
64
+ const commit = (next) => {
65
+ if (next === value) return;
66
+ latest.current = next;
67
+ if (!isControlled) setSelfValue(next);
68
+ if (onChange) onChange(next);
69
+ if (onComplete && next.length === length) onComplete(next);
70
+ };
71
+ const remove = (index) => commit(value.slice(0, index) + value.slice(index + 1));
72
+ const changeHandler = (index) => (event) => {
73
+ const typed = event.target.value;
74
+ if (typed === "") return remove(index);
75
+ const chars = typed.split("").filter((char) => !numeric || /\d/.test(char));
76
+ if (!chars.length) return;
77
+ const at = Math.min(index, value.length);
78
+ const rest = chars.length === 1 ? value.slice(at + 1) : "";
79
+ commit((value.slice(0, at) + chars.join("") + rest).slice(0, length));
80
+ focusBox(at + chars.length);
81
+ };
82
+ const keyDownHandler = (index) => (event) => {
83
+ if (event.key === "Backspace") {
84
+ event.preventDefault();
85
+ if (index < value.length) return remove(index);
86
+ if (index > 0) {
87
+ remove(index - 1);
88
+ focusBox(index - 1);
89
+ }
90
+ } else if (event.key === "ArrowLeft") {
91
+ event.preventDefault();
92
+ focusBox(index - 1);
93
+ } else if (event.key === "ArrowRight") {
94
+ event.preventDefault();
95
+ focusBox(index + 1);
96
+ }
97
+ };
98
+ const focusHandler = (index) => (event) => {
99
+ if (index > latest.current.length)
100
+ return focusBox(latest.current.length);
101
+ event.target.select();
102
+ };
103
+ const pinStyle = {
104
+ "--pin-size": SCALES.height(2.75),
105
+ "--input-border": colors.borderColor,
106
+ "--input-radius": rounded ? "25px" : theme.layout.radius,
107
+ "--input-bg": colors.bgColor,
108
+ "--input-hover-border": colors.hoverBorder,
109
+ "--input-hover-bg": colors.hoverBgColor,
110
+ "--input-focus-border": colors.focusBorder,
111
+ "--input-color": colors.color,
112
+ fontSize: SCALES.font(1),
113
+ margin: `${SCALES.mt(0)} ${SCALES.mr(0)} ${SCALES.mb(0)} ${SCALES.ml(0)}`,
114
+ ...style
115
+ };
116
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
117
+ "div",
118
+ {
119
+ ref,
120
+ role: "group",
121
+ className: _chunk5KUROAEPjs.use_classes_default.call(void 0, PinInput_module_css_default.pin, className),
122
+ ...props,
123
+ style: pinStyle,
124
+ children: Array.from({ length }, (_, index) => {
125
+ var _a;
126
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
127
+ "input",
128
+ {
129
+ ref: (node) => {
130
+ boxes.current[index] = node;
131
+ },
132
+ type: mask ? "password" : "text",
133
+ inputMode: numeric ? "numeric" : "text",
134
+ autoComplete: index === 0 ? "one-time-code" : "off",
135
+ "aria-label": boxLabel(index, length),
136
+ "aria-invalid": error || void 0,
137
+ className: PinInput_module_css_default.box,
138
+ value: (_a = value[index]) != null ? _a : "",
139
+ disabled,
140
+ onChange: changeHandler(index),
141
+ onKeyDown: keyDownHandler(index),
142
+ onFocus: focusHandler(index)
143
+ },
144
+ index
145
+ );
146
+ })
147
+ }
148
+ );
149
+ }
150
+ );
151
+ PinInputComponent.displayName = "BolioUIPinInput";
152
+ var PinInput = _chunkMAICNLTYjs.with_scale_default.call(void 0, PinInputComponent);
153
+ var PinInput_default = PinInput;
154
+
155
+ // core/PinInput/index.ts
156
+ var PinInput_default2 = PinInput_default;
157
+
158
+
159
+
160
+ exports.PinInput_default = PinInput_default2;