@kushagradhawan/kookie-ui 0.1.37 → 0.1.39

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 (172) hide show
  1. package/components.css +130 -74
  2. package/dist/cjs/components/_internal/base-button.props.d.ts +1 -1
  3. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
  5. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +1 -1
  6. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  7. package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
  8. package/dist/cjs/components/avatar.props.d.ts +1 -1
  9. package/dist/cjs/components/avatar.props.js +1 -1
  10. package/dist/cjs/components/avatar.props.js.map +2 -2
  11. package/dist/cjs/components/button.d.ts +40 -2
  12. package/dist/cjs/components/button.d.ts.map +1 -1
  13. package/dist/cjs/components/button.js +1 -1
  14. package/dist/cjs/components/button.js.map +3 -3
  15. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  16. package/dist/cjs/components/chatbar.js +1 -1
  17. package/dist/cjs/components/chatbar.js.map +2 -2
  18. package/dist/cjs/components/checkbox-cards.props.d.ts +2 -2
  19. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  20. package/dist/cjs/components/checkbox-cards.props.js.map +2 -2
  21. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  22. package/dist/cjs/components/checkbox-group.js +1 -1
  23. package/dist/cjs/components/checkbox-group.js.map +3 -3
  24. package/dist/cjs/components/checkbox-group.props.d.ts +1 -1
  25. package/dist/cjs/components/dialog.d.ts.map +1 -1
  26. package/dist/cjs/components/dialog.js +1 -1
  27. package/dist/cjs/components/dialog.js.map +3 -3
  28. package/dist/cjs/components/flex.props.d.ts +3 -3
  29. package/dist/cjs/components/grid.props.d.ts +3 -3
  30. package/dist/cjs/components/radio-cards.props.d.ts +2 -2
  31. package/dist/cjs/components/radio-cards.props.js +1 -1
  32. package/dist/cjs/components/radio-cards.props.js.map +2 -2
  33. package/dist/cjs/components/select.d.ts.map +1 -1
  34. package/dist/cjs/components/select.js +1 -1
  35. package/dist/cjs/components/select.js.map +3 -3
  36. package/dist/cjs/components/shell.d.ts.map +1 -1
  37. package/dist/cjs/components/shell.js +1 -1
  38. package/dist/cjs/components/shell.js.map +3 -3
  39. package/dist/cjs/components/sidebar.d.ts +7 -1
  40. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  41. package/dist/cjs/components/sidebar.js +1 -1
  42. package/dist/cjs/components/sidebar.js.map +3 -3
  43. package/dist/cjs/components/sidebar.props.d.ts +6 -0
  44. package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
  45. package/dist/cjs/components/sidebar.props.js +1 -1
  46. package/dist/cjs/components/sidebar.props.js.map +3 -3
  47. package/dist/cjs/components/table.props.d.ts +7 -7
  48. package/dist/cjs/components/text-field.props.d.ts +4 -4
  49. package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
  50. package/dist/cjs/hooks/index.d.ts +1 -0
  51. package/dist/cjs/hooks/index.d.ts.map +1 -1
  52. package/dist/cjs/hooks/index.js +1 -1
  53. package/dist/cjs/hooks/index.js.map +3 -3
  54. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +9 -0
  55. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -0
  56. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -0
  57. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +7 -0
  58. package/dist/cjs/props/gap.props.d.ts +3 -3
  59. package/dist/cjs/props/gap.props.js +1 -1
  60. package/dist/cjs/props/gap.props.js.map +2 -2
  61. package/dist/cjs/props/layout.props.d.ts +7 -7
  62. package/dist/cjs/props/margin.props.d.ts +7 -7
  63. package/dist/cjs/props/margin.props.js +1 -1
  64. package/dist/cjs/props/margin.props.js.map +2 -2
  65. package/dist/cjs/props/padding.props.d.ts +7 -7
  66. package/dist/cjs/props/padding.props.js +1 -1
  67. package/dist/cjs/props/padding.props.js.map +2 -2
  68. package/dist/esm/components/_internal/base-button.props.d.ts +1 -1
  69. package/dist/esm/components/_internal/base-button.props.js +1 -1
  70. package/dist/esm/components/_internal/base-button.props.js.map +2 -2
  71. package/dist/esm/components/_internal/base-checkbox.props.d.ts +1 -1
  72. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  73. package/dist/esm/components/_internal/base-checkbox.props.js.map +2 -2
  74. package/dist/esm/components/avatar.props.d.ts +1 -1
  75. package/dist/esm/components/avatar.props.js +1 -1
  76. package/dist/esm/components/avatar.props.js.map +2 -2
  77. package/dist/esm/components/button.d.ts +40 -2
  78. package/dist/esm/components/button.d.ts.map +1 -1
  79. package/dist/esm/components/button.js +1 -1
  80. package/dist/esm/components/button.js.map +3 -3
  81. package/dist/esm/components/chatbar.d.ts.map +1 -1
  82. package/dist/esm/components/chatbar.js +1 -1
  83. package/dist/esm/components/chatbar.js.map +2 -2
  84. package/dist/esm/components/checkbox-cards.props.d.ts +2 -2
  85. package/dist/esm/components/checkbox-cards.props.js +1 -1
  86. package/dist/esm/components/checkbox-cards.props.js.map +2 -2
  87. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  88. package/dist/esm/components/checkbox-group.js +1 -1
  89. package/dist/esm/components/checkbox-group.js.map +3 -3
  90. package/dist/esm/components/checkbox-group.props.d.ts +1 -1
  91. package/dist/esm/components/dialog.d.ts.map +1 -1
  92. package/dist/esm/components/dialog.js +1 -1
  93. package/dist/esm/components/dialog.js.map +3 -3
  94. package/dist/esm/components/flex.props.d.ts +3 -3
  95. package/dist/esm/components/grid.props.d.ts +3 -3
  96. package/dist/esm/components/radio-cards.props.d.ts +2 -2
  97. package/dist/esm/components/radio-cards.props.js +1 -1
  98. package/dist/esm/components/radio-cards.props.js.map +2 -2
  99. package/dist/esm/components/select.d.ts.map +1 -1
  100. package/dist/esm/components/select.js +1 -1
  101. package/dist/esm/components/select.js.map +3 -3
  102. package/dist/esm/components/shell.d.ts.map +1 -1
  103. package/dist/esm/components/shell.js +1 -1
  104. package/dist/esm/components/shell.js.map +3 -3
  105. package/dist/esm/components/sidebar.d.ts +7 -1
  106. package/dist/esm/components/sidebar.d.ts.map +1 -1
  107. package/dist/esm/components/sidebar.js +1 -1
  108. package/dist/esm/components/sidebar.js.map +3 -3
  109. package/dist/esm/components/sidebar.props.d.ts +6 -0
  110. package/dist/esm/components/sidebar.props.d.ts.map +1 -1
  111. package/dist/esm/components/sidebar.props.js +1 -1
  112. package/dist/esm/components/sidebar.props.js.map +3 -3
  113. package/dist/esm/components/table.props.d.ts +7 -7
  114. package/dist/esm/components/text-field.props.d.ts +4 -4
  115. package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
  116. package/dist/esm/hooks/index.d.ts +1 -0
  117. package/dist/esm/hooks/index.d.ts.map +1 -1
  118. package/dist/esm/hooks/index.js +1 -1
  119. package/dist/esm/hooks/index.js.map +3 -3
  120. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +9 -0
  121. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -0
  122. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -0
  123. package/dist/esm/hooks/use-body-pointer-events-cleanup.js.map +7 -0
  124. package/dist/esm/props/gap.props.d.ts +3 -3
  125. package/dist/esm/props/gap.props.js +1 -1
  126. package/dist/esm/props/gap.props.js.map +2 -2
  127. package/dist/esm/props/layout.props.d.ts +7 -7
  128. package/dist/esm/props/margin.props.d.ts +7 -7
  129. package/dist/esm/props/margin.props.js +1 -1
  130. package/dist/esm/props/margin.props.js.map +2 -2
  131. package/dist/esm/props/padding.props.d.ts +7 -7
  132. package/dist/esm/props/padding.props.js +1 -1
  133. package/dist/esm/props/padding.props.js.map +2 -2
  134. package/layout/tokens.css +3 -0
  135. package/layout/utilities.css +1806 -42
  136. package/layout.css +1809 -42
  137. package/package.json +1 -1
  138. package/src/components/_internal/base-button.css +179 -73
  139. package/src/components/_internal/base-button.props.ts +1 -1
  140. package/src/components/_internal/base-checkbox.props.ts +1 -1
  141. package/src/components/avatar.props.tsx +1 -1
  142. package/src/components/button.css +13 -21
  143. package/src/components/button.tsx +79 -2
  144. package/src/components/chatbar.tsx +5 -2
  145. package/src/components/checkbox-cards.props.tsx +1 -1
  146. package/src/components/checkbox-group.tsx +14 -6
  147. package/src/components/dialog.tsx +4 -0
  148. package/src/components/radio-cards.props.tsx +1 -1
  149. package/src/components/select.css +9 -0
  150. package/src/components/select.tsx +11 -1
  151. package/src/components/shell.tsx +34 -3
  152. package/src/components/sidebar.css +15 -3
  153. package/src/components/sidebar.props.tsx +3 -0
  154. package/src/components/sidebar.tsx +27 -0
  155. package/src/hooks/index.ts +2 -1
  156. package/src/hooks/use-body-pointer-events-cleanup.ts +81 -0
  157. package/src/props/gap.props.ts +1 -1
  158. package/src/props/margin.props.ts +1 -1
  159. package/src/props/padding.props.ts +1 -1
  160. package/src/styles/tokens/blur.css +3 -0
  161. package/src/styles/tokens/constants.css +38 -35
  162. package/src/styles/tokens/radius.css +3 -0
  163. package/src/styles/tokens/shadow.css +64 -89
  164. package/src/styles/tokens/space.css +3 -0
  165. package/src/styles/tokens/transition.css +25 -12
  166. package/src/styles/utilities/gap.css +27 -0
  167. package/src/styles/utilities/margin.css +205 -7
  168. package/src/styles/utilities/padding.css +69 -0
  169. package/styles.css +1973 -144
  170. package/tokens/base.css +34 -25
  171. package/tokens.css +37 -28
  172. package/utilities.css +1806 -42
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var u=(s,e)=>{for(var a in e)r(s,a,{get:e[a],enumerable:!0})},c=(s,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of l(e))!m.call(s,t)&&t!==a&&r(s,t,{get:()=>e[t],enumerable:!(o=f(e,t))||o.enumerable});return s};var d=s=>c(r({},"__esModule",{value:!0}),s);var P={};u(P,{baseCheckboxPropDefs:()=>p});module.exports=d(P);var i=require("../../props/color.prop.js"),n=require("../../props/high-contrast.prop.js");const v=["1","2","3"],y=["classic","solid","soft","outline","surface"],D=["solid","translucent"],p={size:{type:"enum",className:"rt-r-size",values:v,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:y,default:"solid"},material:{type:"enum",values:D,default:void 0},...i.colorPropDef,...n.highContrastPropDef};
1
+ "use strict";var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var u=(s,e)=>{for(var a in e)r(s,a,{get:e[a],enumerable:!0})},c=(s,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of l(e))!m.call(s,t)&&t!==a&&r(s,t,{get:()=>e[t],enumerable:!(o=f(e,t))||o.enumerable});return s};var d=s=>c(r({},"__esModule",{value:!0}),s);var P={};u(P,{baseCheckboxPropDefs:()=>p});module.exports=d(P);var i=require("../../props/color.prop.js"),n=require("../../props/high-contrast.prop.js");const v=["1","2","3","4","5","6","7","8","9","10","11","12"],y=["classic","solid","soft","outline","surface"],D=["solid","translucent"],p={size:{type:"enum",className:"rt-r-size",values:v,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:y,default:"solid"},material:{type:"enum",values:D,default:void 0},...i.colorPropDef,...n.highContrastPropDef};
2
2
  //# sourceMappingURL=base-checkbox.props.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/_internal/base-checkbox.props.ts"],
