@latty-ds/react 0.6.0 → 0.8.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.
@@ -5,10 +5,26 @@ export type ImageProps = HTMLAttributes<ImageEl> & {
5
5
  alt?: string;
6
6
  rounded?: ImageEl['rounded'];
7
7
  responsive?: boolean;
8
+ loading?: ImageEl['loading'];
9
+ onName?: () => void;
10
+ onLoad?: (detail: {
11
+ src: string;
12
+ }) => void;
13
+ onError?: (detail: {
14
+ src: string;
15
+ }) => void;
8
16
  };
9
17
  export declare const Image: import("react").ForwardRefExoticComponent<HTMLAttributes<ImageEl> & {
10
18
  src?: string;
11
19
  alt?: string;
12
20
  rounded?: ImageEl["rounded"];
13
21
  responsive?: boolean;
22
+ loading?: ImageEl["loading"];
23
+ onName?: () => void;
24
+ onLoad?: (detail: {
25
+ src: string;
26
+ }) => void;
27
+ onError?: (detail: {
28
+ src: string;
29
+ }) => void;
14
30
  } & import("react").RefAttributes<ImageEl>>;
@@ -3,8 +3,18 @@ import type { ListItem as ListItemEl, LattyIconName } from '@latty-ds/web';
3
3
  export type ListItemProps = HTMLAttributes<ListItemEl> & {
4
4
  iconStart?: LattyIconName;
5
5
  iconEnd?: LattyIconName;
6
+ clickable?: boolean;
7
+ href?: string;
8
+ target?: string;
9
+ rel?: string;
10
+ disabled?: boolean;
6
11
  };
7
12
  export declare const ListItem: import("react").ForwardRefExoticComponent<HTMLAttributes<ListItemEl> & {
8
13
  iconStart?: LattyIconName;
9
14
  iconEnd?: LattyIconName;
15
+ clickable?: boolean;
16
+ href?: string;
17
+ target?: string;
18
+ rel?: string;
19
+ disabled?: boolean;
10
20
  } & import("react").RefAttributes<ListItemEl>>;
