@sikka/hawa 0.25.2-next → 0.26.1-next

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.
@@ -0,0 +1,210 @@
1
+ import {
2
+ cn
3
+ } from "../chunk-TE3BKEXL.mjs";
4
+
5
+ // components/elements/signature/Signature.tsx
6
+ import React3, { useRef, useEffect } from "react";
7
+ import SignaturePad from "signature_pad";
8
+ import trimCanvas from "trim-canvas";
9
+
10
+ // components/elements/label/Label.tsx
11
+ import * as React2 from "react";
12
+
13
+ // components/elements/tooltip/Tooltip.tsx
14
+ import React from "react";
15
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
16
+ var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React.createElement(
17
+ TooltipPrimitive.Content,
18
+ {
19
+ ref,
20
+ sideOffset,
21
+ className: cn(
22
+ "hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
23
+ className
24
+ ),
25
+ ...props
26
+ }
27
+ ));
28
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
29
+ var TooltipArrow = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(TooltipPrimitive.Arrow, { ref, className: cn(className), ...props }));
30
+ TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
31
+ var Tooltip = ({
32
+ side,
33
+ open,
34
+ content,
35
+ children,
36
+ defaultOpen,
37
+ onOpenChange,
38
+ triggerProps,
39
+ contentProps,
40
+ providerProps,
41
+ delayDuration = 300,
42
+ ...props
43
+ }) => {
44
+ return /* @__PURE__ */ React.createElement(
45
+ TooltipPrimitive.TooltipProvider,
46
+ {
47
+ delayDuration,
48
+ ...providerProps
49
+ },
50
+ /* @__PURE__ */ React.createElement(
51
+ TooltipPrimitive.Root,
52
+ {
53
+ open,
54
+ defaultOpen,
55
+ onOpenChange,
56
+ ...props
57
+ },
58
+ /* @__PURE__ */ React.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
59
+ /* @__PURE__ */ React.createElement(TooltipContent, { side, align: "center", ...contentProps }, content)
60
+ )
61
+ );
62
+ };
63
+
64
+ // components/elements/label/Label.tsx
65
+ var Label = React2.forwardRef(({ className, hint, hintSide, required, children, ...props }, ref) => /* @__PURE__ */ React2.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all" }, /* @__PURE__ */ React2.createElement(
66
+ "label",
67
+ {
68
+ ref,
69
+ className: cn(
70
+ "hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70",
71
+ className
72
+ ),
73
+ ...props
74
+ },
75
+ children,
76
+ required && /* @__PURE__ */ React2.createElement("span", { className: "hawa-mx-0.5 hawa-text-red-500" }, "*")
77
+ ), hint && /* @__PURE__ */ React2.createElement(
78
+ Tooltip,
79
+ {
80
+ content: hint,
81
+ side: hintSide,
82
+ triggerProps: {
83
+ tabIndex: -1,
84
+ onClick: (event) => event.preventDefault()
85
+ }
86
+ },
87
+ /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement(
88
+ "svg",
89
+ {
90
+ xmlns: "http://www.w3.org/2000/svg",
91
+ className: "hawa-h-[14px] hawa-w-[14px] hawa-cursor-help",
92
+ viewBox: "0 0 24 24",
93
+ fill: "none",
94
+ stroke: "currentColor",
95
+ strokeWidth: "2",
96
+ strokeLinecap: "round",
97
+ strokeLinejoin: "round"
98
+ },
99
+ /* @__PURE__ */ React2.createElement("circle", { cx: "12", cy: "12", r: "10" }),
100
+ /* @__PURE__ */ React2.createElement("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }),
101
+ /* @__PURE__ */ React2.createElement("path", { d: "M12 17h.01" })
102
+ ))
103
+ )));
104
+ Label.displayName = "Label";
105
+
106
+ // components/elements/signature/Signature.tsx
107
+ var Signature = ({
108
+ canvasProps,
109
+ clearOnResize = false,
110
+ onGetImage,
111
+ texts,
112
+ label,
113
+ labelProps,
114
+ ...sigPadProps
115
+ }) => {
116
+ const canvasRef = useRef(null);
117
+ const sigPadRef = useRef(null);
118
+ const checkClearOnResize = () => {
119
+ if (!clearOnResize) {
120
+ return;
121
+ }
122
+ resizeCanvas();
123
+ };
124
+ const resizeCanvas = () => {
125
+ var _a;
126
+ const canvas = canvasRef.current;
127
+ if (canvas && canvas.parentElement) {
128
+ const ratio = Math.max(window.devicePixelRatio || 1, 1);
129
+ if (typeof (canvasProps == null ? void 0 : canvasProps.width) === "undefined") {
130
+ canvas.width = canvas.parentElement.offsetWidth * ratio;
131
+ } else {
132
+ canvas.width = Number(canvasProps.width) * ratio;
133
+ }
134
+ if (typeof (canvasProps == null ? void 0 : canvasProps.height) === "undefined") {
135
+ canvas.height = canvas.parentElement.offsetHeight * ratio;
136
+ } else {
137
+ canvas.height = Number(canvasProps.height) * ratio;
138
+ }
139
+ (_a = canvas.getContext("2d")) == null ? void 0 : _a.scale(ratio, ratio);
140
+ clear();
141
+ }
142
+ };
143
+ const getTrimmedCanvas = () => {
144
+ var _a;
145
+ const canvas = canvasRef.current;
146
+ if (!canvas) {
147
+ throw new Error("Canvas reference is null");
148
+ }
149
+ const copy = document.createElement("canvas");
150
+ copy.width = canvas.width;
151
+ copy.height = canvas.height;
152
+ (_a = copy.getContext("2d")) == null ? void 0 : _a.drawImage(canvas, 0, 0);
153
+ return trimCanvas(copy);
154
+ };
155
+ const getSignatureImage = () => {
156
+ const trimmedCanvas = getTrimmedCanvas();
157
+ return trimmedCanvas.toDataURL();
158
+ };
159
+ useEffect(() => {
160
+ if (onGetImage) {
161
+ onGetImage(getSignatureImage);
162
+ }
163
+ }, [onGetImage]);
164
+ useEffect(() => {
165
+ const canvas = canvasRef.current;
166
+ if (canvas) {
167
+ sigPadRef.current = new SignaturePad(canvas, sigPadProps);
168
+ resizeCanvas();
169
+ window.addEventListener("resize", checkClearOnResize);
170
+ }
171
+ return () => {
172
+ window.removeEventListener("resize", checkClearOnResize);
173
+ };
174
+ }, [sigPadProps]);
175
+ const clear = () => {
176
+ var _a;
177
+ return (_a = sigPadRef.current) == null ? void 0 : _a.clear();
178
+ };
179
+ const isEmpty = () => {
180
+ var _a;
181
+ return !!((_a = sigPadRef.current) == null ? void 0 : _a.isEmpty());
182
+ };
183
+ const fromDataURL = (dataURL, options) => {
184
+ var _a;
185
+ return (_a = sigPadRef.current) == null ? void 0 : _a.fromDataURL(dataURL, options);
186
+ };
187
+ const toDataURL = (type, encoderOptions) => {
188
+ var _a;
189
+ return (_a = sigPadRef.current) == null ? void 0 : _a.toDataURL(type, encoderOptions);
190
+ };
191
+ const fromData = (pointGroups) => {
192
+ var _a;
193
+ return (_a = sigPadRef.current) == null ? void 0 : _a.fromData(pointGroups);
194
+ };
195
+ const toData = () => {
196
+ var _a;
197
+ return (_a = sigPadRef.current) == null ? void 0 : _a.toData();
198
+ };
199
+ return /* @__PURE__ */ React3.createElement("div", { className: "hawa-w-full" }, label && /* @__PURE__ */ React3.createElement(Label, { ...labelProps, className: "hawa-mb-2" }, label || "Signature"), /* @__PURE__ */ React3.createElement(
200
+ "canvas",
201
+ {
202
+ ref: canvasRef,
203
+ ...canvasProps,
204
+ className: cn("hawa-rounded", canvasProps == null ? void 0 : canvasProps.className)
205
+ }
206
+ ), /* @__PURE__ */ React3.createElement("div", { className: "clickable-link hawa-w-fit", onClick: () => clear() }, (texts == null ? void 0 : texts.clear) || "Clear"));
207
+ };
208
+ export {
209
+ Signature
210
+ };
@@ -1,265 +1,12 @@
1
1
  import {
2
+ Button,
2
3
  cn
3
- } from "../chunk-TE3BKEXL.mjs";
4
+ } from "../chunk-3N6JJKMN.mjs";
4
5
 
