thread-ui 0.14.1 → 0.15.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 (156) hide show
  1. package/README.md +1 -1
  2. package/dist/components/content-display/carousel/carousel-context.d.ts +5 -1
  3. package/dist/components/content-display/carousel/carousel.d.ts +1 -1
  4. package/dist/components/content-display/carousel/carousel.js +3 -2
  5. package/dist/components/content-display/carousel/carousel.js.map +1 -1
  6. package/dist/components/content-display/carousel/carousel.types.d.ts +3 -3
  7. package/dist/components/content-display/carousel/components/carousel-header.js +2 -2
  8. package/dist/components/content-display/carousel/components/carousel-header.js.map +1 -1
  9. package/dist/components/content-display/gallery/gallery-context.d.ts +2 -1
  10. package/dist/components/content-display/gallery/gallery.js +1 -1
  11. package/dist/components/content-display/gallery/gallery.js.map +1 -1
  12. package/dist/components/content-display/lightbox/lightbox-context.d.ts +2 -2
  13. package/dist/components/content-display/tab-view/tab-view-context.d.ts +2 -1
  14. package/dist/components/content-display/tab-view/tab-view.js +1 -1
  15. package/dist/components/content-display/tab-view/tab-view.js.map +1 -1
  16. package/dist/components/layouts/footer/footer.js +6 -1
  17. package/dist/components/layouts/footer/footer.js.map +1 -1
  18. package/dist/components/media-display/info-card/info-card.js +2 -3
  19. package/dist/components/media-display/info-card/info-card.js.map +1 -1
  20. package/dist/components/media-display/media-card/media-card.js +2 -2
  21. package/dist/components/media-display/media-card/media-card.js.map +1 -1
  22. package/dist/components/navigation/nav-menu/components/nav-drop-down-item.d.ts +2 -0
  23. package/dist/components/navigation/nav-menu/components/{nav-drop-down-item/nav-drop-down-item.js → nav-drop-down-item.js} +8 -5
  24. package/dist/components/navigation/nav-menu/components/nav-drop-down-item.js.map +1 -0
  25. package/dist/components/navigation/nav-menu/components/nav-item.d.ts +2 -0
  26. package/dist/components/navigation/nav-menu/components/nav-item.js +8 -0
  27. package/dist/components/navigation/nav-menu/components/nav-item.js.map +1 -0
  28. package/dist/components/navigation/nav-menu/components/nav-link/nav-link.js +17 -8
  29. package/dist/components/navigation/nav-menu/components/nav-link/nav-link.js.map +1 -1
  30. package/dist/components/navigation/nav-menu/components/{nav-icon-item/navigation-logo.d.ts → navigation-logo.d.ts} +1 -1
  31. package/dist/components/navigation/nav-menu/components/{nav-icon-item/navigation-logo.js → navigation-logo.js} +1 -1
  32. package/dist/components/navigation/nav-menu/components/navigation-logo.js.map +1 -0
  33. package/dist/components/navigation/nav-menu/nav-menu.js +17 -57
  34. package/dist/components/navigation/nav-menu/nav-menu.js.map +1 -1
  35. package/dist/components/navigation/nav-menu/nav-menu.types.d.ts +14 -4
  36. package/dist/components/navigation/navigation.types.d.ts +12 -0
  37. package/dist/components/navigation/navigation.types.js +2 -0
  38. package/dist/components/navigation/navigation.types.js.map +1 -0
  39. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js +2 -2
  40. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js.map +1 -1
  41. package/dist/components/ui/modal/modal-context.d.ts +2 -2
  42. package/dist/foundation/index.d.ts +3 -0
  43. package/dist/foundation/index.js +5 -0
  44. package/dist/foundation/index.js.map +1 -0
  45. package/dist/{theme → foundation/theme-provider}/generate-override-css.d.ts +2 -2
  46. package/dist/{theme → foundation/theme-provider}/generate-override-css.js +5 -5
  47. package/dist/foundation/theme-provider/generate-override-css.js.map +1 -0
  48. package/dist/foundation/theme-provider/theme-mode-utils.d.ts +3 -0
  49. package/dist/{theme/theme-mode.js → foundation/theme-provider/theme-mode-utils.js} +6 -7
  50. package/dist/foundation/theme-provider/theme-mode-utils.js.map +1 -0
  51. package/dist/{theme → foundation/theme-provider}/theme-provider.d.ts +3 -15
  52. package/dist/{theme → foundation/theme-provider}/theme-provider.js +9 -6
  53. package/dist/foundation/theme-provider/theme-provider.js.map +1 -0
  54. package/dist/foundation/theme-provider/theme-provider.types.d.ts +14 -0
  55. package/dist/foundation/theme-provider/theme-provider.types.js +3 -0
  56. package/dist/foundation/theme-provider/theme-provider.types.js.map +1 -0
  57. package/dist/{theme → foundation/theme-provider}/thread-script.d.ts +2 -2
  58. package/dist/{theme → foundation/theme-provider}/thread-script.js +3 -3
  59. package/dist/foundation/theme-provider/thread-script.js.map +1 -0
  60. package/dist/foundation/thread-provider/index.d.ts +2 -0
  61. package/dist/foundation/thread-provider/index.js +2 -0
  62. package/dist/foundation/thread-provider/index.js.map +1 -0
  63. package/dist/foundation/thread-provider/thread-provider.d.ts +3 -0
  64. package/dist/foundation/thread-provider/thread-provider.js +17 -0
  65. package/dist/foundation/thread-provider/thread-provider.js.map +1 -0
  66. package/dist/foundation/thread-provider/thread-provider.types.d.ts +10 -0
  67. package/dist/foundation/thread-provider/thread-provider.types.js +2 -0
  68. package/dist/foundation/thread-provider/thread-provider.types.js.map +1 -0
  69. package/dist/hooks/index.d.ts +1 -0
  70. package/dist/hooks/index.js +1 -0
  71. package/dist/hooks/index.js.map +1 -1
  72. package/dist/hooks/use-resize/index.d.ts +1 -0
  73. package/dist/hooks/use-resize/index.js +2 -0
  74. package/dist/hooks/use-resize/index.js.map +1 -0
  75. package/dist/hooks/use-resize/use-resize.d.ts +13 -0
  76. package/dist/hooks/use-resize/use-resize.js +23 -0
  77. package/dist/hooks/use-resize/use-resize.js.map +1 -0
  78. package/dist/index.d.ts +2 -1
  79. package/dist/index.js +3 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/internal-components/index.d.ts +1 -1
  82. package/dist/internal-components/index.js +1 -1
  83. package/dist/internal-components/index.js.map +1 -1
  84. package/dist/internal-components/link/index.d.ts +2 -0
  85. package/dist/internal-components/link/index.js +2 -0
  86. package/dist/internal-components/link/index.js.map +1 -0
  87. package/dist/internal-components/link/link.d.ts +2 -0
  88. package/dist/internal-components/link/link.js +8 -0
  89. package/dist/internal-components/link/link.js.map +1 -0
  90. package/dist/internal-components/link/link.types.d.ts +2 -0
  91. package/dist/internal-components/link/link.types.js +2 -0
  92. package/dist/internal-components/link/link.types.js.map +1 -0
  93. package/dist/styles/panda.css +1 -1
  94. package/dist/styles/theme.css +30 -6
  95. package/dist/theme/default-theme.js +4 -3
  96. package/dist/theme/default-theme.js.map +1 -1
  97. package/dist/theme/index.d.ts +1 -2
  98. package/dist/theme/index.js +1 -2
  99. package/dist/theme/index.js.map +1 -1
  100. package/dist/theme/theme-fonts.d.ts +4 -0
  101. package/dist/theme/theme-fonts.js +6 -0
  102. package/dist/theme/theme-fonts.js.map +1 -0
  103. package/dist/types/foundation/index.d.ts +1 -0
  104. package/dist/types/foundation/index.js +2 -0
  105. package/dist/types/foundation/index.js.map +1 -0
  106. package/dist/types/foundation/link-component.types.d.ts +2 -0
  107. package/dist/types/foundation/link-component.types.js +2 -0
  108. package/dist/types/foundation/link-component.types.js.map +1 -0
  109. package/dist/types/index.d.ts +1 -0
  110. package/dist/types/index.js +2 -0
  111. package/dist/types/index.js.map +1 -1
  112. package/dist/utils/context/create-stateful-component-context/create-stateful-component-context.d.ts +3 -1
  113. package/dist/utils/context/create-stateful-component-context/create-stateful-component-context.js +22 -2
  114. package/dist/utils/context/create-stateful-component-context/create-stateful-component-context.js.map +1 -1
  115. package/package.json +5 -9
  116. package/dist/components/navigation/nav-menu/components/index.d.ts +0 -4
  117. package/dist/components/navigation/nav-menu/components/index.js +0 -5
  118. package/dist/components/navigation/nav-menu/components/index.js.map +0 -1
  119. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/index.d.ts +0 -2
  120. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/index.js +0 -2
  121. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/index.js.map +0 -1
  122. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/nav-drop-down-item.d.ts +0 -2
  123. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/nav-drop-down-item.js.map +0 -1
  124. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/nav-drop-down-item.types.d.ts +0 -5
  125. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/nav-drop-down-item.types.js +0 -2
  126. package/dist/components/navigation/nav-menu/components/nav-drop-down-item/nav-drop-down-item.types.js.map +0 -1
  127. package/dist/components/navigation/nav-menu/components/nav-icon-item/index.d.ts +0 -2
  128. package/dist/components/navigation/nav-menu/components/nav-icon-item/index.js +0 -2
  129. package/dist/components/navigation/nav-menu/components/nav-icon-item/index.js.map +0 -1
  130. package/dist/components/navigation/nav-menu/components/nav-icon-item/navigation-logo.js.map +0 -1
  131. package/dist/components/navigation/nav-menu/components/nav-icon-item/navigation-logo.types.d.ts +0 -5
  132. package/dist/components/navigation/nav-menu/components/nav-icon-item/navigation-logo.types.js +0 -2
  133. package/dist/components/navigation/nav-menu/components/nav-icon-item/navigation-logo.types.js.map +0 -1
  134. package/dist/components/navigation/nav-menu/components/nav-item/index.d.ts +0 -2
  135. package/dist/components/navigation/nav-menu/components/nav-item/index.js +0 -2
  136. package/dist/components/navigation/nav-menu/components/nav-item/index.js.map +0 -1
  137. package/dist/components/navigation/nav-menu/components/nav-item/nav-item.d.ts +0 -2
  138. package/dist/components/navigation/nav-menu/components/nav-item/nav-item.js +0 -6
  139. package/dist/components/navigation/nav-menu/components/nav-item/nav-item.js.map +0 -1
  140. package/dist/components/navigation/nav-menu/components/nav-item/nav-item.types.d.ts +0 -4
  141. package/dist/components/navigation/nav-menu/components/nav-item/nav-item.types.js +0 -2
  142. package/dist/components/navigation/nav-menu/components/nav-item/nav-item.types.js.map +0 -1
  143. package/dist/internal-components/link-wrapper/index.d.ts +0 -2
  144. package/dist/internal-components/link-wrapper/index.js +0 -2
  145. package/dist/internal-components/link-wrapper/index.js.map +0 -1
  146. package/dist/internal-components/link-wrapper/link-wrapper.d.ts +0 -3
  147. package/dist/internal-components/link-wrapper/link-wrapper.js +0 -9
  148. package/dist/internal-components/link-wrapper/link-wrapper.js.map +0 -1
  149. package/dist/internal-components/link-wrapper/link-wrapper.types.d.ts +0 -5
  150. package/dist/internal-components/link-wrapper/link-wrapper.types.js +0 -2
  151. package/dist/internal-components/link-wrapper/link-wrapper.types.js.map +0 -1
  152. package/dist/theme/generate-override-css.js.map +0 -1
  153. package/dist/theme/theme-mode.d.ts +0 -5
  154. package/dist/theme/theme-mode.js.map +0 -1
  155. package/dist/theme/theme-provider.js.map +0 -1
  156. package/dist/theme/thread-script.js.map +0 -1
