@dragunio/fe-libs 0.1.8 → 0.1.10

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.
package/README.md CHANGED
@@ -56,6 +56,8 @@ Available review routes:
56
56
  - `http://127.0.0.1:3000/#/datetime` — DateTimePicker
57
57
  - `http://127.0.0.1:3000/#/currency` — CurrencyInput
58
58
  - `http://127.0.0.1:3000/#/number` — NumberInput
59
+ - `http://127.0.0.1:3000/#/file-upload` — FileUpload
60
+ - `http://127.0.0.1:3000/#/file-preview` — FilePreview
59
61
  - `http://127.0.0.1:3000/#/tooltip` — Tooltip
60
62
  - `http://127.0.0.1:3000/#/expandable` — ExpandableSection
61
63
  - `http://127.0.0.1:3000/#/loading` — Loading
@@ -65,6 +67,7 @@ Available review routes:
65
67
  - `http://127.0.0.1:3000/#/chip` — Chip
66
68
  - `http://127.0.0.1:3000/#/avatar` — Avatar
67
69
  - `http://127.0.0.1:3000/#/text-input` — TextInput & TextArea
70
+ - `http://127.0.0.1:3000/#/validated-inputs` — EmailInput, PasswordInput & PhoneNumberInput
68
71
  - `http://127.0.0.1:3000/#/pagination` — Pagination
69
72
  - `http://127.0.0.1:3000/#/message` — Message
70
73
  - `http://127.0.0.1:3000/#/snackbar` — Snackbar
@@ -191,14 +194,17 @@ The library exposes ESM, CommonJS, TypeScript declarations, and keeps React as a
191
194
 
192
195
  ### New form and overlay primitives
193
196
 
194
- - `Drawer` is a portal-based modal panel with `left`, `right`, `top`, and `bottom` slide-in animations. Use `fullScreen` for a full-viewport panel and `footer` for fixed actions below the scrollable body.
197
+ - `Drawer` is a portal-based modal panel with `left`, `right`, `top`, and `bottom` slide-in animations. Use `DrawerWidths.small`, `.medium`, or `.large` (360px, 400px, 480px) with `width`, or provide any custom CSS width. Use `fullScreen` for a full-viewport panel and `footer` for fixed actions below the scrollable body. It automatically adapts to smaller screens: side drawers use the available viewport width, while top and bottom drawers become sheet-style panels.
195
198
  - `Selection` is a rounded custom dropdown inspired by DropdownCustom, with single/multiple modes, optional search, clear action, tags, form-field values, and keyboard navigation.
196
199
  - `DateTimePicker` supports `mode="single"` and `mode="range"`; its default format is `dd/MM/yyyy HH:mm`.
197
200
  - `NumberInput` and `CurrencyInput` format values immediately while typing (`1000` → `1,000`) and keep up to two fractional digits by default. Both include accessible up/down controls (and arrow-key support); use `step` or `showStepper` to configure them. `NumberInput` also accepts `prefix`/`suffix` adornments. Use `allowDecimal`, `decimals`, `min`, and `max` to control decimal input and numeric limits. Both support `error` and `errorMessage` with the same red border/message treatment as `TextInput`. `CurrencyInput` adds a `VND` suffix by default, or a currency dropdown through `currencies`.
201
+ - `FileUpload` accepts browser `File` objects from selecting or dropping files. Choose its preset `accept` groups—such as `image`, `pdf`, `document`, `audio`, and `video`—instead of manually assembling MIME patterns; it validates them with `maxSize`, `maxFiles`, and duplicate checks locally, then emits `onChange`, `onAccept`, `onReject`, and `onRemove` synchronously. It deliberately contains no endpoint, request, `async`, or upload-progress behavior.
202
+ - `FilePreview` is a local, portal-based File viewer. It displays the current file count in its backdrop header, supports buttons and ArrowLeft/ArrowRight navigation, calls `onEscape` then `onClose('escape')`, and reports `onDelete`/`onDownload` with the active `File`. Its Download action starts a direct local browser download—there is no endpoint or transport behavior.
198
203
  - `Tooltip` shows accessible content on hover and focus.
199
204
  - `ExpandableSection` provides controlled and uncontrolled expand/collapse behavior.