5
6
  // components/elements/sortButton/SortButton.tsx
6
- import React3 from "react";
7
-
8
- // components/elements/button/Button.tsx
9
- import * as React2 from "react";
10
- import { cva } from "class-variance-authority";
11
-
12
- // components/elements/loading/Loading.tsx
13
7
  import React from "react";
14
- var Loading = ({
15
- design = "spinner",
16
- size = "sm",
17
- themeMode = "light",
18
- color,
19
- ...props
20
- }) => {
21
- let sizeStyles = {
22
- button: "hawa-h-4 hawa-w-4",
23
- xs: "hawa-h-1 hawa-w-1",
24
- sm: "hawa-h-6 hawa-w-6",
25
- normal: "hawa-h-8 hawa-w-8",
26
- lg: "hawa-h-14 hawa-w-14",
27
- xl: "hawa-h-24 hawa-w-24"
28
- };
29
- let animationStyles = {
30
- pulse: "hawa-animate-in hawa-fade-in hawa-duration-1000",
31
- bounce: "hawa-animate-bounce"
32
- };
33
- switch (design.split("-")[0]) {
34
- case "dots":
35
- return /* @__PURE__ */ React.createElement(
36
- "div",
37
- {
38
- className: cn("hawa-flex hawa-flex-row hawa-gap-2", props.className)
39
- },
40
- /* @__PURE__ */ React.createElement(
41
- "div",
42
- {
43
- className: cn(
44
- "hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite",
45
- size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
46
- animationStyles[design.split("-")[1]],
47
- color ? color : "hawa-bg-primary"
48
- )
49
- }
50
- ),
51
- /* @__PURE__ */ React.createElement(
52
- "div",
53
- {
54
- className: cn(
55
- "hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite",
56
- size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
57
- animationStyles[design.split("-")[1]],
58
- color ? color : "hawa-bg-primary"
59
- )
60
- }
61
- ),
62
- /* @__PURE__ */ React.createElement(
63
- "div",
64
- {
65
- className: cn(
66
- "hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite",
67
- size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
68
- animationStyles[design.split("-")[1]],
69
- color ? color : "hawa-bg-primary"
70
- )
71
- }
72
- )
73
- );
74
- case "square":
75
- return /* @__PURE__ */ React.createElement(
76
- "svg",
77
- {
78
- className: cn("squircle-container", sizeStyles[size]),
79
- viewBox: "0 0 35 35",
80
- height: "35",
81
- width: "35"
82
- },
83
- /* @__PURE__ */ React.createElement(
84
- "rect",
85
- {
86
- className: "squircle-track",
87
- x: "2.5",
88
- y: "2.5",
89
- fill: "none",
90
- strokeWidth: "5px",
91
- width: "32.5",
92
- height: "32.5"
93
- }
94
- ),
95
- /* @__PURE__ */ React.createElement(
96
- "rect",
97
- {
98
- className: "square-car",
99
- x: "2.5",
100
- y: "2.5",
101
- fill: "none",
102
- strokeWidth: "5px",
103
- width: "32.5",
104
- height: "32.5",
105
- pathLength: "100"
106
- }
107
- )
108
- );
109
- case "squircle":
110
- return /* @__PURE__ */ React.createElement(
111
- "svg",
112
- {
113
- className: cn("squircle-container", sizeStyles[size]),
114
- x: "0px",
115
- y: "0px",
116
- viewBox: "0 0 37 37",
117
- height: "37",
118
- width: "37",
119
- preserveAspectRatio: "xMidYMid meet"
120
- },
121
- /* @__PURE__ */ React.createElement(
122
- "path",
123
- {
124
- className: "squircle-track",
125
- fill: "none",
126
- strokeWidth: "5",
127
- pathLength: "100",
128
- d: "M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5"
129
- }
130
- ),
131
- /* @__PURE__ */ React.createElement(
132
- "path",
133
- {
134
- className: "squircle-car",
135
- fill: "none",
136
- strokeWidth: "5",
137
- pathLength: "100",
138
- d: "M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5"
139
- }
140
- )
141
- );
142
- case "progress":
143
- return /* @__PURE__ */ React.createElement("div", { className: "progress-loading" });
144
- case "orbit":
145
- return /* @__PURE__ */ React.createElement("div", { className: "orbit-container" });
146
- default:
147
- return /* @__PURE__ */ React.createElement(
148
- "svg",
149
- {
150
- className: cn("circle-container", sizeStyles[size]),
151
- viewBox: "0 0 40 40",
152
- height: "40",
153
- width: "40"
154
- },
155
- /* @__PURE__ */ React.createElement(
156
- "circle",
157
- {
158
- className: cn("circle-track", {
159
- "hawa-stroke-primary-foreground": themeMode === "dark",
160
- "hawa-stroke-primary": themeMode === "light"
161
- }),
162
- cx: "20",
163
- cy: "20",
164
- r: "17.5",
165
- pathLength: "100",
166
- strokeWidth: "5px",
167
- fill: "none"
168
- }
169
- ),
170
- /* @__PURE__ */ React.createElement(
171
- "circle",
172
- {
173
- className: cn("circle-car", {
174
- "hawa-stroke-primary-foreground": themeMode === "dark",
175
- "hawa-stroke-primary": themeMode === "light"
176
- }),
177
- cx: "20",
178
- cy: "20",
179
- r: "17.5",
180
- pathLength: "100",
181
- strokeWidth: "5px",
182
- fill: "none"
183
- }
184
- )
185
- );
186
- }
187
- };
188
-
189
- // components/elements/button/Button.tsx
190
- var buttonVariants = cva(
191
- "hawa-inline-flex hawa-items-center hawa-select-none hawa-rounded-md hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50",
192
- {
193
- variants: {
194
- variant: {
195
- default: "hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90",
196
- light: "hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40",
197
- destructive: "hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90",
198
- outline: "hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground",
199
- secondary: "hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80",
200
- ghost: "hover:hawa-bg-accent hover:hawa-text-accent-foreground",
201
- link: "hawa-text-primary hawa-underline-offset-4 hover:hawa-underline",
202
- combobox: "hawa-bg-background hawa-border",
203
- neoBrutalism: "neo-brutalism"
204
- // "hawa-cursor-pointer hawa-transition-all hawa-uppercase hawa-font-mono dark:hawa-bg-black hawa-font-bold hawa-py-2 hawa-px-4 hawa-rounded hawa-border-2 hawa-border-primary hawa-shadow-color-primary hawa-transition-[hawa-transform_50ms, hawa-box-shadow_50ms] active:hawa-translate-x-0.5 active:hawa-translate-y-0.5 active:hawa-shadow-color-primary-active shadow-color-primary active:shadow-color-primary-active",
205
- },
206
- size: {
207
- default: "hawa-h-10 hawa-px-4 hawa-py-2",
208
- heightless: "hawa-px-4 hawa-py-4",
209
- xs: "hawa-h-fit hawa-min-h-[25px] hawa-py-1 hawa-text-[10px] hawa-px-2 ",
210
- sm: "hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3",
211
- lg: "hawa-h-11 hawa-rounded-md hawa-px-8",
212
- xl: "hawa-h-14 hawa-rounded-md hawa-px-10",
213
- icon: "hawa-h-10 hawa-w-10",
214
- smallIcon: "hawa-h-7 hawa-w-7"
215
- }
216
- },
217
- defaultVariants: {
218
- variant: "default",
219
- size: "default"
220
- }
221
- }
222
- );
223
- var Button = React2.forwardRef(
224
- ({
225
- className,
226
- variant,
227
- size,
228
- asChild = false,
229
- centered = true,
230
- isLoading,
231
- children,
232
- ...props
233
- }, ref) => {
234
- const Comp = "button";
235
- const loadingColor = variant === "outline" || variant === "ghost" || variant === "neoBrutalism" ? "hawa-bg-primary" : "hawa-bg-primary-foreground";
236
- return /* @__PURE__ */ React2.createElement(
237
- Comp,
238
- {
239
- className: cn(
240
- buttonVariants({ variant, size, className }),
241
- centered && "hawa-justify-center"
242
- ),
243
- ref,
244
- ...props
245
- },
246
- isLoading ? /* @__PURE__ */ React2.createElement(
247
- Loading,
248
- {
249
- design: size === "icon" || size === "smallIcon" ? "spinner" : "dots-pulse",
250
- themeMode: variant === "outline" ? "light" : "dark",
251
- color: loadingColor,
252
- size: size === "sm" || size === "xs" ? "xs" : "button"
253
- }
254
- ) : children
255
- );
256
- }
257
- );
258
- Button.displayName = "Button";
259
-
260
- // components/elements/sortButton/SortButton.tsx
261
8
  var SortButton = (props) => {
262
- return /* @__PURE__ */ React3.createElement(
9
+ return /* @__PURE__ */ React.createElement(
263
10
  Button,
264
11
  {
265
12
  variant: "ghost",
@@ -271,7 +18,7 @@ var SortButton = (props) => {
271
18
  onClick: props.onSort
272
19
  },
273
20
  props.label,
274
- /* @__PURE__ */ React3.createElement(
21
+ /* @__PURE__ */ React.createElement(
275
22
  "svg",
276
23
  {
277
24
  xmlns: "http://www.w3.org/2000/svg",
@@ -283,10 +30,10 @@ var SortButton = (props) => {
283
30
  strokeLinejoin: "round",
284
31
  className: props.condensed ? "hawa-h-3 hawa-w-3" : "hawa-icon"
285
32
  },
286
- /* @__PURE__ */ React3.createElement("path", { d: "m21 16-4 4-4-4" }),
287
- /* @__PURE__ */ React3.createElement("path", { d: "M17 20V4" }),
288
- /* @__PURE__ */ React3.createElement("path", { d: "m3 8 4-4 4 4" }),
289
- /* @__PURE__ */ React3.createElement("path", { d: "M7 4v16" })
33
+ /* @__PURE__ */ React.createElement("path", { d: "m21 16-4 4-4-4" }),
34
+ /* @__PURE__ */ React.createElement("path", { d: "M17 20V4" }),
35
+ /* @__PURE__ */ React.createElement("path", { d: "m3 8 4-4 4 4" }),
36
+ /* @__PURE__ */ React.createElement("path", { d: "M7 4v16" })
290
37
  )
291
38
  );
292
39
  };
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
- import { D as DirectionType } from '../commonTypes-2k6FnHw5.mjs';
3
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
3
  import { VariantProps } from 'class-variance-authority';
5
4
 
5
+ type DirectionType = "rtl" | "ltr";
6
+
6
7
  type SubItem = {
7
8
  label?: string;
8
9
  value?: any;
@@ -33,8 +34,8 @@ type MenuItemType = {
33
34
  };
34
35
 
35
36
  declare const buttonVariants: (props?: ({
36
- variant?: "link" | "default" | "combobox" | "light" | "destructive" | "outline" | "secondary" | "ghost" | "neoBrutalism" | null | undefined;
37
- size?: "default" | "sm" | "lg" | "xs" | "xl" | "heightless" | "icon" | "smallIcon" | null | undefined;
37
+ variant?: "light" | "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "combobox" | "neoBrutalism" | null | undefined;
38
+ size?: "xs" | "sm" | "lg" | "xl" | "default" | "heightless" | "icon" | "smallIcon" | null | undefined;
38
39
  } & class_variance_authority_types.ClassProp) | undefined) => string;
39
40
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
40
41
  asChild?: boolean;
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
- import { D as DirectionType } from '../commonTypes-2k6FnHw5.js';
3
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
3
  import { VariantProps } from 'class-variance-authority';
5
4
 
5
+ type DirectionType = "rtl" | "ltr";
6
+
6
7
  type SubItem = {
7
8
  label?: string;
8
9
  value?: any;
@@ -33,8 +34,8 @@ type MenuItemType = {
33
34
  };
34
35
 
35
36
  declare const buttonVariants: (props?: ({
36
- variant?: "link" | "default" | "combobox" | "light" | "destructive" | "outline" | "secondary" | "ghost" | "neoBrutalism" | null | undefined;
37
- size?: "default" | "sm" | "lg" | "xs" | "xl" | "heightless" | "icon" | "smallIcon" | null | undefined;
37
+ variant?: "light" | "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "combobox" | "neoBrutalism" | null | undefined;
38
+ size?: "xs" | "sm" | "lg" | "xl" | "default" | "heightless" | "icon" | "smallIcon" | null | undefined;
38
39
  } & class_variance_authority_types.ClassProp) | undefined) => string;
39
40
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
40
41
  asChild?: boolean;