4
- "sourcesContent": ["import { colorPropDef } from '../../props/color.prop.js';\nimport { highContrastPropDef } from '../../props/high-contrast.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst sizes = ['1', '2', '3'] as const;\nconst variants = ['classic', 'solid', 'soft', 'outline', 'surface'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst baseCheckboxPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'solid' },\n material: { type: 'enum', values: materials, default: undefined },\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n material: PropDef<(typeof materials)[number] | undefined>;\n};\n\nexport { baseCheckboxPropDefs };\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA6B,qCAC7BC,EAAoC,6CAIpC,MAAMC,EAAQ,CAAC,IAAK,IAAK,GAAG,EACtBC,EAAW,CAAC,UAAW,QAAS,OAAQ,UAAW,SAAS,EAC5DC,EAAY,CAAC,QAAS,aAAa,EAEnCN,EAAuB,CAC3B,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQI,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,OAAQ,EACrF,SAAU,CAAE,KAAM,OAAQ,OAAQC,EAAW,QAAS,MAAU,EAChE,GAAG,eACH,GAAG,qBACL",
4
+ "sourcesContent": ["import { colorPropDef } from '../../props/color.prop.js';\nimport { highContrastPropDef } from '../../props/high-contrast.prop.js';\n\nimport type { PropDef } from '../../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst variants = ['classic', 'solid', 'soft', 'outline', 'surface'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst baseCheckboxPropDefs = {\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'solid' },\n material: { type: 'enum', values: materials, default: undefined },\n ...colorPropDef,\n ...highContrastPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n material: PropDef<(typeof materials)[number] | undefined>;\n};\n\nexport { baseCheckboxPropDefs };\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA6B,qCAC7BC,EAAoC,6CAIpC,MAAMC,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EACtEC,EAAW,CAAC,UAAW,QAAS,OAAQ,UAAW,SAAS,EAC5DC,EAAY,CAAC,QAAS,aAAa,EAEnCN,EAAuB,CAC3B,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQI,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,OAAQ,EACrF,SAAU,CAAE,KAAM,OAAQ,OAAQC,EAAW,QAAS,MAAU,EAChE,GAAG,eACH,GAAG,qBACL",
6
6
  "names": ["base_checkbox_props_exports", "__export", "baseCheckboxPropDefs", "__toCommonJS", "import_color_prop", "import_high_contrast_prop", "sizes", "variants", "materials"]
7
7
  }
@@ -34,7 +34,7 @@ declare const avatarPropDefs: {
34
34
  size: {
35
35
  type: "enum";
36
36
  className: string;
37
- values: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
37
+ values: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
38
38
  default: "3";
39
39
  responsive: true;
40
40
  };
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var m=(a,e)=>{for(var r in e)s(a,r,{get:e[r],enumerable:!0})},v=(a,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of c(e))!d.call(a,t)&&t!==r&&s(a,t,{get:()=>e[t],enumerable:!(o=l(e,t))||o.enumerable});return a};var D=a=>v(s({},"__esModule",{value:!0}),a);var g={};m(g,{avatarPropDefs:()=>u});module.exports=D(g);var n=require("../props/as-child.prop.js"),p=require("../props/color.prop.js"),f=require("../props/high-contrast.prop.js"),i=require("../props/radius.prop.js");const P=["1","2","3","4","5","6","7","8","9"],y=["classic","solid","soft","surface","outline"],b=["solid","translucent"],k=["solid","translucent"],u={...n.asChildPropDef,size:{type:"enum",className:"rt-r-size",values:P,default:"3",responsive:!0},variant:{type:"enum",className:"rt-variant",values:y,default:"soft"},...p.accentColorPropDef,...f.highContrastPropDef,...i.radiusPropDef,fallback:{type:"ReactNode",required:!0},material:{type:"enum",values:k,default:void 0},panelBackground:{type:"enum",values:b,default:void 0}};
1
+ "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var m=(a,e)=>{for(var r in e)s(a,r,{get:e[r],enumerable:!0})},v=(a,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of c(e))!d.call(a,t)&&t!==r&&s(a,t,{get:()=>e[t],enumerable:!(o=l(e,t))||o.enumerable});return a};var D=a=>v(s({},"__esModule",{value:!0}),a);var g={};m(g,{avatarPropDefs:()=>u});module.exports=D(g);var n=require("../props/as-child.prop.js"),p=require("../props/color.prop.js"),f=require("../props/high-contrast.prop.js"),i=require("../props/radius.prop.js");const P=["1","2","3","4","5","6","7","8","9","10","11","12"],y=["classic","solid","soft","surface","outline"],b=["solid","translucent"],k=["solid","translucent"],u={...n.asChildPropDef,size:{type:"enum",className:"rt-r-size",values:P,default:"3",responsive:!0},variant:{type:"enum",className:"rt-variant",values:y,default:"soft"},...p.accentColorPropDef,...f.highContrastPropDef,...i.radiusPropDef,fallback:{type:"ReactNode",required:!0},material:{type:"enum",values:k,default:void 0},panelBackground:{type:"enum",values:b,default:void 0}};
2
2
  //# sourceMappingURL=avatar.props.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/avatar.props.tsx"],
4
- "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] as const;\nconst variants = ['classic', 'solid', 'soft', 'surface', 'outline'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst avatarPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '3', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'soft' },\n ...accentColorPropDef,\n ...highContrastPropDef,\n ...radiusPropDef,\n fallback: { type: 'ReactNode', required: true },\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n fallback: PropDef<React.ReactNode>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n};\n\nexport { avatarPropDefs };\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA+B,qCAC/BC,EAAmC,kCACnCC,EAAoC,0CACpCC,EAA8B,mCAI9B,MAAMC,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACpDC,EAAW,CAAC,UAAW,QAAS,OAAQ,UAAW,SAAS,EAC5DC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EAEnCT,EAAiB,CACrB,GAAG,iBACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQM,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,MAAO,EACpF,GAAG,qBACH,GAAG,sBACH,GAAG,gBACH,SAAU,CAAE,KAAM,YAAa,SAAU,EAAK,EAC9C,SAAU,CAAE,KAAM,OAAQ,OAAQE,EAAW,QAAS,MAAU,EAIhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,CAChF",
4
+ "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColorPropDef } from '../props/color.prop.js';\nimport { highContrastPropDef } from '../props/high-contrast.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nconst variants = ['classic', 'solid', 'soft', 'surface', 'outline'] as const;\nconst panelBackgrounds = ['solid', 'translucent'] as const;\nconst materials = ['solid', 'translucent'] as const;\n\nconst avatarPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'rt-r-size', values: sizes, default: '3', responsive: true },\n variant: { type: 'enum', className: 'rt-variant', values: variants, default: 'soft' },\n ...accentColorPropDef,\n ...highContrastPropDef,\n ...radiusPropDef,\n fallback: { type: 'ReactNode', required: true },\n material: { type: 'enum', values: materials, default: undefined },\n /**\n * @deprecated Use `material` prop instead. This prop will be removed in a future version.\n */\n panelBackground: { type: 'enum', values: panelBackgrounds, default: undefined },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n fallback: PropDef<React.ReactNode>;\n material: PropDef<(typeof materials)[number] | undefined>;\n panelBackground: PropDef<(typeof panelBackgrounds)[number] | undefined>;\n};\n\nexport { avatarPropDefs };\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA+B,qCAC/BC,EAAmC,kCACnCC,EAAoC,0CACpCC,EAA8B,mCAI9B,MAAMC,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EACtEC,EAAW,CAAC,UAAW,QAAS,OAAQ,UAAW,SAAS,EAC5DC,EAAmB,CAAC,QAAS,aAAa,EAC1CC,EAAY,CAAC,QAAS,aAAa,EAEnCT,EAAiB,CACrB,GAAG,iBACH,KAAM,CAAE,KAAM,OAAQ,UAAW,YAAa,OAAQM,EAAO,QAAS,IAAK,WAAY,EAAK,EAC5F,QAAS,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQC,EAAU,QAAS,MAAO,EACpF,GAAG,qBACH,GAAG,sBACH,GAAG,gBACH,SAAU,CAAE,KAAM,YAAa,SAAU,EAAK,EAC9C,SAAU,CAAE,KAAM,OAAQ,OAAQE,EAAW,QAAS,MAAU,EAIhE,gBAAiB,CAAE,KAAM,OAAQ,OAAQD,EAAkB,QAAS,MAAU,CAChF",
6
6
  "names": ["avatar_props_exports", "__export", "avatarPropDefs", "__toCommonJS", "import_as_child_prop", "import_color_prop", "import_high_contrast_prop", "import_radius_prop", "sizes", "variants", "panelBackgrounds", "materials"]
7
7
  }
