@tcn/ui 0.10.0 → 0.12.0

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 (202) hide show
  1. package/dist/feedback/index.d.ts +1 -0
  2. package/dist/feedback/index.d.ts.map +1 -1
  3. package/dist/feedback/index.js +6 -4
  4. package/dist/feedback/index.js.map +1 -1
  5. package/dist/feedback/progress/progress.d.ts +7 -0
  6. package/dist/feedback/progress/progress.d.ts.map +1 -0
  7. package/dist/feedback/progress/progress.js +38 -0
  8. package/dist/feedback/progress/progress.js.map +1 -0
  9. package/dist/feedback/progress/progress_bar.d.ts +0 -1
  10. package/dist/feedback/progress/progress_bar.d.ts.map +1 -1
  11. package/dist/feedback/progress/progress_bar.js +6 -46
  12. package/dist/feedback/progress/progress_bar.js.map +1 -1
  13. package/dist/form/field/common/status_input/status_input.js +4 -3
  14. package/dist/form/field/common/status_input/status_input.js.map +1 -1
  15. package/dist/form/field/h_field/h_field.d.ts.map +1 -1
  16. package/dist/form/field/h_field/h_field.js +33 -35
  17. package/dist/form/field/h_field/h_field.js.map +1 -1
  18. package/dist/form/field/v_field/v_field.d.ts.map +1 -1
  19. package/dist/form/field/v_field/v_field.js +34 -36
  20. package/dist/form/field/v_field/v_field.js.map +1 -1
  21. package/dist/frame.css +1 -1
  22. package/dist/inputs/color_input/color_input.d.ts.map +1 -1
  23. package/dist/inputs/color_input/color_input.js +47 -46
  24. package/dist/inputs/color_input/color_input.js.map +1 -1
  25. package/dist/inputs/combo_box/combo_box.d.ts.map +1 -1
  26. package/dist/inputs/combo_box/combo_box.js +61 -58
  27. package/dist/inputs/combo_box/combo_box.js.map +1 -1
  28. package/dist/inputs/index.d.ts +1 -0
  29. package/dist/inputs/index.d.ts.map +1 -1
  30. package/dist/inputs/index.js +34 -31
  31. package/dist/inputs/index.js.map +1 -1
  32. package/dist/inputs/input/input.js +9 -9
  33. package/dist/inputs/input/input.js.map +1 -1
  34. package/dist/inputs/input_group/input_group.d.ts +5 -0
  35. package/dist/inputs/input_group/input_group.d.ts.map +1 -0
  36. package/dist/inputs/input_group/input_group.js +20 -0
  37. package/dist/inputs/input_group/input_group.js.map +1 -0
  38. package/dist/inputs/phone_number_input/countries_phone_information.d.ts +2 -2
  39. package/dist/inputs/phone_number_input/countries_phone_information.d.ts.map +1 -1
  40. package/dist/inputs/phone_number_input/countries_phone_information.js +5 -353
  41. package/dist/inputs/phone_number_input/countries_phone_information.js.map +1 -1
  42. package/dist/inputs/phone_number_input/phone_number_context.d.ts +24 -0
  43. package/dist/inputs/phone_number_input/phone_number_context.d.ts.map +1 -0
  44. package/dist/inputs/phone_number_input/phone_number_context.js +23 -0
  45. package/dist/inputs/phone_number_input/phone_number_context.js.map +1 -0
  46. package/dist/inputs/phone_number_input/phone_number_country_select_adapter.d.ts +19 -0
  47. package/dist/inputs/phone_number_input/phone_number_country_select_adapter.d.ts.map +1 -0
  48. package/dist/inputs/phone_number_input/phone_number_country_select_adapter.js +77 -0
  49. package/dist/inputs/phone_number_input/phone_number_country_select_adapter.js.map +1 -0
  50. package/dist/inputs/phone_number_input/phone_number_input.d.ts +16 -14
  51. package/dist/inputs/phone_number_input/phone_number_input.d.ts.map +1 -1
  52. package/dist/inputs/phone_number_input/phone_number_input.js +104 -274
  53. package/dist/inputs/phone_number_input/phone_number_input.js.map +1 -1
  54. package/dist/inputs/phone_number_input/phone_number_input_adapter.d.ts +6 -0
  55. package/dist/inputs/phone_number_input/phone_number_input_adapter.d.ts.map +1 -0
  56. package/dist/inputs/phone_number_input/phone_number_input_adapter.js +95 -0
  57. package/dist/inputs/phone_number_input/phone_number_input_adapter.js.map +1 -0
  58. package/dist/inputs/phone_number_input/sip_input.d.ts +12 -0
  59. package/dist/inputs/phone_number_input/sip_input.d.ts.map +1 -0
  60. package/dist/inputs/phone_number_input/sip_input.js +111 -0
  61. package/dist/inputs/phone_number_input/sip_input.js.map +1 -0
  62. package/dist/inputs/select/select.d.ts.map +1 -1
  63. package/dist/inputs/select/select.js +3 -2
  64. package/dist/inputs/select/select.js.map +1 -1
  65. package/dist/inputs/suggestions/suggestion_list.d.ts +4 -1
  66. package/dist/inputs/suggestions/suggestion_list.d.ts.map +1 -1
  67. package/dist/inputs/suggestions/suggestion_list.js +148 -121
  68. package/dist/inputs/suggestions/suggestion_list.js.map +1 -1
  69. package/dist/inputs/textarea/textarea.js +8 -8
  70. package/dist/inputs/textarea/textarea.js.map +1 -1
  71. package/dist/inputs/unit_input/unit_input.d.ts.map +1 -1
  72. package/dist/inputs/unit_input/unit_input.js +39 -39
  73. package/dist/inputs/unit_input/unit_input.js.map +1 -1
  74. package/dist/overlay/frame/frame.d.ts +8 -4
  75. package/dist/overlay/frame/frame.d.ts.map +1 -1
  76. package/dist/overlay/frame/frame.js +88 -24
  77. package/dist/overlay/frame/frame.js.map +1 -1
  78. package/dist/overlay/popper/base/dismissal_decorator.js.map +1 -1
  79. package/dist/overlay/popper/legacy/popper.d.ts.map +1 -1
  80. package/dist/overlay/popper/legacy/popper.js +52 -50
  81. package/dist/overlay/popper/legacy/popper.js.map +1 -1
  82. package/dist/phone_number_input.css +1 -1
  83. package/dist/progress_bar-CPP0Jyv-.js +38 -0
  84. package/dist/progress_bar-CPP0Jyv-.js.map +1 -0
  85. package/dist/progress_bar.css +1 -1
  86. package/dist/stacks/box/bottom_resize_handle.d.ts +2 -8
  87. package/dist/stacks/box/bottom_resize_handle.d.ts.map +1 -1
  88. package/dist/stacks/box/bottom_resize_handle.js.map +1 -1
  89. package/dist/stacks/box/box.d.ts +2 -2
  90. package/dist/stacks/box/box.d.ts.map +1 -1
  91. package/dist/stacks/box/box.js.map +1 -1
  92. package/dist/stacks/box/end_resize_handle.d.ts +2 -8
  93. package/dist/stacks/box/end_resize_handle.d.ts.map +1 -1
  94. package/dist/stacks/box/end_resize_handle.js.map +1 -1
  95. package/dist/stacks/box/left_resize_handle.d.ts +2 -8
  96. package/dist/stacks/box/left_resize_handle.d.ts.map +1 -1
  97. package/dist/stacks/box/left_resize_handle.js.map +1 -1
  98. package/dist/stacks/box/resize_handlers.d.ts +3 -2
  99. package/dist/stacks/box/resize_handlers.d.ts.map +1 -1
  100. package/dist/stacks/box/resize_handlers.js +41 -37
  101. package/dist/stacks/box/resize_handlers.js.map +1 -1
  102. package/dist/stacks/box/right_resize_handle.d.ts +2 -8
  103. package/dist/stacks/box/right_resize_handle.d.ts.map +1 -1
  104. package/dist/stacks/box/right_resize_handle.js.map +1 -1
  105. package/dist/stacks/box/start_resize_handle.d.ts +2 -8
  106. package/dist/stacks/box/start_resize_handle.d.ts.map +1 -1
  107. package/dist/stacks/box/start_resize_handle.js +4 -4
  108. package/dist/stacks/box/start_resize_handle.js.map +1 -1
  109. package/dist/stacks/box/top_resize_handle.d.ts +2 -8
  110. package/dist/stacks/box/top_resize_handle.d.ts.map +1 -1
  111. package/dist/stacks/box/top_resize_handle.js +4 -4
  112. package/dist/stacks/box/top_resize_handle.js.map +1 -1
  113. package/dist/stacks/box/types.d.ts +18 -0
  114. package/dist/stacks/box/types.d.ts.map +1 -0
  115. package/dist/stacks/h_collapsible_box.js +25 -25
  116. package/dist/stacks/h_collapsible_box.js.map +1 -1
  117. package/dist/stacks/index.d.ts +1 -0
  118. package/dist/stacks/index.d.ts.map +1 -1
  119. package/dist/stacks/v_collapsible_box.js +25 -25
  120. package/dist/stacks/v_collapsible_box.js.map +1 -1
  121. package/dist/suggestion_list.css +1 -1
  122. package/dist/surfaces/modal/modal.d.ts +3 -4
  123. package/dist/surfaces/modal/modal.d.ts.map +1 -1
  124. package/dist/surfaces/modal/modal.js +10 -8
  125. package/dist/surfaces/modal/modal.js.map +1 -1
  126. package/dist/surfaces/window/window.d.ts +3 -4
  127. package/dist/surfaces/window/window.d.ts.map +1 -1
  128. package/dist/surfaces/window/window.js +26 -14
  129. package/dist/surfaces/window/window.js.map +1 -1
  130. package/dist/themes/stylesheets/reset.css +1 -1
  131. package/dist/themes/stylesheets/reset.js +8 -1
  132. package/dist/themes/stylesheets/reset.js.map +1 -1
  133. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  134. package/dist/themes/themes/ergo/ergo_theme.js +186 -19
  135. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  136. package/dist/typography/body_text/body_text.d.ts.map +1 -1
  137. package/dist/typography/body_text/body_text.js +12 -10
  138. package/dist/typography/body_text/body_text.js.map +1 -1
  139. package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +1 -1
  140. package/dist/utils/dnd/hooks/use_drag_container.js +22 -19
  141. package/dist/utils/dnd/hooks/use_drag_container.js.map +1 -1
  142. package/package.json +4 -2
  143. package/src/feedback/index.ts +1 -0
  144. package/src/feedback/progress/progress.module.css +5 -0
  145. package/src/feedback/progress/progress.stories.tsx +48 -0
  146. package/src/feedback/progress/progress.tsx +39 -0
  147. package/src/feedback/progress/progress_bar.module.css +4 -28
  148. package/src/feedback/progress/progress_bar.stories.tsx +1 -1
  149. package/src/feedback/progress/progress_bar.tsx +14 -26
  150. package/src/form/field/h_field/h_field.tsx +0 -4
  151. package/src/form/field/v_field/v_field.stories.tsx +8 -0
  152. package/src/form/field/v_field/v_field.tsx +1 -4
  153. package/src/form/field_set/field_set.stories.tsx +2 -1
  154. package/src/inputs/__docs__/inputs.mdx +81 -0
  155. package/src/inputs/__docs__/inputs.stories.tsx +268 -0
  156. package/src/inputs/color_input/color_input.tsx +17 -17
  157. package/src/inputs/combo_box/combo_box.tsx +17 -13
  158. package/src/inputs/index.ts +2 -0
  159. package/src/inputs/input/input.tsx +1 -1
  160. package/src/inputs/input_group/input_group.tsx +26 -0
  161. package/src/inputs/phone_number_input/countries_phone_information.ts +6 -353
  162. package/src/inputs/phone_number_input/phone_number_context.tsx +32 -0
  163. package/src/inputs/phone_number_input/phone_number_country_select_adapter.tsx +126 -0
  164. package/src/inputs/phone_number_input/phone_number_input.module.css +5 -63
  165. package/src/inputs/phone_number_input/phone_number_input.stories.tsx +180 -150
  166. package/src/inputs/phone_number_input/phone_number_input.tsx +133 -400
  167. package/src/inputs/phone_number_input/phone_number_input_adapter.tsx +123 -0
  168. package/src/inputs/phone_number_input/sip_input.tsx +147 -0
  169. package/src/inputs/select/select.stories.tsx +23 -2
  170. package/src/inputs/select/select.tsx +13 -14
  171. package/src/inputs/suggestions/suggestion_list.module.css +1 -0
  172. package/src/inputs/suggestions/suggestion_list.stories.tsx +12 -8
  173. package/src/inputs/suggestions/suggestion_list.tsx +82 -42
  174. package/src/inputs/textarea/textarea.tsx +1 -1
  175. package/src/inputs/unit_input/unit_input.tsx +17 -17
  176. package/src/overlay/frame/frame.module.css +2 -4
  177. package/src/overlay/frame/frame.stories.tsx +13 -10
  178. package/src/overlay/frame/frame.tsx +121 -15
  179. package/src/overlay/popper/base/dismissal_decorator.tsx +1 -1
  180. package/src/overlay/popper/legacy/popper.tsx +5 -1
  181. package/src/stacks/box/bottom_resize_handle.tsx +2 -8
  182. package/src/stacks/box/box.tsx +14 -2
  183. package/src/stacks/box/end_resize_handle.tsx +3 -8
  184. package/src/stacks/box/left_resize_handle.tsx +3 -8
  185. package/src/stacks/box/resize_handlers.ts +28 -12
  186. package/src/stacks/box/right_resize_handle.tsx +2 -8
  187. package/src/stacks/box/start_resize_handle.tsx +4 -9
  188. package/src/stacks/box/top_resize_handle.tsx +4 -8
  189. package/src/stacks/box/types.ts +44 -0
  190. package/src/stacks/h_collapsible_box.tsx +2 -2
  191. package/src/stacks/index.ts +1 -0
  192. package/src/stacks/v_collapsible_box.tsx +2 -2
  193. package/src/surfaces/modal/modal.tsx +6 -4
  194. package/src/surfaces/window/window.stories.tsx +9 -1
  195. package/src/surfaces/window/window.tsx +19 -7
  196. package/src/themes/stories/controls_fieldset.tsx +1 -1
  197. package/src/themes/stylesheets/reset.css +8 -1
  198. package/src/themes/themes/ergo/ergo_theme.css +186 -19
  199. package/src/typography/body_text/body_text.tsx +2 -0
  200. package/src/utils/dnd/__stories__/draggable.stories.tsx +14 -8
  201. package/src/utils/dnd/hooks/use_drag_container.ts +13 -3
  202. package/src/inputs/phone_number_input/__tests__/utils.test.ts +0 -52