200
205
  - `TextInput` and `TextArea` support `error`/`errorMessage`, `helperText`, `clearable`, `onClear`, and `onValueChange`. `TextArea` also accepts `autosize` (default `false`) to grow with its content. `TextInput` also accepts `label`, `isRequired`, and `prefix`/`suffix` adornments. Passing a string to `error` shows it below the field and applies the error border.
201
- - `Modal` is a centered portal dialog in `small`, `medium`, `large`, `xlarge`, and `full` sizes. Its close control and `actions` are library `Button` instances.
206
+ - `EmailInput`, `PasswordInput`, and `PhoneNumberInput` add their standard mailbox, show/hide password, and phone adornments. They validate their formats on blur by default; use `validateOn="change"` for immediate feedback and `validate={(value) => ...}` for an additional rule. Passwords require at least eight characters including uppercase, lowercase, and a number; phone numbers accept digits, spaces, parentheses, and plus signs, and require 7–15 digits.
207
+ - `Modal` is a centered portal dialog in `small`, `medium`, `large`, `xlarge`, and `full` sizes. Its close control and `actions` are library `Button` instances. Modal and Drawer trap keyboard focus, lock background scrolling, return focus to their opener, and respect reduced-motion preferences. Use `initialFocusRef`, `restoreFocus`, `closeOnEscape`, and `closeOnBackdropClick` to customize that behavior.
202
208
  - `Loading` provides `small`, `medium`, and `large` circular indicators (or a custom pixel `size`); use `Skeleton.Circle` and `Skeleton.Square` with `size`, or `Skeleton.Box` and `Skeleton.Line` with `width` and `height`.
203
209
  - `ProgressBar` is determinate when `value` is supplied and renders an indeterminate back-and-forth animation when it is omitted.
204
210
  - `Chip` supports the standard `default`, `success`, `error`, `info`, and `warning` palettes, plus `color` for any CSS color and `subtle`, `solid`, or `outline` variants.
@@ -219,6 +225,17 @@ The library exposes ESM, CommonJS, TypeScript declarations, and keeps React as a
219
225
  clearable
220
226
  />
221
227
 
228
+ <EmailInput
229
+ label="Work email"
230
+ value={email}
231
+ onValueChange={setEmail}
232
+ validate={(value) =>
233
+ value.endsWith('@dragunio.com') || 'Use your work email.'
234
+ }
235
+ />
236
+ <PasswordInput label="Password" />
237
+ <PhoneNumberInput label="Phone number" placeholder="+84 (123) 456 789" />
238
+
222
239
  <ProgressBar label="Upload" value={72} />
223
240
  <ProgressBar label="Synchronising" />
224
241
  <Chip status="success" dot>Complete</Chip>
@@ -230,3 +247,47 @@ The library exposes ESM, CommonJS, TypeScript declarations, and keeps React as a
230
247
  <Avatar content="Phạm Quốc Bảo" />
231
248
  </AvatarGroup>
