@lax-wp/design-system 0.13.32 → 0.13.33-beta.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 (163) hide show
  1. package/dist/components/button/Button.cjs.js +5 -5
  2. package/dist/components/button/Button.cjs.js.map +1 -1
  3. package/dist/components/button/Button.es.js +18 -18
  4. package/dist/components/button/Button.es.js.map +1 -1
  5. package/dist/components/button/IconButton.cjs.js +1 -1
  6. package/dist/components/button/IconButton.cjs.js.map +1 -1
  7. package/dist/components/button/IconButton.es.js +8 -8
  8. package/dist/components/button/IconButton.es.js.map +1 -1
  9. package/dist/components/buttons/option-button/OptionButton.cjs.js +1 -1
  10. package/dist/components/buttons/option-button/OptionButton.cjs.js.map +1 -1
  11. package/dist/components/buttons/option-button/OptionButton.es.js +1 -1
  12. package/dist/components/buttons/option-button/OptionButton.es.js.map +1 -1
  13. package/dist/components/data-display/comparison/components/Header.cjs.js +1 -1
  14. package/dist/components/data-display/comparison/components/Header.cjs.js.map +1 -1
  15. package/dist/components/data-display/comparison/components/Header.es.js +13 -13
  16. package/dist/components/data-display/comparison/components/Header.es.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js +11 -11
  20. package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js +12 -12
  24. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +141 -143
  28. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  29. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js +1 -1
  30. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js.map +1 -1
  31. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js +2 -2
  32. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js.map +1 -1
  33. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js +1 -1
  34. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js.map +1 -1
  35. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js +1 -1
  36. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js.map +1 -1
  37. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
  38. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
  39. package/dist/components/data-display/infinite-table/body/rows/row.es.js +281 -286
  40. package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
  41. package/dist/components/data-display/infinite-table/context.cjs.js.map +1 -1
  42. package/dist/components/data-display/infinite-table/context.d.ts +0 -1
  43. package/dist/components/data-display/infinite-table/context.es.js.map +1 -1
  44. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js +1 -1
  45. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js.map +1 -1
  46. package/dist/components/data-display/infinite-table/head/CheckAll.es.js +1 -1
  47. package/dist/components/data-display/infinite-table/head/CheckAll.es.js.map +1 -1
  48. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js +1 -1
  49. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js.map +1 -1
  50. package/dist/components/data-display/infinite-table/head/cell/index.es.js +2 -2
  51. package/dist/components/data-display/infinite-table/head/cell/index.es.js.map +1 -1
  52. package/dist/components/data-display/infinite-table/head/index.cjs.js +1 -1
  53. package/dist/components/data-display/infinite-table/head/index.cjs.js.map +1 -1
  54. package/dist/components/data-display/infinite-table/head/index.es.js +20 -20
  55. package/dist/components/data-display/infinite-table/head/index.es.js.map +1 -1
  56. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  57. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  58. package/dist/components/data-display/infinite-table/index.d.ts +1 -1
  59. package/dist/components/data-display/infinite-table/index.es.js +208 -211
  60. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  61. package/dist/components/data-display/infinite-table/types.d.ts +0 -22
  62. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  63. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  64. package/dist/components/data-display/tag/Tag.es.js +11 -9
  65. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  66. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  67. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  68. package/dist/components/floating-bar/FloatingBar.es.js +9 -9
  69. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  70. package/dist/components/forms/base-input-field/BaseInputField.cjs.js +2 -2
  71. package/dist/components/forms/base-input-field/BaseInputField.cjs.js.map +1 -1
  72. package/dist/components/forms/base-input-field/BaseInputField.es.js +30 -32
  73. package/dist/components/forms/base-input-field/BaseInputField.es.js.map +1 -1
  74. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js +1 -1
  75. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js.map +1 -1
  76. package/dist/components/forms/creatable-select/CreatableSelect.es.js +11 -12
  77. package/dist/components/forms/creatable-select/CreatableSelect.es.js.map +1 -1
  78. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
  79. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
  80. package/dist/components/forms/currency-input/CurrencyInputField.es.js +62 -70
  81. package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
  82. package/dist/components/forms/date-time-field/DateTimeField.cjs.js +1 -1
  83. package/dist/components/forms/date-time-field/DateTimeField.cjs.js.map +1 -1
  84. package/dist/components/forms/date-time-field/DateTimeField.es.js +32 -32
  85. package/dist/components/forms/date-time-field/DateTimeField.es.js.map +1 -1
  86. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js +1 -1
  87. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js.map +1 -1
  88. package/dist/components/forms/debounce-input/DebounceInputField.es.js +2 -2
  89. package/dist/components/forms/debounce-input/DebounceInputField.es.js.map +1 -1
  90. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js +1 -1
  91. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js.map +1 -1
  92. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js +16 -18
  93. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js.map +1 -1
  94. package/dist/components/forms/field-options/Item.cjs.js +1 -1
  95. package/dist/components/forms/field-options/Item.cjs.js.map +1 -1
  96. package/dist/components/forms/field-options/Item.es.js +5 -5
  97. package/dist/components/forms/field-options/Item.es.js.map +1 -1
  98. package/dist/components/forms/icon-picker/IconPicker.cjs.js +1 -1
  99. package/dist/components/forms/icon-picker/IconPicker.cjs.js.map +1 -1
  100. package/dist/components/forms/icon-picker/IconPicker.es.js +42 -57
  101. package/dist/components/forms/icon-picker/IconPicker.es.js.map +1 -1
  102. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js +1 -1
  103. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js.map +1 -1
  104. package/dist/components/forms/master-data-input/MasterDataInputField.es.js +33 -35
  105. package/dist/components/forms/master-data-input/MasterDataInputField.es.js.map +1 -1
  106. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js +3 -3
  107. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js.map +1 -1
  108. package/dist/components/forms/md-input/RichMarkdownInput.es.js +63 -63
  109. package/dist/components/forms/md-input/RichMarkdownInput.es.js.map +1 -1
  110. package/dist/components/forms/number-input-field/NumberInputField.cjs.js +1 -1
  111. package/dist/components/forms/number-input-field/NumberInputField.cjs.js.map +1 -1
  112. package/dist/components/forms/number-input-field/NumberInputField.es.js +5 -5
  113. package/dist/components/forms/number-input-field/NumberInputField.es.js.map +1 -1
  114. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js +1 -1
  115. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js.map +1 -1
  116. package/dist/components/forms/percentage-input/PercentageInputField.es.js +2 -2
  117. package/dist/components/forms/percentage-input/PercentageInputField.es.js.map +1 -1
  118. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  119. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  120. package/dist/components/forms/search-bar/SearchBar.es.js +16 -16
  121. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  122. package/dist/components/forms/select-field/SelectField.cjs.js +2 -2
  123. package/dist/components/forms/select-field/SelectField.cjs.js.map +1 -1
  124. package/dist/components/forms/select-field/SelectField.d.ts +4 -0
  125. package/dist/components/forms/select-field/SelectField.es.js +202 -203
  126. package/dist/components/forms/select-field/SelectField.es.js.map +1 -1
  127. package/dist/components/forms/toggle/Toggle.cjs.js +1 -1
  128. package/dist/components/forms/toggle/Toggle.cjs.js.map +1 -1
  129. package/dist/components/forms/toggle/Toggle.es.js +14 -14
  130. package/dist/components/forms/toggle/Toggle.es.js.map +1 -1
  131. package/dist/components/navigation/accordion/Accordion.cjs.js +1 -1
  132. package/dist/components/navigation/accordion/Accordion.cjs.js.map +1 -1
  133. package/dist/components/navigation/accordion/Accordion.es.js +5 -5
  134. package/dist/components/navigation/accordion/Accordion.es.js.map +1 -1
  135. package/dist/components/navigation/stepper/Stepper.cjs.js +1 -1
  136. package/dist/components/navigation/stepper/Stepper.cjs.js.map +1 -1
  137. package/dist/components/navigation/stepper/Stepper.es.js +1 -1
  138. package/dist/components/navigation/stepper/Stepper.es.js.map +1 -1
  139. package/dist/components/navigation/tabs/TabOptions.cjs.js +1 -1
  140. package/dist/components/navigation/tabs/TabOptions.cjs.js.map +1 -1
  141. package/dist/components/navigation/tabs/TabOptions.es.js +15 -15
  142. package/dist/components/navigation/tabs/TabOptions.es.js.map +1 -1
  143. package/dist/components/navigation/tabs/TabSwitch.cjs.js +1 -1
  144. package/dist/components/navigation/tabs/TabSwitch.cjs.js.map +1 -1
  145. package/dist/components/navigation/tabs/TabSwitch.es.js +7 -7
  146. package/dist/components/navigation/tabs/TabSwitch.es.js.map +1 -1
  147. package/dist/components/navigation/tabs/Tabs.cjs.js +1 -1
  148. package/dist/components/navigation/tabs/Tabs.cjs.js.map +1 -1
  149. package/dist/components/navigation/tabs/Tabs.es.js +1 -1
  150. package/dist/components/navigation/tabs/Tabs.es.js.map +1 -1
  151. package/dist/components/user-avatar/UserAvatar.cjs.js +1 -1
  152. package/dist/components/user-avatar/UserAvatar.cjs.js.map +1 -1
  153. package/dist/components/user-avatar/UserAvatar.d.ts +1 -1
  154. package/dist/components/user-avatar/UserAvatar.es.js +40 -38
  155. package/dist/components/user-avatar/UserAvatar.es.js.map +1 -1
  156. package/dist/components/user-avatar/constants.cjs.js +1 -1
  157. package/dist/components/user-avatar/constants.cjs.js.map +1 -1
  158. package/dist/components/user-avatar/constants.d.ts +1 -0
  159. package/dist/components/user-avatar/constants.es.js +10 -9
  160. package/dist/components/user-avatar/constants.es.js.map +1 -1
  161. package/dist/design-system.css +1 -1
  162. package/dist/index.d.ts +1 -1
  163. package/package.json +2 -3