package/dist/index.cjs CHANGED
@@ -69,59 +69,59 @@ __export(index_exports, {
69
69
  module.exports = __toCommonJS(index_exports);
70
70
  var import_web = require("@latty-ds/web");
71
71
 
72
- // src/components/Alert/Alert.tsx
72
+ // src/components/Accordion/Accordion.tsx
73
73
  var import_react = require("react");
74
74
  var import_jsx_runtime = require("react/jsx-runtime");
75
- var Alert = (0, import_react.forwardRef)(function Alert2({ onClose, children, ...props }, forwardedRef) {
75
+ var Accordion = (0, import_react.forwardRef)(function Accordion2({ onToggle, children, ...props }, forwardedRef) {
76
76
  const innerRef = (0, import_react.useRef)(null);
77
77
  (0, import_react.useImperativeHandle)(forwardedRef, () => innerRef.current);
78
78
  (0, import_react.useEffect)(() => {
79
+ const el = innerRef.current;
80
+ if (!el || !onToggle) return;
81
+ const h = (ev) => onToggle(ev.detail);
82
+ el.addEventListener("toggle", h);
83
+ return () => el.removeEventListener("toggle", h);
84
+ }, [onToggle]);
85
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("lt-accordion", { ref: innerRef, ...props, children });
86
+ });
87
+ Accordion.displayName = "Accordion";
88
+
89
+ // src/components/Alert/Alert.tsx
90
+ var import_react2 = require("react");
91
+ var import_jsx_runtime2 = require("react/jsx-runtime");
92
+ var Alert = (0, import_react2.forwardRef)(function Alert2({ onClose, children, ...props }, forwardedRef) {
93
+ const innerRef = (0, import_react2.useRef)(null);
94
+ (0, import_react2.useImperativeHandle)(forwardedRef, () => innerRef.current);
95
+ (0, import_react2.useEffect)(() => {
79
96
  const el = innerRef.current;
80
97
  if (!el || !onClose) return;
81
98
  const h = () => onClose();
82
99
  el.addEventListener("close", h);
83
100
  return () => el.removeEventListener("close", h);
84
101
  }, [onClose]);
85
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("lt-alert", { ref: innerRef, ...props, children });
102
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("lt-alert", { ref: innerRef, ...props, children });
86
103
  });
87
104
  Alert.displayName = "Alert";
88
105
 
89
106
  // src/components/Avatar/Avatar.tsx
90
- var import_react2 = require("react");
91
- var import_jsx_runtime2 = require("react/jsx-runtime");
92
- var Avatar = (0, import_react2.forwardRef)(function Avatar2({ children, ...props }, forwardedRef) {
93
- const innerRef = (0, import_react2.useRef)(null);
94
- (0, import_react2.useImperativeHandle)(forwardedRef, () => innerRef.current);
95
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("lt-avatar", { ref: innerRef, ...props, children });
96
- });
97
- Avatar.displayName = "Avatar";
98
-
99
- // src/components/Badge/Badge.tsx
100
107
  var import_react3 = require("react");
101
108
  var import_jsx_runtime3 = require("react/jsx-runtime");
102
- var Badge = (0, import_react3.forwardRef)(function Badge2({ children, ...props }, forwardedRef) {
109
+ var Avatar = (0, import_react3.forwardRef)(function Avatar2({ children, ...props }, forwardedRef) {
103
110
  const innerRef = (0, import_react3.useRef)(null);
104
111
  (0, import_react3.useImperativeHandle)(forwardedRef, () => innerRef.current);
105
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("lt-badge", { ref: innerRef, ...props, children });
112
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("lt-avatar", { ref: innerRef, ...props, children });
106
113
  });
107
- Badge.displayName = "Badge";
114
+ Avatar.displayName = "Avatar";
108
115
 
109
- // src/components/Accordion/Accordion.tsx
116
+ // src/components/Badge/Badge.tsx
110
117
  var import_react4 = require("react");
111
118
  var import_jsx_runtime4 = require("react/jsx-runtime");
112
- var Accordion = (0, import_react4.forwardRef)(function Accordion2({ onToggle, children, ...props }, forwardedRef) {
119
+ var Badge = (0, import_react4.forwardRef)(function Badge2({ children, ...props }, forwardedRef) {
113
120
  const innerRef = (0, import_react4.useRef)(null);
114
121
  (0, import_react4.useImperativeHandle)(forwardedRef, () => innerRef.current);
115
- (0, import_react4.useEffect)(() => {
116
- const el = innerRef.current;
117
- if (!el || !onToggle) return;
118
- const h = (ev) => onToggle(ev.detail);
119
- el.addEventListener("toggle", h);
120
- return () => el.removeEventListener("toggle", h);
121
- }, [onToggle]);
122
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("lt-accordion", { ref: innerRef, ...props, children });
122
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("lt-badge", { ref: innerRef, ...props, children });
123
123
  });
124
- Accordion.displayName = "Accordion";
124
+ Badge.displayName = "Badge";
125
125
 
126
126
  // src/components/Breadcrumb/Breadcrumb.tsx
127
127
  var import_react5 = require("react");
@@ -334,47 +334,47 @@ var Divider = (0, import_react16.forwardRef)(function Divider2({ children, ...pr
334
334
  });
335
335
  Divider.displayName = "Divider";
336
336
 
337
- // src/components/DropdownItem/DropdownItem.tsx
337
+ // src/components/Dropdown/Dropdown.tsx
338
338
  var import_react17 = require("react");
339
339
  var import_jsx_runtime17 = require("react/jsx-runtime");
340
- var DropdownItem = (0, import_react17.forwardRef)(function DropdownItem2({ onSelect, children, ...props }, forwardedRef) {
340
+ var Dropdown = (0, import_react17.forwardRef)(function Dropdown2({ onOpen, onClose, children, ...props }, forwardedRef) {
341
341
  const innerRef = (0, import_react17.useRef)(null);
342
342
  (0, import_react17.useImperativeHandle)(forwardedRef, () => innerRef.current);
343
343
  (0, import_react17.useEffect)(() => {
344
- const el = innerRef.current;
345
- if (!el || !onSelect) return;
346
- const h = () => onSelect();
347
- el.addEventListener("select", h);
348
- return () => el.removeEventListener("select", h);
349
- }, [onSelect]);
350
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("lt-dropdown-item", { ref: innerRef, ...props, children });
351
- });
352
- DropdownItem.displayName = "DropdownItem";
353
-
354
- // src/components/Dropdown/Dropdown.tsx
355
- var import_react18 = require("react");
356
- var import_jsx_runtime18 = require("react/jsx-runtime");
357
- var Dropdown = (0, import_react18.forwardRef)(function Dropdown2({ onOpen, onClose, children, ...props }, forwardedRef) {
358
- const innerRef = (0, import_react18.useRef)(null);
359
- (0, import_react18.useImperativeHandle)(forwardedRef, () => innerRef.current);
360
- (0, import_react18.useEffect)(() => {
361
344
  const el = innerRef.current;
362
345
  if (!el || !onOpen) return;
363
346
  const h = () => onOpen();
364
347
  el.addEventListener("open", h);
365
348
  return () => el.removeEventListener("open", h);
366
349
  }, [onOpen]);
367
- (0, import_react18.useEffect)(() => {
350
+ (0, import_react17.useEffect)(() => {
368
351
  const el = innerRef.current;
369
352
  if (!el || !onClose) return;
370
353
  const h = () => onClose();
371
354
  el.addEventListener("close", h);
372
355
  return () => el.removeEventListener("close", h);
373
356
  }, [onClose]);
374
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("lt-dropdown", { ref: innerRef, ...props, children });
357
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("lt-dropdown", { ref: innerRef, ...props, children });
375
358
  });
376
359
  Dropdown.displayName = "Dropdown";
377
360
 
361
+ // src/components/DropdownItem/DropdownItem.tsx
362
+ var import_react18 = require("react");
363
+ var import_jsx_runtime18 = require("react/jsx-runtime");
364
+ var DropdownItem = (0, import_react18.forwardRef)(function DropdownItem2({ onSelect, children, ...props }, forwardedRef) {
365
+ const innerRef = (0, import_react18.useRef)(null);
366
+ (0, import_react18.useImperativeHandle)(forwardedRef, () => innerRef.current);
367
+ (0, import_react18.useEffect)(() => {
368
+ const el = innerRef.current;
369
+ if (!el || !onSelect) return;
370
+ const h = () => onSelect();
371
+ el.addEventListener("select", h);
372
+ return () => el.removeEventListener("select", h);
373
+ }, [onSelect]);
374
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("lt-dropdown-item", { ref: innerRef, ...props, children });
375
+ });
376
+ DropdownItem.displayName = "DropdownItem";
377
+
378
378
  // src/components/Header/Header.tsx
379
379
  var import_react19 = require("react");
380
380
  var import_jsx_runtime19 = require("react/jsx-runtime");
@@ -403,22 +403,43 @@ IconButton.displayName = "IconButton";
403
403
  // src/components/Image/Image.tsx
404
404
  var import_react21 = require("react");
405
405
  var import_jsx_runtime21 = require("react/jsx-runtime");
406
- var Image = (0, import_react21.forwardRef)(function Image2({ children, ...props }, forwardedRef) {
406
+ var Image = (0, import_react21.forwardRef)(function Image2({ onName, onLoad, onError, children, ...props }, forwardedRef) {
407
407
  const innerRef = (0, import_react21.useRef)(null);
408
408
  (0, import_react21.useImperativeHandle)(forwardedRef, () => innerRef.current);
409
+ (0, import_react21.useEffect)(() => {
410
+ const el = innerRef.current;
411
+ if (!el || !onName) return;
412
+ const h = () => onName();
413
+ el.addEventListener("name", h);
414
+ return () => el.removeEventListener("name", h);
415
+ }, [onName]);
416
+ (0, import_react21.useEffect)(() => {
417
+ const el = innerRef.current;
418
+ if (!el || !onLoad) return;
419
+ const h = (ev) => onLoad(ev.detail);
420
+ el.addEventListener("lt-load", h);
421
+ return () => el.removeEventListener("lt-load", h);
422
+ }, [onLoad]);
423
+ (0, import_react21.useEffect)(() => {
424
+ const el = innerRef.current;
425
+ if (!el || !onError) return;
426
+ const h = (ev) => onError(ev.detail);
427
+ el.addEventListener("lt-error", h);
428
+ return () => el.removeEventListener("lt-error", h);
429
+ }, [onError]);
409
430
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("lt-image", { ref: innerRef, ...props, children });
410
431
  });
411
432
  Image.displayName = "Image";
412
433
 
413
- // src/components/ListItem/ListItem.tsx
434
+ // src/components/Link/Link.tsx
414
435
  var import_react22 = require("react");
415
436
  var import_jsx_runtime22 = require("react/jsx-runtime");
416
- var ListItem = (0, import_react22.forwardRef)(function ListItem2({ children, ...props }, forwardedRef) {
437
+ var Link = (0, import_react22.forwardRef)(function Link2({ children, ...props }, forwardedRef) {
417
438
  const innerRef = (0, import_react22.useRef)(null);
418
439
  (0, import_react22.useImperativeHandle)(forwardedRef, () => innerRef.current);
419
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("lt-list-item", { ref: innerRef, ...props, children });
440
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("lt-link", { ref: innerRef, ...props, children });
420
441
  });
421
- ListItem.displayName = "ListItem";
442
+ Link.displayName = "Link";
422
443
 
423
444
  // src/components/List/List.tsx
424
445
  var import_react23 = require("react");
@@ -430,73 +451,73 @@ var List = (0, import_react23.forwardRef)(function List2({ children, ...props },
430
451
  });
431
452
  List.displayName = "List";
432
453
 
433
- // src/components/NavItem/NavItem.tsx
454
+ // src/components/ListItem/ListItem.tsx
434
455
  var import_react24 = require("react");
435
456
  var import_jsx_runtime24 = require("react/jsx-runtime");
436
- var NavItem = (0, import_react24.forwardRef)(function NavItem2({ onNavItemClick, onNavCollapse, iconStart, children, ...props }, forwardedRef) {
457
+ var ListItem = (0, import_react24.forwardRef)(function ListItem2({ children, ...props }, forwardedRef) {
437
458
  const innerRef = (0, import_react24.useRef)(null);
438
459
  (0, import_react24.useImperativeHandle)(forwardedRef, () => innerRef.current);
439
- (0, import_react24.useEffect)(() => {
460
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("lt-list-item", { ref: innerRef, ...props, children });
461
+ });
462
+ ListItem.displayName = "ListItem";
463
+
464
+ // src/components/Nav/Nav.tsx
465
+ var import_react25 = require("react");
466
+ var import_jsx_runtime25 = require("react/jsx-runtime");
467
+ var Nav = (0, import_react25.forwardRef)(function Nav2({ children, ...props }, forwardedRef) {
468
+ const innerRef = (0, import_react25.useRef)(null);
469
+ (0, import_react25.useImperativeHandle)(forwardedRef, () => innerRef.current);
470
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("lt-nav", { ref: innerRef, ...props, children });
471
+ });
472
+ Nav.displayName = "Nav";
473
+
474
+ // src/components/NavItem/NavItem.tsx
475
+ var import_react26 = require("react");
476
+ var import_jsx_runtime26 = require("react/jsx-runtime");
477
+ var NavItem = (0, import_react26.forwardRef)(function NavItem2({ onNavItemClick, onNavCollapse, iconStart, children, ...props }, forwardedRef) {
478
+ const innerRef = (0, import_react26.useRef)(null);
479
+ (0, import_react26.useImperativeHandle)(forwardedRef, () => innerRef.current);
480
+ (0, import_react26.useEffect)(() => {
440
481
  const el = innerRef.current;
441
482
  if (!el || !onNavItemClick) return;
442
483
  const h = (ev) => onNavItemClick(ev);
443
484
  el.addEventListener("nav-item-click", h);
444
485
  return () => el.removeEventListener("nav-item-click", h);
445
486
  }, [onNavItemClick]);
446
- (0, import_react24.useEffect)(() => {
487
+ (0, import_react26.useEffect)(() => {
447
488
  const el = innerRef.current;
448
489
  if (!el || !onNavCollapse) return;
449
490
  const h = (ev) => onNavCollapse(ev);
450
491
  el.addEventListener("nav-collapse", h);
451
492
  return () => el.removeEventListener("nav-collapse", h);
452
493
  }, [onNavCollapse]);
453
- (0, import_react24.useEffect)(() => {
494
+ (0, import_react26.useEffect)(() => {
454
495
  const el = innerRef.current;
455
496
  if (!el) return;
456
497
  if (iconStart) el.setAttribute("icon-start", iconStart);
457
498
  else el.removeAttribute("icon-start");
458
499
  }, [iconStart]);
459
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("lt-nav-item", { ref: innerRef, ...props, children });
500
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("lt-nav-item", { ref: innerRef, ...props, children });
460
501
  });
461
502
  NavItem.displayName = "NavItem";
462
503
 
463
- // src/components/Nav/Nav.tsx
464
- var import_react25 = require("react");
465
- var import_jsx_runtime25 = require("react/jsx-runtime");
466
- var Nav = (0, import_react25.forwardRef)(function Nav2({ children, ...props }, forwardedRef) {
467
- const innerRef = (0, import_react25.useRef)(null);
468
- (0, import_react25.useImperativeHandle)(forwardedRef, () => innerRef.current);
469
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("lt-nav", { ref: innerRef, ...props, children });
470
- });
471
- Nav.displayName = "Nav";
472
-
473
504
  // src/components/Pagination/Pagination.tsx
474
- var import_react26 = require("react");
475
- var import_jsx_runtime26 = require("react/jsx-runtime");
476
- var Pagination = (0, import_react26.forwardRef)(function Pagination2({ onChange, children, ...props }, forwardedRef) {
477
- const innerRef = (0, import_react26.useRef)(null);
478
- (0, import_react26.useImperativeHandle)(forwardedRef, () => innerRef.current);
479
- (0, import_react26.useEffect)(() => {
505
+ var import_react27 = require("react");
506
+ var import_jsx_runtime27 = require("react/jsx-runtime");
507
+ var Pagination = (0, import_react27.forwardRef)(function Pagination2({ onChange, children, ...props }, forwardedRef) {
508
+ const innerRef = (0, import_react27.useRef)(null);
509
+ (0, import_react27.useImperativeHandle)(forwardedRef, () => innerRef.current);
510
+ (0, import_react27.useEffect)(() => {
480
511
  const el = innerRef.current;
481
512
  if (!el || !onChange) return;
482
513
  const h = (ev) => onChange(ev.detail);
483
514
  el.addEventListener("change", h);
484
515
  return () => el.removeEventListener("change", h);
485
516
  }, [onChange]);
486
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("lt-pagination", { ref: innerRef, ...props, children });
517
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("lt-pagination", { ref: innerRef, ...props, children });
487
518
  });
488
519
  Pagination.displayName = "Pagination";
489
520
 
490
- // src/components/Link/Link.tsx
491
- var import_react27 = require("react");
492
- var import_jsx_runtime27 = require("react/jsx-runtime");
493
- var Link = (0, import_react27.forwardRef)(function Link2({ children, ...props }, forwardedRef) {
494
- const innerRef = (0, import_react27.useRef)(null);
495
- (0, import_react27.useImperativeHandle)(forwardedRef, () => innerRef.current);
496
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("lt-link", { ref: innerRef, ...props, children });
497
- });
498
- Link.displayName = "Link";
499
-
500
521
  // src/components/Progress/Progress.tsx
501
522
  var import_react28 = require("react");
502
523
  var import_jsx_runtime28 = require("react/jsx-runtime");
@@ -683,67 +704,67 @@ var Switch = (0, import_react38.forwardRef)(function Switch2({ onChange, childre
683
704
  });
684
705
  Switch.displayName = "Switch";
685
706
 
686
- // src/components/TabPanel/TabPanel.tsx
707
+ // src/components/Tab/Tab.tsx
687
708
  var import_react39 = require("react");
688
709
  var import_jsx_runtime39 = require("react/jsx-runtime");
689
- var TabPanel = (0, import_react39.forwardRef)(function TabPanel2({ children, ...props }, forwardedRef) {
710
+ var Tab = (0, import_react39.forwardRef)(function Tab2({ onTabClick, children, ...props }, forwardedRef) {
690
711
  const innerRef = (0, import_react39.useRef)(null);
691
712
  (0, import_react39.useImperativeHandle)(forwardedRef, () => innerRef.current);
692
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("lt-tab-panel", { ref: innerRef, ...props, children });
693
- });
694
- TabPanel.displayName = "TabPanel";
695
-
696
- // src/components/Tab/Tab.tsx
697
- var import_react40 = require("react");
698
- var import_jsx_runtime40 = require("react/jsx-runtime");
699
- var Tab = (0, import_react40.forwardRef)(function Tab2({ onTabClick, children, ...props }, forwardedRef) {
700
- const innerRef = (0, import_react40.useRef)(null);
701
- (0, import_react40.useImperativeHandle)(forwardedRef, () => innerRef.current);
702
- (0, import_react40.useEffect)(() => {
713
+ (0, import_react39.useEffect)(() => {
703
714
  const el = innerRef.current;
704
715
  if (!el || !onTabClick) return;
705
716
  const h = (ev) => onTabClick(ev);
706
717
  el.addEventListener("tab-click", h);
707
718
  return () => el.removeEventListener("tab-click", h);
708
719
  }, [onTabClick]);
709
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("lt-tab", { ref: innerRef, ...props, children });
720
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("lt-tab", { ref: innerRef, ...props, children });
710
721
  });
711
722
  Tab.displayName = "Tab";
712
723
 
713
724
  // src/components/TabGroup/TabGroup.tsx
714
- var import_react41 = require("react");
715
- var import_jsx_runtime41 = require("react/jsx-runtime");
716
- var TabGroup = (0, import_react41.forwardRef)(function TabGroup2({ onChange, children, ...props }, forwardedRef) {
717
- const innerRef = (0, import_react41.useRef)(null);
718
- (0, import_react41.useImperativeHandle)(forwardedRef, () => innerRef.current);
719
- (0, import_react41.useEffect)(() => {
725
+ var import_react40 = require("react");
726
+ var import_jsx_runtime40 = require("react/jsx-runtime");
727
+ var TabGroup = (0, import_react40.forwardRef)(function TabGroup2({ onChange, children, ...props }, forwardedRef) {
728
+ const innerRef = (0, import_react40.useRef)(null);
729
+ (0, import_react40.useImperativeHandle)(forwardedRef, () => innerRef.current);
730
+ (0, import_react40.useEffect)(() => {
720
731
  const el = innerRef.current;
721
732
  if (!el || !onChange) return;
722
733
  const h = (ev) => onChange(ev.detail);
723
734
  el.addEventListener("change", h);
724
735
  return () => el.removeEventListener("change", h);
725
736
  }, [onChange]);
726
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("lt-tab-group", { ref: innerRef, ...props, children });
737
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("lt-tab-group", { ref: innerRef, ...props, children });
727
738
  });
728
739
  TabGroup.displayName = "TabGroup";
729
740
 
730
741
  // src/components/Table/Table.tsx
731
- var import_react42 = require("react");
732
- var import_jsx_runtime42 = require("react/jsx-runtime");
733
- var Table = (0, import_react42.forwardRef)(function Table2({ onSortChange, children, ...props }, forwardedRef) {
734
- const innerRef = (0, import_react42.useRef)(null);
735
- (0, import_react42.useImperativeHandle)(forwardedRef, () => innerRef.current);
736
- (0, import_react42.useEffect)(() => {
742
+ var import_react41 = require("react");
743
+ var import_jsx_runtime41 = require("react/jsx-runtime");
744
+ var Table = (0, import_react41.forwardRef)(function Table2({ onSortChange, children, ...props }, forwardedRef) {
745
+ const innerRef = (0, import_react41.useRef)(null);
746
+ (0, import_react41.useImperativeHandle)(forwardedRef, () => innerRef.current);
747
+ (0, import_react41.useEffect)(() => {
737
748
  const el = innerRef.current;
738
749
  if (!el || !onSortChange) return;
739
750
  const h = () => onSortChange();
740
751
  el.addEventListener("sort-change", h);
741
752
  return () => el.removeEventListener("sort-change", h);
742
753
  }, [onSortChange]);
743
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("lt-table", { ref: innerRef, ...props, children });
754
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("lt-table", { ref: innerRef, ...props, children });
744
755
  });
745
756
  Table.displayName = "Table";
746
757
 
758
+ // src/components/TabPanel/TabPanel.tsx
759
+ var import_react42 = require("react");
760
+ var import_jsx_runtime42 = require("react/jsx-runtime");
761
+ var TabPanel = (0, import_react42.forwardRef)(function TabPanel2({ children, ...props }, forwardedRef) {
762
+ const innerRef = (0, import_react42.useRef)(null);
763
+ (0, import_react42.useImperativeHandle)(forwardedRef, () => innerRef.current);
764
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("lt-tab-panel", { ref: innerRef, ...props, children });
765
+ });
766
+ TabPanel.displayName = "TabPanel";
767
+
747
768
  // src/components/Text/Text.tsx
748
769
  var import_react43 = require("react");
749
770
  var import_jsx_runtime43 = require("react/jsx-runtime");
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import '@latty-ds/web';
2
+ export { Accordion, type AccordionProps } from './components/Accordion';
2
3
  export { Alert, type AlertProps } from './components/Alert';
3
4
  export { Avatar, type AvatarProps } from './components/Avatar';
4
5
  export { Badge, type BadgeProps } from './components/Badge';
5
- export { Accordion, type AccordionProps } from './components/Accordion';
6
6
  export { Breadcrumb, type BreadcrumbProps } from './components/Breadcrumb';
7
7
  export { BreadcrumbItem, type BreadcrumbItemProps } from './components/BreadcrumbItem';
8
8
  export { Button, type ButtonProps } from './components/Button';
@@ -15,17 +15,17 @@ export { DateInput, type DateInputProps } from './components/DateInput';
15
15
  export { Datepicker, type DatepickerProps } from './components/Datepicker';
16
16
  export { Dialog, type DialogProps } from './components/Dialog';
17
17
  export { Divider, type DividerProps } from './components/Divider';
18
- export { DropdownItem, type DropdownItemProps } from './components/DropdownItem';
19
18
  export { Dropdown, type DropdownProps } from './components/Dropdown';
19
+ export { DropdownItem, type DropdownItemProps } from './components/DropdownItem';
20
20
  export { Header, type HeaderProps } from './components/Header';
21
21
  export { IconButton, type IconButtonProps } from './components/IconButton';
22
22
  export { Image, type ImageProps } from './components/Image';
23
- export { ListItem, type ListItemProps } from './components/ListItem';
23
+ export { Link, type LinkProps } from './components/Link';
24
24
  export { List, type ListProps } from './components/List';
25
- export { NavItem, type NavItemProps } from './components/NavItem';
25
+ export { ListItem, type ListItemProps } from './components/ListItem';
26
26
  export { Nav, type NavProps } from './components/Nav';
27
+ export { NavItem, type NavItemProps } from './components/NavItem';
27
28
  export { Pagination, type PaginationProps } from './components/Pagination';
28
- export { Link, type LinkProps } from './components/Link';
29
29
  export { Progress, type ProgressProps } from './components/Progress';
30
30
  export { Radio, type RadioProps } from './components/Radio';
31
31
  export { RadioGroup, type RadioGroupProps } from './components/RadioGroup';
@@ -37,10 +37,10 @@ export { Snackbar, type SnackbarProps } from './components/Snackbar';
37
37
  export { Spinner, type SpinnerProps } from './components/Spinner';
38
38
  export { Surface, type SurfaceProps } from './components/Surface';
39
39
  export { Switch, type SwitchProps } from './components/Switch';
40
- export { TabPanel, type TabPanelProps } from './components/TabPanel';
41
40
  export { Tab, type TabProps } from './components/Tab';
42
41
  export { TabGroup, type TabGroupProps } from './components/TabGroup';
43
42
  export { Table, type TableProps } from './components/Table';
43
+ export { TabPanel, type TabPanelProps } from './components/TabPanel';
44
44
  export { Text, type TextProps } from './components/Text';
45
45
  export { Textfield, type TextfieldProps } from './components/Textfield';
46
46
  export { Tooltip, type TooltipProps } from './components/Tooltip';
package/dist/index.js CHANGED
@@ -1,59 +1,59 @@
1
1
  // src/index.ts
2
2
  import "@latty-ds/web";
3
3
 
4
- // src/components/Alert/Alert.tsx
4
+ // src/components/Accordion/Accordion.tsx
5
5
  import { useRef, useEffect, useImperativeHandle, forwardRef } from "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
- var Alert = forwardRef(function Alert2({ onClose, children, ...props }, forwardedRef) {
7
+ var Accordion = forwardRef(function Accordion2({ onToggle, children, ...props }, forwardedRef) {
8
8
  const innerRef = useRef(null);
9
9
  useImperativeHandle(forwardedRef, () => innerRef.current);
10
10
  useEffect(() => {
11
+ const el = innerRef.current;
12
+ if (!el || !onToggle) return;
13
+ const h = (ev) => onToggle(ev.detail);
14
+ el.addEventListener("toggle", h);
15
+ return () => el.removeEventListener("toggle", h);
16
+ }, [onToggle]);
17
+ return /* @__PURE__ */ jsx("lt-accordion", { ref: innerRef, ...props, children });
18
+ });
19
+ Accordion.displayName = "Accordion";
20
+
21
+ // src/components/Alert/Alert.tsx
22
+ import { useRef as useRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2, forwardRef as forwardRef2 } from "react";
23
+ import { jsx as jsx2 } from "react/jsx-runtime";
24
+ var Alert = forwardRef2(function Alert2({ onClose, children, ...props }, forwardedRef) {
25
+ const innerRef = useRef2(null);
26
+ useImperativeHandle2(forwardedRef, () => innerRef.current);
27
+ useEffect2(() => {
11
28
  const el = innerRef.current;
12
29
  if (!el || !onClose) return;
13
30
  const h = () => onClose();
14
31
  el.addEventListener("close", h);
15
32
  return () => el.removeEventListener("close", h);
16
33
  }, [onClose]);
17
- return /* @__PURE__ */ jsx("lt-alert", { ref: innerRef, ...props, children });
34
+ return /* @__PURE__ */ jsx2("lt-alert", { ref: innerRef, ...props, children });
18
35
  });
19
36
  Alert.displayName = "Alert";
20
37
 
21
38
  // src/components/Avatar/Avatar.tsx
22
- import { useRef as useRef2, useImperativeHandle as useImperativeHandle2, forwardRef as forwardRef2 } from "react";
23
- import { jsx as jsx2 } from "react/jsx-runtime";
24
- var Avatar = forwardRef2(function Avatar2({ children, ...props }, forwardedRef) {
25
- const innerRef = useRef2(null);
26
- useImperativeHandle2(forwardedRef, () => innerRef.current);
27
- return /* @__PURE__ */ jsx2("lt-avatar", { ref: innerRef, ...props, children });
28
- });
29
- Avatar.displayName = "Avatar";
30
-
31
- // src/components/Badge/Badge.tsx
32
39
  import { useRef as useRef3, useImperativeHandle as useImperativeHandle3, forwardRef as forwardRef3 } from "react";
33
40
  import { jsx as jsx3 } from "react/jsx-runtime";
34
- var Badge = forwardRef3(function Badge2({ children, ...props }, forwardedRef) {
41
+ var Avatar = forwardRef3(function Avatar2({ children, ...props }, forwardedRef) {
35
42
  const innerRef = useRef3(null);
36
43
  useImperativeHandle3(forwardedRef, () => innerRef.current);
37
- return /* @__PURE__ */ jsx3("lt-badge", { ref: innerRef, ...props, children });
44
+ return /* @__PURE__ */ jsx3("lt-avatar", { ref: innerRef, ...props, children });
38
45
  });
39
- Badge.displayName = "Badge";
46
+ Avatar.displayName = "Avatar";
40
47
 
41
- // src/components/Accordion/Accordion.tsx
42
- import { useRef as useRef4, useEffect as useEffect2, useImperativeHandle as useImperativeHandle4, forwardRef as forwardRef4 } from "react";
48
+ // src/components/Badge/Badge.tsx
49
+ import { useRef as useRef4, useImperativeHandle as useImperativeHandle4, forwardRef as forwardRef4 } from "react";
43
50
  import { jsx as jsx4 } from "react/jsx-runtime";
44
- var Accordion = forwardRef4(function Accordion2({ onToggle, children, ...props }, forwardedRef) {
51
+ var Badge = forwardRef4(function Badge2({ children, ...props }, forwardedRef) {
45
52
  const innerRef = useRef4(null);
46
53
  useImperativeHandle4(forwardedRef, () => innerRef.current);
47
- useEffect2(() => {
48
- const el = innerRef.current;
49
- if (!el || !onToggle) return;
50
- const h = (ev) => onToggle(ev.detail);
51
- el.addEventListener("toggle", h);
52
- return () => el.removeEventListener("toggle", h);
53
- }, [onToggle]);
54
- return /* @__PURE__ */ jsx4("lt-accordion", { ref: innerRef, ...props, children });
54
+ return /* @__PURE__ */ jsx4("lt-badge", { ref: innerRef, ...props, children });
55
55
  });
56
- Accordion.displayName = "Accordion";
56
+ Badge.displayName = "Badge";
57
57
 
58
58
  // src/components/Breadcrumb/Breadcrumb.tsx
59
59
  import { useRef as useRef5, useImperativeHandle as useImperativeHandle5, forwardRef as forwardRef5 } from "react";
@@ -266,47 +266,47 @@ var Divider = forwardRef16(function Divider2({ children, ...props }, forwardedRe
266
266
  });
267
267
  Divider.displayName = "Divider";
268
268
 
269
- // src/components/DropdownItem/DropdownItem.tsx
269
+ // src/components/Dropdown/Dropdown.tsx
270
270
  import { useRef as useRef17, useEffect as useEffect11, useImperativeHandle as useImperativeHandle17, forwardRef as forwardRef17 } from "react";
271
271
  import { jsx as jsx17 } from "react/jsx-runtime";
272
- var DropdownItem = forwardRef17(function DropdownItem2({ onSelect, children, ...props }, forwardedRef) {
272
+ var Dropdown = forwardRef17(function Dropdown2({ onOpen, onClose, children, ...props }, forwardedRef) {
273
273
  const innerRef = useRef17(null);
274
274
  useImperativeHandle17(forwardedRef, () => innerRef.current);
275
275
  useEffect11(() => {
276
- const el = innerRef.current;
277
- if (!el || !onSelect) return;
278
- const h = () => onSelect();
279
- el.addEventListener("select", h);
280
- return () => el.removeEventListener("select", h);
281
- }, [onSelect]);
282
- return /* @__PURE__ */ jsx17("lt-dropdown-item", { ref: innerRef, ...props, children });
283
- });
284
- DropdownItem.displayName = "DropdownItem";
285
-
286
- // src/components/Dropdown/Dropdown.tsx
287
- import { useRef as useRef18, useEffect as useEffect12, useImperativeHandle as useImperativeHandle18, forwardRef as forwardRef18 } from "react";
288
- import { jsx as jsx18 } from "react/jsx-runtime";
289
- var Dropdown = forwardRef18(function Dropdown2({ onOpen, onClose, children, ...props }, forwardedRef) {
290
- const innerRef = useRef18(null);
291
- useImperativeHandle18(forwardedRef, () => innerRef.current);
292
- useEffect12(() => {
293
276
  const el = innerRef.current;
294
277
  if (!el || !onOpen) return;
295
278
  const h = () => onOpen();
296
279
  el.addEventListener("open", h);
297
280
  return () => el.removeEventListener("open", h);
298
281
  }, [onOpen]);
299
- useEffect12(() => {
282
+ useEffect11(() => {
300
283
  const el = innerRef.current;
301
284
  if (!el || !onClose) return;
302
285
  const h = () => onClose();
303
286
  el.addEventListener("close", h);
304
287
  return () => el.removeEventListener("close", h);
305
288
  }, [onClose]);
306
- return /* @__PURE__ */ jsx18("lt-dropdown", { ref: innerRef, ...props, children });
289
+ return /* @__PURE__ */ jsx17("lt-dropdown", { ref: innerRef, ...props, children });
307
290
  });
308
291
  Dropdown.displayName = "Dropdown";
309
292
 
293
+ // src/components/DropdownItem/DropdownItem.tsx
294
+ import { useRef as useRef18, useEffect as useEffect12, useImperativeHandle as useImperativeHandle18, forwardRef as forwardRef18 } from "react";
295
+ import { jsx as jsx18 } from "react/jsx-runtime";
296
+ var DropdownItem = forwardRef18(function DropdownItem2({ onSelect, children, ...props }, forwardedRef) {
297
+ const innerRef = useRef18(null);
298
+ useImperativeHandle18(forwardedRef, () => innerRef.current);
299
+ useEffect12(() => {
300
+ const el = innerRef.current;
301
+ if (!el || !onSelect) return;
302
+ const h = () => onSelect();
303
+ el.addEventListener("select", h);
304
+ return () => el.removeEventListener("select", h);
305
+ }, [onSelect]);
306
+ return /* @__PURE__ */ jsx18("lt-dropdown-item", { ref: innerRef, ...props, children });
307
+ });
308
+ DropdownItem.displayName = "DropdownItem";
309
+
310
310
  // src/components/Header/Header.tsx
311
311
  import { useRef as useRef19, useImperativeHandle as useImperativeHandle19, forwardRef as forwardRef19 } from "react";
312
312
  import { jsx as jsx19, jsxs } from "react/jsx-runtime";
@@ -333,24 +333,45 @@ var IconButton = forwardRef20(function IconButton2({ children, ...props }, forwa
333
333
  IconButton.displayName = "IconButton";
334
334
 
335
335
  // src/components/Image/Image.tsx
336
- import { useRef as useRef21, useImperativeHandle as useImperativeHandle21, forwardRef as forwardRef21 } from "react";
336
+ import { useRef as useRef21, useEffect as useEffect13, useImperativeHandle as useImperativeHandle21, forwardRef as forwardRef21 } from "react";
337
337
  import { jsx as jsx21 } from "react/jsx-runtime";
338
- var Image = forwardRef21(function Image2({ children, ...props }, forwardedRef) {
338
+ var Image = forwardRef21(function Image2({ onName, onLoad, onError, children, ...props }, forwardedRef) {
339
339
  const innerRef = useRef21(null);
340
340
  useImperativeHandle21(forwardedRef, () => innerRef.current);
341
+ useEffect13(() => {
342
+ const el = innerRef.current;
343
+ if (!el || !onName) return;
344
+ const h = () => onName();
345
+ el.addEventListener("name", h);
346
+ return () => el.removeEventListener("name", h);
347
+ }, [onName]);
348
+ useEffect13(() => {
349
+ const el = innerRef.current;
350
+ if (!el || !onLoad) return;
351
+ const h = (ev) => onLoad(ev.detail);
352
+ el.addEventListener("lt-load", h);
353
+ return () => el.removeEventListener("lt-load", h);
354
+ }, [onLoad]);
355
+ useEffect13(() => {
356
+ const el = innerRef.current;
357
+ if (!el || !onError) return;
358
+ const h = (ev) => onError(ev.detail);
359
+ el.addEventListener("lt-error", h);
360
+ return () => el.removeEventListener("lt-error", h);
361
+ }, [onError]);
341
362
  return /* @__PURE__ */ jsx21("lt-image", { ref: innerRef, ...props, children });
342
363
  });
343
364
  Image.displayName = "Image";
344
365
 
345
- // src/components/ListItem/ListItem.tsx
366
+ // src/components/Link/Link.tsx
346
367
  import { useRef as useRef22, useImperativeHandle as useImperativeHandle22, forwardRef as forwardRef22 } from "react";
347
368
  import { jsx as jsx22 } from "react/jsx-runtime";
348
- var ListItem = forwardRef22(function ListItem2({ children, ...props }, forwardedRef) {
369
+ var Link = forwardRef22(function Link2({ children, ...props }, forwardedRef) {
349
370
  const innerRef = useRef22(null);
350
371
  useImperativeHandle22(forwardedRef, () => innerRef.current);
351
- return /* @__PURE__ */ jsx22("lt-list-item", { ref: innerRef, ...props, children });
372
+ return /* @__PURE__ */ jsx22("lt-link", { ref: innerRef, ...props, children });
352
373
  });
353
- ListItem.displayName = "ListItem";
374
+ Link.displayName = "Link";
354
375
 
355
376
  // src/components/List/List.tsx
356
377
  import { useRef as useRef23, useImperativeHandle as useImperativeHandle23, forwardRef as forwardRef23 } from "react";
@@ -362,73 +383,73 @@ var List = forwardRef23(function List2({ children, ...props }, forwardedRef) {
362
383
  });
363
384
  List.displayName = "List";
364
385
 
365
- // src/components/NavItem/NavItem.tsx
366
- import { useRef as useRef24, useEffect as useEffect13, useImperativeHandle as useImperativeHandle24, forwardRef as forwardRef24 } from "react";
386
+ // src/components/ListItem/ListItem.tsx
387
+ import { useRef as useRef24, useImperativeHandle as useImperativeHandle24, forwardRef as forwardRef24 } from "react";
367
388
  import { jsx as jsx24 } from "react/jsx-runtime";
368
- var NavItem = forwardRef24(function NavItem2({ onNavItemClick, onNavCollapse, iconStart, children, ...props }, forwardedRef) {
389
+ var ListItem = forwardRef24(function ListItem2({ children, ...props }, forwardedRef) {
369
390
  const innerRef = useRef24(null);
370
391
  useImperativeHandle24(forwardedRef, () => innerRef.current);
371
- useEffect13(() => {
392
+ return /* @__PURE__ */ jsx24("lt-list-item", { ref: innerRef, ...props, children });
393
+ });
394
+ ListItem.displayName = "ListItem";
395
+
396
+ // src/components/Nav/Nav.tsx
397
+ import { useRef as useRef25, useImperativeHandle as useImperativeHandle25, forwardRef as forwardRef25 } from "react";
398
+ import { jsx as jsx25 } from "react/jsx-runtime";
399
+ var Nav = forwardRef25(function Nav2({ children, ...props }, forwardedRef) {
400
+ const innerRef = useRef25(null);
401
+ useImperativeHandle25(forwardedRef, () => innerRef.current);
402
+ return /* @__PURE__ */ jsx25("lt-nav", { ref: innerRef, ...props, children });
403
+ });
404
+ Nav.displayName = "Nav";
405
+
406
+ // src/components/NavItem/NavItem.tsx
407
+ import { useRef as useRef26, useEffect as useEffect14, useImperativeHandle as useImperativeHandle26, forwardRef as forwardRef26 } from "react";
408
+ import { jsx as jsx26 } from "react/jsx-runtime";
409
+ var NavItem = forwardRef26(function NavItem2({ onNavItemClick, onNavCollapse, iconStart, children, ...props }, forwardedRef) {
410
+ const innerRef = useRef26(null);
411
+ useImperativeHandle26(forwardedRef, () => innerRef.current);
412
+ useEffect14(() => {
372
413
  const el = innerRef.current;
373
414
  if (!el || !onNavItemClick) return;
374
415
  const h = (ev) => onNavItemClick(ev);
375
416
  el.addEventListener("nav-item-click", h);
376
417
  return () => el.removeEventListener("nav-item-click", h);
377
418
  }, [onNavItemClick]);
378
- useEffect13(() => {
419
+ useEffect14(() => {
379
420
  const el = innerRef.current;
380
421
  if (!el || !onNavCollapse) return;
381
422
  const h = (ev) => onNavCollapse(ev);
382
423
  el.addEventListener("nav-collapse", h);
383
424
  return () => el.removeEventListener("nav-collapse", h);
384
425
  }, [onNavCollapse]);
385
- useEffect13(() => {
426
+ useEffect14(() => {
386
427
  const el = innerRef.current;
387
428
  if (!el) return;
388
429
  if (iconStart) el.setAttribute("icon-start", iconStart);
389
430
  else el.removeAttribute("icon-start");
390
431
  }, [iconStart]);
391
- return /* @__PURE__ */ jsx24("lt-nav-item", { ref: innerRef, ...props, children });
432
+ return /* @__PURE__ */ jsx26("lt-nav-item", { ref: innerRef, ...props, children });
392
433
  });
393
434
  NavItem.displayName = "NavItem";
394
435
 
395
- // src/components/Nav/Nav.tsx
396
- import { useRef as useRef25, useImperativeHandle as useImperativeHandle25, forwardRef as forwardRef25 } from "react";
397
- import { jsx as jsx25 } from "react/jsx-runtime";
398
- var Nav = forwardRef25(function Nav2({ children, ...props }, forwardedRef) {
399
- const innerRef = useRef25(null);
400
- useImperativeHandle25(forwardedRef, () => innerRef.current);
401
- return /* @__PURE__ */ jsx25("lt-nav", { ref: innerRef, ...props, children });
402
- });
403
- Nav.displayName = "Nav";
404
-
405
436
  // src/components/Pagination/Pagination.tsx
406
- import { useRef as useRef26, useEffect as useEffect14, useImperativeHandle as useImperativeHandle26, forwardRef as forwardRef26 } from "react";
407
- import { jsx as jsx26 } from "react/jsx-runtime";
408
- var Pagination = forwardRef26(function Pagination2({ onChange, children, ...props }, forwardedRef) {
409
- const innerRef = useRef26(null);
410
- useImperativeHandle26(forwardedRef, () => innerRef.current);
411
- useEffect14(() => {
437
+ import { useRef as useRef27, useEffect as useEffect15, useImperativeHandle as useImperativeHandle27, forwardRef as forwardRef27 } from "react";
438
+ import { jsx as jsx27 } from "react/jsx-runtime";
439
+ var Pagination = forwardRef27(function Pagination2({ onChange, children, ...props }, forwardedRef) {
440
+ const innerRef = useRef27(null);
441
+ useImperativeHandle27(forwardedRef, () => innerRef.current);
442
+ useEffect15(() => {
412
443
  const el = innerRef.current;
413
444
  if (!el || !onChange) return;
414
445
  const h = (ev) => onChange(ev.detail);
415
446
  el.addEventListener("change", h);
416
447
  return () => el.removeEventListener("change", h);
417
448
  }, [onChange]);
418
- return /* @__PURE__ */ jsx26("lt-pagination", { ref: innerRef, ...props, children });
449
+ return /* @__PURE__ */ jsx27("lt-pagination", { ref: innerRef, ...props, children });
419
450
  });
420
451
  Pagination.displayName = "Pagination";
421
452
 
422
- // src/components/Link/Link.tsx
423
- import { useRef as useRef27, useImperativeHandle as useImperativeHandle27, forwardRef as forwardRef27 } from "react";
424
- import { jsx as jsx27 } from "react/jsx-runtime";
425
- var Link = forwardRef27(function Link2({ children, ...props }, forwardedRef) {
426
- const innerRef = useRef27(null);
427
- useImperativeHandle27(forwardedRef, () => innerRef.current);
428
- return /* @__PURE__ */ jsx27("lt-link", { ref: innerRef, ...props, children });
429
- });
430
- Link.displayName = "Link";
431
-
432
453
  // src/components/Progress/Progress.tsx
433
454
  import { useRef as useRef28, useImperativeHandle as useImperativeHandle28, forwardRef as forwardRef28 } from "react";
434
455
  import { jsx as jsx28 } from "react/jsx-runtime";
@@ -440,12 +461,12 @@ var Progress = forwardRef28(function Progress2({ children, ...props }, forwarded
440
461
  Progress.displayName = "Progress";
441
462
 
442
463
  // src/components/Radio/Radio.tsx
443
- import { useRef as useRef29, useEffect as useEffect15, useImperativeHandle as useImperativeHandle29, forwardRef as forwardRef29 } from "react";
464
+ import { useRef as useRef29, useEffect as useEffect16, useImperativeHandle as useImperativeHandle29, forwardRef as forwardRef29 } from "react";
444
465
  import { jsx as jsx29 } from "react/jsx-runtime";
445
466
  var Radio = forwardRef29(function Radio2({ onChange, children, ...props }, forwardedRef) {
446
467
  const innerRef = useRef29(null);
447
468
  useImperativeHandle29(forwardedRef, () => innerRef.current);
448
- useEffect15(() => {
469
+ useEffect16(() => {
449
470
  const el = innerRef.current;
450
471
  if (!el || !onChange) return;
451
472
  const h = (ev) => onChange(ev.detail);
@@ -457,12 +478,12 @@ var Radio = forwardRef29(function Radio2({ onChange, children, ...props }, forwa
457
478
  Radio.displayName = "Radio";
458
479
 
459
480
  // src/components/RadioGroup/RadioGroup.tsx
460
- import { useRef as useRef30, useEffect as useEffect16, useImperativeHandle as useImperativeHandle30, forwardRef as forwardRef30 } from "react";
481
+ import { useRef as useRef30, useEffect as useEffect17, useImperativeHandle as useImperativeHandle30, forwardRef as forwardRef30 } from "react";
461
482
  import { jsx as jsx30 } from "react/jsx-runtime";
462
483
  var RadioGroup = forwardRef30(function RadioGroup2({ onChange, children, ...props }, forwardedRef) {
463
484
  const innerRef = useRef30(null);
464
485
  useImperativeHandle30(forwardedRef, () => innerRef.current);
465
- useEffect16(() => {
486
+ useEffect17(() => {
466
487
  const el = innerRef.current;
467
488
  if (!el || !onChange) return;
468
489
  const h = (ev) => onChange(ev.detail);
@@ -474,12 +495,12 @@ var RadioGroup = forwardRef30(function RadioGroup2({ onChange, children, ...prop
474
495
  RadioGroup.displayName = "RadioGroup";
475
496
 
476
497
  // src/components/Select/Select.tsx
477
- import { useRef as useRef31, useEffect as useEffect17, useImperativeHandle as useImperativeHandle31, forwardRef as forwardRef31 } from "react";
498
+ import { useRef as useRef31, useEffect as useEffect18, useImperativeHandle as useImperativeHandle31, forwardRef as forwardRef31 } from "react";
478
499
  import { jsx as jsx31 } from "react/jsx-runtime";
479
500
  var Select = forwardRef31(function Select2({ onChange, children, ...props }, forwardedRef) {
480
501
  const innerRef = useRef31(null);
481
502
  useImperativeHandle31(forwardedRef, () => innerRef.current);
482
- useEffect17(() => {
503
+ useEffect18(() => {
483
504
  const el = innerRef.current;
484
505
  if (!el || !onChange) return;
485
506
  const h = (ev) => onChange(ev.detail);
@@ -491,19 +512,19 @@ var Select = forwardRef31(function Select2({ onChange, children, ...props }, for
491
512
  Select.displayName = "Select";
492
513
 
493
514
  // src/components/SidePanel/SidePanel.tsx
494
- import { useRef as useRef32, useEffect as useEffect18, useImperativeHandle as useImperativeHandle32, forwardRef as forwardRef32 } from "react";
515
+ import { useRef as useRef32, useEffect as useEffect19, useImperativeHandle as useImperativeHandle32, forwardRef as forwardRef32 } from "react";
495
516
  import { jsx as jsx32 } from "react/jsx-runtime";
496
517
  var SidePanel = forwardRef32(function SidePanel2({ onClose, noCloseButton, children, ...props }, forwardedRef) {
497
518
  const innerRef = useRef32(null);
498
519
  useImperativeHandle32(forwardedRef, () => innerRef.current);
499
- useEffect18(() => {
520
+ useEffect19(() => {
500
521
  const el = innerRef.current;
501
522
  if (!el || !onClose) return;
502
523
  const h = (ev) => onClose(ev);
503
524
  el.addEventListener("close", h);
504
525
  return () => el.removeEventListener("close", h);
505
526
  }, [onClose]);
506
- useEffect18(() => {
527
+ useEffect19(() => {
507
528
  const el = innerRef.current;
508
529
  if (!el) return;
509
530
  if (noCloseButton) el.setAttribute("no-close-button", "");
@@ -524,19 +545,19 @@ var Skeleton = forwardRef33(function Skeleton2({ children, ...props }, forwarded
524
545
  Skeleton.displayName = "Skeleton";
525
546
 
526
547
  // src/components/Slider/Slider.tsx
527
- import { useRef as useRef34, useEffect as useEffect19, useImperativeHandle as useImperativeHandle34, forwardRef as forwardRef34 } from "react";
548
+ import { useRef as useRef34, useEffect as useEffect20, useImperativeHandle as useImperativeHandle34, forwardRef as forwardRef34 } from "react";
528
549
  import { jsx as jsx34 } from "react/jsx-runtime";
529
550
  var Slider = forwardRef34(function Slider2({ onInput, onChange, children, ...props }, forwardedRef) {
530
551
  const innerRef = useRef34(null);
531
552
  useImperativeHandle34(forwardedRef, () => innerRef.current);
532
- useEffect19(() => {
553
+ useEffect20(() => {
533
554
  const el = innerRef.current;
534
555
  if (!el || !onInput) return;
535
556
  const h = (ev) => onInput(ev.detail);
536
557
  el.addEventListener("input", h);
537
558
  return () => el.removeEventListener("input", h);
538
559
  }, [onInput]);
539
- useEffect19(() => {
560
+ useEffect20(() => {
540
561
  const el = innerRef.current;
541
562
  if (!el || !onChange) return;
542
563
  const h = (ev) => onChange(ev.detail);
@@ -548,26 +569,26 @@ var Slider = forwardRef34(function Slider2({ onInput, onChange, children, ...pro
548
569
  Slider.displayName = "Slider";
549
570
 
550
571
  // src/components/Snackbar/Snackbar.tsx
551
- import { useRef as useRef35, useEffect as useEffect20, useImperativeHandle as useImperativeHandle35, forwardRef as forwardRef35 } from "react";
572
+ import { useRef as useRef35, useEffect as useEffect21, useImperativeHandle as useImperativeHandle35, forwardRef as forwardRef35 } from "react";
552
573
  import { jsx as jsx35 } from "react/jsx-runtime";
553
574
  var Snackbar = forwardRef35(function Snackbar2({ onShow, onHide, onAction, children, ...props }, forwardedRef) {
554
575
  const innerRef = useRef35(null);
555
576
  useImperativeHandle35(forwardedRef, () => innerRef.current);
556
- useEffect20(() => {
577
+ useEffect21(() => {
557
578
  const el = innerRef.current;
558
579
  if (!el || !onShow) return;
559
580
  const h = () => onShow();
560
581
  el.addEventListener("show", h);
561
582
  return () => el.removeEventListener("show", h);
562
583
  }, [onShow]);
563
- useEffect20(() => {
584
+ useEffect21(() => {
564
585
  const el = innerRef.current;
565
586
  if (!el || !onHide) return;
566
587
  const h = () => onHide();
567
588
  el.addEventListener("hide", h);
568
589
  return () => el.removeEventListener("hide", h);
569
590
  }, [onHide]);
570
- useEffect20(() => {
591
+ useEffect21(() => {
571
592
  const el = innerRef.current;
572
593
  if (!el || !onAction) return;
573
594
  const h = () => onAction();
@@ -599,12 +620,12 @@ var Surface = forwardRef37(function Surface2({ children, ...props }, forwardedRe
599
620
  Surface.displayName = "Surface";
600
621
 
601
622
  // src/components/Switch/Switch.tsx
602
- import { useRef as useRef38, useEffect as useEffect21, useImperativeHandle as useImperativeHandle38, forwardRef as forwardRef38 } from "react";
623
+ import { useRef as useRef38, useEffect as useEffect22, useImperativeHandle as useImperativeHandle38, forwardRef as forwardRef38 } from "react";
603
624
  import { jsx as jsx38 } from "react/jsx-runtime";
604
625
  var Switch = forwardRef38(function Switch2({ onChange, children, ...props }, forwardedRef) {
605
626
  const innerRef = useRef38(null);
606
627
  useImperativeHandle38(forwardedRef, () => innerRef.current);
607
- useEffect21(() => {
628
+ useEffect22(() => {
608
629
  const el = innerRef.current;
609
630
  if (!el || !onChange) return;
610
631
  const h = (ev) => onChange(ev.detail);
@@ -615,67 +636,67 @@ var Switch = forwardRef38(function Switch2({ onChange, children, ...props }, for
615
636
  });
616
637
  Switch.displayName = "Switch";
617
638
 
618
- // src/components/TabPanel/TabPanel.tsx
619
- import { useRef as useRef39, useImperativeHandle as useImperativeHandle39, forwardRef as forwardRef39 } from "react";
639
+ // src/components/Tab/Tab.tsx
640
+ import { useRef as useRef39, useEffect as useEffect23, useImperativeHandle as useImperativeHandle39, forwardRef as forwardRef39 } from "react";
620
641
  import { jsx as jsx39 } from "react/jsx-runtime";
621
- var TabPanel = forwardRef39(function TabPanel2({ children, ...props }, forwardedRef) {
642
+ var Tab = forwardRef39(function Tab2({ onTabClick, children, ...props }, forwardedRef) {
622
643
  const innerRef = useRef39(null);
623
644
  useImperativeHandle39(forwardedRef, () => innerRef.current);
624
- return /* @__PURE__ */ jsx39("lt-tab-panel", { ref: innerRef, ...props, children });
625
- });
626
- TabPanel.displayName = "TabPanel";
627
-
628
- // src/components/Tab/Tab.tsx
629
- import { useRef as useRef40, useEffect as useEffect22, useImperativeHandle as useImperativeHandle40, forwardRef as forwardRef40 } from "react";
630
- import { jsx as jsx40 } from "react/jsx-runtime";
631
- var Tab = forwardRef40(function Tab2({ onTabClick, children, ...props }, forwardedRef) {
632
- const innerRef = useRef40(null);
633
- useImperativeHandle40(forwardedRef, () => innerRef.current);
634
- useEffect22(() => {
645
+ useEffect23(() => {
635
646
  const el = innerRef.current;
636
647
  if (!el || !onTabClick) return;
637
648
  const h = (ev) => onTabClick(ev);
638
649
  el.addEventListener("tab-click", h);
639
650
  return () => el.removeEventListener("tab-click", h);
640
651
  }, [onTabClick]);
641
- return /* @__PURE__ */ jsx40("lt-tab", { ref: innerRef, ...props, children });
652
+ return /* @__PURE__ */ jsx39("lt-tab", { ref: innerRef, ...props, children });
642
653
  });
643
654
  Tab.displayName = "Tab";
644
655
 
645
656
  // src/components/TabGroup/TabGroup.tsx
646
- import { useRef as useRef41, useEffect as useEffect23, useImperativeHandle as useImperativeHandle41, forwardRef as forwardRef41 } from "react";
647
- import { jsx as jsx41 } from "react/jsx-runtime";
648
- var TabGroup = forwardRef41(function TabGroup2({ onChange, children, ...props }, forwardedRef) {
649
- const innerRef = useRef41(null);
650
- useImperativeHandle41(forwardedRef, () => innerRef.current);
651
- useEffect23(() => {
657
+ import { useRef as useRef40, useEffect as useEffect24, useImperativeHandle as useImperativeHandle40, forwardRef as forwardRef40 } from "react";
658
+ import { jsx as jsx40 } from "react/jsx-runtime";
659
+ var TabGroup = forwardRef40(function TabGroup2({ onChange, children, ...props }, forwardedRef) {
660
+ const innerRef = useRef40(null);
661
+ useImperativeHandle40(forwardedRef, () => innerRef.current);
662
+ useEffect24(() => {
652
663
  const el = innerRef.current;
653
664
  if (!el || !onChange) return;
654
665
  const h = (ev) => onChange(ev.detail);
655
666
  el.addEventListener("change", h);
656
667
  return () => el.removeEventListener("change", h);
657
668
  }, [onChange]);
658
- return /* @__PURE__ */ jsx41("lt-tab-group", { ref: innerRef, ...props, children });
669
+ return /* @__PURE__ */ jsx40("lt-tab-group", { ref: innerRef, ...props, children });
659
670
  });
660
671
  TabGroup.displayName = "TabGroup";
661
672
 
662
673
  // src/components/Table/Table.tsx
663
- import { useRef as useRef42, useEffect as useEffect24, useImperativeHandle as useImperativeHandle42, forwardRef as forwardRef42 } from "react";
664
- import { jsx as jsx42 } from "react/jsx-runtime";
665
- var Table = forwardRef42(function Table2({ onSortChange, children, ...props }, forwardedRef) {
666
- const innerRef = useRef42(null);
667
- useImperativeHandle42(forwardedRef, () => innerRef.current);
668
- useEffect24(() => {
674
+ import { useRef as useRef41, useEffect as useEffect25, useImperativeHandle as useImperativeHandle41, forwardRef as forwardRef41 } from "react";
675
+ import { jsx as jsx41 } from "react/jsx-runtime";
676
+ var Table = forwardRef41(function Table2({ onSortChange, children, ...props }, forwardedRef) {
677
+ const innerRef = useRef41(null);
678
+ useImperativeHandle41(forwardedRef, () => innerRef.current);
679
+ useEffect25(() => {
669
680
  const el = innerRef.current;
670
681
  if (!el || !onSortChange) return;
671
682
  const h = () => onSortChange();
672
683
  el.addEventListener("sort-change", h);
673
684
  return () => el.removeEventListener("sort-change", h);
674
685
  }, [onSortChange]);
675
- return /* @__PURE__ */ jsx42("lt-table", { ref: innerRef, ...props, children });
686
+ return /* @__PURE__ */ jsx41("lt-table", { ref: innerRef, ...props, children });
676
687
  });
677
688
  Table.displayName = "Table";
678
689
 
690
+ // src/components/TabPanel/TabPanel.tsx
691
+ import { useRef as useRef42, useImperativeHandle as useImperativeHandle42, forwardRef as forwardRef42 } from "react";
692
+ import { jsx as jsx42 } from "react/jsx-runtime";
693
+ var TabPanel = forwardRef42(function TabPanel2({ children, ...props }, forwardedRef) {
694
+ const innerRef = useRef42(null);
695
+ useImperativeHandle42(forwardedRef, () => innerRef.current);
696
+ return /* @__PURE__ */ jsx42("lt-tab-panel", { ref: innerRef, ...props, children });
697
+ });
698
+ TabPanel.displayName = "TabPanel";
699
+
679
700
  // src/components/Text/Text.tsx
680
701
  import { useRef as useRef43, useImperativeHandle as useImperativeHandle43, forwardRef as forwardRef43 } from "react";
681
702
  import { jsx as jsx43 } from "react/jsx-runtime";
@@ -687,19 +708,19 @@ var Text = forwardRef43(function Text2({ children, ...props }, forwardedRef) {
687
708
  Text.displayName = "Text";
688
709
 
689
710
  // src/components/Textfield/Textfield.tsx
690
- import { useRef as useRef44, useEffect as useEffect25, useImperativeHandle as useImperativeHandle44, forwardRef as forwardRef44 } from "react";
711
+ import { useRef as useRef44, useEffect as useEffect26, useImperativeHandle as useImperativeHandle44, forwardRef as forwardRef44 } from "react";
691
712
  import { jsx as jsx44 } from "react/jsx-runtime";
692
713
  var Textfield = forwardRef44(function Textfield2({ onInput, onChange, children, ...props }, forwardedRef) {
693
714
  const innerRef = useRef44(null);
694
715
  useImperativeHandle44(forwardedRef, () => innerRef.current);
695
- useEffect25(() => {
716
+ useEffect26(() => {
696
717
  const el = innerRef.current;
697
718
  if (!el || !onInput) return;
698
719
  const h = (ev) => onInput(ev.detail);
699
720
  el.addEventListener("input", h);
700
721
  return () => el.removeEventListener("input", h);
701
722
  }, [onInput]);
702
- useEffect25(() => {
723
+ useEffect26(() => {
703
724
  const el = innerRef.current;
704
725
  if (!el || !onChange) return;
705
726
  const h = (ev) => onChange(ev.detail);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latty-ds/react",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "React wrappers for the Latty design system — typed React components backed by @latty-ds/web",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -56,8 +56,8 @@
56
56
  "typescript": "^5.5.4"
57
57
  },
58
58
  "dependencies": {
59
- "@latty-ds/icons": "0.6.0",
60
- "@latty-ds/web": "0.6.0"
59
+ "@latty-ds/icons": "0.8.0",
60
+ "@latty-ds/web": "0.8.0"
61
61
  },
62
- "gitHead": "5f2e9dbee20f32bc24117a40f8f2f65a4de07979"
62
+ "gitHead": "144dd8d2f7440fd5fd8ecb4f396407c4ce3be9f2"
63
63
  }