232
249
  ```
250
+
251
+ ## 404 / NotFound
252
+
253
+ ```tsx
254
+ import { NotFound, NotFoundCaveman, NotFoundYeti, NotFoundLost } from '@dragunio/fe-libs';
255
+ import '@dragunio/fe-libs/styles.css';
256
+
257
+ // Randomly selects one of the three designs once per mount.
258
+ <NotFound homeHref="/" homeLabel="Về trang chủ" />
259
+
260
+ // Choose a design, customize copy, or connect your router.
261
+ <NotFound
262
+ variant="bad_dream"
263
+ title="Không tìm thấy trang"
264
+ description="Trang bạn cần có thể đã được chuyển đi."
265
+ onHomeClick={() => navigate('/')}
266
+ />
267
+
268
+ // Each design is also available independently.
269
+ <NotFoundCaveman />
270
+ <NotFoundYeti animated={false} />
271
+ <NotFoundLost action={null} />
272
+ ```
273
+
274
+ `variant` accepts `random` (default), `caveman`, `bad_dream`, or `electric_shock`. Random selection
275
+ stays stable when props change; remount with a new React `key` to draw again (the
276
+ same variant may be picked). Server rendering and the first client render use
277
+ `caveman`; the random choice runs after mounting to avoid hydration mismatches.
278
+
279
+ All four components accept `title` and `description` (`ReactNode`), `homeLabel`
280
+ (default `Go to Home`), `homeHref` (default `/`), `onHomeClick`, `action`, `animated`
281
+ (default `true`), and section HTML attributes. `onHomeClick` replaces default
282
+ navigation. `action` replaces the public home `Button`; `null` hides actions.
283
+ `NotFoundCaveman`, `NotFoundYeti`, and `NotFoundLost` use `NotFoundSceneProps`, which
284
+ omits `variant`.
285
+
286
+ Artwork scales to its container and honors `prefers-reduced-motion`. Disabling
287
+ animation uses a still frame for Lost. The original 1.31 MiB GIF and still PNG
288
+ are bundled beside `styles.css`, with no external image, font, Bootstrap, jQuery,
289
+ or GSAP requests. Yeti preserves the original SVG with a CSS adaptation of its
290
+ flashlight and shivering animation; it does not reproduce GSAP mouth morphing.
291
+
292
+ Try the interactive story at `#/not-found`. Source credits and illustration
293
+ provenance are in [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).
@@ -0,0 +1,36 @@
1
+ # 404 artwork and source credits
2
+
3
+ The NotFound components adapt these user-selected designs:
4
+
5
+ - **Caveman** — SofiaSergio, “code for fun (day02): 404 error page, Caveman mode - pure CSS”, https://codepen.io/SofiaSergio/pen/RMjyRL. Original HTML and SCSS were converted to React and scoped CSS.
6
+ - **Yeti** — Darin Senneff (dsenneff), “Yeti 404 Page”, https://codepen.io/dsenneff/pen/mjZgmN. Original SVG geometry is retained; IDs are instance-specific and the timeline is adapted to CSS. Original GSAP scripts and plugins are not included.
7
+ - **Lost** — Naved khan (Navedkhan012), “404 page”, https://codepen.io/Navedkhan012/pen/vrWQMY. Source recovered from the attributed export at https://gist.github.com/MbarkT3STO/0c13e9f8d771a22bb1ee69583aa7113e.
8
+
9
+ The Lost design references the illustration at
10
+ https://cdn.dribbble.com/users/285475/screenshots/2083086/dribbble_1.gif.
11
+ That original GIF is bundled as `packages/not-found/src/assets/lost.gif`;
12
+ `lost-still.png` is its first frame for reduced-motion rendering. Illustration
13
+ credit belongs to its original creator; the library does not claim authorship
14
+ of this asset or the designs above.
15
+
16
+ ## Adapted CodePen code
17
+
18
+ Copyright (c) SofiaSergio, Darin Senneff, and Naved khan for their respective code.
19
+
20
+ Permission is hereby granted, free of charge, to any person obtaining a copy
21
+ of this software and associated documentation files (the "Software"), to deal
22
+ in the Software without restriction, including without limitation the rights
23
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24
+ copies of the Software, and to permit persons to whom the Software is
25
+ furnished to do so, subject to the following conditions:
26
+
27
+ The above copyright notice and this permission notice shall be included in all
28
+ copies or substantial portions of the Software.
29
+
30
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
31
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
32
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
33
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
34
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
36
+ SOFTWARE.
@@ -169,6 +169,82 @@ function SearchIcon(props) {
169
169
  )
170
170
  ] });
171
171
  }
