thread-ui 0.5.0 → 0.6.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 (195) hide show
  1. package/README.md +10 -2
  2. package/dist/components/data-display/filter-controls/filter-controls.d.ts +10 -0
  3. package/dist/components/data-display/filter-controls/filter-controls.js +39 -0
  4. package/dist/components/data-display/filter-controls/filter-controls.js.map +1 -0
  5. package/dist/components/data-display/filter-controls/filter-controls.types.d.ts +75 -0
  6. package/dist/components/data-display/filter-controls/filter-controls.types.js +2 -0
  7. package/dist/components/data-display/filter-controls/filter-controls.types.js.map +1 -0
  8. package/dist/components/data-display/filter-controls/index.d.ts +2 -0
  9. package/dist/components/data-display/filter-controls/index.js +2 -0
  10. package/dist/components/data-display/filter-controls/index.js.map +1 -0
  11. package/dist/components/data-display/filter-controls/use-filter-controls.d.ts +23 -0
  12. package/dist/components/data-display/filter-controls/use-filter-controls.js +89 -0
  13. package/dist/components/data-display/filter-controls/use-filter-controls.js.map +1 -0
  14. package/dist/components/data-display/index.d.ts +2 -0
  15. package/dist/components/data-display/index.js +3 -0
  16. package/dist/components/data-display/index.js.map +1 -0
  17. package/dist/components/data-display/sort-controls/index.d.ts +3 -0
  18. package/dist/components/data-display/sort-controls/index.js +3 -0
  19. package/dist/components/data-display/sort-controls/index.js.map +1 -0
  20. package/dist/components/data-display/sort-controls/sort-controls.d.ts +11 -0
  21. package/dist/components/data-display/sort-controls/sort-controls.js +51 -0
  22. package/dist/components/data-display/sort-controls/sort-controls.js.map +1 -0
  23. package/dist/components/data-display/sort-controls/sort-controls.types.d.ts +62 -0
  24. package/dist/components/data-display/sort-controls/sort-controls.types.js +2 -0
  25. package/dist/components/data-display/sort-controls/sort-controls.types.js.map +1 -0
  26. package/dist/components/data-display/sort-controls/use-sort-controls.d.ts +23 -0
  27. package/dist/components/data-display/sort-controls/use-sort-controls.js +94 -0
  28. package/dist/components/data-display/sort-controls/use-sort-controls.js.map +1 -0
  29. package/dist/components/form-elements/{dropdown → dropdowns/dropdown}/dropdown.d.ts +1 -1
  30. package/dist/components/form-elements/dropdowns/dropdown/dropdown.js +41 -0
  31. package/dist/components/form-elements/dropdowns/dropdown/dropdown.js.map +1 -0
  32. package/dist/components/form-elements/{dropdown → dropdowns/dropdown}/dropdown.types.d.ts +4 -9
  33. package/dist/components/form-elements/dropdowns/dropdown/dropdown.types.js.map +1 -0
  34. package/dist/components/form-elements/dropdowns/dropdown/index.js.map +1 -0
  35. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.d.ts +8 -0
  36. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js +46 -0
  37. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js.map +1 -0
  38. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.types.d.ts +25 -0
  39. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.types.js +2 -0
  40. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.types.js.map +1 -0
  41. package/dist/components/form-elements/dropdowns/dropdown-base/index.d.ts +2 -0
  42. package/dist/components/form-elements/dropdowns/dropdown-base/index.js +2 -0
  43. package/dist/components/form-elements/dropdowns/dropdown-base/index.js.map +1 -0
  44. package/dist/components/form-elements/dropdowns/index.d.ts +2 -0
  45. package/dist/components/form-elements/dropdowns/index.js +3 -0
  46. package/dist/components/form-elements/dropdowns/index.js.map +1 -0
  47. package/dist/components/form-elements/dropdowns/multi-dropdown/index.d.ts +2 -0
  48. package/dist/components/form-elements/dropdowns/multi-dropdown/index.js +2 -0
  49. package/dist/components/form-elements/dropdowns/multi-dropdown/index.js.map +1 -0
  50. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.d.ts +15 -0
  51. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.js +55 -0
  52. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.js.map +1 -0
  53. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.types.d.ts +25 -0
  54. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.types.js +2 -0
  55. package/dist/components/form-elements/dropdowns/multi-dropdown/multi-dropdown.types.js.map +1 -0
  56. package/dist/components/form-elements/form-label/form-label.d.ts +1 -1
  57. package/dist/components/form-elements/form-label/form-label.js +34 -8
  58. package/dist/components/form-elements/form-label/form-label.js.map +1 -1
  59. package/dist/components/form-elements/form-label/form-label.types.d.ts +3 -0
  60. package/dist/components/form-elements/index.d.ts +2 -2
  61. package/dist/components/form-elements/index.js +2 -2
  62. package/dist/components/form-elements/index.js.map +1 -1
  63. package/dist/components/index.d.ts +1 -0
  64. package/dist/components/index.js +1 -0
  65. package/dist/components/index.js.map +1 -1
  66. package/dist/components/layouts/column-layout/column-layout.d.ts +1 -1
  67. package/dist/components/layouts/column-layout/column-layout.js +5 -4
  68. package/dist/components/layouts/column-layout/column-layout.js.map +1 -1
  69. package/dist/components/layouts/column-layout/column-layout.types.d.ts +4 -1
  70. package/dist/components/layouts/container/container.d.ts +11 -0
  71. package/dist/components/layouts/container/container.js +28 -0
  72. package/dist/components/layouts/container/container.js.map +1 -0
  73. package/dist/components/layouts/container/container.types.d.ts +11 -0
  74. package/dist/components/layouts/container/container.types.js +2 -0
  75. package/dist/components/layouts/container/container.types.js.map +1 -0
  76. package/dist/components/layouts/container/index.d.ts +2 -0
  77. package/dist/components/layouts/container/index.js +2 -0
  78. package/dist/components/layouts/container/index.js.map +1 -0
  79. package/dist/components/layouts/index.d.ts +1 -0
  80. package/dist/components/layouts/index.js +1 -0
  81. package/dist/components/layouts/index.js.map +1 -1
  82. package/dist/components/layouts/layout-component.types.d.ts +9 -0
  83. package/dist/components/layouts/layout-component.types.js +2 -0
  84. package/dist/components/layouts/layout-component.types.js.map +1 -0
  85. package/dist/components/layouts/layout-wrapper.d.ts +7 -0
  86. package/dist/components/layouts/layout-wrapper.js +9 -0
  87. package/dist/components/layouts/layout-wrapper.js.map +1 -0
  88. package/dist/components/layouts/masonry-layout/masonry-layout.d.ts +1 -1
  89. package/dist/components/layouts/masonry-layout/masonry-layout.js +5 -5
  90. package/dist/components/layouts/masonry-layout/masonry-layout.js.map +1 -1
  91. package/dist/components/layouts/masonry-layout/masonry-layout.types.d.ts +3 -2
  92. package/dist/components/media/info-card/info-card.js +3 -4
  93. package/dist/components/media/info-card/info-card.js.map +1 -1
  94. package/dist/components/navigation/nav-menu/items/base-item/base-item.d.ts +1 -1
  95. package/dist/components/navigation/nav-menu/items/base-item/base-item.js +1 -1
  96. package/dist/components/navigation/nav-menu/items/base-item/base-item.js.map +1 -1
  97. package/dist/components/navigation/side-nav/side-nav-item/side-nav-item.js +1 -1
  98. package/dist/components/typography/typography.d.ts +10 -8
  99. package/dist/components/typography/typography.js +42 -8
  100. package/dist/components/typography/typography.js.map +1 -1
  101. package/dist/components/ui/button/button-recipe.js +90 -6
  102. package/dist/components/ui/button/button-recipe.js.map +1 -1
  103. package/dist/components/ui/button/button.d.ts +1 -1
  104. package/dist/components/ui/button/button.js +2 -1
  105. package/dist/components/ui/button/button.js.map +1 -1
  106. package/dist/components/ui/button/button.types.d.ts +3 -1
  107. package/dist/components/ui/icon/icon.d.ts +1 -1
  108. package/dist/components/ui/icon/icon.js +1 -1
  109. package/dist/components/ui/icon-button/icon-button.d.ts +1 -1
  110. package/dist/components/ui/icon-button/icon-button.js +4 -7
  111. package/dist/components/ui/icon-button/icon-button.js.map +1 -1
  112. package/dist/components/ui/modal/components/modal-content.js +3 -3
  113. package/dist/components/ui/modal/components/modal-content.js.map +1 -1
  114. package/dist/components/ui/modal/modal.js +8 -2
  115. package/dist/components/ui/modal/modal.js.map +1 -1
  116. package/dist/components/ui/modal/modal.types.d.ts +2 -0
  117. package/dist/hooks/index.d.ts +3 -0
  118. package/dist/hooks/index.js +4 -0
  119. package/dist/hooks/index.js.map +1 -0
  120. package/dist/hooks/use-click-outside/index.d.ts +1 -0
  121. package/dist/hooks/use-click-outside/index.js +2 -0
  122. package/dist/hooks/use-click-outside/index.js.map +1 -0
  123. package/dist/hooks/use-click-outside/use-click-outside.d.ts +10 -0
  124. package/dist/hooks/use-click-outside/use-click-outside.js +26 -0
  125. package/dist/hooks/use-click-outside/use-click-outside.js.map +1 -0
  126. package/dist/hooks/use-dismiss/index.d.ts +1 -0
  127. package/dist/hooks/use-dismiss/index.js +2 -0
  128. package/dist/hooks/use-dismiss/index.js.map +1 -0
  129. package/dist/hooks/use-dismiss/use-dismiss.d.ts +13 -0
  130. package/dist/hooks/use-dismiss/use-dismiss.js +42 -0
  131. package/dist/hooks/use-dismiss/use-dismiss.js.map +1 -0
  132. package/dist/hooks/use-pathname/index.js.map +1 -0
  133. package/dist/hooks/use-pathname/use-pathname.d.ts +8 -0
  134. package/dist/{utils/hooks → hooks}/use-pathname/use-pathname.js +7 -0
  135. package/dist/hooks/use-pathname/use-pathname.js.map +1 -0
  136. package/dist/index.d.ts +1 -0
  137. package/dist/index.js +2 -0
  138. package/dist/index.js.map +1 -1
  139. package/dist/internal-components/conditional-wrapper/conditional-wrapper.d.ts +2 -0
  140. package/dist/internal-components/conditional-wrapper/conditional-wrapper.js +12 -0
  141. package/dist/internal-components/conditional-wrapper/conditional-wrapper.js.map +1 -0
  142. package/dist/internal-components/conditional-wrapper/conditional-wrapper.types.d.ts +9 -0
  143. package/dist/internal-components/conditional-wrapper/conditional-wrapper.types.js +2 -0
  144. package/dist/internal-components/conditional-wrapper/conditional-wrapper.types.js.map +1 -0
  145. package/dist/internal-components/conditional-wrapper/index.d.ts +2 -0
  146. package/dist/internal-components/conditional-wrapper/index.js +2 -0
  147. package/dist/internal-components/conditional-wrapper/index.js.map +1 -0
  148. package/dist/internal-components/image/render-image.js.map +1 -1
  149. package/dist/internal-components/index.d.ts +3 -1
  150. package/dist/internal-components/index.js +3 -1
  151. package/dist/internal-components/index.js.map +1 -1
  152. package/dist/internal-components/optional-icon-button/index.d.ts +2 -0
  153. package/dist/internal-components/optional-icon-button/index.js +2 -0
  154. package/dist/internal-components/optional-icon-button/index.js.map +1 -0
  155. package/dist/internal-components/optional-icon-button/optional-icon-button.d.ts +2 -0
  156. package/dist/internal-components/optional-icon-button/optional-icon-button.js +9 -0
  157. package/dist/internal-components/optional-icon-button/optional-icon-button.js.map +1 -0
  158. package/dist/internal-components/optional-icon-button/optional-icon-button.types.d.ts +4 -0
  159. package/dist/internal-components/optional-icon-button/optional-icon-button.types.js +2 -0
  160. package/dist/internal-components/optional-icon-button/optional-icon-button.types.js.map +1 -0
  161. package/dist/styled-system/recipes/button.d.ts +2 -1
  162. package/dist/styled-system/recipes/button.mjs +114 -1
  163. package/dist/styled-system/styles.css +1 -1
  164. package/dist/styles/panda.css +1 -1
  165. package/dist/types/colors/utility-color-options.types.d.ts +2 -0
  166. package/dist/types/image/image.types.d.ts +2 -0
  167. package/dist/types/theme/theme.types.d.ts +24 -10
  168. package/dist/types/utility/deep-partial.types.d.ts +1 -0
  169. package/dist/utils/index.d.ts +0 -1
  170. package/dist/utils/index.js +0 -1
  171. package/dist/utils/index.js.map +1 -1
  172. package/dist/utils/theme-utilities/get-utility-icon-size/get-utility-icon-size.js +4 -4
  173. package/dist/utils/theme-utilities/get-utility-icon-size/get-utility-icon-size.js.map +1 -1
  174. package/package.json +1 -1
  175. package/dist/components/form-elements/dropdown/dropdown.js +0 -83
  176. package/dist/components/form-elements/dropdown/dropdown.js.map +0 -1
  177. package/dist/components/form-elements/dropdown/dropdown.types.js.map +0 -1
  178. package/dist/components/form-elements/dropdown/index.js.map +0 -1
  179. package/dist/utils/hooks/index.d.ts +0 -2
  180. package/dist/utils/hooks/index.js +0 -3
  181. package/dist/utils/hooks/index.js.map +0 -1
  182. package/dist/utils/hooks/use-outside-close-click/index.d.ts +0 -1
  183. package/dist/utils/hooks/use-outside-close-click/index.js +0 -2
  184. package/dist/utils/hooks/use-outside-close-click/index.js.map +0 -1
  185. package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.d.ts +0 -2
  186. package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.js +0 -16
  187. package/dist/utils/hooks/use-outside-close-click/use-outside-close-click.js.map +0 -1
  188. package/dist/utils/hooks/use-pathname/index.js.map +0 -1
  189. package/dist/utils/hooks/use-pathname/use-pathname.d.ts +0 -1
  190. package/dist/utils/hooks/use-pathname/use-pathname.js.map +0 -1
  191. /package/dist/components/form-elements/{dropdown → dropdowns/dropdown}/dropdown.types.js +0 -0
  192. /package/dist/components/form-elements/{dropdown → dropdowns/dropdown}/index.d.ts +0 -0
  193. /package/dist/components/form-elements/{dropdown → dropdowns/dropdown}/index.js +0 -0
  194. /package/dist/{utils/hooks → hooks}/use-pathname/index.d.ts +0 -0
  195. /package/dist/{utils/hooks → hooks}/use-pathname/index.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/ui/icon-button/icon-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGtF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,IAAI,GACa,EAAE,EAAE;IACrB,MAAM,MAAM,GAAkB;QAC7B,UAAU,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;QAChD,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;KAClC,CAAC;IACF,OAAO,CACN,MAAC,MAAM,IACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,aAElB,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAI,EACnD,QAAQ,IAAI,cAAK,KAAK,EAAE,MAAM,YAAG,QAAQ,GAAO,IACzC,CACT,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/ui/icon-button/icon-button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IACpD,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9D,OAAO,CACN,MAAC,MAAM,IAAC,IAAI,EAAE,IAAI,KAAM,WAAW,aAClC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAI,EACnD,QAAQ,IACD,CACT,CAAC;AACH,CAAC,CAAC"}