@@ -1,40 +1,40 @@
1
- import { jsxs as n, Fragment as C, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as n, Fragment as I, jsx as o } from "react/jsx-runtime";
2
2
  import { Box as m } from "../../stacks/box/box.js";
3
- import { HStack as h } from "../../stacks/h_stack.js";
3
+ import { HStack as $ } from "../../stacks/h_stack.js";
4
4
  import { Spacer as p } from "../../stacks/spacer.js";
5
- import { ZStack as I } from "../../stacks/z_stack.js";
6
- import { clsx as f } from "clsx";
7
- import { useState as A, useRef as N, useLayoutEffect as P } from "react";
5
+ import { clsx as h } from "clsx";
6
+ import { useState as C, useRef as A, useLayoutEffect as N } from "react";
8
7
  import "../../actions/button/base_button/base_button.js";
9
8
  import "../../actions/button/button_group/button_group.js";
10
9
  import "../../actions/button/slim_button/slim_button.js";
11
- import { Button as _ } from "../../actions/button/button/button.js";
10
+ import { Button as P } from "../../actions/button/button/button.js";
12
11
  import "../../actions/button/select_group/select_group.js";
13
12
  import "../../actions/button/select_group/single_select_group.js";
14
13
  import "../../actions/toggle/toggle.js";