@@ -1,10 +1,10 @@
1
- "use strict";const e=require("react/jsx-runtime"),K=require("antd");require("antd/es/menu/interface");const a=require("react"),O=require("../tooltip/Tooltip.cjs.js"),u=require("../../hooks/useOS.cjs.js"),$=require("@mui/icons-material"),D=require("../icon/icons.generated.cjs.js"),y=a.forwardRef(({status:r="primary",appearance:n,className:m,disabled:d,children:k,isLoading:c,title:v,id:h,onClick:_,onKeyDown:w,badge:s,type:l="button",options:b,tooltip:f,tooltipPlacement:j="top",shortcuts:p,tooltipShortcuts:C,theme:o="light",autoFocus:F},S)=>{const q=a.useCallback(()=>{switch(n){case"outline":return R();case"ghost":return z();case"dashed":return E();default:return N()}},[n,r,d,o]),N=a.useCallback(()=>{switch(r){case"primary":return"bg-primary-600 text-white focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60";case"secondary":return"bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60";case"error":return"bg-error-600 dark:bg-error-500 text-white hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60";case"error-secondary":return"bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60";case"secondary-neutral":return"bg-white dark:bg-black-800 text-neutral-900 border border-neutral-300 dark:border-black-600 dark:hover:bg-black-600 dark:text-black-200 hover:bg-neutral-100 focus:border-primary-200 disabled:opacity-60";case"warning":return"bg-warning-300 dark:bg-warning-600 text-white border-warning-300 border hover:bg-warning-400 disabled:opacity-60";case"success":return"bg-success-600 text-white border-success-600 border hover:bg-success-700 disabled:opacity-60";case"publish":return"bg-teal-800 text-white border-teal-800 border hover:bg-teal-900 disabled:opacity-60";case"no-background":return"bg-transparent text-neutral-900 dark:text-black-100 border-transparent border";default:return"bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60"}},[r,d,o]),R=a.useCallback(()=>{switch(r){case"primary":return"text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60";case"secondary":return"text-primary-700 dark:text-primary-600 border-primary-100 dark:border-primary-600 border bg-primary-50 dark:bg-black-800 hover:bg-primary-100 disabled:opacity-60";case"secondary-neutral":return"text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60";case"error":return"text-error-600 dark:text-error-500 !border-error-600 dark:!border-error-500 border hover:bg-[#FEF3F2] disabled:opacity-60";case"warning":return"text-warning-300 dark:text-warning-500 border-warning-300 dark:border-warning-500 border hover:bg-[#FFFAEB] disabled:opacity-60";case"success":return"text-success-600 dark:text-success-500 border-success-600 dark:border-success-500 border hover:bg-[#ECFDF3] disabled:opacity-60";default:return"bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60"}},[r,o]),z=a.useCallback(()=>{switch(r){case"primary":return"text-primary-700 dark:text-primary-600 border border-transparent dark:border-transparent hover:text-primary-700 disabled:opacity-60";case"secondary":return"text-primary-50 dark:text-primary-900 border border-transparent dark:border-transparent hover:text-primary-100 disabled:opacity-60";case"error":return"text-error-600 dark:text-error-500 border border-transparent dark:border-transparent hover:text-error-600 disabled:opacity-60";case"warning":return"text-warning-300 dark:text-warning-500 border border-transparent dark:border-transparent hover:text-warning-400 disabled:opacity-60";case"success":return"text-success-600 dark:text-success-500 border border-transparent dark:border-transparent hover:text-success-700 disabled:opacity-60";default:return"text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60"}},[r,o]),E=a.useCallback(()=>{switch(r){case"primary":return"bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]";default:return"bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]"}},[r,o]),T=a.useCallback(()=>{if(!n||n==="filled")switch(r){case"primary":return"bg-primary-700 text-primary-100";case"secondary":return"bg-primary-100 text-primary-700 dark:bg-black-700 dark:text-primary-400";case"secondary-neutral":return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-black-300";case"error":return"bg-error-700 text-error-100 dark:bg-error-600 dark:text-error-100";case"error-secondary":return"bg-error-200 text-error-700 dark:bg-black-700 dark:text-error-400";case"warning":return"bg-warning-400 text-white dark:bg-warning-700 dark:text-warning-100";case"success":return"bg-success-700 text-success-100";case"publish":return"bg-teal-900 text-teal-200";case"no-background":return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400";default:return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400"}switch(r){case"primary":case"secondary":return"bg-primary-100 text-primary-800 dark:bg-primary-950 dark:text-primary-400";case"error":case"error-secondary":return"bg-error-100 text-error-700 dark:bg-error-950 dark:text-error-400";case"warning":return"bg-warning-100 text-warning-700 dark:bg-warning-950 dark:text-warning-400";case"success":return"bg-success-100 text-success-700 dark:bg-success-950 dark:text-success-400";default:return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400"}},[r,n]),g=u.useOS(),x=a.useMemo(()=>p?.length?p.map(t=>{const i=u.SHORTCUT_KEY_MAP[t];return i?g==="macos"?i.macos:i.other:t}):[],[p,g]),A=()=>e.jsx(e.Fragment,{children:e.jsx(D.LoadingSpinnerIcon,{size:20,className:"inline mr-2 text-white dark:text-white"})}),B=l||(r==="primary"&&n==="filled"?"submit":l);return e.jsx(O,{title:f,placement:j,shortcuts:C,delayShow:!0,children:e.jsxs("button",{ref:S,className:`
1
+ "use strict";const e=require("react/jsx-runtime"),K=require("antd");require("antd/es/menu/interface");const a=require("react"),O=require("../tooltip/Tooltip.cjs.js"),u=require("../../hooks/useOS.cjs.js"),$=require("@mui/icons-material"),D=require("../icon/icons.generated.cjs.js"),y=a.forwardRef(({status:r="primary",appearance:n,className:m,disabled:d,children:k,isLoading:c,title:v,id:h,onClick:_,onKeyDown:w,badge:s,type:l="button",options:b,tooltip:f,tooltipPlacement:j="top",shortcuts:p,tooltipShortcuts:C,theme:o="light",autoFocus:F},S)=>{const q=a.useCallback(()=>{switch(n){case"outline":return R();case"ghost":return E();case"dashed":return T();default:return N()}},[n,r,d,o]),N=a.useCallback(()=>{switch(r){case"primary":return"bg-primary-600 text-white border border-transparent focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60";case"secondary":return"bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60";case"error":return"bg-error-600 dark:bg-error-500 text-white border border-transparent hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60";case"error-secondary":return"bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60";case"secondary-neutral":return"bg-white dark:bg-black-800 text-neutral-900 border border-neutral-300 dark:border-black-600 dark:hover:bg-black-600 dark:text-black-200 hover:bg-neutral-100 focus:border-primary-200 disabled:opacity-60";case"warning":return"bg-warning-300 dark:bg-warning-600 text-white border-warning-300 border hover:bg-warning-400 disabled:opacity-60";case"success":return"bg-success-600 text-white border-success-600 border hover:bg-success-700 disabled:opacity-60";case"publish":return"bg-teal-800 text-white border-teal-800 border hover:bg-teal-900 disabled:opacity-60";case"no-background":return"bg-transparent text-neutral-900 dark:text-black-100 border-transparent border";default:return"bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60"}},[r,d,o]),R=a.useCallback(()=>{switch(r){case"primary":return"text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60";case"secondary":return"text-primary-700 dark:text-primary-600 border-primary-100 dark:border-primary-600 border bg-primary-50 dark:bg-black-800 hover:bg-primary-100 disabled:opacity-60";case"secondary-neutral":return"text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60";case"error":return"text-error-600 dark:text-error-500 !border-error-600 dark:!border-error-500 border hover:bg-[#FEF3F2] disabled:opacity-60";case"warning":return"text-warning-300 dark:text-warning-500 border-warning-300 dark:border-warning-500 border hover:bg-[#FFFAEB] disabled:opacity-60";case"success":return"text-success-600 dark:text-success-500 border-success-600 dark:border-success-500 border hover:bg-[#ECFDF3] disabled:opacity-60";default:return"bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60"}},[r,o]),E=a.useCallback(()=>{switch(r){case"primary":return"text-primary-700 dark:text-primary-600 border border-transparent dark:border-transparent hover:text-primary-700 disabled:opacity-60";case"secondary":return"text-primary-50 dark:text-primary-900 border border-transparent dark:border-transparent hover:text-primary-100 disabled:opacity-60";case"error":return"text-error-600 dark:text-error-500 border border-transparent dark:border-transparent hover:text-error-600 disabled:opacity-60";case"warning":return"text-warning-300 dark:text-warning-500 border border-transparent dark:border-transparent hover:text-warning-400 disabled:opacity-60";case"success":return"text-success-600 dark:text-success-500 border border-transparent dark:border-transparent hover:text-success-700 disabled:opacity-60";default:return"text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60"}},[r,o]),T=a.useCallback(()=>{switch(r){case"primary":return"bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]";default:return"bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]"}},[r,o]),z=a.useCallback(()=>{if(!n||n==="filled")switch(r){case"primary":return"bg-primary-700 text-primary-100";case"secondary":return"bg-primary-100 text-primary-700 dark:bg-black-700 dark:text-primary-400";case"secondary-neutral":return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-black-300";case"error":return"bg-error-700 text-error-100 dark:bg-error-600 dark:text-error-100";case"error-secondary":return"bg-error-200 text-error-700 dark:bg-black-700 dark:text-error-400";case"warning":return"bg-warning-400 text-white dark:bg-warning-700 dark:text-warning-100";case"success":return"bg-success-700 text-success-100";case"publish":return"bg-teal-900 text-teal-200";case"no-background":return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400";default:return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400"}switch(r){case"primary":case"secondary":return"bg-primary-100 text-primary-800 dark:bg-primary-950 dark:text-primary-400";case"error":case"error-secondary":return"bg-error-100 text-error-700 dark:bg-error-950 dark:text-error-400";case"warning":return"bg-warning-100 text-warning-700 dark:bg-warning-950 dark:text-warning-400";case"success":return"bg-success-100 text-success-700 dark:bg-success-950 dark:text-success-400";default:return"bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400"}},[r,n]),g=u.useOS(),x=a.useMemo(()=>p?.length?p.map(t=>{const i=u.SHORTCUT_KEY_MAP[t];return i?g==="macos"?i.macos:i.other:t}):[],[p,g]),A=()=>e.jsx(e.Fragment,{children:e.jsx(D.LoadingSpinnerIcon,{className:"inline mr-2 text-white dark:text-white w-5 h-5"})}),B=l||(r==="primary"&&n==="filled"?"submit":l);return e.jsx(O,{title:f,placement:j,shortcuts:C,delayShow:!0,children:e.jsxs("button",{ref:S,className:`
2
2
  ${m||""}
3
3
  cursor-pointer
4
4
  font-inter
5
5
  font-medium
6
- py-[6px]
7
- px-3
6
+ py-1.5
7
+ px-2.5
8
8
  rounded-lg
9
9
  text-sm
10
10
  whitespace-nowrap
@@ -14,7 +14,7 @@
14
14
  justify-center
15
15
  gap-1.5
16
16
  relative
17
- max-h-[32px]
17
+ max-h-8
18
18
  ${q()}
19
- `,disabled:d||c,id:h,onClick:_,onKeyDown:w,title:v,type:B,autoFocus:F,children:[c&&A(),k,x.length>0?e.jsx("span",{className:"inline-flex items-center gap-0.5 ml-1 flex-shrink-0",children:x.map((t,i)=>e.jsx("kbd",{className:`inline-flex items-center justify-center min-w-[20px] h-5 px-1 rounded text-[11px] font-medium leading-none ${T()}`,children:t},i))}):null,b?.length?e.jsx("div",{onClick:t=>t.stopPropagation(),children:e.jsx(K.Dropdown,{menu:{items:b},trigger:["click"],overlayClassName:"row-option-cell",placement:"bottomRight",children:e.jsx($.ChevronRightRounded,{className:"rotate-90 text-neutral-300 hover:opacity-50"})})}):null,s?e.jsx("span",{className:"absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-[1.5rem] min-h-[1.5rem] text-xs flex justify-center items-center",children:s}):null]})})});y.displayName="Button";module.exports=y;
19
+ `,disabled:d||c,id:h,onClick:_,onKeyDown:w,title:v,type:B,autoFocus:F,children:[c&&A(),k,x.length>0?e.jsx("span",{className:"inline-flex items-center gap-0.5 ml-1 flex-shrink-0",children:x.map((t,i)=>e.jsx("kbd",{className:`inline-flex items-center justify-center min-w-5 h-5 px-1 rounded text-xs font-medium leading-none ${z()}`,children:t},i))}):null,b?.length?e.jsx("div",{onClick:t=>t.stopPropagation(),children:e.jsx(K.Dropdown,{menu:{items:b},trigger:["click"],overlayClassName:"row-option-cell",placement:"bottomRight",children:e.jsx($.ChevronRightRounded,{className:"rotate-90 text-neutral-300 hover:opacity-50"})})}):null,s?e.jsx("span",{className:"absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-6 min-h-6 text-xs flex justify-center items-center",children:s}):null]})})});y.displayName="Button";module.exports=y;
20
20
  //# sourceMappingURL=Button.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs.js","sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import { Dropdown } from 'antd';\nimport { type ItemType } from 'antd/es/menu/interface';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\nimport { useOS, SHORTCUT_KEY_MAP } from '../../hooks/useOS';\nimport { ChevronRightRounded } from '@mui/icons-material';\nimport { LoadingSpinnerIcon } from '../icon';\n\nexport interface IButtonProps {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n isLoading?: boolean;\n primary?: boolean;\n title?: string;\n id: string;\n status?: IButtonStatus;\n appearance?: IButtonAppearance;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n badge?: string | number;\n type?: 'button' | 'submit' | 'reset';\n options?: ItemType[];\n tooltip?: string;\n autoFocus?: boolean;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n /** Array of keyboard shortcut keys to display inline in the button (e.g., ['Meta', 'S'] or ['Ctrl', 'Enter']) */\n shortcuts?: string[];\n /** Array of keyboard shortcut keys to display in the tooltip (e.g., ['Meta', 'S']). Falls back to shortcuts if not provided. */\n tooltipShortcuts?: string[];\n theme?: 'light' | 'dark';\n}\n\nexport type IButtonStatus =\n | 'secondary-neutral'\n | 'primary'\n | 'secondary'\n | 'error'\n | 'warning'\n | 'success'\n | 'error-secondary'\n | 'cancel'\n | 'no-background'\n | 'publish'\n | 'default';\n\nexport type IButtonAppearance = 'filled' | 'outline' | 'ghost' | 'dashed';\n\nconst Button = forwardRef<HTMLButtonElement, IButtonProps>(({\n status = 'primary',\n appearance,\n className,\n disabled,\n children,\n isLoading,\n title,\n id,\n onClick,\n onKeyDown,\n badge,\n type = 'button',\n options,\n tooltip,\n tooltipPlacement = 'top',\n shortcuts,\n tooltipShortcuts,\n theme = 'light',\n autoFocus,\n}, ref) => {\n\n const appearanceStyle = useCallback(() => {\n switch (appearance) {\n case 'outline':\n return outlineStyle();\n case 'ghost':\n return ghostStyle();\n case 'dashed':\n return dashedStyle();\n default:\n return filledStyle();\n }\n }, [appearance, status, disabled, theme]);\n\n const filledStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-600 text-white focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60';\n\n case 'error':\n return 'bg-error-600 dark:bg-error-500 text-white hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60';\n\n case 'error-secondary':\n return 'bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'bg-white dark:bg-black-800 text-neutral-900 border border-neutral-300 dark:border-black-600 dark:hover:bg-black-600 dark:text-black-200 hover:bg-neutral-100 focus:border-primary-200 disabled:opacity-60';\n\n case 'warning':\n return 'bg-warning-300 dark:bg-warning-600 text-white border-warning-300 border hover:bg-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'bg-success-600 text-white border-success-600 border hover:bg-success-700 disabled:opacity-60';\n\n case 'publish':\n return 'bg-teal-800 text-white border-teal-800 border hover:bg-teal-900 disabled:opacity-60';\n\n case 'no-background':\n return 'bg-transparent text-neutral-900 dark:text-black-100 border-transparent border';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, disabled, theme]);\n\n const outlineStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-700 dark:text-primary-600 border-primary-100 dark:border-primary-600 border bg-primary-50 dark:bg-black-800 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 !border-error-600 dark:!border-error-500 border hover:bg-[#FEF3F2] disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border-warning-300 dark:border-warning-500 border hover:bg-[#FFFAEB] disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border-success-600 dark:border-success-500 border hover:bg-[#ECFDF3] disabled:opacity-60';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, theme]);\n\n const ghostStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border border-transparent dark:border-transparent hover:text-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-50 dark:text-primary-900 border border-transparent dark:border-transparent hover:text-primary-100 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 border border-transparent dark:border-transparent hover:text-error-600 disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border border-transparent dark:border-transparent hover:text-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border border-transparent dark:border-transparent hover:text-success-700 disabled:opacity-60';\n\n default:\n return 'text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60';\n }\n }, [status, theme]);\n\n const dashedStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n default:\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n }\n }, [status, theme]);\n\n /**\n * Returns Tailwind classes for inline <kbd> elements that adapt to the button's status and appearance.\n * Uses a subtle/muted approach � slightly deeper shade of the button's own color.\n */\n const getKbdClasses = useCallback((): string => {\n const isFilled = !appearance || appearance === 'filled';\n\n if (isFilled) {\n switch (status) {\n case 'primary':\n return 'bg-primary-700 text-primary-100';\n case 'secondary':\n return 'bg-primary-100 text-primary-700 dark:bg-black-700 dark:text-primary-400';\n case 'secondary-neutral':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-black-300';\n case 'error':\n return 'bg-error-700 text-error-100 dark:bg-error-600 dark:text-error-100';\n case 'error-secondary':\n return 'bg-error-200 text-error-700 dark:bg-black-700 dark:text-error-400';\n case 'warning':\n return 'bg-warning-400 text-white dark:bg-warning-700 dark:text-warning-100';\n case 'success':\n return 'bg-success-700 text-success-100';\n case 'publish':\n return 'bg-teal-900 text-teal-200';\n case 'no-background':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }\n\n // outline, ghost, dashed � colored text on transparent/light bg\n switch (status) {\n case 'primary':\n case 'secondary':\n return 'bg-primary-100 text-primary-800 dark:bg-primary-950 dark:text-primary-400';\n case 'error':\n case 'error-secondary':\n return 'bg-error-100 text-error-700 dark:bg-error-950 dark:text-error-400';\n case 'warning':\n return 'bg-warning-100 text-warning-700 dark:bg-warning-950 dark:text-warning-400';\n case 'success':\n return 'bg-success-100 text-success-700 dark:bg-success-950 dark:text-success-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }, [status, appearance]);\n\n const os = useOS();\n const displayKeys = useMemo(() => {\n if (!shortcuts?.length) return [];\n return shortcuts.map((key) => {\n const mapping = SHORTCUT_KEY_MAP[key];\n if (mapping) {\n return os === 'macos' ? mapping.macos : mapping.other;\n }\n return key;\n });\n }, [shortcuts, os]);\n\n const renderSpinner = () => (\n <>\n <LoadingSpinnerIcon size={20} className='inline mr-2 text-white dark:text-white' />\n </>\n );\n\n const buttonType = type || ((status === 'primary' && appearance === 'filled') ? 'submit' : type);\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} shortcuts={tooltipShortcuts} delayShow>\n <button\n ref={ref}\n className={`\n ${className || ''}\n cursor-pointer\n font-inter \n font-medium \n py-[6px] \n px-3 \n rounded-lg \n text-sm\n whitespace-nowrap\n disabled:cursor-not-allowed\n flex\n items-center\n justify-center\n gap-1.5\n relative\n max-h-[32px]\n ${appearanceStyle()}\n `}\n disabled={disabled || isLoading}\n id={id}\n onClick={onClick}\n onKeyDown={onKeyDown}\n title={title}\n type={buttonType}\n autoFocus={autoFocus}\n >\n {isLoading && renderSpinner()}\n {children}\n {displayKeys.length > 0 ? (\n <span className='inline-flex items-center gap-0.5 ml-1 flex-shrink-0'>\n {displayKeys.map((key, index) => (\n <kbd\n key={index}\n className={`inline-flex items-center justify-center min-w-[20px] h-5 px-1 rounded text-[11px] font-medium leading-none ${getKbdClasses()}`}\n >\n {key}\n </kbd>\n ))}\n </span>\n ) : null}\n {options?.length ? (\n <div onClick={(e) => e.stopPropagation()}>\n <Dropdown\n menu={{\n items: options,\n }}\n trigger={['click']}\n overlayClassName='row-option-cell'\n placement='bottomRight'\n >\n <ChevronRightRounded className='rotate-90 text-neutral-300 hover:opacity-50' />\n </Dropdown>\n </div>\n ) : null}\n {badge ? (\n <span className='absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-[1.5rem] min-h-[1.5rem] text-xs flex justify-center items-center'>\n {badge}\n </span>\n ) : null}\n </button>\n </Tooltip>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"names":["Button","forwardRef","status","appearance","className","disabled","children","isLoading","title","id","onClick","onKeyDown","badge","type","options","tooltip","tooltipPlacement","shortcuts","tooltipShortcuts","theme","autoFocus","ref","appearanceStyle","useCallback","outlineStyle","ghostStyle","dashedStyle","filledStyle","getKbdClasses","os","useOS","displayKeys","useMemo","key","mapping","SHORTCUT_KEY_MAP","renderSpinner","jsx","Fragment","LoadingSpinnerIcon","buttonType","Tooltip","jsxs","index","e","Dropdown","ChevronRightRounded"],"mappings":"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"}