172
+ function MailboxIcon(props) {
173
+ return /* @__PURE__ */ jsxs("svg", { ...iconProps4(props), children: [
174
+ /* @__PURE__ */ jsx4(
175
+ "rect",
176
+ {
177
+ x: "3.5",
178
+ y: "5.5",
179
+ width: "17",
180
+ height: "13",
181
+ rx: "2",
182
+ stroke: "currentColor",
183
+ strokeWidth: "1.8"
184
+ }
185
+ ),
186
+ /* @__PURE__ */ jsx4(
187
+ "path",
188
+ {
189
+ d: "m4.5 7 6.04 4.53a2.4 2.4 0 0 0 2.92 0L19.5 7",
190
+ stroke: "currentColor",
191
+ strokeWidth: "1.8",
192
+ strokeLinecap: "round",
193
+ strokeLinejoin: "round"
194
+ }
195
+ )
196
+ ] });
197
+ }
198
+ function PhoneIcon(props) {
199
+ return /* @__PURE__ */ jsx4("svg", { ...iconProps4(props), children: /* @__PURE__ */ jsx4(
200
+ "path",
201
+ {
202
+ d: "M8.05 3.75 5.84 4.8c-.76.36-1.15 1.2-.94 2.02 1.55 6.14 6.34 10.93 12.48 12.48.82.21 1.66-.18 2.02-.94l1.05-2.21a1.5 1.5 0 0 0-.57-1.91l-2.41-1.48a1.5 1.5 0 0 0-1.8.18l-1.23 1.06a10.38 10.38 0 0 1-4.45-4.45l1.06-1.23a1.5 1.5 0 0 0 .18-1.8L9.96 4.32a1.5 1.5 0 0 0-1.91-.57Z",
203
+ stroke: "currentColor",
204
+ strokeWidth: "1.8",
205
+ strokeLinecap: "round",
206
+ strokeLinejoin: "round"
207
+ }
208
+ ) });
209
+ }
210
+ function EyeIcon(props) {
211
+ return /* @__PURE__ */ jsxs("svg", { ...iconProps4(props), children: [
212
+ /* @__PURE__ */ jsx4(
213
+ "path",
214
+ {
215
+ d: "M2.9 12s3.1-5 9.1-5 9.1 5 9.1 5-3.1 5-9.1 5-9.1-5-9.1-5Z",
216
+ stroke: "currentColor",
217
+ strokeWidth: "1.8",
218
+ strokeLinecap: "round",
219
+ strokeLinejoin: "round"
220
+ }
221
+ ),
222
+ /* @__PURE__ */ jsx4("circle", { cx: "12", cy: "12", r: "2.4", stroke: "currentColor", strokeWidth: "1.8" })
223
+ ] });
224
+ }
225
+ function EyeOffIcon(props) {
226
+ return /* @__PURE__ */ jsxs("svg", { ...iconProps4(props), children: [
227
+ /* @__PURE__ */ jsx4(
228
+ "path",
229
+ {
230
+ d: "M10.58 7.16A6.1 6.1 0 0 1 12 7c6 0 9.1 5 9.1 5a16.1 16.1 0 0 1-2.54 2.84M13.28 16.83A6.1 6.1 0 0 1 12 17c-6 0-9.1-5-9.1-5a16.1 16.1 0 0 1 2.59-2.87",
231
+ stroke: "currentColor",
232
+ strokeWidth: "1.8",
233
+ strokeLinecap: "round",
234
+ strokeLinejoin: "round"
235
+ }
236
+ ),
237
+ /* @__PURE__ */ jsx4(
238
+ "path",
239
+ {
240
+ d: "m3.5 3.5 17 17M10.1 10.1a2.7 2.7 0 0 0 3.8 3.8",
241
+ stroke: "currentColor",
242
+ strokeWidth: "1.8",
243
+ strokeLinecap: "round"
244
+ }
245
+ )
246
+ ] });
247
+ }
172
248
 