@@ -1,6 +1,38 @@
1
1
  import * as React from 'react';
2
2
  import { BaseButton } from './_internal/base-button.js';
3
3
  import type { BaseButtonProps } from './_internal/base-button.js';
4
+ /**
5
+ * Styles that can be overridden for a particular interaction state
6
+ */
7
+ interface ButtonOverrideStateStyles {
8
+ color?: string;
9
+ background?: string;
10
+ backgroundColor?: string;
11
+ boxShadow?: string;
12
+ filter?: string;
13
+ outline?: string;
14
+ outlineOffset?: string;
15
+ opacity?: string | number;
16
+ }
17
+ /**
18
+ * Full set of override styles keyed by interaction state
19
+ */
20
+ interface ButtonOverrideStyles {
21
+ /** Default/idle state styles */
22
+ normal?: ButtonOverrideStateStyles;
23
+ /** Hover state styles */
24
+ hover?: ButtonOverrideStateStyles;
25
+ /** Active (mouse down) state styles */
26
+ active?: ButtonOverrideStateStyles;
27
+ /** Toggle pressed state styles (data-state="on") */
28
+ pressed?: ButtonOverrideStateStyles;
29
+ /** Open state styles (e.g., when used as a trigger) */
30
+ open?: ButtonOverrideStateStyles;
31
+ /** Disabled state styles */
32
+ disabled?: ButtonOverrideStateStyles;
33
+ /** Focus-visible outline styles */
34
+ focus?: Pick<ButtonOverrideStateStyles, 'outline' | 'outlineOffset'>;
35
+ }
4
36
  type ButtonElement = React.ElementRef<typeof BaseButton>;
5
37
  /**
6
38
  * Tooltip configuration props that can be passed to Button
@@ -22,7 +54,13 @@ interface ButtonTooltipProps {
22
54
  * Core Button props excluding the 'as' prop for polymorphic behavior
23
55
  * Combines BaseButton props with tooltip functionality
24
56
  */