@@ -1,8 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect, useState } from 'react';
4
- import { NavigationLogo, NavItem, NavDropdownItem, } from './components';
3
+ import { useRef, useState } from 'react';
4
+ import { useClickOutside, useResize } from '../../../hooks';
5
5
  import { css, cx } from '../../../styled-system/css';
6
+ import { NavigationLogo } from './components/navigation-logo';
7
+ import { NavItem } from './components/nav-item';
8
+ import { NavDropdownItem } from './components/nav-drop-down-item';
6
9
  const style = {
7
10
  header: css({
8
11
  position: 'sticky',
@@ -77,16 +80,6 @@ const style = {
77
80
  display: { base: 'flex', lg: 'none' },
78
81
  alignItems: 'center',
79
82
  }),
80
- menuControlButton: css({
81
- outline: '2px solid transparent',
82
- outlineOffset: '2px',
83
- borderLeftWidth: 'md',
84
- borderLeftColor: 'structure.default',
85
- paddingLeft: '12px',
86
- position: 'relative',
87
- paddingTop: '12px',
88
- paddingBottom: '12px',
89
- }),
90
83
  menuCross: css({
91
84
  animationDuration: '300ms',
92
85
  display: 'flex',
@@ -122,52 +115,19 @@ const style = {
122
115
  * />
123
116
  */
124
117
  export const NavMenu = ({ logo, items }) => {
125
- // Navmenu Controls
118
+ const headerRef = useRef(null);
126
119
  const [navIsOpened, setNavIsOpened] = useState(false);
127
- const closeNavbar = () => {
128
- setNavIsOpened(false);
129
- };
130
- const toggleNavbar = () => {
131
- setNavIsOpened((navIsOpened) => !navIsOpened);
132
- };
133
- useEffect(() => {
134
- const onResize = () => {
135
- closeNavbar();
136
- };
137
- window.addEventListener('resize', onResize);
138
- }, []);
139
- useEffect(() => {
140
- const handleOutsideClick = (event) => {
141
- // Check if the click is outside of the menu
142
- const menu = document.getElementById('site-menu');
143
- const isClickInsideMenu = menu && menu.contains(event.target);
144
- if (!isClickInsideMenu) {
145
- closeNavbar();
146
- }
147
- };
148
- document.addEventListener('click', handleOutsideClick);
149
- return () => {
150
- document.removeEventListener('click', handleOutsideClick);
151
- };
152
- }, []);
153
- const _renderNavItem = ({ href, title }) => {
154
- return _jsx(NavItem, { href: href, title: title }, title);
155
- };
156
- const _renderNavDropdown = ({ title, items }) => {
157
- return _jsx(NavDropdownItem, { title: title, items: items }, title);
158
- };
159
- const _renderItem = (item) => {
160
- if ('href' in item) {
161
- // item is of type NavItem
162
- return _renderNavItem(item);
163
- }
164
- else {
165
- // item is of type NavDropdownItem
166
- return _renderNavDropdown(item);
167
- }
120
+ const closeNavbar = () => setNavIsOpened(false);
121
+ const toggleNavbar = () => setNavIsOpened((prev) => !prev);
122
+ useResize({ onResize: closeNavbar });
123
+ useClickOutside({
124
+ elementRef: headerRef,
125
+ isOpen: navIsOpened,
126
+ onClose: closeNavbar,
127
+ });
128
+ const renderItem = (item) => {
129
+ return 'href' in item ? (_jsx(NavItem, { ...item }, item.title)) : (_jsx(NavDropdownItem, { ...item }, item.title));
168
130
  };
169
- return (_jsx("header", { id: "site-menu", className: style.header, children: _jsxs("nav", { className: style.nav, children: [logo && _jsx(NavigationLogo, { href: logo.href, logo: logo.logo }), _jsx("div", { className: cx(style.menuItemBlock, navIsOpened ? style.menuOpenItemBlock : style.menuCloseItemBlock), children: _jsx("ul", { className: style.itemList, children: items.map((item) => _renderItem(item)) }) }), _jsx("div", { className: style.menuControl, children: _jsxs("button", { onClick: () => {
170
- toggleNavbar();
171
- }, "aria-label": "toggle navbar", children: [_jsx("span", { "aria-hidden": true, className: cx(style.menuCross, navIsOpened && style.menuCrossTopOpen) }), _jsx("span", { "aria-hidden": true, className: cx(style.menuCross, style.menuCrossBottom, navIsOpened && style.menuCrossBottomOpen) })] }) })] }) }));
131
+ return (_jsx("header", { ref: headerRef, className: style.header, children: _jsxs("nav", { className: style.nav, children: [logo && _jsx(NavigationLogo, { href: logo.href, logo: logo.logo }), _jsx("div", { className: cx(style.menuItemBlock, navIsOpened ? style.menuOpenItemBlock : style.menuCloseItemBlock), children: _jsx("ul", { className: style.itemList, children: items.map(renderItem) }) }), _jsx("div", { className: style.menuControl, children: _jsxs("button", { onClick: toggleNavbar, "aria-label": "toggle navbar", children: [_jsx("span", { "aria-hidden": true, className: cx(style.menuCross, navIsOpened && style.menuCrossTopOpen) }), _jsx("span", { "aria-hidden": true, className: cx(style.menuCross, style.menuCrossBottom, navIsOpened && style.menuCrossBottomOpen) })] }) })] }) }));
172
132
  };
173
133
  //# sourceMappingURL=nav-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-menu.js","sourceRoot":"","sources":["../../../../src/components/navigation/nav-menu/nav-menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nav-menu.js","sourceRoot":"","sources":["../../../../src/components/navigation/nav-menu/nav-menu.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,19 @@
1
- import { NavDropdownItemProps } from './components/nav-drop-down-item/nav-drop-down-item.types';
2
- import { NavigationLogoProps } from './components/nav-icon-item';
3
- import { NavItemProps } from './components/nav-item';
1
+ import { ReactNode } from 'react';
2
+ import { Prettify } from '../../../types';
3
+ import { NavigationItem } from '../navigation.types';
4
4
  export type NavMenuProps = {
5
5
  /** Logo rendered as a linked icon on the left side of the nav */
6
6
  logo?: NavigationLogoProps;
7
7
  /** Navigation items. Accepts standard links or dropdown menus */
8
- items: (NavItemProps | NavDropdownItemProps)[];
8
+ items: (NavigationItem | NavigationDropdownItem)[];
9
9
  };
10
+ export type NavigationLogoProps = {
11
+ /** The URL or path the navigation item links to. */
12
+ href: NavigationItem['href'];
13
+ /** Site Logo */
14
+ logo: ReactNode;
15
+ };
16
+ export type NavigationDropdownItem = Prettify<Omit<NavigationItem, 'href'> & {
17
+ /** Items within dropdown */
18
+ items: NavigationItem[];
19
+ }>;
@@ -0,0 +1,12 @@
1
+ import { IconNames } from '../ui';
2
+ /**
3
+ * Base navigation item type used to compose navigation component props.
4
+ */
5
+ export type NavigationItem = {
6
+ /** The URL or path the navigation item links to. */
7
+ href: string;
8
+ /** Optional icon displayed alongside the navigation item. */
9
+ icon?: IconNames;
10
+ /** The display text for the navigation item. */
11
+ title: string;
12
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=navigation.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.types.js","sourceRoot":"","sources":["../../../src/components/navigation/navigation.types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { LinkWrapper } from '../../../../internal-components';
3
+ import { Link } from '../../../../internal-components';
4
4
  import { usePathname } from '../../../../hooks';
5
5
  import { Icon } from '../../../../components';
6
6
  import { css, cva } from '../../../../styled-system/css';
@@ -49,6 +49,6 @@ export const SideNavItem = ({ title, path, icon, onClick, basePath = '' }) => {
49
49
  const currentPath = usePathname();
50
50
  const fullPath = path === '/' && basePath ? basePath : `${basePath}${path}`;
51
51
  const isActive = path === '/' ? currentPath === fullPath : currentPath.startsWith(fullPath);
52
- return (_jsxs(LinkWrapper, { link: fullPath, className: styles.link({ isActive }), onClick: onClick, children: [_jsx(Icon, { name: icon, size: 24, filled: isActive }), _jsx("p", { className: styles.linkContents, children: title })] }));
52
+ return (_jsxs(Link, { href: fullPath, className: styles.link({ isActive }), onClick: onClick, children: [_jsx(Icon, { name: icon, size: 24, filled: isActive }), _jsx("p", { className: styles.linkContents, children: title })] }));
53
53
  };
54
54
  //# sourceMappingURL=side-nav-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"side-nav-item.js","sourceRoot":"","sources":["../../../../../src/components/navigation/side-nav/side-nav-item/side-nav-item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,GAAG,CAAC;QACT,IAAI,EAAE;YACL,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,SAAS;YACtB,eAAe,EAAE,SAAS;YAC1B,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE;gBACP,WAAW,EAAE,cAAc;gBAC3B,KAAK,EAAE,cAAc;aACrB;SACD;QACD,QAAQ,EAAE;YACT,QAAQ,EAAE;gBACT,IAAI,EAAE;oBACL,KAAK,EAAE,eAAe;oBACtB,eAAe,EAAE,cAAc;oBAC/B,WAAW,EAAE,cAAc;oBAC3B,MAAM,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;iBACpE;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,eAAe;oBACtB,eAAe,EAAE,SAAS;iBAC1B;aACD;SACD;KACD,CAAC;IACF,YAAY,EAAE,GAAG,CAAC;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE;QACtC,KAAK,EAAE,SAAS;KAChB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE,EAAoB,EAAE,EAAE;IAC9F,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE5F,OAAO,CACN,MAAC,WAAW,IAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,aAClF,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAI,EAChD,YAAG,SAAS,EAAE,MAAM,CAAC,YAAY,YAAG,KAAK,GAAK,IACjC,CACd,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"side-nav-item.js","sourceRoot":"","sources":["../../../../../src/components/navigation/side-nav/side-nav-item/side-nav-item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,MAAM,GAAG;IACd,IAAI,EAAE,GAAG,CAAC;QACT,IAAI,EAAE;YACL,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,SAAS;YACtB,eAAe,EAAE,SAAS;YAC1B,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE;gBACP,WAAW,EAAE,cAAc;gBAC3B,KAAK,EAAE,cAAc;aACrB;SACD;QACD,QAAQ,EAAE;YACT,QAAQ,EAAE;gBACT,IAAI,EAAE;oBACL,KAAK,EAAE,eAAe;oBACtB,eAAe,EAAE,cAAc;oBAC/B,WAAW,EAAE,cAAc;oBAC3B,MAAM,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;iBACpE;gBACD,KAAK,EAAE;oBACN,KAAK,EAAE,eAAe;oBACtB,eAAe,EAAE,SAAS;iBAC1B;aACD;SACD;KACD,CAAC;IACF,YAAY,EAAE,GAAG,CAAC;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE;QACtC,KAAK,EAAE,SAAS;KAChB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE,EAAoB,EAAE,EAAE;IAC9F,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE5F,OAAO,CACN,MAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,aAC3E,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAI,EAChD,YAAG,SAAS,EAAE,MAAM,CAAC,YAAY,YAAG,KAAK,GAAK,IACxC,CACP,CAAC;AACH,CAAC,CAAC"}
@@ -1,13 +1,13 @@
1
1
  export declare const ModalProvider: import("react").Provider<{
2
2
  title?: import("react").ReactNode;
3
+ footer?: import("react").ReactNode;
3
4
  children: import("react").ReactNode;
4
5
  size?: never | undefined;
5
- footer?: import("react").ReactNode;
6
6
  onClose: () => void;
7
7
  } | undefined>, useModalContext: () => {
8
8
  title?: import("react").ReactNode;
9
+ footer?: import("react").ReactNode;
9
10
  children: import("react").ReactNode;
10
11
  size?: never | undefined;
11
- footer?: import("react").ReactNode;
12
12
  onClose: () => void;
13
13
  };
@@ -0,0 +1,3 @@
1
+ export { ThreadScript } from '../foundation/theme-provider/thread-script';
2
+ export { ThemeProvider, useThemeMode } from '../foundation/theme-provider/theme-provider';
3
+ export { ThreadProvider, useLinkComponent, type ThreadProviderProps } from './thread-provider';
@@ -0,0 +1,5 @@
1
+ // Theme Configuration
2
+ export { ThreadScript } from '../foundation/theme-provider/thread-script';
3
+ export { ThemeProvider, useThemeMode } from '../foundation/theme-provider/theme-provider';
4
+ export { ThreadProvider, useLinkComponent } from './thread-provider';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/foundation/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAA4B,MAAM,mBAAmB,CAAC"}
@@ -1,6 +1,6 @@
1
- import { ThemeConfig } from '../types';
1
+ import { ThemeConfig } from '../../types';
2
2
  /**
3
3
  * Generates a CSS :root block containing only the variable declarations
4
4
  * for values present in the provided ThemeConfig override.
5
5
  */
6
- export declare function generateOverrideCss(overrides: ThemeConfig): string;
6
+ export declare const generateOverrideCss: (overrides: ThemeConfig) => string;
@@ -1,9 +1,9 @@
1
- import { PrefixedDarkModeVariables, PrefixedLightModeVariables, ThemeCssVariableNames, } from '../theme/css-name-configurations/theme-css-names';
1
+ import { PrefixedDarkModeVariables, PrefixedLightModeVariables, ThemeCssVariableNames, } from '../../theme/css-name-configurations/theme-css-names';
2
2
  /**
3
3
  * Generates a CSS :root block containing only the variable declarations
4
4
  * for values present in the provided ThemeConfig override.
5
5
  */
6
- export function generateOverrideCss(overrides) {
6
+ export const generateOverrideCss = (overrides) => {
7
7
  const vars = [];
8
8
  const lightModeKeySet = new Set(Object.keys(PrefixedLightModeVariables));
9
9
  const overrideKeys = Object.keys(overrides);
@@ -44,11 +44,11 @@ export function generateOverrideCss(overrides) {
44
44
  if (vars.length === 0)
45
45
  return '';
46
46
  return `:root {\n${vars.join('\n')}\n}`;
47
- }
47
+ };
48
48
  /**
49
49
  * Recursively collects CSS variable declarations.
50
50
  */
51
- function collectVars(variableNameOrMap, value, acc) {
51
+ const collectVars = (variableNameOrMap, value, acc) => {
52
52
  if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
53
53
  // Nested object — recurse into each provided key
54
54
  Object.keys(value).forEach((nestedKey) => {
@@ -62,5 +62,5 @@ function collectVars(variableNameOrMap, value, acc) {
62
62
  else if (typeof value === 'string' && typeof variableNameOrMap === 'string') {
63
63
  acc.push(` ${variableNameOrMap}: ${value};`);
64
64
  }
65
- }
65
+ };
66
66
  //# sourceMappingURL=generate-override-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-override-css.js","sourceRoot":"","sources":["../../../src/foundation/theme-provider/generate-override-css.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ThreadMode } from './theme-provider.types';
2
+ export declare const isValidMode: (value: unknown) => value is ThreadMode;
3
+ export declare const applyModeToDocument: (mode: ThreadMode) => void;
@@ -1,9 +1,8 @@
1
- export const THREAD_MODE_STORAGE_KEY = 'thread-mode';
2
- export const VALID_MODES = ['light', 'dark', 'system'];
3
- export function isValidMode(value) {
1
+ import { VALID_MODES } from './theme-provider.types';
2
+ export const isValidMode = (value) => {
4
3
  return typeof value === 'string' && VALID_MODES.includes(value);
5
- }
6
- export function applyModeToDocument(mode) {
4
+ };
5
+ export const applyModeToDocument = (mode) => {
7
6
  if (mode === 'dark') {
8
7
  document.documentElement.setAttribute('data-theme', 'dark');
9
8
  }
@@ -13,5 +12,5 @@ export function applyModeToDocument(mode) {
13
12
  else {
14
13
  document.documentElement.removeAttribute('data-theme');
15
14
  }
16
- }
17
- //# sourceMappingURL=theme-mode.js.map
15
+ };
16
+ //# sourceMappingURL=theme-mode-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-mode-utils.js","sourceRoot":"","sources":["../../../src/foundation/theme-provider/theme-mode-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAuB,EAAE;IAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAmB,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAgB,EAAQ,EAAE;IAC7D,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACP,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;AACF,CAAC,CAAC"}
@@ -1,15 +1,4 @@
1
- import React from 'react';
2
- import { ThemeConfig } from '../types';
3
- import { ThreadMode } from './theme-mode';
4
- interface ThreadContextValue {
5
- mode: ThreadMode;
6
- setMode: (mode: ThreadMode) => void;
7
- toggleMode: () => void;
8
- }
9
- interface ThemeProviderProps {
10
- children: React.ReactNode;
11
- theme?: ThemeConfig;
12
- }
1
+ import { ThemeProviderProps, ThemeContextValue } from './theme-provider.types';
13
2
  /**
14
3
  * Provides custom Thread theme configuration.
15
4
  * - Accepts `ThemeConfig` partial object to override default ThreadTheme
@@ -21,7 +10,7 @@ interface ThemeProviderProps {
21
10
  * <App />
22
11
  * </ThemeProvider>
23
12
  */
24
- export declare function ThemeProvider({ children, theme }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare const ThemeProvider: ({ children, theme }: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
25
14
  /**
26
15
  * Returns the current theme mode and controls for updating it.
27
16
  * Must be used within a `<ThemeProvider>`.
@@ -31,5 +20,4 @@ export declare function ThemeProvider({ children, theme }: ThemeProviderProps):
31
20
  * @example
32
21
  * const { mode, setMode, toggleMode } = useThemeMode();
33
22
  */
34
- export declare const useThemeMode: () => ThreadContextValue;
35
- export {};
23
+ export declare const useThemeMode: () => ThemeContextValue;
@@ -2,8 +2,11 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
4
4
  import { generateOverrideCss } from './generate-override-css';
5
- import { applyModeToDocument, THREAD_MODE_STORAGE_KEY } from './theme-mode';
6
- const ThreadContext = createContext(null);
5
+ import { THREAD_MODE_STORAGE_KEY, } from './theme-provider.types';
6
+ import { applyModeToDocument } from './theme-mode-utils';
7
+ // ─── Context ──────────────────────────────────────────────────────────────────
8
+ const ThemeContext = createContext(null);
9
+ // ─── Provider ─────────────────────────────────────────────────────────────────
7
10
  /**
8
11
  * Provides custom Thread theme configuration.
9
12
  * - Accepts `ThemeConfig` partial object to override default ThreadTheme
@@ -15,7 +18,7 @@ const ThreadContext = createContext(null);
15
18
  * <App />
16
19
  * </ThemeProvider>
17
20
  */
18
- export function ThemeProvider({ children, theme }) {
21
+ export const ThemeProvider = ({ children, theme }) => {
19
22
  const [mode, setModeState] = useState('system'); // Init as 'system' — sync to applied value on mount
20
23
  // On mount: read the data-theme attribute ThreadScript already set on <html>.
21
24
  useEffect(() => {
@@ -55,8 +58,8 @@ export function ThemeProvider({ children, theme }) {
55
58
  return generateOverrideCss(theme);
56
59
  }, [theme]);
57
60
  const contextValue = useMemo(() => ({ mode, setMode, toggleMode }), [mode, setMode, toggleMode]);
58
- return (_jsxs(ThreadContext.Provider, { value: contextValue, children: [overrideCss && (_jsx("style", { id: "thread-theme-overrides", dangerouslySetInnerHTML: { __html: overrideCss } })), children] }));
59
- }
61
+ return (_jsxs(ThemeContext.Provider, { value: contextValue, children: [overrideCss && (_jsx("style", { id: "thread-theme-overrides", dangerouslySetInnerHTML: { __html: overrideCss } })), children] }));
62
+ };
60
63
  /**
61
64
  * Returns the current theme mode and controls for updating it.
62
65
  * Must be used within a `<ThemeProvider>`.
@@ -67,7 +70,7 @@ export function ThemeProvider({ children, theme }) {
67
70
  * const { mode, setMode, toggleMode } = useThemeMode();
68
71
  */
69
72
  export const useThemeMode = () => {
70
- const context = useContext(ThreadContext);
73
+ const context = useContext(ThemeContext);
71
74
  if (!context) {
72
75
  throw new Error('useThemeMode must be used within a <ThemeProvider>');
73
76
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../../src/foundation/theme-provider/theme-provider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ThemeConfig } from '../../types';
2
+ import { ReactNode } from 'react';
3
+ export type ThreadMode = 'light' | 'dark' | 'system';
4
+ export declare const THREAD_MODE_STORAGE_KEY: "thread-mode";
5
+ export declare const VALID_MODES: ThreadMode[];
6
+ export type ThemeContextValue = {
7
+ mode: ThreadMode;
8
+ setMode: (mode: ThreadMode) => void;
9
+ toggleMode: () => void;
10
+ };
11
+ export type ThemeProviderProps = {
12
+ children: ReactNode;
13
+ theme?: ThemeConfig;
14
+ };
@@ -0,0 +1,3 @@
1
+ export const THREAD_MODE_STORAGE_KEY = 'thread-mode';
2
+ export const VALID_MODES = ['light', 'dark', 'system'];
3
+ //# sourceMappingURL=theme-provider.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-provider.types.js","sourceRoot":"","sources":["../../../src/foundation/theme-provider/theme-provider.types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ThreadMode } from './theme-mode';
1
+ import { ThreadMode } from './theme-provider.types';
2
2
  export type { ThreadMode };
3
3
  interface ThreadScriptProps {
4
4
  defaultMode?: ThreadMode;
@@ -23,4 +23,4 @@ interface ThreadScriptProps {
23
23
  * // Next.js Pages Router (_document.tsx)
24
24
  * <Head><ThreadScript defaultMode="system" /></Head>
25
25
  */
26
- export declare function ThreadScript({ defaultMode }: ThreadScriptProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare const ThreadScript: ({ defaultMode }: ThreadScriptProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { THREAD_MODE_STORAGE_KEY, VALID_MODES } from './theme-mode';
2
+ import { THREAD_MODE_STORAGE_KEY, VALID_MODES } from './theme-provider.types';
3
3
  /**
4
4
  * Inline script to prevent flash of wrong-mode content on first paint.
5
5
  * Reads the user's saved mode from localStorage and sets `data-theme` on `:root`
@@ -20,10 +20,10 @@ import { THREAD_MODE_STORAGE_KEY, VALID_MODES } from './theme-mode';
20
20
  * // Next.js Pages Router (_document.tsx)
21
21
  * <Head><ThreadScript defaultMode="system" /></Head>
22
22
  */
23
- export function ThreadScript({ defaultMode = 'system' }) {
23
+ export const ThreadScript = ({ defaultMode = 'system' }) => {
24
24
  const scriptContent = buildScriptContent(defaultMode);
25
25
  return _jsx("script", { dangerouslySetInnerHTML: { __html: scriptContent } });
26
- }
26
+ };
27
27
  const buildScriptContent = (defaultMode) => {
28
28
  // Serialized as an IIFE so it doesn't pollute the global scope.
29
29
  // defaultMode and the storage key are interpolated at render time on the server.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-script.js","sourceRoot":"","sources":["../../../src/foundation/theme-provider/thread-script.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,uBAAuB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAQ1F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,WAAW,GAAG,QAAQ,EAAqB,EAAE,EAAE;IAC7E,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEtD,OAAO,iBAAQ,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,GAAI,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,WAAuB,EAAU,EAAE;IAC9D,gEAAgE;IAChE,iFAAiF;IACjF,OAAO;;yCAEiC,uBAAuB;uBACzC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;+DACa,WAAW;;;;;;;;;;;;MAYpE,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ThreadProvider, useLinkComponent } from './thread-provider';
2
+ export type { ThreadFoundation, ThreadProviderProps } from './thread-provider.types';
@@ -0,0 +1,2 @@
1
+ export { ThreadProvider, useLinkComponent } from './thread-provider';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/foundation/thread-provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ThreadProviderProps } from './thread-provider.types';
2
+ export declare const ThreadProvider: ({ children, theme, linkComponent }: ThreadProviderProps) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const useLinkComponent: () => import("../..").LinkComponent;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext } from 'react';
4
+ import { ThemeProvider } from '../theme-provider/theme-provider';
5
+ // ─── Context ──────────────────────────────────────────────────────────────────
6
+ const FoundationContext = createContext(null);
7
+ // ─── Provider ─────────────────────────────────────────────────────────────────
8
+ export const ThreadProvider = ({ children, theme, linkComponent }) => {
9
+ const LinkComponent = linkComponent ?? 'a';
10
+ const contextValue = { LinkComponent };
11
+ return (_jsx(FoundationContext.Provider, { value: contextValue, children: _jsx(ThemeProvider, { theme: theme, children: children }) }));
12
+ };
13
+ export const useLinkComponent = () => {
14
+ const context = useContext(FoundationContext);
15
+ return context?.LinkComponent ?? 'a';
16
+ };
17
+ //# sourceMappingURL=thread-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-provider.js","sourceRoot":"","sources":["../../../src/foundation/thread-provider/thread-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,iFAAiF;AACjF,MAAM,iBAAiB,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAEvE,iFAAiF;AAEjF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAuB,EAAE,EAAE;IACzF,MAAM,aAAa,GAAG,aAAa,IAAI,GAAG,CAAC;IAE3C,MAAM,YAAY,GAAqB,EAAE,aAAa,EAAE,CAAC;IAEzD,OAAO,CACN,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC9C,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAiB,GAC3B,CAC7B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC9C,OAAO,OAAO,EAAE,aAAa,IAAI,GAAG,CAAC;AACtC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { LinkComponent, Prettify, ThemeConfig } from '../../types';
2
+ import { ReactNode } from 'react';
3
+ export type ThreadProviderProps = Prettify<{
4
+ linkComponent?: LinkComponent;
5
+ theme?: ThemeConfig;
6
+ children: ReactNode;
7
+ }>;
8
+ export type ThreadFoundation = {
9
+ LinkComponent: LinkComponent;
10
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=thread-provider.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-provider.types.js","sourceRoot":"","sources":["../../../src/foundation/thread-provider/thread-provider.types.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
1
  export * from './use-click-outside';
2
2
  export * from './use-dismiss';
3
3
  export * from './use-pathname';
4
+ export * from './use-resize';
@@ -1,4 +1,5 @@
1
1
  export * from './use-click-outside';
2
2
  export * from './use-dismiss';
3
3
  export * from './use-pathname';
4
+ export * from './use-resize';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './use-resize';
@@ -0,0 +1,2 @@
1
+ export * from './use-resize';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/use-resize/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ type UseResizeProps = {
2
+ onResize: () => void;
3
+ disabled?: boolean;
4
+ };
5
+ /**
6
+ * Calls `onResize` on window resize.
7
+ * Only active when `disabled` is false.
8
+ *
9
+ * @example
10
+ * useResize({ onResize: () => setIsOpen(false) });
11
+ */
12
+ export declare const useResize: ({ onResize, disabled }: UseResizeProps) => void;
13
+ export {};
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { useEffect, useRef } from 'react';
3
+ /**
4
+ * Calls `onResize` on window resize.
5
+ * Only active when `disabled` is false.
6
+ *
7
+ * @example
8
+ * useResize({ onResize: () => setIsOpen(false) });
9
+ */
10
+ export const useResize = ({ onResize, disabled = false }) => {
11
+ const onResizeRef = useRef(onResize);
12
+ onResizeRef.current = onResize;
13
+ useEffect(() => {
14
+ if (disabled)
15
+ return;
16
+ const handleResize = () => {
17
+ onResizeRef.current();
18
+ };
19
+ window.addEventListener('resize', handleResize);
20
+ return () => window.removeEventListener('resize', handleResize);
21
+ }, [disabled]);
22
+ };
23
+ //# sourceMappingURL=use-resize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-resize.js","sourceRoot":"","sources":["../../../src/hooks/use-resize/use-resize.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAO1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAkB,EAAE,EAAE;IAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,QAAQ;YAAE,OAAO;QAErB,MAAM,YAAY,GAAG,GAAG,EAAE;YACzB,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './components';
2
+ export { ThreadScript, ThreadProvider, type ThreadProviderProps } from './foundation';
2
3
  export * from './types';
3
- export * from './theme';
4
+ export { ThreadTheme } from './theme';
4
5
  export * from './hooks';