173
249
  export {
174
250
  plus,
@@ -194,5 +270,9 @@ export {
194
270
  CloseIcon,
195
271
  MoreHorizontalIcon,
196
272
  MoreVerticalIcon,
197
- SearchIcon
273
+ SearchIcon,
274
+ MailboxIcon,
275
+ PhoneIcon,
276
+ EyeIcon,
277
+ EyeOffIcon
198
278
  };
package/dist/icons.d.mts CHANGED
@@ -31,5 +31,9 @@ declare function CloseIcon(props: IconProps): react.JSX.Element;
31
31
  declare function MoreHorizontalIcon(props: IconProps): react.JSX.Element;
32
32
  declare function MoreVerticalIcon(props: IconProps): react.JSX.Element;
33
33
  declare function SearchIcon(props: IconProps): react.JSX.Element;
34
+ declare function MailboxIcon(props: IconProps): react.JSX.Element;
35
+ declare function PhoneIcon(props: IconProps): react.JSX.Element;
36
+ declare function EyeIcon(props: IconProps): react.JSX.Element;
37
+ declare function EyeOffIcon(props: IconProps): react.JSX.Element;
34
38
 
35
- export { ChevronDownIcon, ChevronUpIcon, CloseIcon, type IconProps, MoreHorizontalIcon, MoreVerticalIcon, PlusIcon, SearchIcon, arrow_left, check_square_fill, chevron_down, chevron_left, chevron_right, chevron_up, copy, key, lock, lock_unlocked, log_out, minus_square, plus, plus_square, search, trash, x_close };
39
+ export { ChevronDownIcon, ChevronUpIcon, CloseIcon, EyeIcon, EyeOffIcon, type IconProps, MailboxIcon, MoreHorizontalIcon, MoreVerticalIcon, PhoneIcon, PlusIcon, SearchIcon, arrow_left, check_square_fill, chevron_down, chevron_left, chevron_right, chevron_up, copy, key, lock, lock_unlocked, log_out, minus_square, plus, plus_square, search, trash, x_close };
package/dist/icons.d.ts CHANGED
@@ -31,5 +31,9 @@ declare function CloseIcon(props: IconProps): react.JSX.Element;
31
31
  declare function MoreHorizontalIcon(props: IconProps): react.JSX.Element;
32
32
  declare function MoreVerticalIcon(props: IconProps): react.JSX.Element;
33
33
  declare function SearchIcon(props: IconProps): react.JSX.Element;
34
+ declare function MailboxIcon(props: IconProps): react.JSX.Element;
35
+ declare function PhoneIcon(props: IconProps): react.JSX.Element;
36
+ declare function EyeIcon(props: IconProps): react.JSX.Element;
37
+ declare function EyeOffIcon(props: IconProps): react.JSX.Element;
34
38
 
35
- export { ChevronDownIcon, ChevronUpIcon, CloseIcon, type IconProps, MoreHorizontalIcon, MoreVerticalIcon, PlusIcon, SearchIcon, arrow_left, check_square_fill, chevron_down, chevron_left, chevron_right, chevron_up, copy, key, lock, lock_unlocked, log_out, minus_square, plus, plus_square, search, trash, x_close };
39
+ export { ChevronDownIcon, ChevronUpIcon, CloseIcon, EyeIcon, EyeOffIcon, type IconProps, MailboxIcon, MoreHorizontalIcon, MoreVerticalIcon, PhoneIcon, PlusIcon, SearchIcon, arrow_left, check_square_fill, chevron_down, chevron_left, chevron_right, chevron_up, copy, key, lock, lock_unlocked, log_out, minus_square, plus, plus_square, search, trash, x_close };
package/dist/icons.js CHANGED
@@ -23,8 +23,12 @@ __export(icons_exports, {
23
23
  ChevronDownIcon: () => ChevronDownIcon,
24
24
  ChevronUpIcon: () => ChevronUpIcon,
25
25
  CloseIcon: () => CloseIcon,
26
+ EyeIcon: () => EyeIcon,
27
+ EyeOffIcon: () => EyeOffIcon,
28
+ MailboxIcon: () => MailboxIcon,
26
29
  MoreHorizontalIcon: () => MoreHorizontalIcon,
27
30
  MoreVerticalIcon: () => MoreVerticalIcon,
31
+ PhoneIcon: () => PhoneIcon,
28
32
  PlusIcon: () => PlusIcon,
29
33
  SearchIcon: () => SearchIcon,
30
34
  arrow_left: () => arrow_left,
@@ -218,13 +222,93 @@ function SearchIcon(props) {
218
222
  )
219
223
  ] });
220
224
  }