@@ -1,17 +1,17 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useRef } from 'react';
4
- import { useOutsideCloseClick } from '../../../../utils';
4
+ import { useDismiss } from '../../../../hooks';
5
5
  import { css, cva } from '../../../../styled-system/css';
6
6
  import { IconButton } from '../../icon-button';
7
7
  import { H2, H3 } from '../../../../components/typography';
8
8
  import { useModalContext } from '../modal-context';
9
9
  export const ModalContent = () => {
10
10
  // Extract Properties from Context
11
- const { children, size, title, footer, onClose, closeOnOverlayClick, open } = useModalContext();
11
+ const { children, size, title, footer, onClose, closeOnOverlayClick, closeOnEsc, open } = useModalContext();
12
12
  // Manage Modal Closure
13
13
  const modalContentRef = useRef(null);
14
- useOutsideCloseClick(closeOnOverlayClick ?? true, modalContentRef, open, onClose);
14
+ useDismiss(modalContentRef, open, onClose, closeOnOverlayClick, closeOnEsc);
15
15
  const styles = {
16
16
  outline: cva({
17
17
  base: {
@@ -1 +1 @@
1
- {"version":3,"file":"modal-content.js","sourceRoot":"","sources":["../../../../../src/components/ui/modal/components/modal-content.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modal-content.js","sourceRoot":"","sources":["../../../../../src/components/ui/modal/components/modal-content.tsx"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import { css } from '../../../styled-system/css';
15
15
  * </Modal>
16
16
  */
17
17
  export const Modal = (props) => {
18
- const { open, portalTarget, preventScroll = true, placement = 'center' } = props;
18
+ const { open, portalTarget, preventScroll = true, placement = 'center', closeOnOverlayClick = true, closeOnEsc = true, } = props;
19
19
  useEffect(() => {
20
20
  if (open && preventScroll) {
21
21
  document.body.style.overflow = 'hidden';
@@ -38,7 +38,13 @@ export const Modal = (props) => {
38
38
  };
39
39
  if (open) {
40
40
  const target = portalTarget ?? document.body;
41
- return createPortal(_jsx(ModalProvider, { value: props, children: _jsx("div", { className: styles.overlay, children: _jsx(ModalContent, {}) }) }), target);
41
+ return createPortal(_jsx(ModalProvider, { value: {
42
+ ...props,
43
+ placement,
44
+ closeOnOverlayClick,
45
+ closeOnEsc,
46
+ preventScroll,
47
+ }, children: _jsx("div", { className: styles.overlay, children: _jsx(ModalContent, {}) }) }), target);
42
48
  }
43
49
  };
44
50
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../../src/components/ui/modal/modal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC1C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,GAAG,IAAI,EAAE,SAAS,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEjF,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,CAAC;QACD,OAAO,GAAG,EAAE;YACX,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnC,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG;QACd,OAAO,EAAE,GAAG,CAAC;YACZ,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;YACzD,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;SAC5C,CAAC;KACF,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC;QAE7C,OAAO,YAAY,CAClB,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YAC1B,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,YAC7B,KAAC,YAAY,KAAG,GACX,GACS,EAChB,MAAM,CACN,CAAC;IACH,CAAC;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../../src/components/ui/modal/modal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC1C,MAAM,EACL,IAAI,EACJ,YAAY,EACZ,aAAa,GAAG,IAAI,EACpB,SAAS,GAAG,QAAQ,EACpB,mBAAmB,GAAG,IAAI,EAC1B,UAAU,GAAG,IAAI,GACjB,GAAG,KAAK,CAAC;IAEV,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzC,CAAC;QACD,OAAO,GAAG,EAAE;YACX,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnC,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG;QACd,OAAO,EAAE,GAAG,CAAC;YACZ,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;YACzD,cAAc,EAAE,QAAQ;YACxB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;SAC5C,CAAC;KACF,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC;QAE7C,OAAO,YAAY,CAClB,KAAC,aAAa,IACb,KAAK,EAAE;gBACN,GAAG,KAAK;gBACR,SAAS;gBACT,mBAAmB;gBACnB,UAAU;gBACV,aAAa;aACb,YAED,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,YAC7B,KAAC,YAAY,KAAG,GACX,GACS,EAChB,MAAM,CACN,CAAC;IACH,CAAC;AACF,CAAC,CAAC"}
@@ -18,6 +18,8 @@ export type ModalProps = {
18
18
  placement?: 'center' | 'top';
19
19
  /** Close the modal when the overlay is clicked @default `true` */
20
20
  closeOnOverlayClick?: boolean;
21
+ /** Close the modal when the Escape key is pressed @default `true` */
22
+ closeOnEsc?: boolean;
21
23
  /** Prevents body scroll while the modal is open @default `true` */
22
24
  preventScroll?: boolean;
23
25
  /** DOM element to portal the modal into. Defaults to `document.body` */
@@ -0,0 +1,3 @@
1
+ export * from './use-click-outside';
2
+ export * from './use-dismiss';
3
+ export * from './use-pathname';
@@ -0,0 +1,4 @@
1
+ export * from './use-click-outside';
2
+ export * from './use-dismiss';
3
+ export * from './use-pathname';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1 @@
1
+ export * from './use-click-outside';
@@ -0,0 +1,2 @@
1
+ export * from './use-click-outside';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/use-click-outside/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Calls `onClose` when a click is detected outside of `elementRef`.
4
+ * Only active when `isOpen` is true and `disabled` is false.
5
+ *
6
+ * @example
7
+ * const ref = useRef<HTMLDivElement>(null);
8
+ * useClickOutside(ref, isOpen, () => setIsOpen(false));
9
+ */
10
+ export declare const useClickOutside: (elementRef: RefObject<HTMLElement | null>, isOpen: boolean, onClose: () => void, disabled?: boolean) => void;
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { useEffect, useRef } from 'react';
3
+ /**
4
+ * Calls `onClose` when a click is detected outside of `elementRef`.
5
+ * Only active when `isOpen` is true and `disabled` is false.
6
+ *
7
+ * @example
8
+ * const ref = useRef<HTMLDivElement>(null);
9
+ * useClickOutside(ref, isOpen, () => setIsOpen(false));
10
+ */
11
+ export const useClickOutside = (elementRef, isOpen, onClose, disabled = false) => {
12
+ const onCloseRef = useRef(onClose);
13
+ onCloseRef.current = onClose;
14
+ useEffect(() => {
15
+ if (!isOpen || disabled)
16
+ return;
17
+ const handleClickOutside = (e) => {
18
+ if (elementRef.current && !elementRef.current.contains(e.target)) {
19
+ onCloseRef.current();
20
+ }
21
+ };
22
+ document.addEventListener('mousedown', handleClickOutside);
23
+ return () => document.removeEventListener('mousedown', handleClickOutside);
24
+ }, [isOpen, disabled, elementRef]);
25
+ };
26
+ //# sourceMappingURL=use-click-outside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-click-outside.js","sourceRoot":"","sources":["../../../src/hooks/use-click-outside/use-click-outside.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAa,MAAM,OAAO,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,UAAyC,EACzC,MAAe,EACf,OAAmB,EACnB,WAAoB,KAAK,EACxB,EAAE;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO;QAEhC,MAAM,kBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC5C,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;gBAC1E,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './use-dismiss';
@@ -0,0 +1,2 @@
1
+ export * from './use-dismiss';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/use-dismiss/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Calls `onClose` when a click is detected outside of `elementRef` or when `Escape` is pressed.
4
+ * Each trigger can be independently disabled. Only active when `isOpen` is true.
5
+ *
6
+ * @example
7
+ * const ref = useRef<HTMLDivElement>(null);
8
+ * useDismiss(ref, isOpen, () => setIsOpen(false));
9
+ *
10
+ * // Disable outside click, keep Escape
11
+ * useDismiss(ref, isOpen, () => setIsOpen(false), true, false);
12
+ */
13
+ export declare const useDismiss: (elementRef: RefObject<HTMLElement | null>, isOpen: boolean, onClose: () => void, isClickDisabled?: boolean, isEscDisabled?: boolean) => void;
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { useEffect, useRef } from 'react';
3
+ /**
4
+ * Calls `onClose` when a click is detected outside of `elementRef` or when `Escape` is pressed.
5
+ * Each trigger can be independently disabled. Only active when `isOpen` is true.
6
+ *
7
+ * @example
8
+ * const ref = useRef<HTMLDivElement>(null);
9
+ * useDismiss(ref, isOpen, () => setIsOpen(false));
10
+ *
11
+ * // Disable outside click, keep Escape
12
+ * useDismiss(ref, isOpen, () => setIsOpen(false), true, false);
13
+ */
14
+ export const useDismiss = (elementRef, isOpen, onClose, isClickDisabled = false, isEscDisabled = false) => {
15
+ const onCloseRef = useRef(onClose);
16
+ onCloseRef.current = onClose;
17
+ useEffect(() => {
18
+ if (!isOpen || (isClickDisabled && isEscDisabled))
19
+ return;
20
+ const handleClickOutside = (e) => {
21
+ if (elementRef.current && !elementRef.current.contains(e.target)) {
22
+ onCloseRef.current();
23
+ }
24
+ };
25
+ const handleKeyDown = (e) => {
26
+ if (e.key === 'Escape') {
27
+ onCloseRef.current();
28
+ }
29
+ };
30
+ if (!isClickDisabled) {
31
+ document.addEventListener('mousedown', handleClickOutside);
32
+ }
33
+ if (!isEscDisabled) {
34
+ document.addEventListener('keydown', handleKeyDown);
35
+ }
36
+ return () => {
37
+ document.removeEventListener('mousedown', handleClickOutside);
38
+ document.removeEventListener('keydown', handleKeyDown);
39
+ };
40
+ }, [elementRef, isOpen, isClickDisabled, isEscDisabled]);
41
+ };
42
+ //# sourceMappingURL=use-dismiss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-dismiss.js","sourceRoot":"","sources":["../../../src/hooks/use-dismiss/use-dismiss.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAa,MAAM,OAAO,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,UAAyC,EACzC,MAAe,EACf,OAAmB,EACnB,kBAA2B,KAAK,EAChC,gBAAyB,KAAK,EAC7B,EAAE;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC;YAAE,OAAO;QAE1D,MAAM,kBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC5C,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;gBAC1E,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;YAC1C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACxB,UAAU,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,GAAG,EAAE;YACX,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC9D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/use-pathname/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns the current `window.location.pathname` and updates on `popstate` events.
3
+ * Initializes as an empty string on the server to avoid hydration mismatches.
4
+ *
5
+ * @example
6
+ * const pathname = usePathname();
7
+ */
8
+ export declare const usePathname: () => string;
@@ -1,5 +1,12 @@
1
1
  'use client';
2
2
  import { useState, useEffect } from 'react';
3
+ /**
4
+ * Returns the current `window.location.pathname` and updates on `popstate` events.
5
+ * Initializes as an empty string on the server to avoid hydration mismatches.
6
+ *
7
+ * @example
8
+ * const pathname = usePathname();
9
+ */
3
10
  export const usePathname = () => {
4
11
  const [pathname, setPathname] = useState(''); // Safe initial state
5
12
  useEffect(() => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pathname.js","sourceRoot":"","sources":["../../../src/hooks/use-pathname/use-pathname.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB;IAEnE,SAAS,CAAC,GAAG,EAAE;QACd,mCAAmC;QACnC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEtC,MAAM,oBAAoB,GAAG,GAAG,EAAE;YACjC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC3E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,3 +3,4 @@ import './styles/panda.css';
3
3
  export * from './components';
4
4
  export * from './types';
5
5
  export * from './theme';
6
+ export * from './hooks';
package/dist/index.js CHANGED
@@ -8,4 +8,6 @@ export * from './components';
8
8
  export * from './types';
9
9
  // Export Theme
10
10
  export * from './theme';
11
+ // Export Hooks
12
+ export * from './hooks';
11
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,gCAAgC;AAChC,OAAO,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAE7B,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,eAAe;AACf,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,gCAAgC;AAChC,OAAO,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAE7B,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,eAAe;AACf,cAAc,SAAS,CAAC;AAExB,eAAe;AACf,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ConditionalWrapperProps } from './conditional-wrapper.types';
2
+ export declare const ConditionalWrapper: ({ children, wrapper, wrapperProps, fallbackWrapper, }: ConditionalWrapperProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ export const ConditionalWrapper = ({ children, wrapper, wrapperProps = {}, fallbackWrapper, }) => {
3
+ const resolved = wrapper ?? fallbackWrapper?.wrapper ?? 'fragment';
4
+ const resolvedProps = wrapper ? wrapperProps : (fallbackWrapper?.wrapperProps ?? {});
5
+ if (resolved === 'fragment')
6
+ return _jsx(_Fragment, { children: children });
7
+ if (resolved === 'div')
8
+ return _jsx("div", { ...resolvedProps, children: children });
9
+ const Wrapper = resolved;
10
+ return _jsx(Wrapper, { ...resolvedProps, children: children });
11
+ };
12
+ //# sourceMappingURL=conditional-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-wrapper.js","sourceRoot":"","sources":["../../../src/internal-components/conditional-wrapper/conditional-wrapper.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAClC,QAAQ,EACR,OAAO,EACP,YAAY,GAAG,EAAE,EACjB,eAAe,GACU,EAAE,EAAE;IAC7B,MAAM,QAAQ,GAAG,OAAO,IAAI,eAAe,EAAE,OAAO,IAAI,UAAU,CAAC;IACnE,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;IAErF,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACpD,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,iBAAS,aAAa,YAAG,QAAQ,GAAO,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC;IACzB,OAAO,KAAC,OAAO,OAAM,aAAqB,YAAG,QAAQ,GAAW,CAAC;AAClE,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ type WrapperType = ComponentType<any> | 'div' | 'fragment';
3
+ export type ConditionalWrapperProps = {
4
+ children: ReactNode;
5
+ wrapper?: WrapperType;
6
+ wrapperProps?: Record<string, unknown>;
7
+ fallbackWrapper?: Omit<ConditionalWrapperProps, 'children' | 'fallbackWrapper'>;
8
+ };
9
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conditional-wrapper.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-wrapper.types.js","sourceRoot":"","sources":["../../../src/internal-components/conditional-wrapper/conditional-wrapper.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type { ConditionalWrapperProps } from './conditional-wrapper.types';
2
+ export { ConditionalWrapper } from './conditional-wrapper';
@@ -0,0 +1,2 @@
1
+ export { ConditionalWrapper } from './conditional-wrapper';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal-components/conditional-wrapper/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-image.js","sourceRoot":"","sources":["../../../src/internal-components/image/render-image.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAiB,cAAc,EAAgB,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC,CAAC,kBAAkB;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAsB,EAAE,MAAsB,EAAE,SAAkB,EAAgB,EAAE;IAC/G,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,UAAU,CAAC,KAA0C,CAAC;QACxE,MAAM,QAAQ,GAAsC;YACnD,GAAG,SAAS;YACZ,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;YAC7C,KAAK,EAAE;gBACN,GAAG,SAAS,CAAC,KAAK;gBAClB,GAAG,MAAM;aACT;SACD,CAAC;QACF,OAAO,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC;QACtF,OAAO,CACN,cACC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,KACrC,SAAS,GACZ,CACF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC5D,OAAO,cAAK,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CAAC;AACvE,CAAC,CAAC"}
1
+ {"version":3,"file":"render-image.js","sourceRoot":"","sources":["../../../src/internal-components/image/render-image.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAiB,cAAc,EAAgB,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC,CAAC,kBAAkB;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,UAAsB,EACtB,MAAsB,EACtB,SAAkB,EACH,EAAE;IACjB,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,UAAU,CAAC,KAA0C,CAAC;QACxE,MAAM,QAAQ,GAAsC;YACnD,GAAG,SAAS;YACZ,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;YAC7C,KAAK,EAAE;gBACN,GAAG,SAAS,CAAC,KAAK;gBAClB,GAAG,MAAM;aACT;SACD,CAAC;QACF,OAAO,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC;QACtF,OAAO,CACN,cACC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,KACrC,SAAS,GACZ,CACF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC5D,OAAO,cAAK,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CAAC;AACvE,CAAC,CAAC"}
@@ -1,2 +1,4 @@
1
- export * from './link-wrapper';
1
+ export * from './conditional-wrapper';
2
2
  export * from './image';
3
+ export * from './link-wrapper';
4
+ export * from './optional-icon-button';
@@ -1,4 +1,6 @@
1
1
  // Export Internal Components
2
- export * from './link-wrapper';
2
+ export * from './conditional-wrapper';
3
3
  export * from './image';
4
+ export * from './link-wrapper';
5
+ export * from './optional-icon-button';
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal-components/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal-components/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { OptionalIconButtonProps } from './optional-icon-button.types';
2
+ export { OptionalIconButton } from './optional-icon-button';
@@ -0,0 +1,2 @@
1
+ export { OptionalIconButton } from './optional-icon-button';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal-components/optional-icon-button/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { OptionalIconButtonProps } from './optional-icon-button.types';
2
+ export declare const OptionalIconButton: (props: OptionalIconButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button, IconButton } from '../../components';
3
+ import { ConditionalWrapper } from '../conditional-wrapper';
4
+ export const OptionalIconButton = (props) => {
5
+ const { name, children, ...buttonProps } = props;
6
+ const iconButtonProps = name ? { ...buttonProps, name } : undefined;
7
+ return (_jsx(ConditionalWrapper, { wrapper: iconButtonProps ? IconButton : undefined, wrapperProps: iconButtonProps, fallbackWrapper: { wrapper: Button, wrapperProps: buttonProps }, children: children }));
8
+ };
9
+ //# sourceMappingURL=optional-icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional-icon-button.js","sourceRoot":"","sources":["../../../src/internal-components/optional-icon-button/optional-icon-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAE,EAAE;IACpE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpE,OAAO,CACN,KAAC,kBAAkB,IAClB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACjD,YAAY,EAAE,eAAe,EAC7B,eAAe,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAE9D,QAAQ,GACW,CACrB,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IconButtonProps } from '../../components';
2
+ export type OptionalIconButtonProps = Omit<IconButtonProps, 'name'> & {
3
+ name?: IconButtonProps['name'];
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=optional-icon-button.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional-icon-button.types.js","sourceRoot":"","sources":["../../../src/internal-components/optional-icon-button/optional-icon-button.types.ts"],"names":[],"mappings":""}
@@ -6,7 +6,7 @@ interface ButtonVariant {
6
6
  /**
7
7
  * @default "primary"
8
8
  */
9
- color: "primary" | "secondary" | "tertiary" | "black" | "gray" | "success" | "error" | "info" | "text"
9
+ color: "primary" | "secondary" | "tertiary" | "black" | "gray" | "success" | "error" | "info" | "text" | "neutral"
10
10
  /**
11
11
  * @default "md"
12
12
  */
@@ -19,6 +19,7 @@ fullWidth: boolean
19
19
  * @default false
20
20
  */
21
21
  disabled: boolean
22
+ textVariant: boolean
22
23
  }
23
24
 
24
25
  type ButtonVariantMap = {
@@ -105,6 +105,115 @@ const buttonFn = /* @__PURE__ */ createRecipe('button', {
105
105
  "borderColor": "white"
106
106
  }
107
107
  }
108
+ },
109
+ {
110
+ "textVariant": true,
111
+ "disabled": true,
112
+ "css": {
113
+ "_hover": {
114
+ "textDecoration": "none"
115
+ }
116
+ }
117
+ },
118
+ {
119
+ "textVariant": true,
120
+ "color": "primary",
121
+ "css": {
122
+ "color": "primary.main",
123
+ "_hover": {
124
+ "color": "primary.main"
125
+ }
126
+ }
127
+ },
128
+ {
129
+ "textVariant": true,
130
+ "color": "secondary",
131
+ "css": {
132
+ "color": "secondary.main",
133
+ "_hover": {
134
+ "color": "secondary.main"
135
+ }
136
+ }
137
+ },
138
+ {
139
+ "textVariant": true,
140
+ "color": "tertiary",
141
+ "css": {
142
+ "color": "tertiary.main",
143
+ "_hover": {
144
+ "color": "tertiary.main"
145
+ }
146
+ }
147
+ },
148
+ {
149
+ "textVariant": true,
150
+ "color": "gray",
151
+ "css": {
152
+ "color": "gray.main",
153
+ "_hover": {
154
+ "color": "gray.main"
155
+ }
156
+ }
157
+ },
158
+ {
159
+ "textVariant": true,
160
+ "color": "success",
161
+ "css": {
162
+ "color": "success.main",
163
+ "_hover": {
164
+ "color": "success.main"
165
+ }
166
+ }
167
+ },
168
+ {
169
+ "textVariant": true,
170
+ "color": "error",
171
+ "css": {
172
+ "color": "error.main",
173
+ "_hover": {
174
+ "color": "error.main"
175
+ }
176
+ }
177
+ },
178
+ {
179
+ "textVariant": true,
180
+ "color": "info",
181
+ "css": {
182
+ "color": "info.main",
183
+ "_hover": {
184
+ "color": "info.main"
185
+ }
186
+ }
187
+ },
188
+ {
189
+ "textVariant": true,
190
+ "color": "neutral",
191
+ "css": {
192
+ "color": "text.standard",
193
+ "_hover": {
194
+ "color": "text.standard"
195
+ }
196
+ }
197
+ },
198
+ {
199
+ "textVariant": true,
200
+ "color": "black",
201
+ "css": {
202
+ "color": "black",
203
+ "_hover": {
204
+ "color": "black"
205
+ }
206
+ }
207
+ },
208
+ {
209
+ "textVariant": true,
210
+ "color": "text",
211
+ "css": {
212
+ "color": "text.standard",
213
+ "_hover": {
214
+ "color": "text.standard"
215
+ }
216
+ }
108
217
  }
109
218
  ])
110
219
 
@@ -118,7 +227,8 @@ const buttonVariantMap = {
118
227
  "success",
119
228
  "error",
120
229
  "info",
121
- "text"
230
+ "text",
231
+ "neutral"
122
232
  ],
123
233
  "size": [
124
234
  "sm",
@@ -132,6 +242,9 @@ const buttonVariantMap = {
132
242
  "disabled": [
133
243
  "true",
134
244
  "false"
245
+ ],
246
+ "textVariant": [
247
+ "true"
135
248
  ]
136
249
  }
137
250