1
+ {"version":3,"file":"Button.cjs.js","sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import { Dropdown } from 'antd';\nimport { type ItemType } from 'antd/es/menu/interface';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\nimport { useOS, SHORTCUT_KEY_MAP } from '../../hooks/useOS';\nimport { ChevronRightRounded } from '@mui/icons-material';\nimport { LoadingSpinnerIcon } from '../icon';\n\nexport interface IButtonProps {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n isLoading?: boolean;\n primary?: boolean;\n title?: string;\n id: string;\n status?: IButtonStatus;\n appearance?: IButtonAppearance;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n badge?: string | number;\n type?: 'button' | 'submit' | 'reset';\n options?: ItemType[];\n tooltip?: string;\n autoFocus?: boolean;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n /** Array of keyboard shortcut keys to display inline in the button (e.g., ['Meta', 'S'] or ['Ctrl', 'Enter']) */\n shortcuts?: string[];\n /** Array of keyboard shortcut keys to display in the tooltip (e.g., ['Meta', 'S']). Falls back to shortcuts if not provided. */\n tooltipShortcuts?: string[];\n theme?: 'light' | 'dark';\n}\n\nexport type IButtonStatus =\n | 'secondary-neutral'\n | 'primary'\n | 'secondary'\n | 'error'\n | 'warning'\n | 'success'\n | 'error-secondary'\n | 'cancel'\n | 'no-background'\n | 'publish'\n | 'default';\n\nexport type IButtonAppearance = 'filled' | 'outline' | 'ghost' | 'dashed';\n\nconst Button = forwardRef<HTMLButtonElement, IButtonProps>(({\n status = 'primary',\n appearance,\n className,\n disabled,\n children,\n isLoading,\n title,\n id,\n onClick,\n onKeyDown,\n badge,\n type = 'button',\n options,\n tooltip,\n tooltipPlacement = 'top',\n shortcuts,\n tooltipShortcuts,\n theme = 'light',\n autoFocus,\n}, ref) => {\n\n const appearanceStyle = useCallback(() => {\n switch (appearance) {\n case 'outline':\n return outlineStyle();\n case 'ghost':\n return ghostStyle();\n case 'dashed':\n return dashedStyle();\n default:\n return filledStyle();\n }\n }, [appearance, status, disabled, theme]);\n\n const filledStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-600 text-white border border-transparent focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60';\n\n case 'error':\n return 'bg-error-600 dark:bg-error-500 text-white border border-transparent hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60';\n\n case 'error-secondary':\n return 'bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'bg-white dark:bg-black-800 text-neutral-900 border border-neutral-300 dark:border-black-600 dark:hover:bg-black-600 dark:text-black-200 hover:bg-neutral-100 focus:border-primary-200 disabled:opacity-60';\n\n case 'warning':\n return 'bg-warning-300 dark:bg-warning-600 text-white border-warning-300 border hover:bg-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'bg-success-600 text-white border-success-600 border hover:bg-success-700 disabled:opacity-60';\n\n case 'publish':\n return 'bg-teal-800 text-white border-teal-800 border hover:bg-teal-900 disabled:opacity-60';\n\n case 'no-background':\n return 'bg-transparent text-neutral-900 dark:text-black-100 border-transparent border';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, disabled, theme]);\n\n const outlineStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-700 dark:text-primary-600 border-primary-100 dark:border-primary-600 border bg-primary-50 dark:bg-black-800 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 !border-error-600 dark:!border-error-500 border hover:bg-[#FEF3F2] disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border-warning-300 dark:border-warning-500 border hover:bg-[#FFFAEB] disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border-success-600 dark:border-success-500 border hover:bg-[#ECFDF3] disabled:opacity-60';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, theme]);\n\n const ghostStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border border-transparent dark:border-transparent hover:text-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-50 dark:text-primary-900 border border-transparent dark:border-transparent hover:text-primary-100 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 border border-transparent dark:border-transparent hover:text-error-600 disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border border-transparent dark:border-transparent hover:text-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border border-transparent dark:border-transparent hover:text-success-700 disabled:opacity-60';\n\n default:\n return 'text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60';\n }\n }, [status, theme]);\n\n const dashedStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n default:\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n }\n }, [status, theme]);\n\n /**\n * Returns Tailwind classes for inline <kbd> elements that adapt to the button's status and appearance.\n * Uses a subtle/muted approach � slightly deeper shade of the button's own color.\n */\n const getKbdClasses = useCallback((): string => {\n const isFilled = !appearance || appearance === 'filled';\n\n if (isFilled) {\n switch (status) {\n case 'primary':\n return 'bg-primary-700 text-primary-100';\n case 'secondary':\n return 'bg-primary-100 text-primary-700 dark:bg-black-700 dark:text-primary-400';\n case 'secondary-neutral':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-black-300';\n case 'error':\n return 'bg-error-700 text-error-100 dark:bg-error-600 dark:text-error-100';\n case 'error-secondary':\n return 'bg-error-200 text-error-700 dark:bg-black-700 dark:text-error-400';\n case 'warning':\n return 'bg-warning-400 text-white dark:bg-warning-700 dark:text-warning-100';\n case 'success':\n return 'bg-success-700 text-success-100';\n case 'publish':\n return 'bg-teal-900 text-teal-200';\n case 'no-background':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }\n\n // outline, ghost, dashed � colored text on transparent/light bg\n switch (status) {\n case 'primary':\n case 'secondary':\n return 'bg-primary-100 text-primary-800 dark:bg-primary-950 dark:text-primary-400';\n case 'error':\n case 'error-secondary':\n return 'bg-error-100 text-error-700 dark:bg-error-950 dark:text-error-400';\n case 'warning':\n return 'bg-warning-100 text-warning-700 dark:bg-warning-950 dark:text-warning-400';\n case 'success':\n return 'bg-success-100 text-success-700 dark:bg-success-950 dark:text-success-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }, [status, appearance]);\n\n const os = useOS();\n const displayKeys = useMemo(() => {\n if (!shortcuts?.length) return [];\n return shortcuts.map((key) => {\n const mapping = SHORTCUT_KEY_MAP[key];\n if (mapping) {\n return os === 'macos' ? mapping.macos : mapping.other;\n }\n return key;\n });\n }, [shortcuts, os]);\n\n const renderSpinner = () => (\n <>\n <LoadingSpinnerIcon className='inline mr-2 text-white dark:text-white w-5 h-5' />\n </>\n );\n\n const buttonType = type || ((status === 'primary' && appearance === 'filled') ? 'submit' : type);\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} shortcuts={tooltipShortcuts} delayShow>\n <button\n ref={ref}\n className={`\n ${className || ''}\n cursor-pointer\n font-inter \n font-medium \n py-1.5\n px-2.5\n rounded-lg \n text-sm\n whitespace-nowrap\n disabled:cursor-not-allowed\n flex\n items-center\n justify-center\n gap-1.5\n relative\n max-h-8\n ${appearanceStyle()}\n `}\n disabled={disabled || isLoading}\n id={id}\n onClick={onClick}\n onKeyDown={onKeyDown}\n title={title}\n type={buttonType}\n autoFocus={autoFocus}\n >\n {isLoading && renderSpinner()}\n {children}\n {displayKeys.length > 0 ? (\n <span className='inline-flex items-center gap-0.5 ml-1 flex-shrink-0'>\n {displayKeys.map((key, index) => (\n <kbd\n key={index}\n className={`inline-flex items-center justify-center min-w-5 h-5 px-1 rounded text-xs font-medium leading-none ${getKbdClasses()}`}\n >\n {key}\n </kbd>\n ))}\n </span>\n ) : null}\n {options?.length ? (\n <div onClick={(e) => e.stopPropagation()}>\n <Dropdown\n menu={{\n items: options,\n }}\n trigger={['click']}\n overlayClassName='row-option-cell'\n placement='bottomRight'\n >\n <ChevronRightRounded className='rotate-90 text-neutral-300 hover:opacity-50' />\n </Dropdown>\n </div>\n ) : null}\n {badge ? (\n <span className='absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-6 min-h-6 text-xs flex justify-center items-center'>\n {badge}\n </span>\n ) : null}\n </button>\n </Tooltip>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"names":["Button","forwardRef","status","appearance","className","disabled","children","isLoading","title","id","onClick","onKeyDown","badge","type","options","tooltip","tooltipPlacement","shortcuts","tooltipShortcuts","theme","autoFocus","ref","appearanceStyle","useCallback","outlineStyle","ghostStyle","dashedStyle","filledStyle","getKbdClasses","os","useOS","displayKeys","useMemo","key","mapping","SHORTCUT_KEY_MAP","renderSpinner","jsx","Fragment","LoadingSpinnerIcon","buttonType","Tooltip","jsxs","index","e","Dropdown","ChevronRightRounded"],"mappings":"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"}
@@ -10,7 +10,7 @@ const Y = D(({
10
10
  status: r = "primary",
11
11
  appearance: t,
12
12
  className: m,
13
- disabled: p,
13
+ disabled: d,
14
14
  children: y,
15
15
  isLoading: c,
16
16
  title: u,
@@ -22,7 +22,7 @@ const Y = D(({
22
22
  options: b,
23
23
  tooltip: _,
24
24
  tooltipPlacement: w = "top",
25
- shortcuts: d,
25
+ shortcuts: p,
26
26
  tooltipShortcuts: f,
27
27
  theme: n = "light",
28
28
  autoFocus: F
@@ -34,18 +34,18 @@ const Y = D(({
34
34
  case "ghost":
35
35
  return R();
36
36
  case "dashed":
37
- return z();
37
+ return E();
38
38
  default:
39
39
  return C();
40
40
  }
41
- }, [t, r, p, n]), C = o(() => {
41
+ }, [t, r, d, n]), C = o(() => {
42
42
  switch (r) {
43
43
  case "primary":
44
- return "bg-primary-600 text-white focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60";
44
+ return "bg-primary-600 text-white border border-transparent focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60";
45
45
  case "secondary":
46
46
  return "bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60";
47
47
  case "error":
48
- return "bg-error-600 dark:bg-error-500 text-white hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60";
48
+ return "bg-error-600 dark:bg-error-500 text-white border border-transparent hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60";
49
49
  case "error-secondary":
50
50
  return "bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60";
51
51
  case "secondary-neutral":
@@ -61,7 +61,7 @@ const Y = D(({
61
61
  default:
62
62
  return "bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60";
63
63
  }
64
- }, [r, p, n]), j = o(() => {
64
+ }, [r, d, n]), j = o(() => {
65
65
  switch (r) {
66
66
  case "primary":
67
67
  return "text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60";
@@ -93,14 +93,14 @@ const Y = D(({
93
93
  default:
94
94
  return "text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60";
95
95
  }
96
- }, [r, n]), z = o(() => {
96
+ }, [r, n]), E = o(() => {
97
97
  switch (r) {
98
98
  case "primary":
99
99
  return "bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]";
100
100
  default:
101
101
  return "bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]";
102
102
  }
103
- }, [r, n]), E = o(() => {
103
+ }, [r, n]), T = o(() => {
104
104
  if (!t || t === "filled")
105
105
  switch (r) {
106
106
  case "primary":
@@ -138,10 +138,10 @@ const Y = D(({
138
138
  default:
139
139
  return "bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400";
140
140
  }
141
- }, [r, t]), g = P(), x = M(() => d?.length ? d.map((a) => {
141
+ }, [r, t]), g = P(), x = M(() => p?.length ? p.map((a) => {
142
142
  const i = H[a];
143
143
  return i ? g === "macos" ? i.macos : i.other : a;
144
- }) : [], [d, g]), T = () => /* @__PURE__ */ e($, { children: /* @__PURE__ */ e(U, { size: 20, className: "inline mr-2 text-white dark:text-white" }) }), B = l || (r === "primary" && t === "filled" ? "submit" : l);
144
+ }) : [], [p, g]), z = () => /* @__PURE__ */ e($, { children: /* @__PURE__ */ e(U, { className: "inline mr-2 text-white dark:text-white w-5 h-5" }) }), B = l || (r === "primary" && t === "filled" ? "submit" : l);
145
145
  return /* @__PURE__ */ e(O, { title: _, placement: w, shortcuts: f, delayShow: !0, children: /* @__PURE__ */ K(
146
146
  "button",
147
147
  {
@@ -151,8 +151,8 @@ const Y = D(({
151
151
  cursor-pointer
152
152
  font-inter
153
153
  font-medium
154
- py-[6px]
155
- px-3
154
+ py-1.5
155
+ px-2.5
156
156
  rounded-lg
157
157
  text-sm
158
158
  whitespace-nowrap
@@ -162,10 +162,10 @@ const Y = D(({
162
162
  justify-center
163
163
  gap-1.5
164
164
  relative
165
- max-h-[32px]
165
+ max-h-8
166
166
  ${N()}
167
167
  `,
168
- disabled: p || c,
168
+ disabled: d || c,
169
169
  id: k,
170
170
  onClick: v,
171
171
  onKeyDown: h,
@@ -173,12 +173,12 @@ const Y = D(({
173
173
  type: B,
174
174
  autoFocus: F,
175
175
  children: [
176
- c && T(),
176
+ c && z(),
177
177
  y,
178
178
  x.length > 0 ? /* @__PURE__ */ e("span", { className: "inline-flex items-center gap-0.5 ml-1 flex-shrink-0", children: x.map((a, i) => /* @__PURE__ */ e(
179
179
  "kbd",
180
180
  {
181
- className: `inline-flex items-center justify-center min-w-[20px] h-5 px-1 rounded text-[11px] font-medium leading-none ${E()}`,
181
+ className: `inline-flex items-center justify-center min-w-5 h-5 px-1 rounded text-xs font-medium leading-none ${T()}`,
182
182
  children: a
183
183
  },
184
184
  i
@@ -195,7 +195,7 @@ const Y = D(({
195
195
  children: /* @__PURE__ */ e(I, { className: "rotate-90 text-neutral-300 hover:opacity-50" })
196
196
  }
197
197
  ) }) : null,
198
- s ? /* @__PURE__ */ e("span", { className: "absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-[1.5rem] min-h-[1.5rem] text-xs flex justify-center items-center", children: s }) : null
198
+ s ? /* @__PURE__ */ e("span", { className: "absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-6 min-h-6 text-xs flex justify-center items-center", children: s }) : null
199
199
  ]
200
200
  }
201
201
  ) });
@@ -1 +1 @@
1
- {"version":3,"file":"Button.es.js","sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import { Dropdown } from 'antd';\nimport { type ItemType } from 'antd/es/menu/interface';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\nimport { useOS, SHORTCUT_KEY_MAP } from '../../hooks/useOS';\nimport { ChevronRightRounded } from '@mui/icons-material';\nimport { LoadingSpinnerIcon } from '../icon';\n\nexport interface IButtonProps {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n isLoading?: boolean;\n primary?: boolean;\n title?: string;\n id: string;\n status?: IButtonStatus;\n appearance?: IButtonAppearance;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n badge?: string | number;\n type?: 'button' | 'submit' | 'reset';\n options?: ItemType[];\n tooltip?: string;\n autoFocus?: boolean;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n /** Array of keyboard shortcut keys to display inline in the button (e.g., ['Meta', 'S'] or ['Ctrl', 'Enter']) */\n shortcuts?: string[];\n /** Array of keyboard shortcut keys to display in the tooltip (e.g., ['Meta', 'S']). Falls back to shortcuts if not provided. */\n tooltipShortcuts?: string[];\n theme?: 'light' | 'dark';\n}\n\nexport type IButtonStatus =\n | 'secondary-neutral'\n | 'primary'\n | 'secondary'\n | 'error'\n | 'warning'\n | 'success'\n | 'error-secondary'\n | 'cancel'\n | 'no-background'\n | 'publish'\n | 'default';\n\nexport type IButtonAppearance = 'filled' | 'outline' | 'ghost' | 'dashed';\n\nconst Button = forwardRef<HTMLButtonElement, IButtonProps>(({\n status = 'primary',\n appearance,\n className,\n disabled,\n children,\n isLoading,\n title,\n id,\n onClick,\n onKeyDown,\n badge,\n type = 'button',\n options,\n tooltip,\n tooltipPlacement = 'top',\n shortcuts,\n tooltipShortcuts,\n theme = 'light',\n autoFocus,\n}, ref) => {\n\n const appearanceStyle = useCallback(() => {\n switch (appearance) {\n case 'outline':\n return outlineStyle();\n case 'ghost':\n return ghostStyle();\n case 'dashed':\n return dashedStyle();\n default:\n return filledStyle();\n }\n }, [appearance, status, disabled, theme]);\n\n const filledStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-600 text-white focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60';\n\n case 'error':\n return 'bg-error-600 dark:bg-error-500 text-white hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60';\n\n case 'error-secondary':\n return 'bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'bg-white dark:bg-black-800 text-neutral-900 border border-neutral-300 dark:border-black-600 dark:hover:bg-black-600 dark:text-black-200 hover:bg-neutral-100 focus:border-primary-200 disabled:opacity-60';\n\n case 'warning':\n return 'bg-warning-300 dark:bg-warning-600 text-white border-warning-300 border hover:bg-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'bg-success-600 text-white border-success-600 border hover:bg-success-700 disabled:opacity-60';\n\n case 'publish':\n return 'bg-teal-800 text-white border-teal-800 border hover:bg-teal-900 disabled:opacity-60';\n\n case 'no-background':\n return 'bg-transparent text-neutral-900 dark:text-black-100 border-transparent border';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, disabled, theme]);\n\n const outlineStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-700 dark:text-primary-600 border-primary-100 dark:border-primary-600 border bg-primary-50 dark:bg-black-800 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 !border-error-600 dark:!border-error-500 border hover:bg-[#FEF3F2] disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border-warning-300 dark:border-warning-500 border hover:bg-[#FFFAEB] disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border-success-600 dark:border-success-500 border hover:bg-[#ECFDF3] disabled:opacity-60';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, theme]);\n\n const ghostStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border border-transparent dark:border-transparent hover:text-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-50 dark:text-primary-900 border border-transparent dark:border-transparent hover:text-primary-100 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 border border-transparent dark:border-transparent hover:text-error-600 disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border border-transparent dark:border-transparent hover:text-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border border-transparent dark:border-transparent hover:text-success-700 disabled:opacity-60';\n\n default:\n return 'text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60';\n }\n }, [status, theme]);\n\n const dashedStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n default:\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n }\n }, [status, theme]);\n\n /**\n * Returns Tailwind classes for inline <kbd> elements that adapt to the button's status and appearance.\n * Uses a subtle/muted approach � slightly deeper shade of the button's own color.\n */\n const getKbdClasses = useCallback((): string => {\n const isFilled = !appearance || appearance === 'filled';\n\n if (isFilled) {\n switch (status) {\n case 'primary':\n return 'bg-primary-700 text-primary-100';\n case 'secondary':\n return 'bg-primary-100 text-primary-700 dark:bg-black-700 dark:text-primary-400';\n case 'secondary-neutral':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-black-300';\n case 'error':\n return 'bg-error-700 text-error-100 dark:bg-error-600 dark:text-error-100';\n case 'error-secondary':\n return 'bg-error-200 text-error-700 dark:bg-black-700 dark:text-error-400';\n case 'warning':\n return 'bg-warning-400 text-white dark:bg-warning-700 dark:text-warning-100';\n case 'success':\n return 'bg-success-700 text-success-100';\n case 'publish':\n return 'bg-teal-900 text-teal-200';\n case 'no-background':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }\n\n // outline, ghost, dashed � colored text on transparent/light bg\n switch (status) {\n case 'primary':\n case 'secondary':\n return 'bg-primary-100 text-primary-800 dark:bg-primary-950 dark:text-primary-400';\n case 'error':\n case 'error-secondary':\n return 'bg-error-100 text-error-700 dark:bg-error-950 dark:text-error-400';\n case 'warning':\n return 'bg-warning-100 text-warning-700 dark:bg-warning-950 dark:text-warning-400';\n case 'success':\n return 'bg-success-100 text-success-700 dark:bg-success-950 dark:text-success-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }, [status, appearance]);\n\n const os = useOS();\n const displayKeys = useMemo(() => {\n if (!shortcuts?.length) return [];\n return shortcuts.map((key) => {\n const mapping = SHORTCUT_KEY_MAP[key];\n if (mapping) {\n return os === 'macos' ? mapping.macos : mapping.other;\n }\n return key;\n });\n }, [shortcuts, os]);\n\n const renderSpinner = () => (\n <>\n <LoadingSpinnerIcon size={20} className='inline mr-2 text-white dark:text-white' />\n </>\n );\n\n const buttonType = type || ((status === 'primary' && appearance === 'filled') ? 'submit' : type);\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} shortcuts={tooltipShortcuts} delayShow>\n <button\n ref={ref}\n className={`\n ${className || ''}\n cursor-pointer\n font-inter \n font-medium \n py-[6px] \n px-3 \n rounded-lg \n text-sm\n whitespace-nowrap\n disabled:cursor-not-allowed\n flex\n items-center\n justify-center\n gap-1.5\n relative\n max-h-[32px]\n ${appearanceStyle()}\n `}\n disabled={disabled || isLoading}\n id={id}\n onClick={onClick}\n onKeyDown={onKeyDown}\n title={title}\n type={buttonType}\n autoFocus={autoFocus}\n >\n {isLoading && renderSpinner()}\n {children}\n {displayKeys.length > 0 ? (\n <span className='inline-flex items-center gap-0.5 ml-1 flex-shrink-0'>\n {displayKeys.map((key, index) => (\n <kbd\n key={index}\n className={`inline-flex items-center justify-center min-w-[20px] h-5 px-1 rounded text-[11px] font-medium leading-none ${getKbdClasses()}`}\n >\n {key}\n </kbd>\n ))}\n </span>\n ) : null}\n {options?.length ? (\n <div onClick={(e) => e.stopPropagation()}>\n <Dropdown\n menu={{\n items: options,\n }}\n trigger={['click']}\n overlayClassName='row-option-cell'\n placement='bottomRight'\n >\n <ChevronRightRounded className='rotate-90 text-neutral-300 hover:opacity-50' />\n </Dropdown>\n </div>\n ) : null}\n {badge ? (\n <span className='absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-[1.5rem] min-h-[1.5rem] text-xs flex justify-center items-center'>\n {badge}\n </span>\n ) : null}\n </button>\n </Tooltip>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"names":["Button","forwardRef","status","appearance","className","disabled","children","isLoading","title","id","onClick","onKeyDown","badge","type","options","tooltip","tooltipPlacement","shortcuts","tooltipShortcuts","theme","autoFocus","ref","appearanceStyle","useCallback","outlineStyle","ghostStyle","dashedStyle","filledStyle","getKbdClasses","os","useOS","displayKeys","useMemo","key","mapping","SHORTCUT_KEY_MAP","renderSpinner","jsx","Fragment","LoadingSpinnerIcon","buttonType","Tooltip","jsxs","index","e","Dropdown","ChevronRightRounded"],"mappings":"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"}
1
+ {"version":3,"file":"Button.es.js","sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import { Dropdown } from 'antd';\nimport { type ItemType } from 'antd/es/menu/interface';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\nimport { useOS, SHORTCUT_KEY_MAP } from '../../hooks/useOS';\nimport { ChevronRightRounded } from '@mui/icons-material';\nimport { LoadingSpinnerIcon } from '../icon';\n\nexport interface IButtonProps {\n children: React.ReactNode;\n className?: string;\n disabled?: boolean;\n isLoading?: boolean;\n primary?: boolean;\n title?: string;\n id: string;\n status?: IButtonStatus;\n appearance?: IButtonAppearance;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n badge?: string | number;\n type?: 'button' | 'submit' | 'reset';\n options?: ItemType[];\n tooltip?: string;\n autoFocus?: boolean;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n /** Array of keyboard shortcut keys to display inline in the button (e.g., ['Meta', 'S'] or ['Ctrl', 'Enter']) */\n shortcuts?: string[];\n /** Array of keyboard shortcut keys to display in the tooltip (e.g., ['Meta', 'S']). Falls back to shortcuts if not provided. */\n tooltipShortcuts?: string[];\n theme?: 'light' | 'dark';\n}\n\nexport type IButtonStatus =\n | 'secondary-neutral'\n | 'primary'\n | 'secondary'\n | 'error'\n | 'warning'\n | 'success'\n | 'error-secondary'\n | 'cancel'\n | 'no-background'\n | 'publish'\n | 'default';\n\nexport type IButtonAppearance = 'filled' | 'outline' | 'ghost' | 'dashed';\n\nconst Button = forwardRef<HTMLButtonElement, IButtonProps>(({\n status = 'primary',\n appearance,\n className,\n disabled,\n children,\n isLoading,\n title,\n id,\n onClick,\n onKeyDown,\n badge,\n type = 'button',\n options,\n tooltip,\n tooltipPlacement = 'top',\n shortcuts,\n tooltipShortcuts,\n theme = 'light',\n autoFocus,\n}, ref) => {\n\n const appearanceStyle = useCallback(() => {\n switch (appearance) {\n case 'outline':\n return outlineStyle();\n case 'ghost':\n return ghostStyle();\n case 'dashed':\n return dashedStyle();\n default:\n return filledStyle();\n }\n }, [appearance, status, disabled, theme]);\n\n const filledStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-600 text-white border border-transparent focus:border-primary-200 hover:bg-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'bg-primary-50 dark:bg-black-800 text-primary-600 dark:hover:text-primary-400 border border-primary-200 dark:border-primary-600 hover:bg-primary-100 dark:hover:bg-black-800 focus:border-primary-200 hover:border-primary-200 dark:hover:border-primary-400 disabled:opacity-60';\n\n case 'error':\n return 'bg-error-600 dark:bg-error-500 text-white border border-transparent hover:bg-error-700 dark:hover:bg-error-600 focus:!border-error-300 dark:focus:!border-error-600 dark:focus:bg-error-800 disabled:opacity-60';\n\n case 'error-secondary':\n return 'bg-error-100 dark:bg-black-800 text-error-600 border !border-error-300 dark:!border-error-900 hover:bg-error-200 focus:!border-error-300 dark:focus:!border-error-400 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'bg-white dark:bg-black-800 text-neutral-900 border border-neutral-300 dark:border-black-600 dark:hover:bg-black-600 dark:text-black-200 hover:bg-neutral-100 focus:border-primary-200 disabled:opacity-60';\n\n case 'warning':\n return 'bg-warning-300 dark:bg-warning-600 text-white border-warning-300 border hover:bg-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'bg-success-600 text-white border-success-600 border hover:bg-success-700 disabled:opacity-60';\n\n case 'publish':\n return 'bg-teal-800 text-white border-teal-800 border hover:bg-teal-900 disabled:opacity-60';\n\n case 'no-background':\n return 'bg-transparent text-neutral-900 dark:text-black-100 border-transparent border';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-white border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, disabled, theme]);\n\n const outlineStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border-primary-700 border dark:border-primary-600 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-700 dark:text-primary-600 border-primary-100 dark:border-primary-600 border bg-primary-50 dark:bg-black-800 hover:bg-primary-100 disabled:opacity-60';\n\n case 'secondary-neutral':\n return 'text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 !border-error-600 dark:!border-error-500 border hover:bg-[#FEF3F2] disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border-warning-300 dark:border-warning-500 border hover:bg-[#FFFAEB] disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border-success-600 dark:border-success-500 border hover:bg-[#ECFDF3] disabled:opacity-60';\n\n default:\n return 'bg-white dark:bg-black-800 text-neutral-900 dark:text-white border-neutral-300 dark:border-neutral-700 border hover:bg-neutral-100 dark:hover:bg-black-600 disabled:opacity-60';\n }\n }, [status, theme]);\n\n const ghostStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'text-primary-700 dark:text-primary-600 border border-transparent dark:border-transparent hover:text-primary-700 disabled:opacity-60';\n\n case 'secondary':\n return 'text-primary-50 dark:text-primary-900 border border-transparent dark:border-transparent hover:text-primary-100 disabled:opacity-60';\n\n case 'error':\n return 'text-error-600 dark:text-error-500 border border-transparent dark:border-transparent hover:text-error-600 disabled:opacity-60';\n\n case 'warning':\n return 'text-warning-300 dark:text-warning-500 border border-transparent dark:border-transparent hover:text-warning-400 disabled:opacity-60';\n\n case 'success':\n return 'text-success-600 dark:text-success-500 border border-transparent dark:border-transparent hover:text-success-700 disabled:opacity-60';\n\n default:\n return 'text-neutral-900 dark:text-white border border-transparent dark:border-transparent hover:text-[#667085] disabled:opacity-60';\n }\n }, [status, theme]);\n\n const dashedStyle = useCallback(() => {\n switch (status) {\n case 'primary':\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n default:\n return 'bg-primary-50 dark:bg-black-700 text-primary-600 dark:text-primary-600 disabled:text-primary-100 hover:bg-primary-100 dark:hover:bg-black-600 [background-repeat:no-repeat] [background-size:1px_100%,100%_1px,1px_100%,100%_1px] [background-position:0_0,0_0,100%_0,0_100%] [background-image:repeating-linear-gradient(3deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(93deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(183deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px),repeating-linear-gradient(273deg,var(--color-primary-600),var(--color-primary-600)_10px,transparent_10px,transparent_19px,var(--color-primary-600)_19px)] dark:[background-image:repeating-linear-gradient(3deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(93deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(183deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px),repeating-linear-gradient(273deg,var(--color-primary-500),var(--color-primary-500)_10px,transparent_10px,transparent_19px,var(--color-primary-500)_19px)]';\n }\n }, [status, theme]);\n\n /**\n * Returns Tailwind classes for inline <kbd> elements that adapt to the button's status and appearance.\n * Uses a subtle/muted approach � slightly deeper shade of the button's own color.\n */\n const getKbdClasses = useCallback((): string => {\n const isFilled = !appearance || appearance === 'filled';\n\n if (isFilled) {\n switch (status) {\n case 'primary':\n return 'bg-primary-700 text-primary-100';\n case 'secondary':\n return 'bg-primary-100 text-primary-700 dark:bg-black-700 dark:text-primary-400';\n case 'secondary-neutral':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-black-300';\n case 'error':\n return 'bg-error-700 text-error-100 dark:bg-error-600 dark:text-error-100';\n case 'error-secondary':\n return 'bg-error-200 text-error-700 dark:bg-black-700 dark:text-error-400';\n case 'warning':\n return 'bg-warning-400 text-white dark:bg-warning-700 dark:text-warning-100';\n case 'success':\n return 'bg-success-700 text-success-100';\n case 'publish':\n return 'bg-teal-900 text-teal-200';\n case 'no-background':\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }\n\n // outline, ghost, dashed � colored text on transparent/light bg\n switch (status) {\n case 'primary':\n case 'secondary':\n return 'bg-primary-100 text-primary-800 dark:bg-primary-950 dark:text-primary-400';\n case 'error':\n case 'error-secondary':\n return 'bg-error-100 text-error-700 dark:bg-error-950 dark:text-error-400';\n case 'warning':\n return 'bg-warning-100 text-warning-700 dark:bg-warning-950 dark:text-warning-400';\n case 'success':\n return 'bg-success-100 text-success-700 dark:bg-success-950 dark:text-success-400';\n default:\n return 'bg-neutral-100 text-neutral-500 dark:bg-black-700 dark:text-neutral-400';\n }\n }, [status, appearance]);\n\n const os = useOS();\n const displayKeys = useMemo(() => {\n if (!shortcuts?.length) return [];\n return shortcuts.map((key) => {\n const mapping = SHORTCUT_KEY_MAP[key];\n if (mapping) {\n return os === 'macos' ? mapping.macos : mapping.other;\n }\n return key;\n });\n }, [shortcuts, os]);\n\n const renderSpinner = () => (\n <>\n <LoadingSpinnerIcon className='inline mr-2 text-white dark:text-white w-5 h-5' />\n </>\n );\n\n const buttonType = type || ((status === 'primary' && appearance === 'filled') ? 'submit' : type);\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} shortcuts={tooltipShortcuts} delayShow>\n <button\n ref={ref}\n className={`\n ${className || ''}\n cursor-pointer\n font-inter \n font-medium \n py-1.5\n px-2.5\n rounded-lg \n text-sm\n whitespace-nowrap\n disabled:cursor-not-allowed\n flex\n items-center\n justify-center\n gap-1.5\n relative\n max-h-8\n ${appearanceStyle()}\n `}\n disabled={disabled || isLoading}\n id={id}\n onClick={onClick}\n onKeyDown={onKeyDown}\n title={title}\n type={buttonType}\n autoFocus={autoFocus}\n >\n {isLoading && renderSpinner()}\n {children}\n {displayKeys.length > 0 ? (\n <span className='inline-flex items-center gap-0.5 ml-1 flex-shrink-0'>\n {displayKeys.map((key, index) => (\n <kbd\n key={index}\n className={`inline-flex items-center justify-center min-w-5 h-5 px-1 rounded text-xs font-medium leading-none ${getKbdClasses()}`}\n >\n {key}\n </kbd>\n ))}\n </span>\n ) : null}\n {options?.length ? (\n <div onClick={(e) => e.stopPropagation()}>\n <Dropdown\n menu={{\n items: options,\n }}\n trigger={['click']}\n overlayClassName='row-option-cell'\n placement='bottomRight'\n >\n <ChevronRightRounded className='rotate-90 text-neutral-300 hover:opacity-50' />\n </Dropdown>\n </div>\n ) : null}\n {badge ? (\n <span className='absolute -top-2 -right-2 bg-zinc-500 text-white rounded-full min-w-6 min-h-6 text-xs flex justify-center items-center'>\n {badge}\n </span>\n ) : null}\n </button>\n </Tooltip>\n );\n});\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"names":["Button","forwardRef","status","appearance","className","disabled","children","isLoading","title","id","onClick","onKeyDown","badge","type","options","tooltip","tooltipPlacement","shortcuts","tooltipShortcuts","theme","autoFocus","ref","appearanceStyle","useCallback","outlineStyle","ghostStyle","dashedStyle","filledStyle","getKbdClasses","os","useOS","displayKeys","useMemo","key","mapping","SHORTCUT_KEY_MAP","renderSpinner","jsx","Fragment","LoadingSpinnerIcon","buttonType","Tooltip","jsxs","index","e","Dropdown","ChevronRightRounded"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("react/jsx-runtime");require("react");const h=require("../tooltip/Tooltip.cjs.js"),g=({children:o,className:a,variant:n="default",onClick:l,disabled:r,tooltip:s,tooltipPlacement:u="top",noborder:e,id:d,type:c="button"})=>{const i="flex items-center",b={default:`bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${e?"":"border border-neutral-300 dark:border-neutral-800"} p-2 hover:opacity-80`,secondary:`bg-transparent rounded-lg ${e?"":"border border-neutral-300 dark:border-black-400"} p-2 hover:opacity-80`,native:`bg-transparent rounded-lg ${e?"":"border border-neutral-300"} p-2 hover:opacity-80`,ghost:"text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out"},p=r?"cursor-not-allowed opacity-50":"cursor-pointer";return t.jsx(h,{title:s,placement:u,delayShow:!0,children:t.jsx("button",{id:d,disabled:r,className:`${i} ${b[n]} ${a||""} ${p}`,onClick:l,type:c,children:o})})};module.exports=g;
1
+ "use strict";const t=require("react/jsx-runtime");require("react");const h=require("../tooltip/Tooltip.cjs.js"),g=({children:o,className:a,variant:n="default",onClick:s,disabled:r,tooltip:l,tooltipPlacement:u="top",noborder:e,id:d,type:c="button"})=>{const i="flex items-center justify-center",b={default:`bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${e?"":"border border-neutral-300 dark:border-neutral-800"} p-2 hover:opacity-80`,secondary:`bg-transparent rounded-lg ${e?"":"border border-neutral-300 dark:border-black-400"} p-2 hover:opacity-80`,native:`bg-transparent rounded-lg ${e?"":"border border-neutral-300"} p-2 hover:opacity-80`,ghost:"text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out"},p=r?"cursor-not-allowed opacity-50":"cursor-pointer";return t.jsx(h,{title:l,placement:u,delayShow:!0,children:t.jsx("button",{id:d,disabled:r,className:`${i} ${b[n]} ${a||""} ${p}`,onClick:s,type:c,children:o})})};module.exports=g;
2
2
  //# sourceMappingURL=IconButton.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.cjs.js","sources":["../../../src/components/button/IconButton.tsx"],"sourcesContent":["import React, { type ReactNode } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\n\nexport interface IconButtonProps {\n children: ReactNode;\n className?: string;\n onClick?(event: React.MouseEvent<HTMLButtonElement>): void;\n variant?: 'default' | 'secondary' | 'native' | 'ghost';\n disabled?: boolean;\n tooltip?: string | ReactNode;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n noborder?: boolean;\n id?: string;\n type?: 'button' | 'submit' | 'reset';\n}\n\nconst IconButton: React.FC<IconButtonProps> = ({\n children,\n className,\n variant = 'default',\n onClick,\n disabled,\n tooltip,\n tooltipPlacement = 'top',\n noborder,\n id,\n type = 'button',\n}) => {\n const baseClasses = 'flex items-center';\n const variantClasses = {\n default: `bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${\n noborder ? '' : 'border border-neutral-300 dark:border-neutral-800'\n } p-2 hover:opacity-80`,\n secondary: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300 dark:border-black-400'} p-2 hover:opacity-80`,\n native: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300'} p-2 hover:opacity-80`,\n ghost:\n 'text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out',\n };\n const disabledClasses = disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer';\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} delayShow>\n <button\n id={id}\n disabled={disabled}\n className={`${baseClasses} ${variantClasses[variant]} ${className || ''} ${disabledClasses}`}\n onClick={onClick}\n type={type}\n >\n {children}\n </button>\n </Tooltip>\n );\n};\n\nexport default IconButton;\n"],"names":["IconButton","children","className","variant","onClick","disabled","tooltip","tooltipPlacement","noborder","id","type","baseClasses","variantClasses","disabledClasses","Tooltip","jsx"],"mappings":"gHAgBMA,EAAwC,CAAC,CAC7C,SAAAC,EACA,UAAAC,EACA,QAAAC,EAAU,UACV,QAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAAC,EAAmB,MACnB,SAAAC,EACA,GAAAC,EACA,KAAAC,EAAO,QACT,IAAM,CACJ,MAAMC,EAAc,oBACdC,EAAiB,CACrB,QAAS,sFACPJ,EAAW,GAAK,mDAClB,wBACA,UAAW,6BAA6BA,EAAW,GAAK,iDAAiD,wBACzG,OAAQ,6BAA6BA,EAAW,GAAK,2BAA2B,wBAChF,MACE,2MAAA,EAEEK,EAAkBR,EAAW,gCAAkC,iBAErE,aACGS,EAAA,CAAQ,MAAOR,EAAS,UAAWC,EAAkB,UAAS,GAC7D,SAAAQ,EAAAA,IAAC,SAAA,CACC,GAAAN,EACA,SAAAJ,EACA,UAAW,GAAGM,CAAW,IAAIC,EAAeT,CAAO,CAAC,IAAID,GAAa,EAAE,IAAIW,CAAe,GAC1F,QAAAT,EACA,KAAAM,EAEC,SAAAT,CAAA,CAAA,EAEL,CAEJ"}
1
+ {"version":3,"file":"IconButton.cjs.js","sources":["../../../src/components/button/IconButton.tsx"],"sourcesContent":["import React, { type ReactNode } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\n\nexport interface IconButtonProps {\n children: ReactNode;\n className?: string;\n onClick?(event: React.MouseEvent<HTMLButtonElement>): void;\n variant?: 'default' | 'secondary' | 'native' | 'ghost';\n disabled?: boolean;\n tooltip?: string | ReactNode;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n noborder?: boolean;\n id?: string;\n type?: 'button' | 'submit' | 'reset';\n}\n\nconst IconButton: React.FC<IconButtonProps> = ({\n children,\n className,\n variant = 'default',\n onClick,\n disabled,\n tooltip,\n tooltipPlacement = 'top',\n noborder,\n id,\n type = 'button',\n}) => {\n const baseClasses = 'flex items-center justify-center';\n const variantClasses = {\n default: `bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${\n noborder ? '' : 'border border-neutral-300 dark:border-neutral-800'\n } p-2 hover:opacity-80`,\n secondary: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300 dark:border-black-400'} p-2 hover:opacity-80`,\n native: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300'} p-2 hover:opacity-80`,\n ghost:\n 'text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out',\n };\n const disabledClasses = disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer';\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} delayShow>\n <button\n id={id}\n disabled={disabled}\n className={`${baseClasses} ${variantClasses[variant]} ${className || ''} ${disabledClasses}`}\n onClick={onClick}\n type={type}\n >\n {children}\n </button>\n </Tooltip>\n );\n};\n\nexport default IconButton;\n"],"names":["IconButton","children","className","variant","onClick","disabled","tooltip","tooltipPlacement","noborder","id","type","baseClasses","variantClasses","disabledClasses","Tooltip","jsx"],"mappings":"gHAgBMA,EAAwC,CAAC,CAC7C,SAAAC,EACA,UAAAC,EACA,QAAAC,EAAU,UACV,QAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAAC,EAAmB,MACnB,SAAAC,EACA,GAAAC,EACA,KAAAC,EAAO,QACT,IAAM,CACJ,MAAMC,EAAc,mCACdC,EAAiB,CACrB,QAAS,sFACPJ,EAAW,GAAK,mDAClB,wBACA,UAAW,6BAA6BA,EAAW,GAAK,iDAAiD,wBACzG,OAAQ,6BAA6BA,EAAW,GAAK,2BAA2B,wBAChF,MACE,2MAAA,EAEEK,EAAkBR,EAAW,gCAAkC,iBAErE,aACGS,EAAA,CAAQ,MAAOR,EAAS,UAAWC,EAAkB,UAAS,GAC7D,SAAAQ,EAAAA,IAAC,SAAA,CACC,GAAAN,EACA,SAAAJ,EACA,UAAW,GAAGM,CAAW,IAAIC,EAAeT,CAAO,CAAC,IAAID,GAAa,EAAE,IAAIW,CAAe,GAC1F,QAAAT,EACA,KAAAM,EAEC,SAAAT,CAAA,CAAA,EAEL,CAEJ"}
@@ -1,30 +1,30 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import h from "../tooltip/Tooltip.es.js";
4
- const m = ({
4
+ const f = ({
5
5
  children: o,
6
6
  className: a,
7
7
  variant: n = "default",
8
8
  onClick: l,
9
9
  disabled: e,
10
10
  tooltip: s,
11
- tooltipPlacement: d = "top",
11
+ tooltipPlacement: u = "top",
12
12
  noborder: r,
13
- id: u,
13
+ id: d,
14
14
  type: c = "button"
15
15
  }) => {
16
- const b = "flex items-center", i = {
16
+ const i = "flex items-center justify-center", b = {
17
17
  default: `bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${r ? "" : "border border-neutral-300 dark:border-neutral-800"} p-2 hover:opacity-80`,
18
18
  secondary: `bg-transparent rounded-lg ${r ? "" : "border border-neutral-300 dark:border-black-400"} p-2 hover:opacity-80`,
19
19
  native: `bg-transparent rounded-lg ${r ? "" : "border border-neutral-300"} p-2 hover:opacity-80`,
20
20
  ghost: "text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out"
21
21
  }, p = e ? "cursor-not-allowed opacity-50" : "cursor-pointer";
22
- return /* @__PURE__ */ t(h, { title: s, placement: d, delayShow: !0, children: /* @__PURE__ */ t(
22
+ return /* @__PURE__ */ t(h, { title: s, placement: u, delayShow: !0, children: /* @__PURE__ */ t(
23
23
  "button",
24
24
  {
25
- id: u,
25
+ id: d,
26
26
  disabled: e,
27
- className: `${b} ${i[n]} ${a || ""} ${p}`,
27
+ className: `${i} ${b[n]} ${a || ""} ${p}`,
28
28
  onClick: l,
29
29
  type: c,
30
30
  children: o
@@ -32,6 +32,6 @@ const m = ({
32
32
  ) });
33
33
  };
34
34
  export {
35
- m as default
35
+ f as default
36
36
  };
37
37
  //# sourceMappingURL=IconButton.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.es.js","sources":["../../../src/components/button/IconButton.tsx"],"sourcesContent":["import React, { type ReactNode } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\n\nexport interface IconButtonProps {\n children: ReactNode;\n className?: string;\n onClick?(event: React.MouseEvent<HTMLButtonElement>): void;\n variant?: 'default' | 'secondary' | 'native' | 'ghost';\n disabled?: boolean;\n tooltip?: string | ReactNode;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n noborder?: boolean;\n id?: string;\n type?: 'button' | 'submit' | 'reset';\n}\n\nconst IconButton: React.FC<IconButtonProps> = ({\n children,\n className,\n variant = 'default',\n onClick,\n disabled,\n tooltip,\n tooltipPlacement = 'top',\n noborder,\n id,\n type = 'button',\n}) => {\n const baseClasses = 'flex items-center';\n const variantClasses = {\n default: `bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${\n noborder ? '' : 'border border-neutral-300 dark:border-neutral-800'\n } p-2 hover:opacity-80`,\n secondary: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300 dark:border-black-400'} p-2 hover:opacity-80`,\n native: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300'} p-2 hover:opacity-80`,\n ghost:\n 'text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out',\n };\n const disabledClasses = disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer';\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} delayShow>\n <button\n id={id}\n disabled={disabled}\n className={`${baseClasses} ${variantClasses[variant]} ${className || ''} ${disabledClasses}`}\n onClick={onClick}\n type={type}\n >\n {children}\n </button>\n </Tooltip>\n );\n};\n\nexport default IconButton;\n"],"names":["IconButton","children","className","variant","onClick","disabled","tooltip","tooltipPlacement","noborder","id","type","baseClasses","variantClasses","disabledClasses","Tooltip","jsx"],"mappings":";;;AAgBA,MAAMA,IAAwC,CAAC;AAAA,EAC7C,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,UAAAC;AAAA,EACA,IAAAC;AAAA,EACA,MAAAC,IAAO;AACT,MAAM;AACJ,QAAMC,IAAc,qBACdC,IAAiB;AAAA,IACrB,SAAS,sFACPJ,IAAW,KAAK,mDAClB;AAAA,IACA,WAAW,6BAA6BA,IAAW,KAAK,iDAAiD;AAAA,IACzG,QAAQ,6BAA6BA,IAAW,KAAK,2BAA2B;AAAA,IAChF,OACE;AAAA,EAAA,GAEEK,IAAkBR,IAAW,kCAAkC;AAErE,2BACGS,GAAA,EAAQ,OAAOR,GAAS,WAAWC,GAAkB,WAAS,IAC7D,UAAA,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAN;AAAA,MACA,UAAAJ;AAAA,MACA,WAAW,GAAGM,CAAW,IAAIC,EAAeT,CAAO,CAAC,IAAID,KAAa,EAAE,IAAIW,CAAe;AAAA,MAC1F,SAAAT;AAAA,MACA,MAAAM;AAAA,MAEC,UAAAT;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
1
+ {"version":3,"file":"IconButton.es.js","sources":["../../../src/components/button/IconButton.tsx"],"sourcesContent":["import React, { type ReactNode } from 'react';\nimport Tooltip from '../tooltip/Tooltip';\n\nexport interface IconButtonProps {\n children: ReactNode;\n className?: string;\n onClick?(event: React.MouseEvent<HTMLButtonElement>): void;\n variant?: 'default' | 'secondary' | 'native' | 'ghost';\n disabled?: boolean;\n tooltip?: string | ReactNode;\n tooltipPlacement?: 'top' | 'bottom' | 'left' | 'right';\n noborder?: boolean;\n id?: string;\n type?: 'button' | 'submit' | 'reset';\n}\n\nconst IconButton: React.FC<IconButtonProps> = ({\n children,\n className,\n variant = 'default',\n onClick,\n disabled,\n tooltip,\n tooltipPlacement = 'top',\n noborder,\n id,\n type = 'button',\n}) => {\n const baseClasses = 'flex items-center justify-center';\n const variantClasses = {\n default: `bg-white dark:bg-black-800 hover:bg-neutral-100 dark:hover:bg-black-700 rounded-lg ${\n noborder ? '' : 'border border-neutral-300 dark:border-neutral-800'\n } p-2 hover:opacity-80`,\n secondary: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300 dark:border-black-400'} p-2 hover:opacity-80`,\n native: `bg-transparent rounded-lg ${noborder ? '' : 'border border-neutral-300'} p-2 hover:opacity-80`,\n ghost:\n 'text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 dark:hover:text-neutral-200 dark:hover:bg-neutral-800 p-1 cursor-pointer rounded-full hover:scale-75 transition-all duration-500 ease-in-out',\n };\n const disabledClasses = disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer';\n\n return (\n <Tooltip title={tooltip} placement={tooltipPlacement} delayShow>\n <button\n id={id}\n disabled={disabled}\n className={`${baseClasses} ${variantClasses[variant]} ${className || ''} ${disabledClasses}`}\n onClick={onClick}\n type={type}\n >\n {children}\n </button>\n </Tooltip>\n );\n};\n\nexport default IconButton;\n"],"names":["IconButton","children","className","variant","onClick","disabled","tooltip","tooltipPlacement","noborder","id","type","baseClasses","variantClasses","disabledClasses","Tooltip","jsx"],"mappings":";;;AAgBA,MAAMA,IAAwC,CAAC;AAAA,EAC7C,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,UAAAC;AAAA,EACA,IAAAC;AAAA,EACA,MAAAC,IAAO;AACT,MAAM;AACJ,QAAMC,IAAc,oCACdC,IAAiB;AAAA,IACrB,SAAS,sFACPJ,IAAW,KAAK,mDAClB;AAAA,IACA,WAAW,6BAA6BA,IAAW,KAAK,iDAAiD;AAAA,IACzG,QAAQ,6BAA6BA,IAAW,KAAK,2BAA2B;AAAA,IAChF,OACE;AAAA,EAAA,GAEEK,IAAkBR,IAAW,kCAAkC;AAErE,2BACGS,GAAA,EAAQ,OAAOR,GAAS,WAAWC,GAAkB,WAAS,IAC7D,UAAA,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAN;AAAA,MACA,UAAAJ;AAAA,MACA,WAAW,GAAGM,CAAW,IAAIC,EAAeT,CAAO,CAAC,IAAID,KAAa,EAAE,IAAIW,CAAe;AAAA,MAC1F,SAAAT;AAAA,MACA,MAAAM;AAAA,MAEC,UAAAT;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../../_virtual/index.cjs.js"),b=require("react"),F=require("../../data-display/typography/Typography.cjs.js"),V=require("../../forms/toggle/Toggle.cjs.js"),w=require("../../tooltip/Tooltip.cjs.js"),Z=require("../../../utils/utilities.cjs.js"),$=require("../../shortcut-kbd/ShortcutKbd.cjs.js"),G=({className:c="",fill:s="var(--color-primary-600)",size:i=24})=>e.jsx("svg",{className:c,width:i,height:i,viewBox:"0 0 20 20",fill:s,xmlns:"http://www.w3.org/2000/svg",children:e.jsx("g",{mask:"url(#mask0_6752_28309)",children:e.jsx("path",{d:"M8.33317 11.3333L13.2498 6.41667C13.4026 6.26389 13.5971 6.1875 13.8332 6.1875C14.0693 6.1875 14.2637 6.26389 14.4165 6.41667C14.5693 6.56944 14.6457 6.76389 14.6457 7C14.6457 7.23611 14.5693 7.43056 14.4165 7.58333L8.9165 13.0833C8.74984 13.25 8.55539 13.3333 8.33317 13.3333C8.11095 13.3333 7.9165 13.25 7.74984 13.0833L5.58317 10.9167C5.43039 10.7639 5.354 10.5694 5.354 10.3333C5.354 10.0972 5.43039 9.90278 5.58317 9.75C5.73595 9.59722 5.93039 9.52083 6.1665 9.52083C6.40262 9.52083 6.59706 9.59722 6.74984 9.75L8.33317 11.3333Z",fill:s})})}),N=({id:c,onClick:s,icon:i,text:a,className:C,isDisabled:h,onClose:d,notVisible:S,hideHoverEffect:q,leadingIcon:u,suffixRecord:m,stopPropagation:g,onToggle:n,isChecked:B=!1,highlight:v,truncateText:D=!1,showTick:L=!1,width:K="100%",tooltip:p,isFlowAvailable:M=!0,shortcuts:f,textClassName:O,chevron:k})=>{const E=b.useCallback(r=>{d&&d(),r.preventDefault(),s?.(r),g&&r.stopPropagation()},[d,s,g]),P=(r,l)=>{if(!l||!r||typeof r!="string"&&typeof r!="number")return r;const _=Z.escapeRegExp(l),A=new RegExp(`(${_?.trim()})`,"gi"),x=r?.toString()?.split(A);return e.jsxs("span",{className:"overflow-clip text-ellipsis",children:[x[0],e.jsx("span",{className:"bg-yellow-300 dark:bg-primary-100 dark:text-black-900 rounded-sm",children:x[1]}),x?.slice(2)?.join("")]})},R=b.useCallback(r=>{n?.(),r.stopPropagation()},[n]),o=["delete","remove","clear","terminate session","terminate sessions","terminate all sessions"].some(l=>a?.toLowerCase().includes(l)),y=h||!M;if(S)return null;const j=!!(s||n),T=j?"button":"div";return e.jsx(T,{id:c,className:t("w-full p-1 bg-white dark:bg-black-800 group",C,y&&"opacity-60"),...j?{onClick:n?()=>null:E,disabled:y}:{},onMouseMove:r=>r.stopPropagation(),children:e.jsxs("div",{className:t("option-button-inner flex w-full justify-start items-center gap-2 px-2 py-1 rounded-lg transition-all duration-300 ease-in-out",!q&&"hover:bg-gray-50 dark:hover:bg-black-600 hover:shadow-md dark:hover:shadow-lg dark:hover:shadow-primary-500/20"),children:[i?e.jsx("div",{className:t("h-5 w-5 flex-shrink-0 flex items-center text-neutral-900 dark:text-white transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:e.jsx(w,{placement:"top",title:p,children:i})}):null,e.jsxs("div",{className:"flex gap-2 flex-1 min-w-0 text-left justify-between items-center",children:[e.jsx("div",{className:t("flex-1 min-w-0",D&&"max-w-[150px]"),style:{width:K},children:e.jsx(F.Typography,{className:t("font-medium text-sm truncate transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:!text-primary-600 dark:group-hover:!text-primary-400",O),appearance:"custom",children:v?P(a,v):a})}),m?.[a]?e.jsx("span",{className:"flex-shrink-0 text-neutral-500 dark:text-neutral-200 bg-neutral-100 dark:bg-black-700 border-[#D0D5DD] dark:border-black-700 text-xs leading-[18px] font-normal border rounded-full px-2 py-0.5",children:m[a]||""}):null,L?e.jsx("div",{className:"flex-shrink-0",children:e.jsx(G,{fill:"var(--color-primary-600)"})}):null]}),u?e.jsx(e.Fragment,{children:p?e.jsx(w,{placement:"top",title:p,children:e.jsx("div",{className:t("flex-shrink-0 transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:u})}):e.jsx("div",{className:t("flex-shrink-0 transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:u})}):null,f?e.jsx("div",{className:"flex items-center justify-end flex-shrink-0",children:e.jsx($.ShortcutKbd,{variant:"light",shortcuts:f})}):null,n?e.jsx("div",{className:"flex-shrink-0",children:e.jsx(V.Toggle,{onChange:R,isChecked:B,isDisabled:h,hideStatus:!0})}):null,k?e.jsx("div",{className:t("flex-shrink-0 flex items-center text-neutral-500 dark:text-neutral-400 transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:k}):null]})})};N.displayName="OptionButton";exports.OptionButton=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../../_virtual/index.cjs.js"),b=require("react"),F=require("../../data-display/typography/Typography.cjs.js"),V=require("../../forms/toggle/Toggle.cjs.js"),w=require("../../tooltip/Tooltip.cjs.js"),Z=require("../../../utils/utilities.cjs.js"),$=require("../../shortcut-kbd/ShortcutKbd.cjs.js"),G=({className:c="",fill:s="var(--color-primary-600)",size:i=24})=>e.jsx("svg",{className:c,width:i,height:i,viewBox:"0 0 20 20",fill:s,xmlns:"http://www.w3.org/2000/svg",children:e.jsx("g",{mask:"url(#mask0_6752_28309)",children:e.jsx("path",{d:"M8.33317 11.3333L13.2498 6.41667C13.4026 6.26389 13.5971 6.1875 13.8332 6.1875C14.0693 6.1875 14.2637 6.26389 14.4165 6.41667C14.5693 6.56944 14.6457 6.76389 14.6457 7C14.6457 7.23611 14.5693 7.43056 14.4165 7.58333L8.9165 13.0833C8.74984 13.25 8.55539 13.3333 8.33317 13.3333C8.11095 13.3333 7.9165 13.25 7.74984 13.0833L5.58317 10.9167C5.43039 10.7639 5.354 10.5694 5.354 10.3333C5.354 10.0972 5.43039 9.90278 5.58317 9.75C5.73595 9.59722 5.93039 9.52083 6.1665 9.52083C6.40262 9.52083 6.59706 9.59722 6.74984 9.75L8.33317 11.3333Z",fill:s})})}),N=({id:c,onClick:s,icon:i,text:a,className:C,isDisabled:h,onClose:d,notVisible:S,hideHoverEffect:q,leadingIcon:u,suffixRecord:m,stopPropagation:g,onToggle:n,isChecked:B=!1,highlight:v,truncateText:D=!1,showTick:L=!1,width:K="100%",tooltip:p,isFlowAvailable:M=!0,shortcuts:f,textClassName:O,chevron:k})=>{const E=b.useCallback(r=>{d&&d(),r.preventDefault(),s?.(r),g&&r.stopPropagation()},[d,s,g]),P=(r,l)=>{if(!l||!r||typeof r!="string"&&typeof r!="number")return r;const _=Z.escapeRegExp(l),A=new RegExp(`(${_?.trim()})`,"gi"),x=r?.toString()?.split(A);return e.jsxs("span",{className:"overflow-clip text-ellipsis",children:[x[0],e.jsx("span",{className:"bg-yellow-300 dark:bg-primary-100 dark:text-black-900 rounded-sm",children:x[1]}),x?.slice(2)?.join("")]})},R=b.useCallback(r=>{n?.(),r.stopPropagation()},[n]),o=["delete","remove","clear","terminate session","terminate sessions","terminate all sessions"].some(l=>a?.toLowerCase().includes(l)),y=h||!M;if(S)return null;const j=!!(s||n),T=j?"button":"div";return e.jsx(T,{id:c,className:t("w-full p-1 bg-white dark:bg-black-800 group",C,y&&"opacity-60"),...j?{onClick:n?()=>null:E,disabled:y}:{},onMouseMove:r=>r.stopPropagation(),children:e.jsxs("div",{className:t("option-button-inner flex w-full justify-start items-center gap-2 px-2 py-1 rounded-lg transition-all duration-300 ease-in-out",!q&&"hover:bg-gray-50 dark:hover:bg-black-600 hover:shadow-md dark:hover:shadow-lg dark:hover:shadow-primary-500/20"),children:[i?e.jsx("div",{className:t("h-5 w-5 flex-shrink-0 flex items-center text-neutral-900 dark:text-white transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:e.jsx(w,{placement:"top",title:p,children:i})}):null,e.jsxs("div",{className:"flex gap-2 flex-1 min-w-0 text-left justify-between items-center",children:[e.jsx("div",{className:t("flex-1 min-w-0",D&&"max-w-[150px]"),style:{width:K},children:e.jsx(F.Typography,{className:t("font-medium text-sm truncate transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:!text-primary-600 dark:group-hover:!text-primary-400",O),appearance:"custom",children:v?P(a,v):a})}),m?.[a]?e.jsx("span",{className:"flex-shrink-0 text-neutral-500 dark:text-neutral-200 bg-neutral-100 dark:bg-black-700 border-[#D0D5DD] dark:border-black-700 text-xs leading-4 font-normal border rounded-full px-2 py-0.5",children:m[a]||""}):null,L?e.jsx("div",{className:"flex-shrink-0",children:e.jsx(G,{fill:"var(--color-primary-600)"})}):null]}),u?e.jsx(e.Fragment,{children:p?e.jsx(w,{placement:"top",title:p,children:e.jsx("div",{className:t("flex-shrink-0 transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:u})}):e.jsx("div",{className:t("flex-shrink-0 transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:u})}):null,f?e.jsx("div",{className:"flex items-center justify-end flex-shrink-0",children:e.jsx($.ShortcutKbd,{variant:"light",shortcuts:f})}):null,n?e.jsx("div",{className:"flex-shrink-0",children:e.jsx(V.Toggle,{onChange:R,isChecked:B,isDisabled:h,hideStatus:!0})}):null,k?e.jsx("div",{className:t("flex-shrink-0 flex items-center text-neutral-500 dark:text-neutral-400 transition-colors duration-300 ease-in-out",o?"group-hover:!text-red-600":"group-hover:text-primary-600 dark:group-hover:text-primary-400"),children:k}):null]})})};N.displayName="OptionButton";exports.OptionButton=N;
2
2
  //# sourceMappingURL=OptionButton.cjs.js.map