225
+ function MailboxIcon(props) {
226
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { ...iconProps4(props), children: [
227
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
228
+ "rect",
229
+ {
230
+ x: "3.5",
231
+ y: "5.5",
232
+ width: "17",
233
+ height: "13",
234
+ rx: "2",
235
+ stroke: "currentColor",
236
+ strokeWidth: "1.8"
237
+ }
238
+ ),
239
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
240
+ "path",
241
+ {
242
+ d: "m4.5 7 6.04 4.53a2.4 2.4 0 0 0 2.92 0L19.5 7",
243
+ stroke: "currentColor",
244
+ strokeWidth: "1.8",
245
+ strokeLinecap: "round",
246
+ strokeLinejoin: "round"
247
+ }
248
+ )
249
+ ] });
250
+ }
251
+ function PhoneIcon(props) {
252
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...iconProps4(props), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
253
+ "path",
254
+ {
255
+ d: "M8.05 3.75 5.84 4.8c-.76.36-1.15 1.2-.94 2.02 1.55 6.14 6.34 10.93 12.48 12.48.82.21 1.66-.18 2.02-.94l1.05-2.21a1.5 1.5 0 0 0-.57-1.91l-2.41-1.48a1.5 1.5 0 0 0-1.8.18l-1.23 1.06a10.38 10.38 0 0 1-4.45-4.45l1.06-1.23a1.5 1.5 0 0 0 .18-1.8L9.96 4.32a1.5 1.5 0 0 0-1.91-.57Z",
256
+ stroke: "currentColor",
257
+ strokeWidth: "1.8",
258
+ strokeLinecap: "round",
259
+ strokeLinejoin: "round"
260
+ }
261
+ ) });
262
+ }
263
+ function EyeIcon(props) {
264
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { ...iconProps4(props), children: [
265
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
266
+ "path",
267
+ {
268
+ d: "M2.9 12s3.1-5 9.1-5 9.1 5 9.1 5-3.1 5-9.1 5-9.1-5-9.1-5Z",
269
+ stroke: "currentColor",
270
+ strokeWidth: "1.8",
271
+ strokeLinecap: "round",
272
+ strokeLinejoin: "round"
273
+ }
274
+ ),
275
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("circle", { cx: "12", cy: "12", r: "2.4", stroke: "currentColor", strokeWidth: "1.8" })
276
+ ] });
277
+ }
278
+ function EyeOffIcon(props) {
279
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { ...iconProps4(props), children: [
280
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
281
+ "path",
282
+ {
283
+ d: "M10.58 7.16A6.1 6.1 0 0 1 12 7c6 0 9.1 5 9.1 5a16.1 16.1 0 0 1-2.54 2.84M13.28 16.83A6.1 6.1 0 0 1 12 17c-6 0-9.1-5-9.1-5a16.1 16.1 0 0 1 2.59-2.87",
284
+ stroke: "currentColor",
285
+ strokeWidth: "1.8",
286
+ strokeLinecap: "round",
287
+ strokeLinejoin: "round"
288
+ }
289
+ ),
290
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
291
+ "path",
292
+ {
293
+ d: "m3.5 3.5 17 17M10.1 10.1a2.7 2.7 0 0 0 3.8 3.8",
294
+ stroke: "currentColor",
295
+ strokeWidth: "1.8",
296
+ strokeLinecap: "round"
297
+ }
298
+ )
299
+ ] });
300
+ }
221
301
  // Annotate the CommonJS export names for ESM import in node:
222
302
  0 && (module.exports = {
223
303
  ChevronDownIcon,
224
304
  ChevronUpIcon,
225
305
  CloseIcon,
306
+ EyeIcon,
307
+ EyeOffIcon,
308
+ MailboxIcon,
226
309
  MoreHorizontalIcon,
227
310
  MoreVerticalIcon,
311
+ PhoneIcon,
228
312
  PlusIcon,
229
313
  SearchIcon,
230
314
  arrow_left,
package/dist/icons.mjs CHANGED
@@ -2,8 +2,12 @@ import {
2
2
  ChevronDownIcon,
3
3
  ChevronUpIcon,
4
4
  CloseIcon,
5
+ EyeIcon,
6
+ EyeOffIcon,
7
+ MailboxIcon,
5
8
  MoreHorizontalIcon,
6
9
  MoreVerticalIcon,
10
+ PhoneIcon,
7
11
  PlusIcon,
8
12
  SearchIcon,
9
13
  arrow_left,
@@ -23,13 +27,17 @@ import {
23
27
  search,
24
28
  trash,
25
29
  x_close
26
- } from "./chunk-HM3V3DVO.mjs";
30
+ } from "./chunk-BAZJ5UJ5.mjs";
27
31
  export {
28
32
  ChevronDownIcon,
29
33
  ChevronUpIcon,
30
34
  CloseIcon,
35
+ EyeIcon,
36
+ EyeOffIcon,
37
+ MailboxIcon,
31
38
  MoreHorizontalIcon,
32
39
  MoreVerticalIcon,
40
+ PhoneIcon,
33
41
  PlusIcon,
34
42
  SearchIcon,
35
43
  arrow_left,