25
- type ButtonOwnProps = Omit<BaseButtonProps, 'as'> & ButtonTooltipProps;
57
+ type ButtonOwnProps = Omit<BaseButtonProps, 'as'> & ButtonTooltipProps & {
58
+ /**
59
+ * When using variant="override", provide token-based styles per state.
60
+ * We propagate these into CSS variables consumed by the override variant.
61
+ */
62
+ overrideStyles?: ButtonOverrideStyles;
63
+ };
26
64
  /**
27
65
  * Polymorphic Button props that support rendering as different HTML elements
28
66
  * @template C - The element type to render as (defaults to 'button')
@@ -65,5 +103,5 @@ declare const Button: ButtonComponent & {
65
103
  displayName?: string;
66
104
  };
67
105
  export { Button };
68
- export type { ButtonProps };
106
+ export type { ButtonProps, ButtonOverrideStyles, ButtonOverrideStateStyles };
69
107
  //# sourceMappingURL=button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,KAAK,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzD;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,uDAAuD;IACvD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yDAAyD;IACzD,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;GAGG;AACH,KAAK,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,kBAAkB,CAAC;AAEvE;;;GAGG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,IAAI,cAAc,GAAG;IAC1E,0DAA0D;IAC1D,EAAE,CAAC,EAAE,CAAC,CAAC;CACR,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC,CAAC;AAElE;;;GAGG;AACH,KAAK,eAAe,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EAC5D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,MAAM,EAqDP,eAAe,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIhD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;GAEG;AACH,UAAU,yBAAyB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,gCAAgC;IAChC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,yBAAyB;IACzB,KAAK,CAAC,EAAE,yBAAyB,CAAC;IAClC,uCAAuC;IACvC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,oDAAoD;IACpD,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,uDAAuD;IACvD,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,mCAAmC;IACnC,KAAK,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;CACtE;AAED,KAAK,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzD;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,uDAAuD;IACvD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yDAAyD;IACzD,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClD,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;GAGG;AACH,KAAK,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAC/C,kBAAkB,GAAG;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEJ;;;GAGG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,IAAI,cAAc,GAAG;IAC1E,0DAA0D;IAC1D,EAAE,CAAC,EAAE,CAAC,CAAC;CACR,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC,CAAC;AAElE;;;GAGG;AACH,KAAK,eAAe,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EAC5D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,MAAM,EAyFP,eAAe,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIhD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.create;var p=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var O=(t,o)=>{for(var e in o)p(t,e,{get:o[e],enumerable:!0})},m=(t,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of T(o))!N.call(t,n)&&n!==e&&p(t,n,{get:()=>o[n],enumerable:!(s=E(o,n))||s.enumerable});return t};var B=(t,o,e)=>(e=t!=null?C(w(t)):{},m(o||!t||!t.__esModule?p(e,"default",{value:t,enumerable:!0}):e,t)),g=t=>m(p({},"__esModule",{value:!0}),t);var x={};O(x,{Button:()=>i});module.exports=g(x);var r=B(require("react")),c=B(require("classnames")),d=require("./_internal/base-button.js"),f=require("./tooltip.js");const i=r.forwardRef(({className:t,tooltip:o,tooltipSide:e="top",tooltipAlign:s="center",tooltipDelayDuration:n,tooltipDisableHoverableContent:y,...b},R)=>{const a=r.useId(),l=!!o,P=r.useMemo(()=>l?{"aria-describedby":a}:{},[l,a]),u=r.createElement(d.BaseButton,{...b,...P,ref:R,className:(0,c.default)("rt-Button",t)});return o?r.createElement(f.Tooltip,{content:o,side:e,align:s,delayDuration:n,disableHoverableContent:y,id:a},u):u});i.displayName="Button";
1
+ "use strict";var k=Object.create;var c=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var D=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})},v=(t,e,r,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of E(e))!N.call(t,u)&&u!==r&&c(t,u,{get:()=>e[u],enumerable:!(d=$(e,u))||d.enumerable});return t};var O=(t,e,r)=>(r=t!=null?k(T(t)):{},v(e||!t||!t.__esModule?c(r,"default",{value:t,enumerable:!0}):r,t)),A=t=>v(c({},"__esModule",{value:!0}),t);var F={};D(F,{Button:()=>b});module.exports=A(F);var l=O(require("react")),S=O(require("classnames")),R=require("./_internal/base-button.js"),P=require("./tooltip.js");const b=l.forwardRef(({className:t,tooltip:e,tooltipSide:r="top",tooltipAlign:d="center",tooltipDelayDuration:u,tooltipDisableHoverableContent:C,overrideStyles:n,...p},w)=>{const f=l.useId(),B=!!e,h=l.useMemo(()=>B?{"aria-describedby":f}:{},[B,f]),m=l.useMemo(()=>{if(!n)return;const g={},i=(s,o)=>{o!==void 0&&(g[s]=o)},a=(s,o)=>{o&&(i(`--button-override-${s}color`,o.color),i(`--button-override-${s}background`,o.background),i(`--button-override-${s}background-color`,o.backgroundColor),i(`--button-override-${s}box-shadow`,o.boxShadow),i(`--button-override-${s}filter`,o.filter),i(`--button-override-${s}outline`,o.outline),i(`--button-override-${s}outline-offset`,o.outlineOffset),i(`--button-override-${s}opacity`,o.opacity))};return a("",n.normal),a("hover-",n.hover),a("active-",n.active),a("pressed-",n.pressed),a("open-",n.open),a("disabled-",n.disabled),n.focus&&(i("--button-override-focus-outline",n.focus.outline),i("--button-override-focus-outline-offset",n.focus.outlineOffset)),g},[n]),y=l.createElement(R.BaseButton,{...p,...h,ref:w,className:(0,S.default)("rt-Button",t),style:m?{...m,...p.style}:p.style});return e?l.createElement(P.Tooltip,{content:e,side:r,align:d,delayDuration:u,disableHoverableContent:C,id:f},y):y});b.displayName="Button";
2
2
  //# sourceMappingURL=button.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/button.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { BaseButton } from './_internal/base-button.js';\nimport { Tooltip } from './tooltip.js';\nimport type { BaseButtonProps } from './_internal/base-button.js';\n\ntype ButtonElement = React.ElementRef<typeof BaseButton>;\n\n/**\n * Tooltip configuration props that can be passed to Button\n * These props are forwarded to the underlying Tooltip component\n */\ninterface ButtonTooltipProps {\n /** Content to display in the tooltip on hover/focus */\n tooltip?: React.ReactNode;\n /** Side of the button where the tooltip should appear */\n tooltipSide?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the tooltip relative to the button */\n tooltipAlign?: 'start' | 'center' | 'end';\n /** Delay before showing the tooltip (in milliseconds) */\n tooltipDelayDuration?: number;\n /** Whether to disable hoverable content behavior */\n tooltipDisableHoverableContent?: boolean;\n}\n\n/**\n * Core Button props excluding the 'as' prop for polymorphic behavior\n * Combines BaseButton props with tooltip functionality\n */\ntype ButtonOwnProps = Omit<BaseButtonProps, 'as'> & ButtonTooltipProps;\n\n/**\n * Polymorphic Button props that support rendering as different HTML elements\n * @template C - The element type to render as (defaults to 'button')\n */\ntype ButtonProps<C extends React.ElementType = 'button'> = ButtonOwnProps & {\n /** Element type to render as (e.g., 'a', 'span', etc.) */\n as?: C;\n} & Omit<React.ComponentPropsWithoutRef<C>, keyof ButtonOwnProps>;\n\n/**\n * Button component type that supports polymorphic rendering\n * @template C - The element type to render as\n */\ntype ButtonComponent = <C extends React.ElementType = 'button'>(\n props: ButtonProps<C> & { ref?: React.ForwardedRef<ButtonElement> },\n) => React.ReactElement | null;\n\n/**\n * Button component for triggering actions throughout your interface\n *\n * The Button component is the primary interactive element in the Kookie User Interface.\n * It provides six visual variants, four sizes, comprehensive color options, and built-in\n * tooltip support. The component automatically handles icon sizing, supports responsive\n * layouts, and provides accessibility compliance out of the box.\n *\n * @example\n * ```tsx\n * // Basic button\n * <Button>Click me</Button>\n *\n * // Button with variant and size\n * <Button variant=\"solid\" size=\"3\">Primary Action</Button>\n *\n * // Button with tooltip\n * <Button tooltip=\"Save your progress\">Save</Button>\n *\n * // Polymorphic button as link\n * <Button as=\"a\" href=\"/dashboard\">Go to Dashboard</Button>\n * ```\n */\nconst Button = React.forwardRef(\n (\n {\n className,\n tooltip,\n tooltipSide = 'top',\n tooltipAlign = 'center',\n tooltipDelayDuration,\n tooltipDisableHoverableContent,\n ...props\n }: ButtonProps,\n forwardedRef: React.ForwardedRef<ButtonElement>,\n ) => {\n // Generate unique ID for tooltip accessibility\n const tooltipId = React.useId();\n const hasTooltip = Boolean(tooltip);\n\n // Prepare accessibility props for tooltip integration\n const tooltipAccessibilityProps = React.useMemo(\n () => (hasTooltip ? { 'aria-describedby': tooltipId } : {}),\n [hasTooltip, tooltipId],\n );\n\n // Create the base button element with tooltip accessibility props\n const button = (\n <BaseButton\n {...props}\n {...tooltipAccessibilityProps}\n ref={forwardedRef}\n className={classNames('rt-Button', className)}\n />\n );\n\n // If no tooltip is provided, return the button as-is for better performance\n if (!tooltip) {\n return button;\n }\n\n // Wrap with Tooltip when tooltip content is provided\n // This creates a compound component that handles both button and tooltip functionality\n return (\n <Tooltip\n content={tooltip}\n side={tooltipSide}\n align={tooltipAlign}\n delayDuration={tooltipDelayDuration}\n disableHoverableContent={tooltipDisableHoverableContent}\n id={tooltipId}\n >\n {button}\n </Tooltip>\n );\n },\n) as ButtonComponent & { displayName?: string };\n\nButton.displayName = 'Button';\n\nexport { Button };\nexport type { ButtonProps };\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,oBACvBC,EAAuB,yBAEvBC,EAA2B,sCAC3BC,EAAwB,wBAoExB,MAAML,EAASE,EAAM,WACnB,CACE,CACE,UAAAI,EACA,QAAAC,EACA,YAAAC,EAAc,MACd,aAAAC,EAAe,SACf,qBAAAC,EACA,+BAAAC,EACA,GAAGC,CACL,EACAC,IACG,CAEH,MAAMC,EAAYZ,EAAM,MAAM,EACxBa,EAAa,EAAQR,EAGrBS,EAA4Bd,EAAM,QACtC,IAAOa,EAAa,CAAE,mBAAoBD,CAAU,EAAI,CAAC,EACzD,CAACC,EAAYD,CAAS,CACxB,EAGMG,EACJf,EAAA,cAAC,cACE,GAAGU,EACH,GAAGI,EACJ,IAAKH,EACL,aAAW,EAAAK,SAAW,YAAaZ,CAAS,EAC9C,EAIF,OAAKC,EAOHL,EAAA,cAAC,WACC,QAASK,EACT,KAAMC,EACN,MAAOC,EACP,cAAeC,EACf,wBAAyBC,EACzB,GAAIG,GAEHG,CACH,EAfOA,CAiBX,CACF,EAEAjB,EAAO,YAAc",
6
- "names": ["button_exports", "__export", "Button", "__toCommonJS", "React", "import_classnames", "import_base_button", "import_tooltip", "className", "tooltip", "tooltipSide", "tooltipAlign", "tooltipDelayDuration", "tooltipDisableHoverableContent", "props", "forwardedRef", "tooltipId", "hasTooltip", "tooltipAccessibilityProps", "button", "classNames"]
4
+ "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { BaseButton } from './_internal/base-button.js';\nimport { Tooltip } from './tooltip.js';\nimport type { BaseButtonProps } from './_internal/base-button.js';\n\n/**\n * Styles that can be overridden for a particular interaction state\n */\ninterface ButtonOverrideStateStyles {\n color?: string;\n background?: string;\n backgroundColor?: string;\n boxShadow?: string;\n filter?: string;\n outline?: string;\n outlineOffset?: string;\n opacity?: string | number;\n}\n\n/**\n * Full set of override styles keyed by interaction state\n */\ninterface ButtonOverrideStyles {\n /** Default/idle state styles */\n normal?: ButtonOverrideStateStyles;\n /** Hover state styles */\n hover?: ButtonOverrideStateStyles;\n /** Active (mouse down) state styles */\n active?: ButtonOverrideStateStyles;\n /** Toggle pressed state styles (data-state=\"on\") */\n pressed?: ButtonOverrideStateStyles;\n /** Open state styles (e.g., when used as a trigger) */\n open?: ButtonOverrideStateStyles;\n /** Disabled state styles */\n disabled?: ButtonOverrideStateStyles;\n /** Focus-visible outline styles */\n focus?: Pick<ButtonOverrideStateStyles, 'outline' | 'outlineOffset'>;\n}\n\ntype ButtonElement = React.ElementRef<typeof BaseButton>;\n\n/**\n * Tooltip configuration props that can be passed to Button\n * These props are forwarded to the underlying Tooltip component\n */\ninterface ButtonTooltipProps {\n /** Content to display in the tooltip on hover/focus */\n tooltip?: React.ReactNode;\n /** Side of the button where the tooltip should appear */\n tooltipSide?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the tooltip relative to the button */\n tooltipAlign?: 'start' | 'center' | 'end';\n /** Delay before showing the tooltip (in milliseconds) */\n tooltipDelayDuration?: number;\n /** Whether to disable hoverable content behavior */\n tooltipDisableHoverableContent?: boolean;\n}\n\n/**\n * Core Button props excluding the 'as' prop for polymorphic behavior\n * Combines BaseButton props with tooltip functionality\n */\ntype ButtonOwnProps = Omit<BaseButtonProps, 'as'> &\n ButtonTooltipProps & {\n /**\n * When using variant=\"override\", provide token-based styles per state.\n * We propagate these into CSS variables consumed by the override variant.\n */\n overrideStyles?: ButtonOverrideStyles;\n };\n\n/**\n * Polymorphic Button props that support rendering as different HTML elements\n * @template C - The element type to render as (defaults to 'button')\n */\ntype ButtonProps<C extends React.ElementType = 'button'> = ButtonOwnProps & {\n /** Element type to render as (e.g., 'a', 'span', etc.) */\n as?: C;\n} & Omit<React.ComponentPropsWithoutRef<C>, keyof ButtonOwnProps>;\n\n/**\n * Button component type that supports polymorphic rendering\n * @template C - The element type to render as\n */\ntype ButtonComponent = <C extends React.ElementType = 'button'>(\n props: ButtonProps<C> & { ref?: React.ForwardedRef<ButtonElement> },\n) => React.ReactElement | null;\n\n/**\n * Button component for triggering actions throughout your interface\n *\n * The Button component is the primary interactive element in the Kookie User Interface.\n * It provides six visual variants, four sizes, comprehensive color options, and built-in\n * tooltip support. The component automatically handles icon sizing, supports responsive\n * layouts, and provides accessibility compliance out of the box.\n *\n * @example\n * ```tsx\n * // Basic button\n * <Button>Click me</Button>\n *\n * // Button with variant and size\n * <Button variant=\"solid\" size=\"3\">Primary Action</Button>\n *\n * // Button with tooltip\n * <Button tooltip=\"Save your progress\">Save</Button>\n *\n * // Polymorphic button as link\n * <Button as=\"a\" href=\"/dashboard\">Go to Dashboard</Button>\n * ```\n */\nconst Button = React.forwardRef(\n (\n {\n className,\n tooltip,\n tooltipSide = 'top',\n tooltipAlign = 'center',\n tooltipDelayDuration,\n tooltipDisableHoverableContent,\n overrideStyles,\n ...props\n }: ButtonProps,\n forwardedRef: React.ForwardedRef<ButtonElement>,\n ) => {\n // Generate unique ID for tooltip accessibility\n const tooltipId = React.useId();\n const hasTooltip = Boolean(tooltip);\n\n // Prepare accessibility props for tooltip integration\n const tooltipAccessibilityProps = React.useMemo(\n () => (hasTooltip ? { 'aria-describedby': tooltipId } : {}),\n [hasTooltip, tooltipId],\n );\n\n // Create the base button element with tooltip accessibility props\n // Map overrideStyles to CSS variables consumed by the override variant rules\n const overrideVars = React.useMemo(() => {\n if (!overrideStyles) return undefined;\n const vars: Record<string, string | number> = {};\n const setVar = (key: string, value: string | number | undefined) => {\n if (value !== undefined) vars[key] = value;\n };\n const apply = (prefix: string, s?: ButtonOverrideStateStyles) => {\n if (!s) return;\n setVar(`--button-override-${prefix}color`, s.color);\n setVar(`--button-override-${prefix}background`, s.background);\n setVar(`--button-override-${prefix}background-color`, s.backgroundColor);\n setVar(`--button-override-${prefix}box-shadow`, s.boxShadow);\n setVar(`--button-override-${prefix}filter`, s.filter);\n setVar(`--button-override-${prefix}outline`, s.outline);\n setVar(`--button-override-${prefix}outline-offset`, s.outlineOffset);\n setVar(`--button-override-${prefix}opacity`, s.opacity as any);\n };\n\n apply('', overrideStyles.normal);\n apply('hover-', overrideStyles.hover);\n apply('active-', overrideStyles.active);\n apply('pressed-', overrideStyles.pressed);\n apply('open-', overrideStyles.open);\n apply('disabled-', overrideStyles.disabled);\n\n if (overrideStyles.focus) {\n setVar('--button-override-focus-outline', overrideStyles.focus.outline);\n setVar('--button-override-focus-outline-offset', overrideStyles.focus.outlineOffset);\n }\n\n return vars as unknown as React.CSSProperties;\n }, [overrideStyles]);\n\n const button = (\n <BaseButton\n {...props}\n {...tooltipAccessibilityProps}\n ref={forwardedRef}\n className={classNames('rt-Button', className)}\n style={overrideVars ? { ...overrideVars, ...(props as any).style } : (props as any).style}\n />\n );\n\n // If no tooltip is provided, return the button as-is for better performance\n if (!tooltip) {\n return button;\n }\n\n // Wrap with Tooltip when tooltip content is provided\n // This creates a compound component that handles both button and tooltip functionality\n return (\n <Tooltip\n content={tooltip}\n side={tooltipSide}\n align={tooltipAlign}\n delayDuration={tooltipDelayDuration}\n disableHoverableContent={tooltipDisableHoverableContent}\n id={tooltipId}\n >\n {button}\n </Tooltip>\n );\n },\n) as ButtonComponent & { displayName?: string };\n\nButton.displayName = 'Button';\n\nexport { Button };\nexport type { ButtonProps, ButtonOverrideStyles, ButtonOverrideStateStyles };\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,oBACvBC,EAAuB,yBAEvBC,EAA2B,sCAC3BC,EAAwB,wBA6GxB,MAAML,EAASE,EAAM,WACnB,CACE,CACE,UAAAI,EACA,QAAAC,EACA,YAAAC,EAAc,MACd,aAAAC,EAAe,SACf,qBAAAC,EACA,+BAAAC,EACA,eAAAC,EACA,GAAGC,CACL,EACAC,IACG,CAEH,MAAMC,EAAYb,EAAM,MAAM,EACxBc,EAAa,EAAQT,EAGrBU,EAA4Bf,EAAM,QACtC,IAAOc,EAAa,CAAE,mBAAoBD,CAAU,EAAI,CAAC,EACzD,CAACC,EAAYD,CAAS,CACxB,EAIMG,EAAehB,EAAM,QAAQ,IAAM,CACvC,GAAI,CAACU,EAAgB,OACrB,MAAMO,EAAwC,CAAC,EACzCC,EAAS,CAACC,EAAaC,IAAuC,CAC9DA,IAAU,SAAWH,EAAKE,CAAG,EAAIC,EACvC,EACMC,EAAQ,CAACC,EAAgBC,IAAkC,CAC1DA,IACLL,EAAO,qBAAqBI,CAAM,QAASC,EAAE,KAAK,EAClDL,EAAO,qBAAqBI,CAAM,aAAcC,EAAE,UAAU,EAC5DL,EAAO,qBAAqBI,CAAM,mBAAoBC,EAAE,eAAe,EACvEL,EAAO,qBAAqBI,CAAM,aAAcC,EAAE,SAAS,EAC3DL,EAAO,qBAAqBI,CAAM,SAAUC,EAAE,MAAM,EACpDL,EAAO,qBAAqBI,CAAM,UAAWC,EAAE,OAAO,EACtDL,EAAO,qBAAqBI,CAAM,iBAAkBC,EAAE,aAAa,EACnEL,EAAO,qBAAqBI,CAAM,UAAWC,EAAE,OAAc,EAC/D,EAEA,OAAAF,EAAM,GAAIX,EAAe,MAAM,EAC/BW,EAAM,SAAUX,EAAe,KAAK,EACpCW,EAAM,UAAWX,EAAe,MAAM,EACtCW,EAAM,WAAYX,EAAe,OAAO,EACxCW,EAAM,QAASX,EAAe,IAAI,EAClCW,EAAM,YAAaX,EAAe,QAAQ,EAEtCA,EAAe,QACjBQ,EAAO,kCAAmCR,EAAe,MAAM,OAAO,EACtEQ,EAAO,yCAA0CR,EAAe,MAAM,aAAa,GAG9EO,CACT,EAAG,CAACP,CAAc,CAAC,EAEbc,EACJxB,EAAA,cAAC,cACE,GAAGW,EACH,GAAGI,EACJ,IAAKH,EACL,aAAW,EAAAa,SAAW,YAAarB,CAAS,EAC5C,MAAOY,EAAe,CAAE,GAAGA,EAAc,GAAIL,EAAc,KAAM,EAAKA,EAAc,MACtF,EAIF,OAAKN,EAOHL,EAAA,cAAC,WACC,QAASK,EACT,KAAMC,EACN,MAAOC,EACP,cAAeC,EACf,wBAAyBC,EACzB,GAAII,GAEHW,CACH,EAfOA,CAiBX,CACF,EAEA1B,EAAO,YAAc",
6
+ "names": ["button_exports", "__export", "Button", "__toCommonJS", "React", "import_classnames", "import_base_button", "import_tooltip", "className", "tooltip", "tooltipSide", "tooltipAlign", "tooltipDelayDuration", "tooltipDisableHoverableContent", "overrideStyles", "props", "forwardedRef", "tooltipId", "hasTooltip", "tooltipAccessibilityProps", "overrideVars", "vars", "setVar", "key", "value", "apply", "prefix", "s", "button", "classNames"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chatbar.d.ts","sourceRoot":"","sources":["../../../src/components/chatbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatbar.d.ts","sourceRoot":"","sources":["../../../src/components/chatbar.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var qe=Object.create;var ie=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Je=Object.prototype.hasOwnProperty;var Qe=(t,n)=>{for(var s in n)ie(t,s,{get:n[s],enumerable:!0})},He=(t,n,s,m)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of Ge(n))!Je.call(t,l)&&l!==s&&ie(t,l,{get:()=>n[l],enumerable:!(m=Ye(n,l))||m.enumerable});return t};var Fe=(t,n,s)=>(s=t!=null?qe(_e(t)):{},He(n||!t||!t.__esModule?ie(s,"default",{value:t,enumerable:!0}):s,t)),Xe=t=>He(ie({},"__esModule",{value:!0}),t);var Ze={};Qe(Ze,{AttachTrigger:()=>Te,Attachment:()=>ce,AttachmentsRow:()=>we,InlineEnd:()=>Pe,InlineStart:()=>Re,Root:()=>xe,Row:()=>Ee,RowEnd:()=>Me,RowStart:()=>Se,Send:()=>Oe,Textarea:()=>Ae});module.exports=Xe(Ze);var e=Fe(require("react")),S=Fe(require("classnames")),ge=require("./icon-button.js"),me=require("./icons.js"),ae=require("./flex.js"),De=require("./scroll-area.js"),H=require("./slot.js"),ve=require("./card.js"),le=require("./text.js"),ke=require("react-dropzone");const ze=typeof window<"u"?e.useLayoutEffect:e.useEffect,Ie=e.createContext(null),k=()=>{const t=e.useContext(Ie);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},xe=e.forwardRef((t,n)=>{const{className:s,style:m,children:l,value:u,defaultValue:y="",onValueChange:p,open:d,defaultOpen:r=!1,onOpenChange:x,expandOn:T="both",minLines:A=1,maxLines:R=6,sendMode:P="whenDirty",disabled:j,readOnly:Y,onSubmit:F,size:O="2",variant:W,width:U,maxWidth:K,asChild:N,attachments:z,defaultAttachments:oe=[],onAttachmentsChange:$,accept:G,multiple:_=!0,maxAttachments:V,maxFileSize:M,paste:se=!0,pasteAccept:B,clearOnSubmit:L=!0,onAttachmentReject:h,dropzone:I=!0,...de}=t,J=u!=null,[ue,pe]=e.useState(y),a=J?u:ue,c=d!=null,[g,v]=e.useState(r),E=c?d:g,Q=e.useRef(null),he=e.useRef(null),q=z!=null,[X,Z]=e.useState(oe),D=q?z:X,ee=e.useRef(new Set),fe=o=>Array.isArray(o)?o:typeof o=="string"?o.split(",").map(i=>i.trim()):[],te=fe(G),Le=fe(B).length>0?fe(B):te,be=(o,i)=>{if(i.length===0)return!0;const f=o.type.toLowerCase(),w=o.name.toLowerCase();for(const b of i){const C=b.toLowerCase();if(C.includes("/")){const[re,ye]=C.split("/"),[ne,$e]=f.split("/");if(re==="*"||re===ne&&(ye==="*"||ye===$e))return!0}else if(C.startsWith(".")&&w.endsWith(C))return!0}return!1},je=o=>{const i=[],f=[],w=typeof V=="number"?Math.max(V-D.length,0):1/0;for(const b of o){if(i.length>=w){f.push({file:b,reason:"count"});continue}if(typeof M=="number"&&b.size>M){f.push({file:b,reason:"size"});continue}if(!be(b,te)){f.push({file:b,reason:"type"});continue}const C=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,re=/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(b.name),ne=(b.type||"").toLowerCase().startsWith("image/")||re?URL.createObjectURL(b):void 0;ne&&ee.current.add(ne),i.push({id:C,name:b.name,size:b.size,type:b.type,file:b,url:ne,status:"idle"})}return{accepted:i,rejected:f}},Ce=o=>{const{accepted:i,rejected:f}=je(o);if(i.length>0){const w=D.concat(i);q||Z(w),$?.(w)}f.length>0&&h?.(f)},We=o=>{const i=C=>Le.length===0?be(C,te):be(C,Le),f=[],w=[],b=typeof V=="number"?Math.max(V-D.length,0):1/0;for(const C of o){if(f.length>=b){w.push({file:C,reason:"count"});continue}if(typeof M=="number"&&C.size>M){w.push({file:C,reason:"size"});continue}if(!i(C)){w.push({file:C,reason:"type"});continue}f.push(C)}f.length>0&&Ce(f),w.length>0&&h?.(w)};e.useEffect(()=>{const o=new Set(D.map(i=>i.url).filter(Boolean));for(const i of Array.from(ee.current))o.has(i)||(URL.revokeObjectURL(i),ee.current.delete(i))},[D]),e.useEffect(()=>()=>{for(const o of Array.from(ee.current))URL.revokeObjectURL(o);ee.current.clear()},[]);const Ve=N?H.Slot:"div",Be=e.useCallback(o=>{const i=o.relatedTarget,f=Q.current;f&&(i&&f.contains(i)||(a?.trim?.()??"").length===0&&(c||v(!1),x?.(!1)))},[c,x,a]),{getRootProps:Ue,getInputProps:Ke,isDragActive:Ne}=(0,ke.useDropzone)({onDrop:(o,i)=>{if(o.length>0&&Ce(o),i.length>0&&h){const f=i.map(({file:w,errors:b})=>{const C=b[0]?.code==="file-too-large"?"size":b[0]?.code==="file-invalid-type"?"type":"count";return{file:w,reason:C}});h(f)}},accept:te.length>0?te.reduce((o,i)=>(i.includes("/")?o[i]=[]:i.startsWith(".")&&(o[i]=[]),o),{}):void 0,multiple:_,maxSize:M,noClick:!0,noKeyboard:!0,disabled:!I||j});return e.createElement(Ie.Provider,{value:{open:E,setOpen:o=>{c||v(o),x?.(o)},isOpenControlled:c,value:a,setValue:o=>{J||pe(o),p?.(o)},isValueControlled:J,size:O,expandOn:T,minLines:A,maxLines:R,sendMode:P,disabled:j,readOnly:Y,onSubmit:F,rootRef:Q,textareaRef:he,attachments:D,setAttachments:o=>{q||Z(o),$?.(o)},isAttachmentsControlled:q,accept:G,multiple:_,maxAttachments:V,maxFileSize:M,paste:se,pasteAccept:B,clearOnSubmit:L,onAttachmentReject:h,dropzone:I,appendFiles:Ce,appendFilesFromPaste:We}},e.createElement(Ve,{...de,ref:o=>{typeof n=="function"?n(o):n&&(n.current=o),Q.current=o},className:(0,S.default)("rt-ChatbarRoot",`rt-r-size-${O}`,s),style:{position:"relative",width:U,maxWidth:K,...m},"data-state":E?"open":"closed","data-disabled":j?"":void 0,"data-readonly":Y?"":void 0,"data-drop-active":I&&Ne?"":void 0,"aria-expanded":E,onBlurCapture:Be},I&&e.createElement("input",{...Ke()}),e.createElement("div",{...I?Ue():{},style:{width:"100%",height:"100%"}},e.createElement(ve.Card,{className:"rt-ChatbarCard",size:Math.min(3,Number(O)+1).toString(),variant:W,style:{position:"relative"}},e.createElement("div",{className:"rt-ChatbarGrid"},l),I&&Ne&&e.createElement("div",{className:"rt-ChatbarDropOverlay"},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(le.Text,{color:"gray",size:O,weight:"medium"},"Drop files here to attach")))))))});xe.displayName="Chatbar.Root";const Ae=e.forwardRef((t,n)=>{const{className:s,style:m,asChild:l,onFocus:u,onInput:y,onChange:p,onPaste:d,onKeyDown:r,submitOnEnter:x=!1,rows:T,...A}=t,R=k(),{open:P,minLines:j,maxLines:Y,expandOn:F,disabled:O,readOnly:W,setOpen:U,setValue:K,textareaRef:N,value:z,isValueControlled:oe,sendMode:$,paste:G,appendFilesFromPaste:_,size:V}=R,M=e.useRef(0),se=e.useRef(0),B=e.useRef(0),L=e.useCallback(()=>{const a=N.current;if(!a)return;const c=window.getComputedStyle(a),g=parseFloat(c.lineHeight)||20,v=parseFloat(c.paddingTop)||0,E=parseFloat(c.paddingBottom)||0;M.current=g,se.current=v+E,B.current=Math.ceil(1*g)+v+E},[N]),h=e.useCallback(a=>{const c=N.current;if(!c)return;c.style.height="auto",M.current===0&&L();const g=M.current,v=se.current,E=a??P,Q=E?j:1,he=E?Y:1,q=Math.ceil(Q*g)+v,X=Math.ceil(he*g)+v,Z=Math.max(c.scrollHeight,q),D=Math.min(Z,X);c.style.height=`${D}px`,Z>X?(c.style.overflowY="auto",c.style.maxHeight=`${X}px`):(c.style.overflowY="hidden",c.style.maxHeight="none")},[P,j,Y,N,L]);ze(()=>{h()},[h,z,P]),ze(()=>{L(),h()},[L,h,V]),e.useEffect(()=>{const a=N.current;if(!a||typeof ResizeObserver>"u")return;let c=M.current;const g=new ResizeObserver(()=>{const v=window.getComputedStyle(a),E=parseFloat(v.lineHeight)||20;E!==c&&(c=E,L(),requestAnimationFrame(()=>h()))});return g.observe(a),()=>g.disconnect()},[N,L,h]),e.useEffect(()=>{},[]);const I=e.useCallback(a=>{O||W||((F==="focus"||F==="both")&&!P&&U(!0),u?.(a))},[O,W,F,P,U,u]),de=e.useCallback(a=>{const c=a.currentTarget,g=c.value;K(g),(F==="overflow"||F==="both")&&!P&&(c.style.height="auto",B.current===0&&L(),c.scrollHeight>B.current+1&&(U(!0),h(!0),requestAnimationFrame(()=>h(!0)))),requestAnimationFrame(()=>h()),p?.(a)},[F,P,U,K,p,h,L]),J=e.useCallback(a=>{if(G){const g=Array.from(a.clipboardData?.items??[]).filter(v=>v.kind==="file").map(v=>v.getAsFile()).filter(v=>!!v);g.length>0&&_(g)}setTimeout(()=>{P?h():h(!0)},0),d?.(a)},[G,P,h,d,_]),ue=e.useCallback(a=>{if(!x){r?.(a);return}if(a.key==="Enter"&&!a.shiftKey&&!a.altKey&&!a.ctrlKey&&!a.metaKey&&!a.nativeEvent.isComposing){if(O||W){r?.(a);return}if($==="never"){r?.(a);return}const g=z.trim().length>0||R.attachments.length>0;if($==="whenDirty"&&!g){r?.(a);return}a.preventDefault(),R.onSubmit?.({value:z,attachments:R.attachments}),R.clearOnSubmit&&(oe||K(""),R.setAttachments([]))}r?.(a)},[x,O,W,$,z,oe,K,R,r]),pe=l?H.Slot:"textarea";return e.createElement("div",{className:(0,S.default)("rt-ChatbarField","rt-ChatbarTextarea",s)},e.createElement(pe,{...A,ref:a=>{typeof n=="function"?n(a):n&&(n.current=a),N.current=a},className:"rt-ChatbarInput",value:z,onInput:y,onChange:de,onFocus:I,onPaste:J,onKeyDown:ue,disabled:O,readOnly:W,rows:P?j:1,spellCheck:A.spellCheck??!0,autoCorrect:A.autoCorrect??"on",style:m}))});Ae.displayName="Chatbar.Textarea";const Re=e.forwardRef((t,n)=>{const{children:s,asChild:m,style:l,className:u,...y}=t;return k().open?null:e.createElement(m?H.Slot:"div",{...y,ref:n,className:(0,S.default)("rt-ChatbarInlineStart",u),style:l},s)});Re.displayName="Chatbar.InlineStart";const Pe=e.forwardRef((t,n)=>{const{children:s,asChild:m,style:l,className:u,...y}=t;return k().open?null:e.createElement(m?H.Slot:"div",{...y,ref:n,className:(0,S.default)("rt-ChatbarInlineEnd",u),style:l},s)});Pe.displayName="Chatbar.InlineEnd";const we=e.forwardRef((t,n)=>{const{asChild:s,forceMount:m,renderAttachment:l,className:u,style:y,...p}=t,d=k();return!(d.attachments.length>0)&&!m?null:e.createElement(s?H.Slot:"div",{...p,ref:n,className:(0,S.default)("rt-ChatbarAttachmentsRow",u),style:y,role:"list","aria-label":p["aria-label"]??"Attachments"},e.createElement(De.ScrollArea,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(ae.Flex,{align:"center",gap:"2",style:{minWidth:"fit-content"}},d.attachments.map(T=>e.createElement(ce,{key:T.id,attachment:T,asChild:!!l},l?.(T))))))});we.displayName="Chatbar.AttachmentsRow";const ce=e.forwardRef((t,n)=>{const{attachment:s,asChild:m,className:l,style:u,children:y,...p}=t,d=k(),r=m?H.Slot:"div",x=!!s.url&&s.type.startsWith("image/");return e.createElement(r,{...p,ref:n,className:(0,S.default)("rt-ChatbarAttachment",l),style:u,role:"listitem","data-kind":x?"image":"file",title:s.name},y??e.createElement(ve.Card,{size:d.size,variant:"soft"},e.createElement(ae.Flex,{align:"center",gap:"3",pr:x?void 0:"6"},e.createElement("div",{className:"rt-ChatbarAttachmentPreview","aria-hidden":!0},x?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:s.url,alt:""}):e.createElement(me.FileTextIcon,null)),!x&&e.createElement(ae.Flex,{direction:"column",gap:"0",style:{minWidth:0}},e.createElement(le.Text,{size:d.size,weight:"medium",style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},s.name),e.createElement(le.Text,{size:"1",color:"gray"},Math.ceil(s.size/1024)," KB")),e.createElement(ge.IconButton,{className:"rt-ChatbarAttachmentRemove","aria-label":`Remove ${s.name}`,size:"1",variant:"classic",highContrast:!0,color:"gray",onClick:()=>d.setAttachments(d.attachments.filter(T=>T.id!==s.id))},e.createElement(me.CloseIcon,null)))))});ce.displayName="Chatbar.Attachment";const Te=e.forwardRef((t,n)=>{const{asChild:s,accept:m,multiple:l,className:u,style:y,...p}=t,d=k(),r=e.useRef(null),x=s?H.Slot:"button",T=(Array.isArray(m)?m:m?.split(",")??[]).join(",");return e.createElement(e.Fragment,null,e.createElement(x,{...p,ref:n,className:(0,S.default)("rt-ChatbarAttachTrigger",u),style:y,type:p.type??"button","aria-label":p["aria-label"]??"Add attachments",onClick:A=>{r.current&&r.current.click(),p.onClick?.(A)}}),e.createElement("input",{ref:r,type:"file",accept:T,multiple:l??d.multiple,tabIndex:-1,style:{display:"none"},onChange:A=>{const R=Array.from(A.currentTarget.files??[]);R.length>0&&d.appendFiles(R),A.currentTarget.value=""}}))});Te.displayName="Chatbar.AttachTrigger";const Ee=e.forwardRef((t,n)=>{const{asChild:s,children:m,className:l,style:u,...y}=t;return k().open?e.createElement(s?H.Slot:"div",{...y,ref:n,className:(0,S.default)("rt-ChatbarRow",l),style:u},e.createElement(ae.Flex,{align:"center",justify:"between",width:"100%"},m)):null});Ee.displayName="Chatbar.Row";const Se=e.forwardRef((t,n)=>{const{className:s,style:m,...l}=t;return e.createElement("div",{...l,ref:n,className:(0,S.default)("rt-ChatbarRowStart",s),style:m})});Se.displayName="Chatbar.RowStart";const Me=e.forwardRef((t,n)=>{const{className:s,style:m,...l}=t;return e.createElement("div",{...l,ref:n,className:(0,S.default)("rt-ChatbarRowEnd",s),style:m})});Me.displayName="Chatbar.RowEnd";const Oe=e.forwardRef((t,n)=>{const{asChild:s,clearOnSend:m=!0,disabled:l,children:u,className:y,style:p,...d}=t,r=k(),T=r.value.trim().length>0||r.attachments.length>0,A=r.sendMode==="always"||r.sendMode==="whenDirty"&&T;if(r.sendMode==="never")return null;const R=P=>{r.disabled||r.readOnly||(r.onSubmit?.({value:r.value,attachments:r.attachments}),m&&(r.isValueControlled||r.setValue(""),r.clearOnSubmit&&r.setAttachments([])),d.onClick?.(P))};return e.createElement(ge.IconButton,{...d,ref:n,size:r.size,variant:r.open?"solid":"ghost",disabled:l||r.disabled||r.readOnly,className:(0,S.default)("rt-ChatbarSend",y),style:{opacity:A?1:0,pointerEvents:A?"auto":"none",...p},asChild:s,onClick:R,"aria-label":d["aria-label"]??"Send"},u??"Send")});Oe.displayName="Chatbar.Send";
1
+ "use strict";var qe=Object.create;var ie=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Je=Object.prototype.hasOwnProperty;var Qe=(t,n)=>{for(var s in n)ie(t,s,{get:n[s],enumerable:!0})},He=(t,n,s,m)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of Ge(n))!Je.call(t,l)&&l!==s&&ie(t,l,{get:()=>n[l],enumerable:!(m=Ye(n,l))||m.enumerable});return t};var Fe=(t,n,s)=>(s=t!=null?qe(_e(t)):{},He(n||!t||!t.__esModule?ie(s,"default",{value:t,enumerable:!0}):s,t)),Xe=t=>He(ie({},"__esModule",{value:!0}),t);var Ze={};Qe(Ze,{AttachTrigger:()=>Te,Attachment:()=>ce,AttachmentsRow:()=>we,InlineEnd:()=>Pe,InlineStart:()=>Re,Root:()=>xe,Row:()=>Ee,RowEnd:()=>Me,RowStart:()=>Se,Send:()=>Oe,Textarea:()=>Ae});module.exports=Xe(Ze);var e=Fe(require("react")),S=Fe(require("classnames")),ge=require("./icon-button.js"),me=require("./icons.js"),ae=require("./flex.js"),De=require("./scroll-area.js"),H=require("./slot.js"),ve=require("./card.js"),le=require("./text.js"),ke=require("react-dropzone");const ze=typeof window<"u"?e.useLayoutEffect:e.useEffect,Ie=e.createContext(null),D=()=>{const t=e.useContext(Ie);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},xe=e.forwardRef((t,n)=>{const{className:s,style:m,children:l,value:u,defaultValue:y="",onValueChange:p,open:d,defaultOpen:r=!1,onOpenChange:x,expandOn:T="both",minLines:A=1,maxLines:R=6,sendMode:P="whenDirty",disabled:k,readOnly:Y,onSubmit:F,size:O="2",variant:j,width:U,maxWidth:K,asChild:N,attachments:W,defaultAttachments:oe=[],onAttachmentsChange:$,accept:G,multiple:_=!0,maxAttachments:V,maxFileSize:M,paste:se=!0,pasteAccept:B,clearOnSubmit:L=!0,onAttachmentReject:h,dropzone:z=!0,...de}=t,J=u!=null,[ue,pe]=e.useState(y),a=J?u:ue,c=d!=null,[g,v]=e.useState(r),E=c?d:g,Q=e.useRef(null),he=e.useRef(null),q="attachments"in t,[X,Z]=e.useState(oe),I=q?W??[]:X,ee=e.useRef(new Set),fe=o=>Array.isArray(o)?o:typeof o=="string"?o.split(",").map(i=>i.trim()):[],te=fe(G),Le=fe(B).length>0?fe(B):te,be=(o,i)=>{if(i.length===0)return!0;const f=o.type.toLowerCase(),w=o.name.toLowerCase();for(const b of i){const C=b.toLowerCase();if(C.includes("/")){const[re,ye]=C.split("/"),[ne,$e]=f.split("/");if(re==="*"||re===ne&&(ye==="*"||ye===$e))return!0}else if(C.startsWith(".")&&w.endsWith(C))return!0}return!1},je=o=>{const i=[],f=[],w=typeof V=="number"?Math.max(V-I.length,0):1/0;for(const b of o){if(i.length>=w){f.push({file:b,reason:"count"});continue}if(typeof M=="number"&&b.size>M){f.push({file:b,reason:"size"});continue}if(!be(b,te)){f.push({file:b,reason:"type"});continue}const C=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,re=/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(b.name),ne=(b.type||"").toLowerCase().startsWith("image/")||re?URL.createObjectURL(b):void 0;ne&&ee.current.add(ne),i.push({id:C,name:b.name,size:b.size,type:b.type,file:b,url:ne,status:"idle"})}return{accepted:i,rejected:f}},Ce=o=>{const{accepted:i,rejected:f}=je(o);if(i.length>0){const w=I.concat(i);q||Z(w),$?.(w)}f.length>0&&h?.(f)},We=o=>{const i=C=>Le.length===0?be(C,te):be(C,Le),f=[],w=[],b=typeof V=="number"?Math.max(V-I.length,0):1/0;for(const C of o){if(f.length>=b){w.push({file:C,reason:"count"});continue}if(typeof M=="number"&&C.size>M){w.push({file:C,reason:"size"});continue}if(!i(C)){w.push({file:C,reason:"type"});continue}f.push(C)}f.length>0&&Ce(f),w.length>0&&h?.(w)};e.useEffect(()=>{const o=new Set(I.map(i=>i.url).filter(Boolean));for(const i of Array.from(ee.current))o.has(i)||(URL.revokeObjectURL(i),ee.current.delete(i))},[I]),e.useEffect(()=>()=>{for(const o of Array.from(ee.current))URL.revokeObjectURL(o);ee.current.clear()},[]);const Ve=N?H.Slot:"div",Be=e.useCallback(o=>{const i=o.relatedTarget,f=Q.current;f&&(i&&f.contains(i)||(a?.trim?.()??"").length===0&&(c||v(!1),x?.(!1)))},[c,x,a]),{getRootProps:Ue,getInputProps:Ke,isDragActive:Ne}=(0,ke.useDropzone)({onDrop:(o,i)=>{if(o.length>0&&Ce(o),i.length>0&&h){const f=i.map(({file:w,errors:b})=>{const C=b[0]?.code==="file-too-large"?"size":b[0]?.code==="file-invalid-type"?"type":"count";return{file:w,reason:C}});h(f)}},accept:te.length>0?te.reduce((o,i)=>(i.includes("/")?o[i]=[]:i.startsWith(".")&&(o[i]=[]),o),{}):void 0,multiple:_,maxSize:M,noClick:!0,noKeyboard:!0,disabled:!z||k});return e.createElement(Ie.Provider,{value:{open:E,setOpen:o=>{c||v(o),x?.(o)},isOpenControlled:c,value:a,setValue:o=>{J||pe(o),p?.(o)},isValueControlled:J,size:O,expandOn:T,minLines:A,maxLines:R,sendMode:P,disabled:k,readOnly:Y,onSubmit:F,rootRef:Q,textareaRef:he,attachments:I,setAttachments:o=>{q||Z(o),$?.(o)},isAttachmentsControlled:q,accept:G,multiple:_,maxAttachments:V,maxFileSize:M,paste:se,pasteAccept:B,clearOnSubmit:L,onAttachmentReject:h,dropzone:z,appendFiles:Ce,appendFilesFromPaste:We}},e.createElement(Ve,{...de,ref:o=>{typeof n=="function"?n(o):n&&(n.current=o),Q.current=o},className:(0,S.default)("rt-ChatbarRoot",`rt-r-size-${O}`,s),style:{position:"relative",width:U,maxWidth:K,...m},"data-state":E?"open":"closed","data-disabled":k?"":void 0,"data-readonly":Y?"":void 0,"data-drop-active":z&&Ne?"":void 0,"aria-expanded":E,onBlurCapture:Be},z&&e.createElement("input",{...Ke()}),e.createElement("div",{...z?Ue():{},style:{width:"100%",height:"100%"}},e.createElement(ve.Card,{className:"rt-ChatbarCard",size:Math.min(3,Number(O)+1).toString(),variant:j,style:{position:"relative"}},e.createElement("div",{className:"rt-ChatbarGrid"},l),z&&Ne&&e.createElement("div",{className:"rt-ChatbarDropOverlay"},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(le.Text,{color:"gray",size:O,weight:"medium"},"Drop files here to attach")))))))});xe.displayName="Chatbar.Root";const Ae=e.forwardRef((t,n)=>{const{className:s,style:m,asChild:l,onFocus:u,onInput:y,onChange:p,onPaste:d,onKeyDown:r,submitOnEnter:x=!1,rows:T,...A}=t,R=D(),{open:P,minLines:k,maxLines:Y,expandOn:F,disabled:O,readOnly:j,setOpen:U,setValue:K,textareaRef:N,value:W,isValueControlled:oe,sendMode:$,paste:G,appendFilesFromPaste:_,size:V}=R,M=e.useRef(0),se=e.useRef(0),B=e.useRef(0),L=e.useCallback(()=>{const a=N.current;if(!a)return;const c=window.getComputedStyle(a),g=parseFloat(c.lineHeight)||20,v=parseFloat(c.paddingTop)||0,E=parseFloat(c.paddingBottom)||0;M.current=g,se.current=v+E,B.current=Math.ceil(1*g)+v+E},[N]),h=e.useCallback(a=>{const c=N.current;if(!c)return;c.style.height="auto",M.current===0&&L();const g=M.current,v=se.current,E=a??P,Q=E?k:1,he=E?Y:1,q=Math.ceil(Q*g)+v,X=Math.ceil(he*g)+v,Z=Math.max(c.scrollHeight,q),I=Math.min(Z,X);c.style.height=`${I}px`,Z>X?(c.style.overflowY="auto",c.style.maxHeight=`${X}px`):(c.style.overflowY="hidden",c.style.maxHeight="none")},[P,k,Y,N,L]);ze(()=>{h()},[h,W,P]),ze(()=>{L(),h()},[L,h,V]),e.useEffect(()=>{const a=N.current;if(!a||typeof ResizeObserver>"u")return;let c=M.current;const g=new ResizeObserver(()=>{const v=window.getComputedStyle(a),E=parseFloat(v.lineHeight)||20;E!==c&&(c=E,L(),requestAnimationFrame(()=>h()))});return g.observe(a),()=>g.disconnect()},[N,L,h]),e.useEffect(()=>{},[]);const z=e.useCallback(a=>{O||j||((F==="focus"||F==="both")&&!P&&U(!0),u?.(a))},[O,j,F,P,U,u]),de=e.useCallback(a=>{const c=a.currentTarget,g=c.value;K(g),(F==="overflow"||F==="both")&&!P&&(c.style.height="auto",B.current===0&&L(),c.scrollHeight>B.current+1&&(U(!0),h(!0),requestAnimationFrame(()=>h(!0)))),requestAnimationFrame(()=>h()),p?.(a)},[F,P,U,K,p,h,L]),J=e.useCallback(a=>{if(G){const g=Array.from(a.clipboardData?.items??[]).filter(v=>v.kind==="file").map(v=>v.getAsFile()).filter(v=>!!v);g.length>0&&_(g)}setTimeout(()=>{P?h():h(!0)},0),d?.(a)},[G,P,h,d,_]),ue=e.useCallback(a=>{if(!x){r?.(a);return}if(a.key==="Enter"&&!a.shiftKey&&!a.altKey&&!a.ctrlKey&&!a.metaKey&&!a.nativeEvent.isComposing){if(O||j){r?.(a);return}if($==="never"){r?.(a);return}const g=W.trim().length>0||R.attachments.length>0;if($==="whenDirty"&&!g){r?.(a);return}a.preventDefault(),R.onSubmit?.({value:W,attachments:R.attachments}),R.clearOnSubmit&&(oe||K(""),R.setAttachments([]))}r?.(a)},[x,O,j,$,W,oe,K,R,r]),pe=l?H.Slot:"textarea";return e.createElement("div",{className:(0,S.default)("rt-ChatbarField","rt-ChatbarTextarea",s)},e.createElement(pe,{...A,ref:a=>{typeof n=="function"?n(a):n&&(n.current=a),N.current=a},className:"rt-ChatbarInput",value:W,onInput:y,onChange:de,onFocus:z,onPaste:J,onKeyDown:ue,disabled:O,readOnly:j,rows:P?k:1,spellCheck:A.spellCheck??!0,autoCorrect:A.autoCorrect??"on",style:m}))});Ae.displayName="Chatbar.Textarea";const Re=e.forwardRef((t,n)=>{const{children:s,asChild:m,style:l,className:u,...y}=t;return D().open?null:e.createElement(m?H.Slot:"div",{...y,ref:n,className:(0,S.default)("rt-ChatbarInlineStart",u),style:l},s)});Re.displayName="Chatbar.InlineStart";const Pe=e.forwardRef((t,n)=>{const{children:s,asChild:m,style:l,className:u,...y}=t;return D().open?null:e.createElement(m?H.Slot:"div",{...y,ref:n,className:(0,S.default)("rt-ChatbarInlineEnd",u),style:l},s)});Pe.displayName="Chatbar.InlineEnd";const we=e.forwardRef((t,n)=>{const{asChild:s,forceMount:m,renderAttachment:l,className:u,style:y,...p}=t,d=D();return!(d.attachments.length>0)&&!m?null:e.createElement(s?H.Slot:"div",{...p,ref:n,className:(0,S.default)("rt-ChatbarAttachmentsRow",u),style:y,role:"list","aria-label":p["aria-label"]??"Attachments"},e.createElement(De.ScrollArea,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(ae.Flex,{align:"center",gap:"2",style:{minWidth:"fit-content"}},d.attachments.map(T=>e.createElement(ce,{key:T.id,attachment:T,asChild:!!l},l?.(T))))))});we.displayName="Chatbar.AttachmentsRow";const ce=e.forwardRef((t,n)=>{const{attachment:s,asChild:m,className:l,style:u,children:y,...p}=t,d=D(),r=m?H.Slot:"div",x=!!s.url&&s.type.startsWith("image/");return e.createElement(r,{...p,ref:n,className:(0,S.default)("rt-ChatbarAttachment",l),style:u,role:"listitem","data-kind":x?"image":"file",title:s.name},y??e.createElement(ve.Card,{size:d.size,variant:"soft"},e.createElement(ae.Flex,{align:"center",gap:"3",pr:x?void 0:"6"},e.createElement("div",{className:"rt-ChatbarAttachmentPreview","aria-hidden":!0},x?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:s.url,alt:""}):e.createElement(me.FileTextIcon,null)),!x&&e.createElement(ae.Flex,{direction:"column",gap:"0",style:{minWidth:0}},e.createElement(le.Text,{size:d.size,weight:"medium",style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},s.name),e.createElement(le.Text,{size:"1",color:"gray"},Math.ceil(s.size/1024)," KB")),e.createElement(ge.IconButton,{className:"rt-ChatbarAttachmentRemove","aria-label":`Remove ${s.name}`,size:"1",variant:"classic",highContrast:!0,color:"gray",onClick:()=>d.setAttachments(d.attachments.filter(T=>T.id!==s.id))},e.createElement(me.CloseIcon,null)))))});ce.displayName="Chatbar.Attachment";const Te=e.forwardRef((t,n)=>{const{asChild:s,accept:m,multiple:l,className:u,style:y,...p}=t,d=D(),r=e.useRef(null),x=s?H.Slot:"button",T=(Array.isArray(m)?m:m?.split(",")??[]).join(",");return e.createElement(e.Fragment,null,e.createElement(x,{...p,ref:n,className:(0,S.default)("rt-ChatbarAttachTrigger",u),style:y,type:p.type??"button","aria-label":p["aria-label"]??"Add attachments",onClick:A=>{r.current&&r.current.click(),p.onClick?.(A)}}),e.createElement("input",{ref:r,type:"file",accept:T,multiple:l??d.multiple,tabIndex:-1,style:{display:"none"},onChange:A=>{const R=Array.from(A.currentTarget.files??[]);R.length>0&&d.appendFiles(R),A.currentTarget.value=""}}))});Te.displayName="Chatbar.AttachTrigger";const Ee=e.forwardRef((t,n)=>{const{asChild:s,children:m,className:l,style:u,...y}=t;return D().open?e.createElement(s?H.Slot:"div",{...y,ref:n,className:(0,S.default)("rt-ChatbarRow",l),style:u},e.createElement(ae.Flex,{align:"center",justify:"between",width:"100%"},m)):null});Ee.displayName="Chatbar.Row";const Se=e.forwardRef((t,n)=>{const{className:s,style:m,...l}=t;return e.createElement("div",{...l,ref:n,className:(0,S.default)("rt-ChatbarRowStart",s),style:m})});Se.displayName="Chatbar.RowStart";const Me=e.forwardRef((t,n)=>{const{className:s,style:m,...l}=t;return e.createElement("div",{...l,ref:n,className:(0,S.default)("rt-ChatbarRowEnd",s),style:m})});Me.displayName="Chatbar.RowEnd";const Oe=e.forwardRef((t,n)=>{const{asChild:s,clearOnSend:m=!0,disabled:l,children:u,className:y,style:p,...d}=t,r=D(),T=r.value.trim().length>0||r.attachments.length>0,A=r.sendMode==="always"||r.sendMode==="whenDirty"&&T;if(r.sendMode==="never")return null;const R=P=>{r.disabled||r.readOnly||(r.onSubmit?.({value:r.value,attachments:r.attachments}),m&&(r.isValueControlled||r.setValue(""),r.clearOnSubmit&&r.setAttachments([])),d.onClick?.(P))};return e.createElement(ge.IconButton,{...d,ref:n,size:r.size,variant:r.open?"solid":"ghost",disabled:l||r.disabled||r.readOnly,className:(0,S.default)("rt-ChatbarSend",y),style:{opacity:A?1:0,pointerEvents:A?"auto":"none",...p},asChild:s,onClick:R,"aria-label":d["aria-label"]??"Send"},u??"Send")});Oe.displayName="Chatbar.Send";
2
2
  //# sourceMappingURL=chatbar.js.map