15
- import { ColorPicker as B } from "./color_picker.js";
16
- import { Input as F } from "../input/input.js";
17
- import { Popper as j } from "../../overlay/popper/legacy/popper.js";
18
- import '../../color_input.css';const z = "_checker-board_2cc94a9", K = "_color-input-select_abe3066", x = { "checker-board": z, "color-input-select": K };
14
+ import { ColorPicker as _ } from "./color_picker.js";
15
+ import { Input as B } from "../input/input.js";
16
+ import { Popper as F } from "../../overlay/popper/legacy/popper.js";
17
+ import { InputGroup as j } from "../input_group/input_group.js";
18
+ import '../../color_input.css';const z = "_checker-board_2cc94a9", K = "_color-input-select_abe3066", f = { "checker-board": z, "color-input-select": K };
19
19
  function or({
20
20
  value: c = "#000",
21
21
  onChange: i,
22
22
  onError: O,
23
23
  disabled: s,
24
- width: g = "100%",
25
- maxWidth: b,
26
- minWidth: k,
27
- hierarchy: E = "secondary",
28
- ...y
24
+ width: x = "100%",
25
+ maxWidth: g,
26
+ minWidth: b,
27
+ hierarchy: k = "secondary",
28
+ ...E
29
29
  }) {
30
- const [e, a] = A(null), S = e != null, d = N(null);
30
+ const [e, a] = C(null), y = e != null, d = A(null);
31
31
  function w(t) {
32
32
  a(t.currentTarget);
33
33
  }
34
34
  function u() {
35
35
  a(null);
36
36
  }
37
- P(() => {
37
+ N(() => {
38
38
  requestAnimationFrame(() => {
39
39
  e != null && d.current && d.current.focus();
40
40
  });
@@ -42,25 +42,26 @@ function or({
42
42
  function R(t) {
43
43
  t.key === "Escape" && u();
44
44
  }
45
- function $(t) {
46
- const o = t.rgb;
45
+ function S(t) {
46
+ const r = t.rgb;
47
47
  let l = t.hex;
48
- o.a != null ? l = `rgba(${o.r},${o.g},${o.b},${o.a})` : l = `rgb(${o.r},${o.g},${o.b})`, i && i(l);
48
+ r.a != null ? l = `rgba(${r.r},${r.g},${r.b},${r.a})` : l = `rgb(${r.r},${r.g},${r.b})`, i && i(l);
49
49
  }
50
- return /* @__PURE__ */ n(C, { children: [
50
+ return /* @__PURE__ */ n(I, { children: [
51
51
  /* @__PURE__ */ n(
52
- h,
52
+ j,
53
53
  {
54
54
  height: "auto",
55
- width: g,
56
- minWidth: k,
57
- maxWidth: b,
55
+ width: x,
56
+ minWidth: b,
57
+ maxWidth: g,
58
58
  className: "tcn-color-input-wrapper",
59
- ...y,
59
+ ...E,
60
60
  children: [
61
- /* @__PURE__ */ r(I, { width: "flex", children: /* @__PURE__ */ r(
62
- F,
61
+ /* @__PURE__ */ o(
62
+ B,
63
63
  {
64
+ width: "flex",
64
65
  disabled: s,
65
66
  value: c,
66
67
  style: {
@@ -72,17 +73,17 @@ function or({
72
73
  className: "tcn-color-input",
73
74
  onChange: i
74
75
  }
75
- ) }),
76
+ ),
76
77
  /* @__PURE__ */ n(
77
- _,
78
+ P,
78
79
  {
79
80
  disabled: s,
80
- hierarchy: E,
81
+ hierarchy: k,
81
82
  onClick: w,
82
83
  width: "70px",
83
84
  maxWidth: "70px",
84
- className: f(
85
- x["color-input-select"],
85
+ className: h(
86
+ f["color-input-select"],
86
87
  "tcn-color-input-select",
87
88
  "tcn-select"
88
89
  ),
@@ -92,16 +93,16 @@ function or({
92
93
  paddingInlineEnd: 0
93
94
  },
94
95
  children: [
95
- /* @__PURE__ */ n(h, { height: "14px", gap: "4px", hAlign: "start", children: [
96
- /* @__PURE__ */ r(p, { width: "4px" }),
97
- /* @__PURE__ */ r(
96
+ /* @__PURE__ */ n($, { height: "14px", gap: "4px", hAlign: "start", children: [
97
+ /* @__PURE__ */ o(p, { width: "4px" }),
98
+ /* @__PURE__ */ o(
98
99
  m,
99
100
  {
100
101
  width: "flex",
101
102
  height: "30px",
102
- className: f(x["checker-board"], "tcn-checker-board"),
103
+ className: h(f["checker-board"], "tcn-checker-board"),
103
104
  style: { borderRadius: "2px", overflow: "hidden" },
104
- children: /* @__PURE__ */ r(
105
+ children: /* @__PURE__ */ o(
105
106
  m,
106
107
  {
107
108
  height: "100%",
@@ -110,30 +111,30 @@ function or({
110
111
  )
111
112
  }
112
113
  ),
113
- /* @__PURE__ */ r(p, {})
114
+ /* @__PURE__ */ o(p, {})
114
115
  ] }),
115
- /* @__PURE__ */ r(p, { width: "4px" })
116
+ /* @__PURE__ */ o(p, { width: "4px" })
116
117
  ]
117
118
  }
118
119
  )
119
120
  ]
120
121
  }
121
122
  ),
122
- /* @__PURE__ */ r(
123
- j,
123
+ /* @__PURE__ */ o(
124
+ F,
124
125
  {
125
126
  anchorElement: e,
126
127
  onClose: u,
127
- open: S,
128
+ open: y,
128
129
  restoreFocus: !0,
129
130
  horizontalAnchor: "end",
130
131
  horizontalOrigin: "end",
131
- children: /* @__PURE__ */ r(
132
- B,
132
+ children: /* @__PURE__ */ o(
133
+ _,
133
134
  {
134
135
  color: c,
135
136
  onKeyDown: R,
136
- onColorChange: $
137
+ onColorChange: S
137
138
  }
138
139
  )
139
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"color_input.js","sources":["../../../src/inputs/color_input/color_input.tsx"],"sourcesContent":["import { Box } from '../../stacks/box/box.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport { ZStack } from '../../stacks/z_stack.js';\nimport { clsx } from 'clsx';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { HTMLAttributes } from 'react';\nimport { ColorState } from 'react-color';\nimport { Button } from '../../actions/index.js';\nimport { ColorPicker } from './color_picker.js';\nimport { Input } from '../input/input.js';\nimport styles from './color_input.module.css';\n\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\n\nexport interface ColorInputProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange' | 'onError'> {\n value?: string;\n disabled?: boolean;\n onChange?: (color: string) => void;\n onError?: (error: string | null) => void;\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n hierarchy?: 'primary' | 'secondary' | 'tertiary';\n}\n\nexport function ColorInput({\n value = '#000',\n onChange,\n onError,\n disabled,\n width = '100%',\n maxWidth,\n minWidth,\n hierarchy = 'secondary',\n ...props\n}: ColorInputProps) {\n const [anchorElement, setAnchorElement] = useState<HTMLButtonElement | null>(null);\n const isOpen = anchorElement != null;\n const pickerRef = useRef<HTMLDivElement | null>(null);\n\n function openPicker(e: React.MouseEvent<HTMLButtonElement>) {\n setAnchorElement(e.currentTarget);\n }\n\n function closePicker() {\n setAnchorElement(null);\n }\n\n useLayoutEffect(() => {\n requestAnimationFrame(() => {\n if (anchorElement != null) {\n pickerRef.current && pickerRef.current.focus();\n }\n });\n }, [anchorElement]);\n\n function processKeyInput(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closePicker();\n }\n }\n\n function updateColor(value: ColorState) {\n const rgb = value.rgb;\n let color = value.hex;\n\n if (rgb.a != null) {\n color = `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.a})`;\n } else {\n color = `rgb(${rgb.r},${rgb.g},${rgb.b})`;\n }\n\n onChange && onChange(color);\n }\n\n return (\n <>\n <HStack\n height=\"auto\"\n width={width}\n minWidth={minWidth}\n maxWidth={maxWidth}\n className=\"tcn-color-input-wrapper\"\n {...props}\n >\n <ZStack width=\"flex\">\n <Input\n disabled={disabled}\n value={value}\n style={{\n borderEndEndRadius: 0,\n borderStartEndRadius: 0,\n textAlign: 'start',\n paddingInlineEnd: '8px',\n }}\n className=\"tcn-color-input\"\n onChange={onChange}\n />\n </ZStack>\n <Button\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openPicker}\n width=\"70px\"\n maxWidth=\"70px\"\n className={clsx(\n styles['color-input-select'],\n 'tcn-color-input-select',\n 'tcn-select'\n )}\n style={{\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n paddingInlineEnd: 0,\n }}\n >\n <HStack height=\"14px\" gap=\"4px\" hAlign=\"start\">\n <Spacer width=\"4px\" />\n <Box\n width=\"flex\"\n height=\"30px\"\n className={clsx(styles['checker-board'], 'tcn-checker-board')}\n style={{ borderRadius: '2px', overflow: 'hidden' }}\n >\n <Box\n height=\"100%\"\n style={{ backgroundColor: value, borderRadius: '2px' }}\n ></Box>\n </Box>\n <Spacer />\n </HStack>\n <Spacer width=\"4px\" />\n </Button>\n </HStack>\n <Popper\n anchorElement={anchorElement}\n onClose={closePicker}\n open={isOpen}\n restoreFocus\n horizontalAnchor=\"end\"\n horizontalOrigin=\"end\"\n >\n <ColorPicker\n color={value}\n onKeyDown={processKeyInput}\n onColorChange={updateColor}\n />\n </Popper>\n </>\n );\n}\n"],"names":["ColorInput","value","onChange","onError","disabled","width","maxWidth","minWidth","hierarchy","props","anchorElement","setAnchorElement","useState","isOpen","pickerRef","useRef","openPicker","e","closePicker","useLayoutEffect","processKeyInput","event","updateColor","rgb","color","jsxs","Fragment","HStack","jsx","ZStack","Input","Button","clsx","styles","Spacer","Box","Popper","ColorPicker"],"mappings":"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"}
1
+ {"version":3,"file":"color_input.js","sources":["../../../src/inputs/color_input/color_input.tsx"],"sourcesContent":["import { Box } from '../../stacks/box/box.js';\nimport { HStack } from '../../stacks/h_stack.js';\nimport { Spacer } from '../../stacks/spacer.js';\nimport { clsx } from 'clsx';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { HTMLAttributes } from 'react';\nimport { ColorState } from 'react-color';\nimport { Button } from '../../actions/index.js';\nimport { ColorPicker } from './color_picker.js';\nimport { Input } from '../input/input.js';\nimport styles from './color_input.module.css';\n\nimport { Popper } from '../../overlay/popper/legacy/popper.js';\nimport { InputGroup } from '../input_group/input_group.js';\n\nexport interface ColorInputProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange' | 'onError'> {\n value?: string;\n disabled?: boolean;\n onChange?: (color: string) => void;\n onError?: (error: string | null) => void;\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n hierarchy?: 'primary' | 'secondary' | 'tertiary';\n}\n\nexport function ColorInput({\n value = '#000',\n onChange,\n onError,\n disabled,\n width = '100%',\n maxWidth,\n minWidth,\n hierarchy = 'secondary',\n ...props\n}: ColorInputProps) {\n const [anchorElement, setAnchorElement] = useState<HTMLButtonElement | null>(null);\n const isOpen = anchorElement != null;\n const pickerRef = useRef<HTMLDivElement | null>(null);\n\n function openPicker(e: React.MouseEvent<HTMLButtonElement>) {\n setAnchorElement(e.currentTarget);\n }\n\n function closePicker() {\n setAnchorElement(null);\n }\n\n useLayoutEffect(() => {\n requestAnimationFrame(() => {\n if (anchorElement != null) {\n pickerRef.current && pickerRef.current.focus();\n }\n });\n }, [anchorElement]);\n\n function processKeyInput(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closePicker();\n }\n }\n\n function updateColor(value: ColorState) {\n const rgb = value.rgb;\n let color = value.hex;\n\n if (rgb.a != null) {\n color = `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.a})`;\n } else {\n color = `rgb(${rgb.r},${rgb.g},${rgb.b})`;\n }\n\n onChange && onChange(color);\n }\n\n return (\n <>\n <InputGroup\n height=\"auto\"\n width={width}\n minWidth={minWidth}\n maxWidth={maxWidth}\n className=\"tcn-color-input-wrapper\"\n {...props}\n >\n <Input\n width=\"flex\"\n disabled={disabled}\n value={value}\n style={{\n borderEndEndRadius: 0,\n borderStartEndRadius: 0,\n textAlign: 'start',\n paddingInlineEnd: '8px',\n }}\n className=\"tcn-color-input\"\n onChange={onChange}\n />\n\n <Button\n disabled={disabled}\n hierarchy={hierarchy}\n onClick={openPicker}\n width=\"70px\"\n maxWidth=\"70px\"\n className={clsx(\n styles['color-input-select'],\n 'tcn-color-input-select',\n 'tcn-select'\n )}\n style={{\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n paddingInlineEnd: 0,\n }}\n >\n <HStack height=\"14px\" gap=\"4px\" hAlign=\"start\">\n <Spacer width=\"4px\" />\n <Box\n width=\"flex\"\n height=\"30px\"\n className={clsx(styles['checker-board'], 'tcn-checker-board')}\n style={{ borderRadius: '2px', overflow: 'hidden' }}\n >\n <Box\n height=\"100%\"\n style={{ backgroundColor: value, borderRadius: '2px' }}\n ></Box>\n </Box>\n <Spacer />\n </HStack>\n <Spacer width=\"4px\" />\n </Button>\n </InputGroup>\n <Popper\n anchorElement={anchorElement}\n onClose={closePicker}\n open={isOpen}\n restoreFocus\n horizontalAnchor=\"end\"\n horizontalOrigin=\"end\"\n >\n <ColorPicker\n color={value}\n onKeyDown={processKeyInput}\n onColorChange={updateColor}\n />\n </Popper>\n </>\n );\n}\n"],"names":["ColorInput","value","onChange","onError","disabled","width","maxWidth","minWidth","hierarchy","props","anchorElement","setAnchorElement","useState","isOpen","pickerRef","useRef","openPicker","e","closePicker","useLayoutEffect","processKeyInput","event","updateColor","rgb","color","jsxs","Fragment","InputGroup","jsx","Input","Button","clsx","styles","HStack","Spacer","Box","Popper","ColorPicker"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"combo_box.d.ts","sourceRoot":"","sources":["../../../src/inputs/combo_box/combo_box.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAS,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,QAAQ,wFA0InB,CAAC"}
1
+ {"version":3,"file":"combo_box.d.ts","sourceRoot":"","sources":["../../../src/inputs/combo_box/combo_box.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAS,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC/E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,QAAQ,wFA8InB,CAAC"}
@@ -1,93 +1,96 @@
1
- import { jsxs as w, Fragment as D, jsx as S } from "react/jsx-runtime";
1
+ import { jsxs as D, Fragment as L, jsx as C } from "react/jsx-runtime";
2
2
  import "../../utils/click_away_listener.js";
3
3
  import "../../utils/focus_redirect.js";
4
4
  import "../../utils/scroll_away_listener.js";
5
- import L, { useRef as s, useState as x } from "react";
6
- import { useForkRef as N } from "../../utils/hooks/use_fork_ref.js";
5
+ import N, { useRef as c, useState as f } from "react";
6
+ import { useForkRef as z } from "../../utils/hooks/use_fork_ref.js";
7
7
  import "../../utils/hooks/use_resize_observer.js";
8
8
  import "../../utils/dnd/context.js";
9
- import { clsx as V } from "clsx";
9
+ import { clsx as G } from "clsx";
10
10
  import "../../draggable.module-BgelQsuJ.js";
11
- import { SuggestionList as z } from "../suggestions/suggestion_list.js";
12
- import { Input as G } from "../input/input.js";
13
- const te = L.forwardRef(function({
14
- onOptionSelect: a,
15
- children: C = [],
16
- onKeyDown: o,
17
- onKeyUp: m,
18
- value: c,
19
- noOptionMatchedMessage: k,
20
- trimCustomInput: O = !1,
21
- className: b,
22
- onMouseDown: p,
23
- onMouseUp: g,
11
+ import { SuggestionList as H } from "../suggestions/suggestion_list.js";
12
+ import { Input as J } from "../input/input.js";
13
+ const oe = N.forwardRef(function({
14
+ onOptionSelect: m,
15
+ children: O = [],
16
+ onKeyDown: r,
17
+ onKeyUp: p,
18
+ value: o,
19
+ noOptionMatchedMessage: T,
20
+ trimCustomInput: b = !1,
21
+ className: k,
22
+ onMouseDown: g,
23
+ onMouseUp: h,
24
24
  ...i
25
- }, y) {
26
- const A = s(!1), d = s(c), n = s(!1), [E, F] = x(null), f = s(null), [h, R] = x(!1), T = N(y, f);
25
+ }, A) {
26
+ const E = c(!1), [F, d] = f(o), S = c(o), n = c(!1), [V, y] = f(null), a = c(null), [R, x] = f(!1), I = z(A, a);
27
27
  function l() {
28
- R(!0);
28
+ x(!0);
29
29
  }
30
- function r() {
31
- n.current = !1, R(!1);
30
+ function u() {
31
+ n.current = !1, d(""), x(!1);
32
32
  }
33
- function I(e, t, q) {
33
+ function M(e, t, w) {
34
34
  n.current = !0;
35
- const u = f.current;
35
+ const s = a.current;
36
36
  requestAnimationFrame(() => {
37
- u != null && (u.value = e, u.focus(), u.setSelectionRange(t, q));
38
- }), i.onChange && i.onChange(e), r();
37
+ s != null && (s.value = e, s.focus(), s.setSelectionRange(t, w));
38
+ }), i.onChange && i.onChange(e), u();
39
39
  }
40
- function M(e) {
40
+ function j(e) {
41
41
  n.current = !0;
42
- const t = f.current;
43
- t?.focus(), r(), a && a(e);
42
+ const t = a.current;
43
+ t?.focus(), u(), m && m(e);
44
44
  }
45
- function j(e) {
46
- if (d.current = e.currentTarget.value, n.current) {
47
- n.current = !1, o && o(e);
45
+ function B(e) {
46
+ if (S.current = e.currentTarget.value, n.current) {
47
+ n.current = !1, r && r(e);
48
48
  return;
49
49
  }
50
- o && o(e);
51
- }
52
- function B(e) {
53
- e.key === "Enter" && (h ? r() : (l(), e.preventDefault())), d.current !== e.currentTarget.value && l(), m && m(e);
50
+ r && r(e);
54
51
  }
55
52
  function U(e) {
56
- F(e.currentTarget), A.current = document.activeElement === e.currentTarget, p && p(e);
53
+ const t = e.key;
54
+ d(e.currentTarget.value), t === "Enter" && (R ? u() : (l(), e.preventDefault())), S.current !== e.currentTarget.value && l(), p && p(e);
57
55
  }
58
56
  function _(e) {
59
- n.current && (n.current = !1, r()), l(), g && g(e);
57
+ y(e.currentTarget), E.current = document.activeElement === e.currentTarget, g && g(e);
58
+ }
59
+ function q(e) {
60
+ n.current && (n.current = !1, u()), l(), h && h(e);
60
61
  }
61
- return /* @__PURE__ */ w(D, { children: [
62
- /* @__PURE__ */ S(
63
- G,
62
+ return /* @__PURE__ */ D(L, { children: [
63
+ /* @__PURE__ */ C(
64
+ J,
64
65
  {
65
- ref: T,
66
- className: V(b, "tcn-combo-box-input"),
66
+ ref: I,
67
+ className: G(k, "tcn-combo-box-input"),
67
68
  ...i,
68
- value: c,
69
- onKeyDown: j,
70
- onKeyUp: B,
71
- onMouseDown: U,
72
- onMouseUp: _
69
+ value: o,
70
+ onKeyDown: B,
71
+ onKeyUp: U,
72
+ onMouseDown: _,
73
+ onMouseUp: q
73
74
  }
74
75
  ),
75
- h && /* @__PURE__ */ S(
76
- z,
76
+ /* @__PURE__ */ C(
77
+ H,
77
78
  {
78
- anchorElement: E,
79
- onClose: I,
80
- value: c,
81
- trimCustomInput: O,
82
- onOptionSelect: M,
83
- noSuggestionMessage: k,
79
+ open: R,
80
+ anchorElement: V,
81
+ onClose: M,
82
+ value: o,
83
+ initialSearchValue: F,
84
+ trimCustomInput: b,
85
+ onOptionSelect: j,
86
+ noSuggestionMessage: T,
84
87
  haveValueAsOption: !0,
85
- children: C
88
+ children: O
86
89
  }
87
90
  )
88
91
  ] });
89
92
  });
90
93
  export {
91
- te as ComboBox
94
+ oe as ComboBox
92
95
  };
93
96
  //# sourceMappingURL=combo_box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combo_box.js","sources":["../../../src/inputs/combo_box/combo_box.tsx"],"sourcesContent":["import { useForkRef } from '../../utils/index.js';\nimport { clsx } from 'clsx';\nimport React, { useRef, useState } from 'react';\nimport { SuggestionList } from '../suggestions/suggestion_list.js';\nimport { Input, InputProps } from '../input/input.js';\nimport { OptionProps } from '../options/option.js';\n\nexport interface ComboBoxProps extends InputProps {\n children?: React.ReactElement<OptionProps>[] | React.ReactElement<OptionProps>;\n onOptionSelect?: (value: string) => void;\n noOptionMatchedMessage?: React.ReactNode;\n trimCustomInput?: boolean;\n}\n\nexport const ComboBox = React.forwardRef(function ComboBox(\n {\n onOptionSelect: onSuggestionSelect,\n children = [],\n onKeyDown,\n onKeyUp,\n value,\n noOptionMatchedMessage,\n trimCustomInput = false,\n className,\n onMouseDown,\n onMouseUp,\n ...props\n }: ComboBoxProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const isAlreadyFocusedRef = useRef(false);\n const valueRef = useRef(value);\n const isClosingRef = useRef(false);\n const [anchorElement, setAnchorElement] = useState<HTMLInputElement | null>(null);\n const internalInputRef = useRef<HTMLInputElement | null>(null);\n const [isSuggestionsOpen, setIsSuggestionsOpen] = useState(false);\n const forkedRef = useForkRef(ref, internalInputRef);\n\n function openSuggestions() {\n setIsSuggestionsOpen(true);\n }\n\n function closeSuggestions() {\n isClosingRef.current = false;\n setIsSuggestionsOpen(false);\n }\n\n function handleClose(\n value: string,\n selectionStart: number | null,\n selectionEnd: number | null\n ) {\n isClosingRef.current = true;\n const input = internalInputRef.current;\n\n requestAnimationFrame(() => {\n if (input != null) {\n input.value = value;\n input.focus();\n input.setSelectionRange(selectionStart, selectionEnd);\n }\n });\n props.onChange && props.onChange(value);\n closeSuggestions();\n }\n\n function handleSelection(value: string) {\n isClosingRef.current = true;\n const input = internalInputRef.current;\n\n if (input != null) {\n input.focus();\n }\n\n closeSuggestions();\n onSuggestionSelect && onSuggestionSelect(value);\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>) {\n valueRef.current = event.currentTarget.value;\n\n if (isClosingRef.current) {\n isClosingRef.current = false;\n onKeyDown && onKeyDown(event);\n return;\n }\n\n onKeyDown && onKeyDown(event);\n }\n\n function handleKeyUp(event: React.KeyboardEvent<HTMLInputElement>) {\n const key = event.key;\n\n if (key === 'Enter') {\n if (isSuggestionsOpen) {\n closeSuggestions();\n } else {\n openSuggestions();\n event.preventDefault();\n }\n }\n\n if (valueRef.current !== event.currentTarget.value) {\n openSuggestions();\n }\n\n onKeyUp && onKeyUp(event);\n }\n\n function handlMouseDown(event: React.MouseEvent<HTMLInputElement>) {\n setAnchorElement(event.currentTarget);\n isAlreadyFocusedRef.current = document.activeElement === event.currentTarget;\n onMouseDown && onMouseDown(event);\n }\n\n function handleMouseUp(event: React.MouseEvent<HTMLInputElement>) {\n if (isClosingRef.current) {\n isClosingRef.current = false;\n closeSuggestions();\n }\n\n openSuggestions();\n onMouseUp && onMouseUp(event);\n }\n\n return (\n <>\n <Input\n ref={forkedRef}\n className={clsx(className, 'tcn-combo-box-input')}\n {...props}\n value={value}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onMouseDown={handlMouseDown}\n onMouseUp={handleMouseUp}\n />\n {isSuggestionsOpen && (\n <SuggestionList\n anchorElement={anchorElement}\n onClose={handleClose}\n value={value}\n trimCustomInput={trimCustomInput}\n onOptionSelect={handleSelection}\n noSuggestionMessage={noOptionMatchedMessage}\n haveValueAsOption={true}\n >\n {children}\n </SuggestionList>\n )}\n </>\n );\n});\n"],"names":["ComboBox","React","onSuggestionSelect","children","onKeyDown","onKeyUp","value","noOptionMatchedMessage","trimCustomInput","className","onMouseDown","onMouseUp","props","ref","isAlreadyFocusedRef","useRef","valueRef","isClosingRef","anchorElement","setAnchorElement","useState","internalInputRef","isSuggestionsOpen","setIsSuggestionsOpen","forkedRef","useForkRef","openSuggestions","closeSuggestions","handleClose","selectionStart","selectionEnd","input","handleSelection","handleKeyDown","event","handleKeyUp","handlMouseDown","handleMouseUp","jsxs","Fragment","jsx","Input","clsx","SuggestionList"],"mappings":"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"}
1
+ {"version":3,"file":"combo_box.js","sources":["../../../src/inputs/combo_box/combo_box.tsx"],"sourcesContent":["import { useForkRef } from '../../utils/index.js';\nimport { clsx } from 'clsx';\nimport React, { useRef, useState } from 'react';\nimport { SuggestionList } from '../suggestions/suggestion_list.js';\nimport { Input, InputProps } from '../input/input.js';\nimport { OptionProps } from '../options/option.js';\n\nexport interface ComboBoxProps extends InputProps {\n children?: React.ReactElement<OptionProps>[] | React.ReactElement<OptionProps>;\n onOptionSelect?: (value: string) => void;\n noOptionMatchedMessage?: React.ReactNode;\n trimCustomInput?: boolean;\n}\n\nexport const ComboBox = React.forwardRef(function ComboBox(\n {\n onOptionSelect: onSuggestionSelect,\n children = [],\n onKeyDown,\n onKeyUp,\n value,\n noOptionMatchedMessage,\n trimCustomInput = false,\n className,\n onMouseDown,\n onMouseUp,\n ...props\n }: ComboBoxProps,\n ref: React.Ref<HTMLInputElement>\n) {\n const isAlreadyFocusedRef = useRef(false);\n const [searchValue, setSearchValue] = useState(value);\n const valueRef = useRef(value);\n const isClosingRef = useRef(false);\n const [anchorElement, setAnchorElement] = useState<HTMLInputElement | null>(null);\n const internalInputRef = useRef<HTMLInputElement | null>(null);\n const [isSuggestionsOpen, setIsSuggestionsOpen] = useState(false);\n const forkedRef = useForkRef(ref, internalInputRef);\n\n function openSuggestions() {\n setIsSuggestionsOpen(true);\n }\n\n function closeSuggestions() {\n isClosingRef.current = false;\n setSearchValue('');\n setIsSuggestionsOpen(false);\n }\n\n function handleClose(\n value: string,\n selectionStart: number | null,\n selectionEnd: number | null\n ) {\n isClosingRef.current = true;\n const input = internalInputRef.current;\n\n requestAnimationFrame(() => {\n if (input != null) {\n input.value = value;\n input.focus();\n input.setSelectionRange(selectionStart, selectionEnd);\n }\n });\n props.onChange && props.onChange(value);\n closeSuggestions();\n }\n\n function handleSelection(value: string) {\n isClosingRef.current = true;\n const input = internalInputRef.current;\n\n if (input != null) {\n input.focus();\n }\n\n closeSuggestions();\n onSuggestionSelect && onSuggestionSelect(value);\n }\n\n function handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>) {\n valueRef.current = event.currentTarget.value;\n\n if (isClosingRef.current) {\n isClosingRef.current = false;\n onKeyDown && onKeyDown(event);\n return;\n }\n\n onKeyDown && onKeyDown(event);\n }\n\n function handleKeyUp(event: React.KeyboardEvent<HTMLInputElement>) {\n const key = event.key;\n\n setSearchValue(event.currentTarget.value);\n\n if (key === 'Enter') {\n if (isSuggestionsOpen) {\n closeSuggestions();\n } else {\n openSuggestions();\n event.preventDefault();\n }\n }\n\n if (valueRef.current !== event.currentTarget.value) {\n openSuggestions();\n }\n\n onKeyUp && onKeyUp(event);\n }\n\n function handlMouseDown(event: React.MouseEvent<HTMLInputElement>) {\n setAnchorElement(event.currentTarget);\n isAlreadyFocusedRef.current = document.activeElement === event.currentTarget;\n onMouseDown && onMouseDown(event);\n }\n\n function handleMouseUp(event: React.MouseEvent<HTMLInputElement>) {\n if (isClosingRef.current) {\n isClosingRef.current = false;\n closeSuggestions();\n }\n\n openSuggestions();\n onMouseUp && onMouseUp(event);\n }\n\n return (\n <>\n <Input\n ref={forkedRef}\n className={clsx(className, 'tcn-combo-box-input')}\n {...props}\n value={value}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onMouseDown={handlMouseDown}\n onMouseUp={handleMouseUp}\n />\n <SuggestionList\n open={isSuggestionsOpen}\n anchorElement={anchorElement}\n onClose={handleClose}\n value={value}\n initialSearchValue={searchValue}\n trimCustomInput={trimCustomInput}\n onOptionSelect={handleSelection}\n noSuggestionMessage={noOptionMatchedMessage}\n haveValueAsOption={true}\n >\n {children}\n </SuggestionList>\n </>\n );\n});\n"],"names":["ComboBox","React","onSuggestionSelect","children","onKeyDown","onKeyUp","value","noOptionMatchedMessage","trimCustomInput","className","onMouseDown","onMouseUp","props","ref","isAlreadyFocusedRef","useRef","searchValue","setSearchValue","useState","valueRef","isClosingRef","anchorElement","setAnchorElement","internalInputRef","isSuggestionsOpen","setIsSuggestionsOpen","forkedRef","useForkRef","openSuggestions","closeSuggestions","handleClose","selectionStart","selectionEnd","input","handleSelection","handleKeyDown","event","handleKeyUp","key","handlMouseDown","handleMouseUp","jsxs","Fragment","jsx","Input","clsx","SuggestionList"],"mappings":"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"}
@@ -39,4 +39,5 @@ export * from './suggestions/suggestion_list.js';
39
39
  export * from './switch/switch.js';
40
40
  export * from './textarea/textarea.js';
41
41
  export * from './unit_input/unit_input.js';
42
+ export * from './input_group/input_group.js';
42
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inputs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,sCAAsC,CAAC;AAErD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAEjD,cAAc,oBAAoB,CAAC;AAEnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inputs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,sCAAsC,CAAC;AAErD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AAEpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qDAAqD,CAAC;AACpE,cAAc,4CAA4C,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAEjD,cAAc,oBAAoB,CAAC;AAEnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,8BAA8B,CAAC"}
@@ -3,23 +3,23 @@ import { ColorInput as p } from "./color_input/color_input.js";
3
3
  import { ColorPicker as a } from "./color_input/color_picker.js";
4
4
  import { ComboBox as f } from "./combo_box/combo_box.js";
5
5
  import { DatePicker as n } from "./date_picker/date_picker.js";
6
- import { DatePickerDay as u } from "./date_picker/date_picker_day.js";
6
+ import { DatePickerDay as c } from "./date_picker/date_picker_day.js";
7
7
  import { DatePickerBody as s } from "./date_picker/date_picker_body.js";
8
- import { DatePickerDate as C } from "./date_picker/date_picker_date.js";
8
+ import { DatePickerDate as k } from "./date_picker/date_picker_date.js";
9
9
  import { DatePickerInput as P } from "./date_picker/date_picker_input.js";
10
10
  import { DatePickerHeader as D } from "./date_picker/date_picker_header.js";
11
11
  import { DatePickerPresenter as M } from "./date_picker/date_picker_presenter.js";
12
- import { Input as S } from "./input/input.js";
12
+ import { Input as d } from "./input/input.js";
13
13
  import { AlphaCharacter as A } from "./mask_input/alpha_character.js";
14
14
  import { AlphaNumericCharacter as B } from "./mask_input/alpha_numeric_character.js";
15
15
  import { Character as O } from "./mask_input/character.js";
16
16
  import { ConstantCharacter as L } from "./mask_input/constant_character.js";
17
17
  import { KeyCaptureInput as v } from "./mask_input/key_capture_input.js";
18
- import { LanguageCharacter as H } from "./mask_input/language_character.js";
19
- import { Mask as T } from "./mask_input/mask.js";
20
- import { MaskInput as j } from "./mask_input/mask_input.js";
21
- import { MaskPresenter as z } from "./mask_input/mask_presenter.js";
22
- import { NumericCharacter as F } from "./mask_input/numeric_character.js";
18
+ import { LanguageCharacter as G } from "./mask_input/language_character.js";
19
+ import { Mask as K } from "./mask_input/mask.js";
20
+ import { MaskInput as U } from "./mask_input/mask_input.js";
21
+ import { MaskPresenter as q } from "./mask_input/mask_presenter.js";
22
+ import { NumericCharacter as E } from "./mask_input/numeric_character.js";
23
23
  import { RegexCharacter as J } from "./mask_input/regex_character.js";
24
24
  import { MultiComboBox as W } from "./multi_combo_box/multi_combo_box.js";
25
25
  import { Multiselect as Y } from "./multiselect/multiselect.js";
@@ -27,16 +27,17 @@ import { MultiselectInlineValues as _ } from "./multiselect/multiselect_inline_v
27
27
  import { MultiselectValues as rr } from "./multiselect/multiselect_values.js";
28
28
  import { makeAvailableOptions as or, makeValuesAsOptions as tr } from "./options/utils.js";
29
29
  import { Option as mr } from "./options/option.js";
30
- import { countriesPhoneInformation as xr } from "./phone_number_input/countries_phone_information.js";
31
- import { PhoneNumberInput as ir } from "./phone_number_input/phone_number_input.js";
30
+ import { countriesPhoneInformation as xr, defaultCountries as fr } from "./phone_number_input/countries_phone_information.js";
31
+ import { PhoneNumberInput as nr } from "./phone_number_input/phone_number_input.js";
32
32
  import { Radio as cr } from "./radio/radio.js";
33
- import { Select as lr } from "./select/select.js";
33
+ import { Select as sr } from "./select/select.js";
34
34
  import { Slider as kr } from "./slider/slider.js";
35
- import { SuggestionItem as hr } from "./suggestions/suggestion_item.js";
36
- import { SuggestionList as Ir } from "./suggestions/suggestion_list.js";
37
- import { Switch as gr } from "./switch/switch.js";
38
- import { Textarea as br } from "./textarea/textarea.js";
39
- import { UnitInput as dr } from "./unit_input/unit_input.js";
35
+ import { SuggestionItem as Pr } from "./suggestions/suggestion_item.js";
36
+ import { SuggestionList as Dr } from "./suggestions/suggestion_list.js";
37
+ import { Switch as Mr } from "./switch/switch.js";
38
+ import { Textarea as dr } from "./textarea/textarea.js";
39
+ import { UnitInput as Ar } from "./unit_input/unit_input.js";
40
+ import { InputGroup as Br } from "./input_group/input_group.js";
40
41
  export {
41
42
  A as AlphaCharacter,
42
43
  B as AlphaNumericCharacter,
@@ -48,34 +49,36 @@ export {
48
49
  L as ConstantCharacter,
49
50
  n as DatePicker,
50
51
  s as DatePickerBody,
51
- C as DatePickerDate,
52
- u as DatePickerDay,
52
+ k as DatePickerDate,
53
+ c as DatePickerDay,
53
54
  D as DatePickerHeader,
54
55
  P as DatePickerInput,
55
56
  M as DatePickerPresenter,
56
- S as Input,
57
+ d as Input,
58
+ Br as InputGroup,
57
59
  v as KeyCaptureInput,
58
- H as LanguageCharacter,
59
- T as Mask,
60
- j as MaskInput,
61
- z as MaskPresenter,
60
+ G as LanguageCharacter,
61
+ K as Mask,
62
+ U as MaskInput,
63
+ q as MaskPresenter,
62
64
  W as MultiComboBox,
63
65
  Y as Multiselect,
64
66
  _ as MultiselectInlineValues,
65
67
  rr as MultiselectValues,
66
- F as NumericCharacter,
68
+ E as NumericCharacter,
67
69
  mr as Option,
68
- ir as PhoneNumberInput,
70
+ nr as PhoneNumberInput,
69
71
  cr as Radio,
70
72
  J as RegexCharacter,
71
- lr as Select,
73
+ sr as Select,
72
74
  kr as Slider,
73
- hr as SuggestionItem,
74
- Ir as SuggestionList,
75
- gr as Switch,
76
- br as Textarea,
77
- dr as UnitInput,
75
+ Pr as SuggestionItem,
76
+ Dr as SuggestionList,
77
+ Mr as Switch,
78
+ dr as Textarea,
79
+ Ar as UnitInput,
78
80
  xr as countriesPhoneInformation,
81
+ fr as defaultCountries,
79
82
  or as makeAvailableOptions,
80
83
  tr as makeValuesAsOptions
81
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,20 +1,20 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { clsx as f } from "clsx";
3
- import o from "react";
4
- import '../../input.css';const c = "_input_a16553f", m = { input: c }, y = o.forwardRef(function({ type: i = "text", style: n, className: s, width: r, height: l, onChange: a, ...t }, u) {
5
- return /* @__PURE__ */ d(
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { clsx as c } from "clsx";
3
+ import d from "react";
4
+ import '../../input.css';const f = "_input_a16553f", m = { input: f }, y = d.forwardRef(function({ type: n = "text", style: i, className: s, width: r, height: l, onChange: a, ...t }, o) {
5
+ return /* @__PURE__ */ u(
6
6
  "input",
7
7
  {
8
- className: f(m.input, s, "tcn-input"),
9
- type: i,
10
- ref: u,
8
+ className: c(m.input, s, "tcn-input", "tcn-control"),
9
+ type: n,
10
+ ref: o,
11
11
  "data-is-disabled": t.disabled || !1,
12
12
  "aria-disabled": t.disabled || !1,
13
13
  onChange: (e) => {
14
14
  a && a(e.currentTarget.value, e);
15
15
  },
16
16
  ...t,
17
- style: { width: r, height: l, ...n }
17
+ style: { width: r, height: l, ...i }
18
18
  }
19
19
  );
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../../src/inputs/input/input.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React from 'react';\nimport { InputHTMLAttributes } from 'react';\nimport styles from './input.module.css';\n\nexport interface InputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'> {\n type?: React.HTMLInputTypeAttribute;\n width?: string;\n height?: string;\n value?: string;\n disabled?: boolean;\n min?: string;\n max?: string;\n placeholder?: string;\n onChange?: (value: string, event?: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const Input = React.forwardRef(function Input(\n { type = 'text', style, className, width, height, onChange, ...props }: InputProps,\n ref: React.Ref<HTMLInputElement>\n) {\n return (\n <input\n className={clsx(styles.input, className, 'tcn-input')}\n type={type}\n ref={ref}\n data-is-disabled={props.disabled || false}\n aria-disabled={props.disabled || false}\n onChange={e => {\n onChange && onChange(e.currentTarget.value, e);\n }}\n {...props}\n style={{ width, height, ...style }}\n />\n );\n});\n"],"names":["Input","React","type","style","className","width","height","onChange","props","ref","jsx","clsx","styles"],"mappings":";;;8CAkBaA,IAAQC,EAAM,WAAW,SACpC,EAAE,MAAAC,IAAO,QAAQ,OAAAC,GAAO,WAAAC,GAAW,OAAAC,GAAO,QAAAC,GAAQ,UAAAC,GAAU,GAAGC,EAAA,GAC/DC,GACA;AACA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKC,EAAO,OAAOR,GAAW,WAAW;AAAA,MACpD,MAAAF;AAAA,MACA,KAAAO;AAAA,MACA,oBAAkBD,EAAM,YAAY;AAAA,MACpC,iBAAeA,EAAM,YAAY;AAAA,MACjC,UAAU,CAAA,MAAK;AACb,QAAAD,KAAYA,EAAS,EAAE,cAAc,OAAO,CAAC;AAAA,MAC/C;AAAA,MACC,GAAGC;AAAA,MACJ,OAAO,EAAE,OAAAH,GAAO,QAAAC,GAAQ,GAAGH,EAAA;AAAA,IAAM;AAAA,EAAA;AAGvC,CAAC;"}
1
+ {"version":3,"file":"input.js","sources":["../../../src/inputs/input/input.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React from 'react';\nimport { InputHTMLAttributes } from 'react';\nimport styles from './input.module.css';\n\nexport interface InputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'> {\n type?: React.HTMLInputTypeAttribute;\n width?: string;\n height?: string;\n value?: string;\n disabled?: boolean;\n min?: string;\n max?: string;\n placeholder?: string;\n onChange?: (value: string, event?: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const Input = React.forwardRef(function Input(\n { type = 'text', style, className, width, height, onChange, ...props }: InputProps,\n ref: React.Ref<HTMLInputElement>\n) {\n return (\n <input\n className={clsx(styles.input, className, 'tcn-input', 'tcn-control')}\n type={type}\n ref={ref}\n data-is-disabled={props.disabled || false}\n aria-disabled={props.disabled || false}\n onChange={e => {\n onChange && onChange(e.currentTarget.value, e);\n }}\n {...props}\n style={{ width, height, ...style }}\n />\n );\n});\n"],"names":["Input","React","type","style","className","width","height","onChange","props","ref","jsx","clsx","styles"],"mappings":";;;8CAkBaA,IAAQC,EAAM,WAAW,SACpC,EAAE,MAAAC,IAAO,QAAQ,OAAAC,GAAO,WAAAC,GAAW,OAAAC,GAAO,QAAAC,GAAQ,UAAAC,GAAU,GAAGC,EAAA,GAC/DC,GACA;AACA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKC,EAAO,OAAOR,GAAW,aAAa,aAAa;AAAA,MACnE,MAAAF;AAAA,MACA,KAAAO;AAAA,MACA,oBAAkBD,EAAM,YAAY;AAAA,MACpC,iBAAeA,EAAM,YAAY;AAAA,MACjC,UAAU,CAAA,MAAK;AACb,QAAAD,KAAYA,EAAS,EAAE,cAAc,OAAO,CAAC;AAAA,MAC/C;AAAA,MACC,GAAGC;AAAA,MACJ,OAAO,EAAE,OAAAH,GAAO,QAAAC,GAAQ,GAAGH,EAAA;AAAA,IAAM;AAAA,EAAA;AAGvC,CAAC;"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { HStackProps } from '../../stacks/h_stack.js';
3
+ export type InputGroupProps = HStackProps;
4
+ export declare const InputGroup: React.ForwardRefExoticComponent<InputGroupProps & React.RefAttributes<HTMLElement>>;
5
+ //# sourceMappingURL=input_group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input_group.d.ts","sourceRoot":"","sources":["../../../src/inputs/input_group/input_group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC;AAE1C,eAAO,MAAM,UAAU,qFAmBtB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import r from "react";
3
+ import { clsx as t } from "clsx";
4
+ import { HStack as c } from "../../stacks/h_stack.js";
5
+ const N = r.forwardRef(
6
+ function({ children: n, as: p = "div", className: e, ...m }, s) {
7
+ const a = r.Children.map(
8
+ n,
9
+ (o) => r.isValidElement(o) ? r.cloneElement(o, {
10
+ ...o.props,
11
+ className: t(o.props.className, "tcn-input-group-slot")
12
+ }) : o
13
+ );
14
+ return /* @__PURE__ */ u(c, { ref: s, as: p, className: t(e, "tcn-input-group"), ...m, children: a });
15
+ }
16
+ );
17
+ export {
18
+ N as InputGroup
19
+ };
20
+ //# sourceMappingURL=input_group.js.map