@frontify/fondue-components 27.0.1 → 28.0.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 (254) hide show
  1. package/dist/fondue-components.js +55 -53
  2. package/dist/fondue-components.js.map +1 -1
  3. package/dist/fondue-components10.js +1 -1
  4. package/dist/fondue-components100.js +17 -6
  5. package/dist/fondue-components100.js.map +1 -1
  6. package/dist/fondue-components101.js +150 -11
  7. package/dist/fondue-components101.js.map +1 -1
  8. package/dist/fondue-components102.js +44 -70
  9. package/dist/fondue-components102.js.map +1 -1
  10. package/dist/fondue-components103.js +14 -15
  11. package/dist/fondue-components103.js.map +1 -1
  12. package/dist/fondue-components104.js +15 -7
  13. package/dist/fondue-components104.js.map +1 -1
  14. package/dist/fondue-components105.js +107 -85
  15. package/dist/fondue-components105.js.map +1 -1
  16. package/dist/fondue-components106.js +11 -79
  17. package/dist/fondue-components106.js.map +1 -1
  18. package/dist/fondue-components107.js +17 -31
  19. package/dist/fondue-components107.js.map +1 -1
  20. package/dist/fondue-components108.js +11 -19
  21. package/dist/fondue-components108.js.map +1 -1
  22. package/dist/fondue-components109.js +16 -39
  23. package/dist/fondue-components109.js.map +1 -1
  24. package/dist/fondue-components11.js +3 -3
  25. package/dist/fondue-components110.js +9 -0
  26. package/dist/fondue-components110.js.map +1 -0
  27. package/dist/fondue-components111.js +15 -0
  28. package/dist/fondue-components111.js.map +1 -0
  29. package/dist/fondue-components112.js +74 -0
  30. package/dist/fondue-components112.js.map +1 -0
  31. package/dist/fondue-components113.js +18 -0
  32. package/dist/fondue-components113.js.map +1 -0
  33. package/dist/fondue-components114.js +10 -0
  34. package/dist/fondue-components114.js.map +1 -0
  35. package/dist/fondue-components115.js +92 -0
  36. package/dist/fondue-components115.js.map +1 -0
  37. package/dist/fondue-components116.js +84 -0
  38. package/dist/fondue-components116.js.map +1 -0
  39. package/dist/fondue-components117.js +34 -0
  40. package/dist/fondue-components117.js.map +1 -0
  41. package/dist/fondue-components118.js +32 -0
  42. package/dist/fondue-components118.js.map +1 -0
  43. package/dist/fondue-components12.js +7 -37
  44. package/dist/fondue-components12.js.map +1 -1
  45. package/dist/fondue-components120.js +44 -0
  46. package/dist/fondue-components120.js.map +1 -0
  47. package/dist/fondue-components121.js +22 -0
  48. package/dist/fondue-components121.js.map +1 -0
  49. package/dist/fondue-components122.js +24 -0
  50. package/dist/fondue-components122.js.map +1 -0
  51. package/dist/fondue-components123.js +43 -0
  52. package/dist/fondue-components123.js.map +1 -0
  53. package/dist/fondue-components124.js +71 -0
  54. package/dist/fondue-components124.js.map +1 -0
  55. package/dist/fondue-components125.js +34 -0
  56. package/dist/fondue-components125.js.map +1 -0
  57. package/dist/fondue-components126.js +12 -0
  58. package/dist/fondue-components126.js.map +1 -0
  59. package/dist/fondue-components127.js +156 -0
  60. package/dist/fondue-components127.js.map +1 -0
  61. package/dist/fondue-components128.js +111 -0
  62. package/dist/fondue-components128.js.map +1 -0
  63. package/dist/fondue-components129.js +19 -0
  64. package/dist/fondue-components129.js.map +1 -0
  65. package/dist/fondue-components13.js +36 -121
  66. package/dist/fondue-components13.js.map +1 -1
  67. package/dist/fondue-components130.js +19 -0
  68. package/dist/fondue-components130.js.map +1 -0
  69. package/dist/fondue-components131.js +32 -0
  70. package/dist/fondue-components131.js.map +1 -0
  71. package/dist/fondue-components132.js +16 -0
  72. package/dist/fondue-components132.js.map +1 -0
  73. package/dist/fondue-components133.js +10 -0
  74. package/dist/fondue-components133.js.map +1 -0
  75. package/dist/fondue-components14.js +121 -36
  76. package/dist/fondue-components14.js.map +1 -1
  77. package/dist/fondue-components15.js +30 -39
  78. package/dist/fondue-components15.js.map +1 -1
  79. package/dist/fondue-components16.js +44 -41
  80. package/dist/fondue-components16.js.map +1 -1
  81. package/dist/fondue-components17.js +42 -57
  82. package/dist/fondue-components17.js.map +1 -1
  83. package/dist/fondue-components18.js +55 -41
  84. package/dist/fondue-components18.js.map +1 -1
  85. package/dist/fondue-components19.js +39 -16
  86. package/dist/fondue-components19.js.map +1 -1
  87. package/dist/fondue-components20.js +17 -43
  88. package/dist/fondue-components20.js.map +1 -1
  89. package/dist/fondue-components21.js +42 -69
  90. package/dist/fondue-components21.js.map +1 -1
  91. package/dist/fondue-components22.js +72 -16
  92. package/dist/fondue-components22.js.map +1 -1
  93. package/dist/fondue-components23.js +18 -77
  94. package/dist/fondue-components23.js.map +1 -1
  95. package/dist/fondue-components24.js +75 -34
  96. package/dist/fondue-components24.js.map +1 -1
  97. package/dist/fondue-components25.js +34 -53
  98. package/dist/fondue-components25.js.map +1 -1
  99. package/dist/fondue-components26.js +55 -23
  100. package/dist/fondue-components26.js.map +1 -1
  101. package/dist/fondue-components27.js +23 -55
  102. package/dist/fondue-components27.js.map +1 -1
  103. package/dist/fondue-components28.js +52 -97
  104. package/dist/fondue-components28.js.map +1 -1
  105. package/dist/fondue-components29.js +98 -31
  106. package/dist/fondue-components29.js.map +1 -1
  107. package/dist/fondue-components3.js +1 -1
  108. package/dist/fondue-components30.js +31 -194
  109. package/dist/fondue-components30.js.map +1 -1
  110. package/dist/fondue-components31.js +184 -134
  111. package/dist/fondue-components31.js.map +1 -1
  112. package/dist/fondue-components32.js +143 -130
  113. package/dist/fondue-components32.js.map +1 -1
  114. package/dist/fondue-components33.js +131 -30
  115. package/dist/fondue-components33.js.map +1 -1
  116. package/dist/fondue-components34.js +29 -78
  117. package/dist/fondue-components34.js.map +1 -1
  118. package/dist/fondue-components35.js +67 -110
  119. package/dist/fondue-components35.js.map +1 -1
  120. package/dist/fondue-components36.js +121 -34
  121. package/dist/fondue-components36.js.map +1 -1
  122. package/dist/fondue-components37.js +36 -56
  123. package/dist/fondue-components37.js.map +1 -1
  124. package/dist/fondue-components38.js +56 -20
  125. package/dist/fondue-components38.js.map +1 -1
  126. package/dist/fondue-components39.js +20 -23
  127. package/dist/fondue-components39.js.map +1 -1
  128. package/dist/fondue-components4.js +3 -3
  129. package/dist/fondue-components40.js +25 -7
  130. package/dist/fondue-components40.js.map +1 -1
  131. package/dist/fondue-components41.js +7 -8
  132. package/dist/fondue-components41.js.map +1 -1
  133. package/dist/fondue-components42.js +9 -41
  134. package/dist/fondue-components42.js.map +1 -1
  135. package/dist/fondue-components43.js +41 -5
  136. package/dist/fondue-components43.js.map +1 -1
  137. package/dist/fondue-components44.js +1 -1
  138. package/dist/fondue-components45.js +3 -11
  139. package/dist/fondue-components45.js.map +1 -1
  140. package/dist/fondue-components46.js +13 -32
  141. package/dist/fondue-components46.js.map +1 -1
  142. package/dist/fondue-components47.js +32 -54
  143. package/dist/fondue-components47.js.map +1 -1
  144. package/dist/fondue-components48.js +48 -125
  145. package/dist/fondue-components48.js.map +1 -1
  146. package/dist/fondue-components49.js +130 -20
  147. package/dist/fondue-components49.js.map +1 -1
  148. package/dist/fondue-components5.js +2 -2
  149. package/dist/fondue-components50.js +21 -53
  150. package/dist/fondue-components50.js.map +1 -1
  151. package/dist/fondue-components51.js +53 -8
  152. package/dist/fondue-components51.js.map +1 -1
  153. package/dist/fondue-components52.js +8 -13
  154. package/dist/fondue-components52.js.map +1 -1
  155. package/dist/fondue-components53.js +13 -17
  156. package/dist/fondue-components53.js.map +1 -1
  157. package/dist/fondue-components54.js +16 -4
  158. package/dist/fondue-components54.js.map +1 -1
  159. package/dist/fondue-components55.js +5 -18
  160. package/dist/fondue-components55.js.map +1 -1
  161. package/dist/fondue-components56.js +18 -19
  162. package/dist/fondue-components56.js.map +1 -1
  163. package/dist/fondue-components57.js +18 -4
  164. package/dist/fondue-components57.js.map +1 -1
  165. package/dist/fondue-components58.js +43 -12
  166. package/dist/fondue-components58.js.map +1 -1
  167. package/dist/fondue-components59.js +24 -4
  168. package/dist/fondue-components59.js.map +1 -1
  169. package/dist/fondue-components6.js +1 -1
  170. package/dist/fondue-components60.js +22 -17
  171. package/dist/fondue-components60.js.map +1 -1
  172. package/dist/fondue-components61.js +4 -10
  173. package/dist/fondue-components61.js.map +1 -1
  174. package/dist/fondue-components62.js +11 -35
  175. package/dist/fondue-components62.js.map +1 -1
  176. package/dist/fondue-components63.js +4 -6
  177. package/dist/fondue-components63.js.map +1 -1
  178. package/dist/fondue-components64.js +17 -4
  179. package/dist/fondue-components64.js.map +1 -1
  180. package/dist/fondue-components65.js +10 -12
  181. package/dist/fondue-components65.js.map +1 -1
  182. package/dist/fondue-components66.js +35 -7
  183. package/dist/fondue-components66.js.map +1 -1
  184. package/dist/fondue-components67.js +6 -12
  185. package/dist/fondue-components67.js.map +1 -1
  186. package/dist/fondue-components68.js +1 -1
  187. package/dist/fondue-components69.js +12 -24
  188. package/dist/fondue-components69.js.map +1 -1
  189. package/dist/fondue-components7.js +1 -1
  190. package/dist/fondue-components70.js +8 -16
  191. package/dist/fondue-components70.js.map +1 -1
  192. package/dist/fondue-components71.js +13 -20
  193. package/dist/fondue-components71.js.map +1 -1
  194. package/dist/fondue-components72.js +5 -20
  195. package/dist/fondue-components72.js.map +1 -1
  196. package/dist/fondue-components73.js +24 -19
  197. package/dist/fondue-components73.js.map +1 -1
  198. package/dist/fondue-components74.js +17 -20
  199. package/dist/fondue-components74.js.map +1 -1
  200. package/dist/fondue-components75.js +20 -19
  201. package/dist/fondue-components75.js.map +1 -1
  202. package/dist/fondue-components76.js +20 -8
  203. package/dist/fondue-components76.js.map +1 -1
  204. package/dist/fondue-components77.js +20 -11
  205. package/dist/fondue-components77.js.map +1 -1
  206. package/dist/fondue-components78.js +20 -11
  207. package/dist/fondue-components78.js.map +1 -1
  208. package/dist/fondue-components79.js +19 -7
  209. package/dist/fondue-components79.js.map +1 -1
  210. package/dist/fondue-components8.js +5 -5
  211. package/dist/fondue-components80.js +8 -13
  212. package/dist/fondue-components80.js.map +1 -1
  213. package/dist/fondue-components81.js +10 -22
  214. package/dist/fondue-components81.js.map +1 -1
  215. package/dist/fondue-components82.js +11 -34
  216. package/dist/fondue-components82.js.map +1 -1
  217. package/dist/fondue-components83.js +6 -10
  218. package/dist/fondue-components83.js.map +1 -1
  219. package/dist/fondue-components84.js +12 -67
  220. package/dist/fondue-components84.js.map +1 -1
  221. package/dist/fondue-components85.js +22 -14
  222. package/dist/fondue-components85.js.map +1 -1
  223. package/dist/fondue-components86.js +34 -25
  224. package/dist/fondue-components86.js.map +1 -1
  225. package/dist/fondue-components87.js +8 -16
  226. package/dist/fondue-components87.js.map +1 -1
  227. package/dist/fondue-components88.js +67 -24
  228. package/dist/fondue-components88.js.map +1 -1
  229. package/dist/fondue-components89.js +14 -8
  230. package/dist/fondue-components89.js.map +1 -1
  231. package/dist/fondue-components9.js +5 -5
  232. package/dist/fondue-components90.js +24 -25
  233. package/dist/fondue-components90.js.map +1 -1
  234. package/dist/fondue-components91.js +18 -6
  235. package/dist/fondue-components91.js.map +1 -1
  236. package/dist/fondue-components92.js +24 -4
  237. package/dist/fondue-components92.js.map +1 -1
  238. package/dist/fondue-components93.js +8 -4
  239. package/dist/fondue-components93.js.map +1 -1
  240. package/dist/fondue-components94.js +30 -16
  241. package/dist/fondue-components94.js.map +1 -1
  242. package/dist/fondue-components95.js +6 -216
  243. package/dist/fondue-components95.js.map +1 -1
  244. package/dist/fondue-components96.js +4 -18
  245. package/dist/fondue-components96.js.map +1 -1
  246. package/dist/fondue-components97.js +4 -16
  247. package/dist/fondue-components97.js.map +1 -1
  248. package/dist/fondue-components98.js +188 -122
  249. package/dist/fondue-components98.js.map +1 -1
  250. package/dist/fondue-components99.js +18 -44
  251. package/dist/fondue-components99.js.map +1 -1
  252. package/dist/index.d.ts +101 -24
  253. package/dist/style.css +1 -1
  254. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components50.js","sources":["../src/components/ColorPicker/utils.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ColorFormat, type RgbaColor } from './types';\n\nexport const DEFAULT_COLOR = { red: 255, green: 255, blue: 255, alpha: 1, name: '' };\nexport const DEFAULT_FORMAT = 'HEX';\n\n/**\n * Converts a color object to a CSS color string.\n * @param {RgbaColor} color - The color object to be converted.\n * @returns {string}\n * @example\n * colorToCss({ red: 255, green: 255, blue: 255, alpha: 1 }); // 'rgba(255, 255, 255, 1)'\n * @example\n * colorToCss({ red: 255, green: 87, blue: 51, alpha: 1 }); // 'rgba(255, 87, 51, 1)'\n * @example\n * colorToCss({ red: 0, green: 0, blue: 0, alpha: 0 }); // 'rgba(0, 0, 0, 0)'\n */\nexport const colorToCss = (color?: RgbaColor) => {\n if (!color) {\n return undefined;\n }\n return `rgba(${color.red}, ${color.green}, ${color.blue}, ${color.alpha ?? 1})`;\n};\n\n/**\n * Checks if a string is a valid hexadecimal color code. This function accepts\n * both three-digit and six-digit hex codes without the '#' symbol.\n * @param {string} color - The color code to be checked.\n * @returns {boolean}\n * @example\n * isValidHexColor('FFF'); // true\n * @example\n * isValidHexColor('FF5733'); // true\n * @example\n * isValidHexColor('XYZ'); // false\n */\nexport const isValidHexColor = (color: string): boolean => {\n const hexRegex = /^([\\dA-Fa-f]{3}){1,2}$/;\n return color.length > 2 && hexRegex.test(color);\n};\n\n/**\n * Converts a hexadecimal color code to an RGBA color object. This function accepts\n * both three-digit and six-digit hex codes without the '#' symbol.\n * @param {string} hex - The hex code, either 3 or 6 characters long. Characters should be from the set [0-9A-Fa-f].\n * @returns {RgbaColor}\n * @example\n * hexColorToRgba('FFF'); // { red: 255, green: 255, blue: 255, alpha: 1 }\n * @example\n * hexColorToRgba('FF5733'); // { red: 255, green: 87, blue: 51, alpha: 1 }\n * @example\n * hexColorToRgba('XYZ'); // { red: 0, green: 0, blue: 0, alpha: 0 }\n */\nexport const hexColorToRgba = (hex: string): RgbaColor => {\n const hexRegex = /^([\\dA-Fa-f]{3}){1,2}$/;\n const matches = hex.match(hexRegex);\n if (!matches) {\n return {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 0,\n };\n }\n const hexColor = matches[0];\n if (hexColor.length === 3) {\n return {\n red: parseInt(`${hexColor[0]}${hexColor[0]}`, 16),\n green: parseInt(`${hexColor[1]}${hexColor[1]}`, 16),\n blue: parseInt(`${hexColor[2]}${hexColor[2]}`, 16),\n alpha: 1,\n };\n }\n return {\n red: parseInt(hexColor.slice(0, 2), 16),\n green: parseInt(hexColor.slice(2, 4), 16),\n blue: parseInt(hexColor.slice(4, 6), 16),\n alpha: 1,\n };\n};\n\n/**\n * Converts an RGBA color object to a hexadecimal color code. This function returns a\n * six-digit hex code without the '#' symbol.\n * @param {RgbaColor} rgb - The RGBA color object.\n * @returns {string}\n * @example\n * rgbColorToHex({ red: 255, green: 255, blue: 255, alpha: 1 }); // '#FFFFFF'\n * @example\n * rgbColorToHex({ red: 255, green: 87, blue: 51, alpha: 1 }); // '#FF5733'\n * @example\n * rgbColorToHex({ red: 0, green: 0, blue: 0, alpha: 0 }); // '#000000'\n */\nexport const rgbColorToHex = (rgb: Omit<RgbaColor, 'alpha'>): string => {\n const { red, green, blue } = rgb;\n return `${red.toString(16).padStart(2, '0')}${green.toString(16).padStart(2, '0')}${blue.toString(16).padStart(2, '0')}`;\n};\n\n/**\n * Returns a hex color display name with alpha percentage if alpha < 100%.\n * @param {RgbaColor} color - The RGBA color object.\n * @returns {string}\n * @example\n * getHexDisplayName({ red: 255, green: 255, blue: 255, alpha: 1 }); // '#FFFFFF'\n * @example\n * getHexDisplayName({ red: 255, green: 255, blue: 255, alpha: 0.9 }); // '#FFFFFF 90%'\n * @example\n * getHexDisplayName({ red: 255, green: 87, blue: 51, alpha: 0.84 }); // '#FF5733 84%'\n */\nexport const getHexDisplayName = (color: RgbaColor): string => {\n const hexValue = rgbColorToHex(color);\n const alpha = color.alpha ?? 1;\n\n if (alpha < 1) {\n const alphaPercentage = Math.round(alpha * 100);\n return `#${hexValue} ${alphaPercentage}%`;\n }\n\n return `#${hexValue}`;\n};\n\n/**\n * Returns a color object with a name property based on the provided color and format.\n * @param {RgbaColor} color - The RGBA color object.\n * @param {ColorFormat} currentFormat - The current format of the color.\n * @returns {RgbaColor}\n * @example\n * getColorWithName({ red: 255, green: 255, blue: 255, alpha: 1 }, 'HEX'); // { red: 255, green: 255, blue: 255, alpha: 1, name: '#FFFFFF' }\n * @example\n * getColorWithName({ red: 255, green: 255, blue: 255, alpha: 0.9 }, 'HEX'); // { red: 255, green: 255, blue: 255, alpha: 0.9, name: '#FFFFFF 90%' }\n * @example\n * getColorWithName({ red: 255, green: 255, blue: 255, alpha: 1 }, 'RGBA'); // { red: 255, green: 255, blue: 255, alpha: 1, name: 'rgba(255, 255, 255, 1)' }\n * @example\n * getColorWithName({ red: 255, green: 87, blue: 51, alpha: 1 }, 'RGBA'); // { red: 255, green: 87, blue: 51, alpha: 1, name: 'rgba(255, 87, 51, 1)' }\n */\nexport const getColorWithName = (color: RgbaColor, currentFormat: ColorFormat) => {\n if (currentFormat === 'HEX') {\n return {\n ...color,\n name: getHexDisplayName(color),\n };\n }\n return {\n ...color,\n name: `rgba(${color.red}, ${color.green}, ${color.blue}, ${color.alpha ?? 1})`,\n };\n};\n\n/**\n * Returns a number between a minimum and maximum value, inclusive.\n * @param {string} value - The value to be limited.\n * @param {number} [min=0] - The minimum value (inclusive).\n * @param {number} [max=255] - The maximum value (inclusive).\n * @returns {number}\n * @example\n * getLimitedColorChannelValue('255'); // 255\n * @example\n * getLimitedColorChannelValue('100'); // 100\n * @example\n * getLimitedColorChannelValue('0'); // 0\n * @example\n * getLimitedColorChannelValue('500'); // 255\n * @example\n * getLimitedColorChannelValue('500', 0, 100); // 100\n */\nexport const getLimitedColorChannelValue = (value: string, min: number = 0, max: number = 255): number => {\n if (value.length === 0 || parseInt(value) < min) {\n return min;\n } else if (parseInt(value) > max) {\n return max;\n }\n return parseInt(value);\n};\n"],"names":["DEFAULT_COLOR","DEFAULT_FORMAT","colorToCss","color","isValidHexColor","hexRegex","hexColorToRgba","hex","matches","hexColor","rgbColorToHex","rgb","red","green","blue","getHexDisplayName","hexValue","alpha","alphaPercentage","getColorWithName","currentFormat","getLimitedColorChannelValue","value","min","max"],"mappings":"AAIO,MAAMA,IAAgB,EAAE,KAAK,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO,GAAG,MAAM,GAAA,GACnEC,IAAiB,OAajBC,IAAa,CAACC,MAAsB;AAC7C,MAAKA;AAGL,WAAO,QAAQA,EAAM,GAAG,KAAKA,EAAM,KAAK,KAAKA,EAAM,IAAI,KAAKA,EAAM,SAAS,CAAC;AAChF,GAcaC,IAAkB,CAACD,MAA2B;AACvD,QAAME,IAAW;AACjB,SAAOF,EAAM,SAAS,KAAKE,EAAS,KAAKF,CAAK;AAClD,GAcaG,IAAiB,CAACC,MAA2B;AACtD,QAAMF,IAAW,0BACXG,IAAUD,EAAI,MAAMF,CAAQ;AAClC,MAAI,CAACG;AACD,WAAO;AAAA,MACH,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAGf,QAAMC,IAAWD,EAAQ,CAAC;AAC1B,SAAIC,EAAS,WAAW,IACb;AAAA,IACH,KAAK,SAAS,GAAGA,EAAS,CAAC,CAAC,GAAGA,EAAS,CAAC,CAAC,IAAI,EAAE;AAAA,IAChD,OAAO,SAAS,GAAGA,EAAS,CAAC,CAAC,GAAGA,EAAS,CAAC,CAAC,IAAI,EAAE;AAAA,IAClD,MAAM,SAAS,GAAGA,EAAS,CAAC,CAAC,GAAGA,EAAS,CAAC,CAAC,IAAI,EAAE;AAAA,IACjD,OAAO;AAAA,EAAA,IAGR;AAAA,IACH,KAAK,SAASA,EAAS,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IACtC,OAAO,SAASA,EAAS,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IACxC,MAAM,SAASA,EAAS,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IACvC,OAAO;AAAA,EAAA;AAEf,GAcaC,IAAgB,CAACC,MAA0C;AACpE,QAAM,EAAE,KAAAC,GAAK,OAAAC,GAAO,MAAAC,EAAA,IAASH;AAC7B,SAAO,GAAGC,EAAI,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGC,EAAM,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGC,EAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAC1H,GAaaC,IAAoB,CAACZ,MAA6B;AAC3D,QAAMa,IAAWN,EAAcP,CAAK,GAC9Bc,IAAQd,EAAM,SAAS;AAE7B,MAAIc,IAAQ,GAAG;AACX,UAAMC,IAAkB,KAAK,MAAMD,IAAQ,GAAG;AAC9C,WAAO,IAAID,CAAQ,IAAIE,CAAe;AAAA,EAC1C;AAEA,SAAO,IAAIF,CAAQ;AACvB,GAgBaG,IAAmB,CAAChB,GAAkBiB,MAC3CA,MAAkB,QACX;AAAA,EACH,GAAGjB;AAAA,EACH,MAAMY,EAAkBZ,CAAK;AAAA,IAG9B;AAAA,EACH,GAAGA;AAAA,EACH,MAAM,QAAQA,EAAM,GAAG,KAAKA,EAAM,KAAK,KAAKA,EAAM,IAAI,KAAKA,EAAM,SAAS,CAAC;AAAA,GAqBtEkB,IAA8B,CAACC,GAAeC,IAAc,GAAGC,IAAc,QAClFF,EAAM,WAAW,KAAK,SAASA,CAAK,IAAIC,IACjCA,IACA,SAASD,CAAK,IAAIE,IAClBA,IAEJ,SAASF,CAAK;"}
1
+ {"version":3,"file":"fondue-components50.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,11 +1,56 @@
1
- import { useEffect as f } from "react";
2
- import { syncRefs as o } from "./fondue-components52.js";
3
- const m = (s, e) => {
4
- f(() => {
5
- o(s, e);
6
- }, [s]);
7
- };
1
+ const g = { red: 255, green: 255, blue: 255, alpha: 1, name: "" }, p = "HEX", h = (e) => {
2
+ if (e)
3
+ return `rgba(${e.red}, ${e.green}, ${e.blue}, ${e.alpha ?? 1})`;
4
+ }, $ = (e) => {
5
+ const n = /^([\dA-Fa-f]{3}){1,2}$/;
6
+ return e.length > 2 && n.test(e);
7
+ }, u = (e) => {
8
+ const n = /^([\dA-Fa-f]{3}){1,2}$/, r = e.match(n);
9
+ if (!r)
10
+ return {
11
+ red: 0,
12
+ green: 0,
13
+ blue: 0,
14
+ alpha: 0
15
+ };
16
+ const t = r[0];
17
+ return t.length === 3 ? {
18
+ red: parseInt(`${t[0]}${t[0]}`, 16),
19
+ green: parseInt(`${t[1]}${t[1]}`, 16),
20
+ blue: parseInt(`${t[2]}${t[2]}`, 16),
21
+ alpha: 1
22
+ } : {
23
+ red: parseInt(t.slice(0, 2), 16),
24
+ green: parseInt(t.slice(2, 4), 16),
25
+ blue: parseInt(t.slice(4, 6), 16),
26
+ alpha: 1
27
+ };
28
+ }, a = (e) => {
29
+ const { red: n, green: r, blue: t } = e;
30
+ return `${n.toString(16).padStart(2, "0")}${r.toString(16).padStart(2, "0")}${t.toString(16).padStart(2, "0")}`;
31
+ }, s = (e) => {
32
+ const n = a(e), r = e.alpha ?? 1;
33
+ if (r < 1) {
34
+ const t = Math.round(r * 100);
35
+ return `#${n} ${t}%`;
36
+ }
37
+ return `#${n}`;
38
+ }, l = (e, n) => n === "HEX" ? {
39
+ ...e,
40
+ name: s(e)
41
+ } : {
42
+ ...e,
43
+ name: `rgba(${e.red}, ${e.green}, ${e.blue}, ${e.alpha ?? 1})`
44
+ }, i = (e, n = 0, r = 255) => e.length === 0 || parseInt(e) < n ? n : parseInt(e) > r ? r : parseInt(e);
8
45
  export {
9
- m as useSyncRefs
46
+ g as DEFAULT_COLOR,
47
+ p as DEFAULT_FORMAT,
48
+ h as colorToCss,
49
+ l as getColorWithName,
50
+ s as getHexDisplayName,
51
+ i as getLimitedColorChannelValue,
52
+ u as hexColorToRgba,
53
+ $ as isValidHexColor,
54
+ a as rgbColorToHex
10
55
  };
11
56
  //# sourceMappingURL=fondue-components51.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components51.js","sources":["../src/hooks/useSyncRefs.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ForwardedRef, useEffect, type RefObject } from 'react';\n\nimport { syncRefs } from '#/utilities/domUtilities';\n\n/**\n * A custom React hook that synchronizes a local ref with a forwarded ref.\n * This is useful when you need to maintain both an internal reference to a DOM element\n * and allow external access through a forwarded ref.\n *\n * @template TElement - The type of the DOM element being referenced. Defaults to HTMLElement.\n * @param {RefObject<TElement>} localRef - The local ref object used internally by the component.\n * @param {ForwardedRef<TElement>} forwardedRef - The ref forwarded from a parent component.\n *\n * @example\n * ```tsx\n * const MyComponent = forwardRef<HTMLDivElement>((props, ref) => {\n * const localRef = useRef<HTMLDivElement>(null);\n * useSyncRefs(localRef, ref);\n *\n * return <div ref={localRef}>Content</div>;\n * });\n * ```\n */\nexport const useSyncRefs = <TElement = HTMLElement>(\n localRef: RefObject<TElement>,\n forwardedRef: ForwardedRef<TElement>,\n) => {\n useEffect(() => {\n syncRefs<TElement>(localRef, forwardedRef);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [localRef]);\n};\n"],"names":["useSyncRefs","localRef","forwardedRef","useEffect","syncRefs"],"mappings":";;AAyBO,MAAMA,IAAc,CACvBC,GACAC,MACC;AACD,EAAAC,EAAU,MAAM;AACZ,IAAAC,EAAmBH,GAAUC,CAAY;AAAA,EAE7C,GAAG,CAACD,CAAQ,CAAC;AACjB;"}
1
+ {"version":3,"file":"fondue-components51.js","sources":["../src/components/ColorPicker/utils.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ColorFormat, type RgbaColor } from './types';\n\nexport const DEFAULT_COLOR = { red: 255, green: 255, blue: 255, alpha: 1, name: '' };\nexport const DEFAULT_FORMAT = 'HEX';\n\n/**\n * Converts a color object to a CSS color string.\n * @param {RgbaColor} color - The color object to be converted.\n * @returns {string}\n * @example\n * colorToCss({ red: 255, green: 255, blue: 255, alpha: 1 }); // 'rgba(255, 255, 255, 1)'\n * @example\n * colorToCss({ red: 255, green: 87, blue: 51, alpha: 1 }); // 'rgba(255, 87, 51, 1)'\n * @example\n * colorToCss({ red: 0, green: 0, blue: 0, alpha: 0 }); // 'rgba(0, 0, 0, 0)'\n */\nexport const colorToCss = (color?: RgbaColor) => {\n if (!color) {\n return undefined;\n }\n return `rgba(${color.red}, ${color.green}, ${color.blue}, ${color.alpha ?? 1})`;\n};\n\n/**\n * Checks if a string is a valid hexadecimal color code. This function accepts\n * both three-digit and six-digit hex codes without the '#' symbol.\n * @param {string} color - The color code to be checked.\n * @returns {boolean}\n * @example\n * isValidHexColor('FFF'); // true\n * @example\n * isValidHexColor('FF5733'); // true\n * @example\n * isValidHexColor('XYZ'); // false\n */\nexport const isValidHexColor = (color: string): boolean => {\n const hexRegex = /^([\\dA-Fa-f]{3}){1,2}$/;\n return color.length > 2 && hexRegex.test(color);\n};\n\n/**\n * Converts a hexadecimal color code to an RGBA color object. This function accepts\n * both three-digit and six-digit hex codes without the '#' symbol.\n * @param {string} hex - The hex code, either 3 or 6 characters long. Characters should be from the set [0-9A-Fa-f].\n * @returns {RgbaColor}\n * @example\n * hexColorToRgba('FFF'); // { red: 255, green: 255, blue: 255, alpha: 1 }\n * @example\n * hexColorToRgba('FF5733'); // { red: 255, green: 87, blue: 51, alpha: 1 }\n * @example\n * hexColorToRgba('XYZ'); // { red: 0, green: 0, blue: 0, alpha: 0 }\n */\nexport const hexColorToRgba = (hex: string): RgbaColor => {\n const hexRegex = /^([\\dA-Fa-f]{3}){1,2}$/;\n const matches = hex.match(hexRegex);\n if (!matches) {\n return {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 0,\n };\n }\n const hexColor = matches[0];\n if (hexColor.length === 3) {\n return {\n red: parseInt(`${hexColor[0]}${hexColor[0]}`, 16),\n green: parseInt(`${hexColor[1]}${hexColor[1]}`, 16),\n blue: parseInt(`${hexColor[2]}${hexColor[2]}`, 16),\n alpha: 1,\n };\n }\n return {\n red: parseInt(hexColor.slice(0, 2), 16),\n green: parseInt(hexColor.slice(2, 4), 16),\n blue: parseInt(hexColor.slice(4, 6), 16),\n alpha: 1,\n };\n};\n\n/**\n * Converts an RGBA color object to a hexadecimal color code. This function returns a\n * six-digit hex code without the '#' symbol.\n * @param {RgbaColor} rgb - The RGBA color object.\n * @returns {string}\n * @example\n * rgbColorToHex({ red: 255, green: 255, blue: 255, alpha: 1 }); // '#FFFFFF'\n * @example\n * rgbColorToHex({ red: 255, green: 87, blue: 51, alpha: 1 }); // '#FF5733'\n * @example\n * rgbColorToHex({ red: 0, green: 0, blue: 0, alpha: 0 }); // '#000000'\n */\nexport const rgbColorToHex = (rgb: Omit<RgbaColor, 'alpha'>): string => {\n const { red, green, blue } = rgb;\n return `${red.toString(16).padStart(2, '0')}${green.toString(16).padStart(2, '0')}${blue.toString(16).padStart(2, '0')}`;\n};\n\n/**\n * Returns a hex color display name with alpha percentage if alpha < 100%.\n * @param {RgbaColor} color - The RGBA color object.\n * @returns {string}\n * @example\n * getHexDisplayName({ red: 255, green: 255, blue: 255, alpha: 1 }); // '#FFFFFF'\n * @example\n * getHexDisplayName({ red: 255, green: 255, blue: 255, alpha: 0.9 }); // '#FFFFFF 90%'\n * @example\n * getHexDisplayName({ red: 255, green: 87, blue: 51, alpha: 0.84 }); // '#FF5733 84%'\n */\nexport const getHexDisplayName = (color: RgbaColor): string => {\n const hexValue = rgbColorToHex(color);\n const alpha = color.alpha ?? 1;\n\n if (alpha < 1) {\n const alphaPercentage = Math.round(alpha * 100);\n return `#${hexValue} ${alphaPercentage}%`;\n }\n\n return `#${hexValue}`;\n};\n\n/**\n * Returns a color object with a name property based on the provided color and format.\n * @param {RgbaColor} color - The RGBA color object.\n * @param {ColorFormat} currentFormat - The current format of the color.\n * @returns {RgbaColor}\n * @example\n * getColorWithName({ red: 255, green: 255, blue: 255, alpha: 1 }, 'HEX'); // { red: 255, green: 255, blue: 255, alpha: 1, name: '#FFFFFF' }\n * @example\n * getColorWithName({ red: 255, green: 255, blue: 255, alpha: 0.9 }, 'HEX'); // { red: 255, green: 255, blue: 255, alpha: 0.9, name: '#FFFFFF 90%' }\n * @example\n * getColorWithName({ red: 255, green: 255, blue: 255, alpha: 1 }, 'RGBA'); // { red: 255, green: 255, blue: 255, alpha: 1, name: 'rgba(255, 255, 255, 1)' }\n * @example\n * getColorWithName({ red: 255, green: 87, blue: 51, alpha: 1 }, 'RGBA'); // { red: 255, green: 87, blue: 51, alpha: 1, name: 'rgba(255, 87, 51, 1)' }\n */\nexport const getColorWithName = (color: RgbaColor, currentFormat: ColorFormat) => {\n if (currentFormat === 'HEX') {\n return {\n ...color,\n name: getHexDisplayName(color),\n };\n }\n return {\n ...color,\n name: `rgba(${color.red}, ${color.green}, ${color.blue}, ${color.alpha ?? 1})`,\n };\n};\n\n/**\n * Returns a number between a minimum and maximum value, inclusive.\n * @param {string} value - The value to be limited.\n * @param {number} [min=0] - The minimum value (inclusive).\n * @param {number} [max=255] - The maximum value (inclusive).\n * @returns {number}\n * @example\n * getLimitedColorChannelValue('255'); // 255\n * @example\n * getLimitedColorChannelValue('100'); // 100\n * @example\n * getLimitedColorChannelValue('0'); // 0\n * @example\n * getLimitedColorChannelValue('500'); // 255\n * @example\n * getLimitedColorChannelValue('500', 0, 100); // 100\n */\nexport const getLimitedColorChannelValue = (value: string, min: number = 0, max: number = 255): number => {\n if (value.length === 0 || parseInt(value) < min) {\n return min;\n } else if (parseInt(value) > max) {\n return max;\n }\n return parseInt(value);\n};\n"],"names":["DEFAULT_COLOR","DEFAULT_FORMAT","colorToCss","color","isValidHexColor","hexRegex","hexColorToRgba","hex","matches","hexColor","rgbColorToHex","rgb","red","green","blue","getHexDisplayName","hexValue","alpha","alphaPercentage","getColorWithName","currentFormat","getLimitedColorChannelValue","value","min","max"],"mappings":"AAIO,MAAMA,IAAgB,EAAE,KAAK,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO,GAAG,MAAM,GAAA,GACnEC,IAAiB,OAajBC,IAAa,CAACC,MAAsB;AAC7C,MAAKA;AAGL,WAAO,QAAQA,EAAM,GAAG,KAAKA,EAAM,KAAK,KAAKA,EAAM,IAAI,KAAKA,EAAM,SAAS,CAAC;AAChF,GAcaC,IAAkB,CAACD,MAA2B;AACvD,QAAME,IAAW;AACjB,SAAOF,EAAM,SAAS,KAAKE,EAAS,KAAKF,CAAK;AAClD,GAcaG,IAAiB,CAACC,MAA2B;AACtD,QAAMF,IAAW,0BACXG,IAAUD,EAAI,MAAMF,CAAQ;AAClC,MAAI,CAACG;AACD,WAAO;AAAA,MACH,KAAK;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAGf,QAAMC,IAAWD,EAAQ,CAAC;AAC1B,SAAIC,EAAS,WAAW,IACb;AAAA,IACH,KAAK,SAAS,GAAGA,EAAS,CAAC,CAAC,GAAGA,EAAS,CAAC,CAAC,IAAI,EAAE;AAAA,IAChD,OAAO,SAAS,GAAGA,EAAS,CAAC,CAAC,GAAGA,EAAS,CAAC,CAAC,IAAI,EAAE;AAAA,IAClD,MAAM,SAAS,GAAGA,EAAS,CAAC,CAAC,GAAGA,EAAS,CAAC,CAAC,IAAI,EAAE;AAAA,IACjD,OAAO;AAAA,EAAA,IAGR;AAAA,IACH,KAAK,SAASA,EAAS,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IACtC,OAAO,SAASA,EAAS,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IACxC,MAAM,SAASA,EAAS,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,IACvC,OAAO;AAAA,EAAA;AAEf,GAcaC,IAAgB,CAACC,MAA0C;AACpE,QAAM,EAAE,KAAAC,GAAK,OAAAC,GAAO,MAAAC,EAAA,IAASH;AAC7B,SAAO,GAAGC,EAAI,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGC,EAAM,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGC,EAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAC1H,GAaaC,IAAoB,CAACZ,MAA6B;AAC3D,QAAMa,IAAWN,EAAcP,CAAK,GAC9Bc,IAAQd,EAAM,SAAS;AAE7B,MAAIc,IAAQ,GAAG;AACX,UAAMC,IAAkB,KAAK,MAAMD,IAAQ,GAAG;AAC9C,WAAO,IAAID,CAAQ,IAAIE,CAAe;AAAA,EAC1C;AAEA,SAAO,IAAIF,CAAQ;AACvB,GAgBaG,IAAmB,CAAChB,GAAkBiB,MAC3CA,MAAkB,QACX;AAAA,EACH,GAAGjB;AAAA,EACH,MAAMY,EAAkBZ,CAAK;AAAA,IAG9B;AAAA,EACH,GAAGA;AAAA,EACH,MAAM,QAAQA,EAAM,GAAG,KAAKA,EAAM,KAAK,KAAKA,EAAM,IAAI,KAAKA,EAAM,SAAS,CAAC;AAAA,GAqBtEkB,IAA8B,CAACC,GAAeC,IAAc,GAAGC,IAAc,QAClFF,EAAM,WAAW,KAAK,SAASA,CAAK,IAAIC,IACjCA,IACA,SAASD,CAAK,IAAIE,IAClBA,IAEJ,SAASF,CAAK;"}
@@ -1,16 +1,11 @@
1
- function s(u, t) {
2
- t && (typeof t == "function" ? t(u.current) : t && "current" in t && (t.current = u.current));
3
- }
4
- function i(u) {
5
- u.currentTarget.dataset.autoFocusVisible = "false";
6
- }
7
- function a(u) {
8
- const t = u.relatedTarget;
9
- t != null && t.dataset.autoFocusTrigger && (t.dataset.autoFocusVisible === "true" ? u.target.dataset.showFocusRing = "true" : u.target.dataset.showFocusRing = "false", t.dataset.autoFocusVisible = "true");
10
- }
1
+ import { useEffect as f } from "react";
2
+ import { syncRefs as o } from "./fondue-components53.js";
3
+ const m = (s, e) => {
4
+ f(() => {
5
+ o(s, e);
6
+ }, [s]);
7
+ };
11
8
  export {
12
- i as addAutoFocusAttribute,
13
- a as addShowFocusRing,
14
- s as syncRefs
9
+ m as useSyncRefs
15
10
  };
16
11
  //# sourceMappingURL=fondue-components52.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components52.js","sources":["../src/utilities/domUtilities.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type FocusEvent, type MouseEvent as ReactMouseEvent, type ForwardedRef, type RefObject } from 'react';\n\nexport const MAX_HEIGHT_MARGIN = 8;\n\n/**\n * Sets the maximum height for a dialog element based on its position on the viewport.\n * The function calculates the space below the dialog up to the bottom of the viewport window,\n * subtracting a default margin, and sets this value as the max-height style of the dialog.\n *\n * @param {HTMLElement} dialog - The dialog element whose maximum height is to be set.\n *\n * @example\n * // Suppose you have a dialog element with id 'my-dialog'.\n * const dialogElement = myDialogRef.current || document.getElementById('my-dialog');\n * // Setting its max height relative to its current position and the viewport's dimensions.\n * setMaxHeightToAvailableSpace(dialogElement);\n */\nexport function setMaxHeightToAvailableSpace(dialog: HTMLElement) {\n if (!window) {\n throw new Error('Window object not found, this method should be used in a browser environment');\n }\n\n dialog.style.maxHeight = '';\n\n const { top, bottom } = dialog.getBoundingClientRect();\n if (top - MAX_HEIGHT_MARGIN < 0) {\n // if the dialog is overflowing to the top\n dialog.style.maxHeight = `${bottom - MAX_HEIGHT_MARGIN}px`;\n } else if (bottom + MAX_HEIGHT_MARGIN > window.innerHeight) {\n // if the dialog is overflowing to the bottom\n dialog.style.maxHeight = `${window.innerHeight - top - MAX_HEIGHT_MARGIN}px`;\n }\n}\n\n/**\n * Checks if a specified HTML element is visible within the viewport.\n * Visibility is determined by several factors:\n * - The element must have non-zero dimensions.\n * - The element's computed style must not be `display: none`, `visibility: hidden`, or `opacity: 0`.\n * - The element must be within the bounds of the current viewport.\n *\n * @param {HTMLElement} element - The HTML element to check for visibility.\n * @returns {boolean} Returns true if the element is visible according to the criteria specified, otherwise returns false.\n */\nexport function isElementVisible(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const hasSize = rect.width > 0 && rect.height > 0;\n\n const style = window.getComputedStyle(element);\n const isVisibleStyle = style.display !== 'none' && style.visibility !== 'hidden' && parseFloat(style.opacity) !== 0;\n\n // Check if the element is within the viewport\n const isInViewport =\n rect.top < window.innerHeight && rect.left < window.innerWidth && rect.bottom > 0 && rect.right > 0;\n\n return hasSize && isVisibleStyle && isInViewport;\n}\n\n/**\n * Assigns a local DOM ref to a forwarded ref.\n *\n * @param {RefObject<HTMLDivElement>} localRef - The local React reference to an HTMLDivElement.\n * @param {ForwardedRef<HTMLDivElement>} forwardedRef - The ref forwarded from a parent component.\n */\nexport function syncRefs<TElement = HTMLElement>(localRef: RefObject<TElement>, forwardedRef: ForwardedRef<TElement>) {\n if (!forwardedRef) {\n return;\n }\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(localRef.current);\n } else if (forwardedRef && 'current' in forwardedRef) {\n forwardedRef.current = localRef.current;\n }\n}\n\n/**\n * Sets the 'autoFocusVisible' data attribute to 'false' on the current target of a mouse event.\n * This function is typically used to indicate that an element has been interacted with via mouse,\n * which should prevent the focus ring from being displayed when the element receives focus.\n *\n * @param mouseEvent - The mouse event object.\n */\nexport function addAutoFocusAttribute(mouseEvent: ReactMouseEvent<HTMLButtonElement, MouseEvent>) {\n mouseEvent.currentTarget.dataset.autoFocusVisible = 'false';\n}\n\n/**\n * Manages the focus ring visibility based on the previous focus state and the current focus event.\n * This function sets the 'showFocusRing' data attribute on the target element and updates the\n * 'autoFocusVisible' data attribute on the previously focused element.\n *\n * ! This function should be used in conjunction with the 'addAutoFocusAttribute' function and the autoFocusVisible data autoFocusTrigger.\n *\n * @param event - The focus event object.\n */\nexport function addShowFocusRing(event: FocusEvent<HTMLDivElement, HTMLElement>) {\n const triggerElement = event.relatedTarget;\n\n if (!triggerElement?.dataset.autoFocusTrigger) {\n return;\n }\n\n if (triggerElement.dataset.autoFocusVisible === 'true') {\n event.target.dataset.showFocusRing = 'true';\n } else {\n event.target.dataset.showFocusRing = 'false';\n }\n\n triggerElement.dataset.autoFocusVisible = 'true';\n}\n"],"names":["syncRefs","localRef","forwardedRef","addAutoFocusAttribute","mouseEvent","addShowFocusRing","event","triggerElement"],"mappings":"AAkEO,SAASA,EAAiCC,GAA+BC,GAAsC;AAClH,EAAKA,MAID,OAAOA,KAAiB,aACxBA,EAAaD,EAAS,OAAO,IACtBC,KAAgB,aAAaA,MACpCA,EAAa,UAAUD,EAAS;AAExC;AASO,SAASE,EAAsBC,GAA4D;AAC9F,EAAAA,EAAW,cAAc,QAAQ,mBAAmB;AACxD;AAWO,SAASC,EAAiBC,GAAgD;AAC7E,QAAMC,IAAiBD,EAAM;AAE7B,EAAKC,KAAA,QAAAA,EAAgB,QAAQ,qBAIzBA,EAAe,QAAQ,qBAAqB,SAC5CD,EAAM,OAAO,QAAQ,gBAAgB,SAErCA,EAAM,OAAO,QAAQ,gBAAgB,SAGzCC,EAAe,QAAQ,mBAAmB;AAC9C;"}
1
+ {"version":3,"file":"fondue-components52.js","sources":["../src/hooks/useSyncRefs.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type ForwardedRef, useEffect, type RefObject } from 'react';\n\nimport { syncRefs } from '#/utilities/domUtilities';\n\n/**\n * A custom React hook that synchronizes a local ref with a forwarded ref.\n * This is useful when you need to maintain both an internal reference to a DOM element\n * and allow external access through a forwarded ref.\n *\n * @template TElement - The type of the DOM element being referenced. Defaults to HTMLElement.\n * @param {RefObject<TElement>} localRef - The local ref object used internally by the component.\n * @param {ForwardedRef<TElement>} forwardedRef - The ref forwarded from a parent component.\n *\n * @example\n * ```tsx\n * const MyComponent = forwardRef<HTMLDivElement>((props, ref) => {\n * const localRef = useRef<HTMLDivElement>(null);\n * useSyncRefs(localRef, ref);\n *\n * return <div ref={localRef}>Content</div>;\n * });\n * ```\n */\nexport const useSyncRefs = <TElement = HTMLElement>(\n localRef: RefObject<TElement>,\n forwardedRef: ForwardedRef<TElement>,\n) => {\n useEffect(() => {\n syncRefs<TElement>(localRef, forwardedRef);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [localRef]);\n};\n"],"names":["useSyncRefs","localRef","forwardedRef","useEffect","syncRefs"],"mappings":";;AAyBO,MAAMA,IAAc,CACvBC,GACAC,MACC;AACD,EAAAC,EAAU,MAAM;AACZ,IAAAC,EAAmBH,GAAUC,CAAY;AAAA,EAE7C,GAAG,CAACD,CAAQ,CAAC;AACjB;"}
@@ -1,20 +1,16 @@
1
- const e = "_content_3jnjr_6", n = "_header_3jnjr_44", t = "_footer_3jnjr_45", o = "_body_3jnjr_46", r = "_underlay_3jnjr_181", _ = "_sideContent_3jnjr_191", s = "_screenReaderOnly_3jnjr_203", d = {
2
- content: e,
3
- header: n,
4
- footer: t,
5
- body: o,
6
- underlay: r,
7
- sideContent: _,
8
- screenReaderOnly: s
9
- };
1
+ function s(u, t) {
2
+ t && (typeof t == "function" ? t(u.current) : t && "current" in t && (t.current = u.current));
3
+ }
4
+ function i(u) {
5
+ u.currentTarget.dataset.autoFocusVisible = "false";
6
+ }
7
+ function a(u) {
8
+ const t = u.relatedTarget;
9
+ t != null && t.dataset.autoFocusTrigger && (t.dataset.autoFocusVisible === "true" ? u.target.dataset.showFocusRing = "true" : u.target.dataset.showFocusRing = "false", t.dataset.autoFocusVisible = "true");
10
+ }
10
11
  export {
11
- o as body,
12
- e as content,
13
- d as default,
14
- t as footer,
15
- n as header,
16
- s as screenReaderOnly,
17
- _ as sideContent,
18
- r as underlay
12
+ i as addAutoFocusAttribute,
13
+ a as addShowFocusRing,
14
+ s as syncRefs
19
15
  };
20
16
  //# sourceMappingURL=fondue-components53.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components53.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"fondue-components53.js","sources":["../src/utilities/domUtilities.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type FocusEvent, type MouseEvent as ReactMouseEvent, type ForwardedRef, type RefObject } from 'react';\n\nexport const MAX_HEIGHT_MARGIN = 8;\n\n/**\n * Sets the maximum height for a dialog element based on its position on the viewport.\n * The function calculates the space below the dialog up to the bottom of the viewport window,\n * subtracting a default margin, and sets this value as the max-height style of the dialog.\n *\n * @param {HTMLElement} dialog - The dialog element whose maximum height is to be set.\n *\n * @example\n * // Suppose you have a dialog element with id 'my-dialog'.\n * const dialogElement = myDialogRef.current || document.getElementById('my-dialog');\n * // Setting its max height relative to its current position and the viewport's dimensions.\n * setMaxHeightToAvailableSpace(dialogElement);\n */\nexport function setMaxHeightToAvailableSpace(dialog: HTMLElement) {\n if (!window) {\n throw new Error('Window object not found, this method should be used in a browser environment');\n }\n\n dialog.style.maxHeight = '';\n\n const { top, bottom } = dialog.getBoundingClientRect();\n if (top - MAX_HEIGHT_MARGIN < 0) {\n // if the dialog is overflowing to the top\n dialog.style.maxHeight = `${bottom - MAX_HEIGHT_MARGIN}px`;\n } else if (bottom + MAX_HEIGHT_MARGIN > window.innerHeight) {\n // if the dialog is overflowing to the bottom\n dialog.style.maxHeight = `${window.innerHeight - top - MAX_HEIGHT_MARGIN}px`;\n }\n}\n\n/**\n * Checks if a specified HTML element is visible within the viewport.\n * Visibility is determined by several factors:\n * - The element must have non-zero dimensions.\n * - The element's computed style must not be `display: none`, `visibility: hidden`, or `opacity: 0`.\n * - The element must be within the bounds of the current viewport.\n *\n * @param {HTMLElement} element - The HTML element to check for visibility.\n * @returns {boolean} Returns true if the element is visible according to the criteria specified, otherwise returns false.\n */\nexport function isElementVisible(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n const hasSize = rect.width > 0 && rect.height > 0;\n\n const style = window.getComputedStyle(element);\n const isVisibleStyle = style.display !== 'none' && style.visibility !== 'hidden' && parseFloat(style.opacity) !== 0;\n\n // Check if the element is within the viewport\n const isInViewport =\n rect.top < window.innerHeight && rect.left < window.innerWidth && rect.bottom > 0 && rect.right > 0;\n\n return hasSize && isVisibleStyle && isInViewport;\n}\n\n/**\n * Assigns a local DOM ref to a forwarded ref.\n *\n * @param {RefObject<HTMLDivElement>} localRef - The local React reference to an HTMLDivElement.\n * @param {ForwardedRef<HTMLDivElement>} forwardedRef - The ref forwarded from a parent component.\n */\nexport function syncRefs<TElement = HTMLElement>(localRef: RefObject<TElement>, forwardedRef: ForwardedRef<TElement>) {\n if (!forwardedRef) {\n return;\n }\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(localRef.current);\n } else if (forwardedRef && 'current' in forwardedRef) {\n forwardedRef.current = localRef.current;\n }\n}\n\n/**\n * Sets the 'autoFocusVisible' data attribute to 'false' on the current target of a mouse event.\n * This function is typically used to indicate that an element has been interacted with via mouse,\n * which should prevent the focus ring from being displayed when the element receives focus.\n *\n * @param mouseEvent - The mouse event object.\n */\nexport function addAutoFocusAttribute(mouseEvent: ReactMouseEvent<HTMLButtonElement, MouseEvent>) {\n mouseEvent.currentTarget.dataset.autoFocusVisible = 'false';\n}\n\n/**\n * Manages the focus ring visibility based on the previous focus state and the current focus event.\n * This function sets the 'showFocusRing' data attribute on the target element and updates the\n * 'autoFocusVisible' data attribute on the previously focused element.\n *\n * ! This function should be used in conjunction with the 'addAutoFocusAttribute' function and the autoFocusVisible data autoFocusTrigger.\n *\n * @param event - The focus event object.\n */\nexport function addShowFocusRing(event: FocusEvent<HTMLDivElement, HTMLElement>) {\n const triggerElement = event.relatedTarget;\n\n if (!triggerElement?.dataset.autoFocusTrigger) {\n return;\n }\n\n if (triggerElement.dataset.autoFocusVisible === 'true') {\n event.target.dataset.showFocusRing = 'true';\n } else {\n event.target.dataset.showFocusRing = 'false';\n }\n\n triggerElement.dataset.autoFocusVisible = 'true';\n}\n"],"names":["syncRefs","localRef","forwardedRef","addAutoFocusAttribute","mouseEvent","addShowFocusRing","event","triggerElement"],"mappings":"AAkEO,SAASA,EAAiCC,GAA+BC,GAAsC;AAClH,EAAKA,MAID,OAAOA,KAAiB,aACxBA,EAAaD,EAAS,OAAO,IACtBC,KAAgB,aAAaA,MACpCA,EAAa,UAAUD,EAAS;AAExC;AASO,SAASE,EAAsBC,GAA4D;AAC9F,EAAAA,EAAW,cAAc,QAAQ,mBAAmB;AACxD;AAWO,SAASC,EAAiBC,GAAgD;AAC7E,QAAMC,IAAiBD,EAAM;AAE7B,EAAKC,KAAA,QAAAA,EAAgB,QAAQ,qBAIzBA,EAAe,QAAQ,qBAAqB,SAC5CD,EAAM,OAAO,QAAQ,gBAAgB,SAErCA,EAAM,OAAO,QAAQ,gBAAgB,SAGzCC,EAAe,QAAQ,mBAAmB;AAC9C;"}
@@ -1,8 +1,20 @@
1
- const o = "_root_2xf5e_2", t = {
2
- root: o
1
+ const e = "_content_3jnjr_6", n = "_header_3jnjr_44", t = "_footer_3jnjr_45", o = "_body_3jnjr_46", r = "_underlay_3jnjr_181", _ = "_sideContent_3jnjr_191", s = "_screenReaderOnly_3jnjr_203", d = {
2
+ content: e,
3
+ header: n,
4
+ footer: t,
5
+ body: o,
6
+ underlay: r,
7
+ sideContent: _,
8
+ screenReaderOnly: s
3
9
  };
4
10
  export {
5
- t as default,
6
- o as root
11
+ o as body,
12
+ e as content,
13
+ d as default,
14
+ t as footer,
15
+ n as header,
16
+ s as screenReaderOnly,
17
+ _ as sideContent,
18
+ r as underlay
7
19
  };
8
20
  //# sourceMappingURL=fondue-components54.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components54.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"fondue-components54.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -1,21 +1,8 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { useMemo as c, isValidElement as r, cloneElement as i, Children as p } from "react";
3
- const o = (e) => {
4
- const t = [];
5
- for (const n of p.toArray(e))
6
- r(n) ? t.push(n) : t.push(/* @__PURE__ */ s("span", { children: n }));
7
- return t.length === 1 ? t[0] : t;
8
- }, u = (e) => c(() => {
9
- const t = r(e) && e.type === "a";
10
- if (t) {
11
- const n = i(e, {
12
- children: o(e.props.children)
13
- });
14
- return { isLink: t, content: n };
15
- }
16
- return { isLink: t, content: o(e) };
17
- }, [e]);
1
+ const o = "_root_2xf5e_2", t = {
2
+ root: o
3
+ };
18
4
  export {
19
- u as useProcessedChildren
5
+ t as default,
6
+ o as root
20
7
  };
21
8
  //# sourceMappingURL=fondue-components55.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components55.js","sources":["../src/components/Dropdown/hooks/useProcessedChildren.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Children, cloneElement, isValidElement, type ReactNode, useMemo } from 'react';\n\nconst wrapFloatingText = (children: ReactNode) => {\n const content = [];\n for (const child of Children.toArray(children)) {\n if (isValidElement(child)) {\n content.push(child);\n } else {\n content.push(<span>{child}</span>);\n }\n }\n return content.length === 1 ? content[0] : content;\n};\n\nexport const useProcessedChildren = (children: ReactNode) => {\n return useMemo(() => {\n const isLink =\n isValidElement<{\n children: ReactNode;\n }>(children) && children.type === 'a';\n\n if (isLink) {\n const element = cloneElement(children, {\n children: wrapFloatingText(children.props.children),\n });\n return { isLink, content: element };\n }\n\n return { isLink, content: wrapFloatingText(children) };\n }, [children]);\n};\n"],"names":["wrapFloatingText","children","content","child","Children","isValidElement","jsx","useProcessedChildren","useMemo","isLink","element","cloneElement"],"mappings":";;AAIA,MAAMA,IAAmB,CAACC,MAAwB;AAC9C,QAAMC,IAAU,CAAA;AAChB,aAAWC,KAASC,EAAS,QAAQH,CAAQ;AACzC,IAAII,EAAeF,CAAK,IACpBD,EAAQ,KAAKC,CAAK,IAElBD,EAAQ,KAAK,gBAAAI,EAAC,QAAA,EAAM,UAAAH,EAAA,CAAM,CAAO;AAGzC,SAAOD,EAAQ,WAAW,IAAIA,EAAQ,CAAC,IAAIA;AAC/C,GAEaK,IAAuB,CAACN,MAC1BO,EAAQ,MAAM;AACjB,QAAMC,IACFJ,EAEGJ,CAAQ,KAAKA,EAAS,SAAS;AAEtC,MAAIQ,GAAQ;AACR,UAAMC,IAAUC,EAAaV,GAAU;AAAA,MACnC,UAAUD,EAAiBC,EAAS,MAAM,QAAQ;AAAA,IAAA,CACrD;AACD,WAAO,EAAE,QAAAQ,GAAQ,SAASC,EAAA;AAAA,EAC9B;AAEA,SAAO,EAAE,QAAAD,GAAQ,SAAST,EAAiBC,CAAQ,EAAA;AACvD,GAAG,CAACA,CAAQ,CAAC;"}
1
+ {"version":3,"file":"fondue-components55.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,22 +1,21 @@
1
- const t = "_content_1rjlb_7", n = "_subContent_1rjlb_8", o = "_item_1rjlb_29", r = "_subTrigger_1rjlb_30", s = "_subMenuIndicator_1rjlb_124", _ = "_group_1rjlb_134", e = "_groupHeading_1rjlb_141", u = "_slot_1rjlb_152", b = {
2
- content: t,
3
- subContent: n,
4
- item: o,
5
- subTrigger: r,
6
- subMenuIndicator: s,
7
- group: _,
8
- groupHeading: e,
9
- slot: u
10
- };
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { useMemo as c, isValidElement as r, cloneElement as i, Children as p } from "react";
3
+ const o = (e) => {
4
+ const t = [];
5
+ for (const n of p.toArray(e))
6
+ r(n) ? t.push(n) : t.push(/* @__PURE__ */ s("span", { children: n }));
7
+ return t.length === 1 ? t[0] : t;
8
+ }, u = (e) => c(() => {
9
+ const t = r(e) && e.type === "a";
10
+ if (t) {
11
+ const n = i(e, {
12
+ children: o(e.props.children)
13
+ });
14
+ return { isLink: t, content: n };
15
+ }
16
+ return { isLink: t, content: o(e) };
17
+ }, [e]);
11
18
  export {
12
- t as content,
13
- b as default,
14
- _ as group,
15
- e as groupHeading,
16
- o as item,
17
- u as slot,
18
- n as subContent,
19
- s as subMenuIndicator,
20
- r as subTrigger
19
+ u as useProcessedChildren
21
20
  };
22
21
  //# sourceMappingURL=fondue-components56.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components56.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"fondue-components56.js","sources":["../src/components/Dropdown/hooks/useProcessedChildren.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Children, cloneElement, isValidElement, type ReactNode, useMemo } from 'react';\n\nconst wrapFloatingText = (children: ReactNode) => {\n const content = [];\n for (const child of Children.toArray(children)) {\n if (isValidElement(child)) {\n content.push(child);\n } else {\n content.push(<span>{child}</span>);\n }\n }\n return content.length === 1 ? content[0] : content;\n};\n\nexport const useProcessedChildren = (children: ReactNode) => {\n return useMemo(() => {\n const isLink =\n isValidElement<{\n children: ReactNode;\n }>(children) && children.type === 'a';\n\n if (isLink) {\n const element = cloneElement(children, {\n children: wrapFloatingText(children.props.children),\n });\n return { isLink, content: element };\n }\n\n return { isLink, content: wrapFloatingText(children) };\n }, [children]);\n};\n"],"names":["wrapFloatingText","children","content","child","Children","isValidElement","jsx","useProcessedChildren","useMemo","isLink","element","cloneElement"],"mappings":";;AAIA,MAAMA,IAAmB,CAACC,MAAwB;AAC9C,QAAMC,IAAU,CAAA;AAChB,aAAWC,KAASC,EAAS,QAAQH,CAAQ;AACzC,IAAII,EAAeF,CAAK,IACpBD,EAAQ,KAAKC,CAAK,IAElBD,EAAQ,KAAK,gBAAAI,EAAC,QAAA,EAAM,UAAAH,EAAA,CAAM,CAAO;AAGzC,SAAOD,EAAQ,WAAW,IAAIA,EAAQ,CAAC,IAAIA;AAC/C,GAEaK,IAAuB,CAACN,MAC1BO,EAAQ,MAAM;AACjB,QAAMC,IACFJ,EAEGJ,CAAQ,KAAKA,EAAS,SAAS;AAEtC,MAAIQ,GAAQ;AACR,UAAMC,IAAUC,EAAaV,GAAU;AAAA,MACnC,UAAUD,EAAiBC,EAAS,MAAM,QAAQ;AAAA,IAAA,CACrD;AACD,WAAO,EAAE,QAAAQ,GAAQ,SAASC,EAAA;AAAA,EAC9B;AAEA,SAAO,EAAE,QAAAD,GAAQ,SAAST,EAAiBC,CAAQ,EAAA;AACvD,GAAG,CAACA,CAAQ,CAAC;"}
@@ -1,8 +1,22 @@
1
- const o = "_root_wpwbd_6", t = {
2
- root: o
1
+ const t = "_content_1rjlb_7", n = "_subContent_1rjlb_8", o = "_item_1rjlb_29", r = "_subTrigger_1rjlb_30", s = "_subMenuIndicator_1rjlb_124", _ = "_group_1rjlb_134", e = "_groupHeading_1rjlb_141", u = "_slot_1rjlb_152", b = {
2
+ content: t,
3
+ subContent: n,
4
+ item: o,
5
+ subTrigger: r,
6
+ subMenuIndicator: s,
7
+ group: _,
8
+ groupHeading: e,
9
+ slot: u
3
10
  };
4
11
  export {
5
- t as default,
6
- o as root
12
+ t as content,
13
+ b as default,
14
+ _ as group,
15
+ e as groupHeading,
16
+ o as item,
17
+ u as slot,
18
+ n as subContent,
19
+ s as subMenuIndicator,
20
+ r as subTrigger
7
21
  };
8
22
  //# sourceMappingURL=fondue-components57.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components57.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"fondue-components57.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -1,16 +1,47 @@
1
- const o = "_root_1ngt5_6", t = "_overlay_1ngt5_51", e = "_header_1ngt5_68", _ = "_body_1ngt5_93", r = "_footer_1ngt5_122", n = {
2
- root: o,
3
- overlay: t,
4
- header: e,
5
- body: _,
6
- footer: r
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import { IconCalendar as h, IconCross as D, IconCaretDown as N } from "@frontify/fondue-icons";
3
+ import { forwardRef as I, useMemo as k } from "react";
4
+ import { useTranslation as y } from "./fondue-components40.js";
5
+ import { Button as P } from "./fondue-components6.js";
6
+ import { getDateDisplayString as w } from "./fondue-components103.js";
7
+ import t from "./fondue-components104.js";
8
+ const n = ({
9
+ id: c,
10
+ selected: s,
11
+ isOpen: m,
12
+ disabled: r = !1,
13
+ onClear: o,
14
+ onClick: d,
15
+ "data-test-id": l = "date-picker-input",
16
+ ...p
17
+ }, u) => {
18
+ const { t: f } = y(), i = k(() => w(s), [s]);
19
+ return /* @__PURE__ */ a("div", { id: c, className: t.root, ref: u, "data-test-id": l, children: [
20
+ /* @__PURE__ */ a(
21
+ "button",
22
+ {
23
+ className: t.button,
24
+ ...p,
25
+ disabled: r,
26
+ onClick: d,
27
+ type: "button",
28
+ "data-date-input-select": !0,
29
+ children: [
30
+ /* @__PURE__ */ e(h, { size: 16 }),
31
+ i ? /* @__PURE__ */ e("span", { className: t.dateName, children: i }) : /* @__PURE__ */ e("span", { children: f("DatePicker_selectDate") })
32
+ ]
33
+ }
34
+ ),
35
+ /* @__PURE__ */ a("div", { className: t.actions, children: [
36
+ o && /* @__PURE__ */ e(P, { onPress: o, disabled: r, size: "small", emphasis: "weak", aspect: "square", children: /* @__PURE__ */ e(D, { className: t.clearIcon, size: 16 }) }),
37
+ /* @__PURE__ */ e("div", { className: t.caret, "data-state": m ? "open" : "closed", children: /* @__PURE__ */ e(N, { size: 16 }) })
38
+ ] })
39
+ ] });
7
40
  };
41
+ n.displayName = "DatePicker.Input";
42
+ const R = I(n);
8
43
  export {
9
- _ as body,
10
- n as default,
11
- r as footer,
12
- e as header,
13
- t as overlay,
14
- o as root
44
+ n as DatePickerInput,
45
+ R as ForwardedRefDatePickerInput
15
46
  };
16
47
  //# sourceMappingURL=fondue-components58.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components58.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"fondue-components58.js","sources":["../src/components/DatePicker/DatePickerInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCalendar, IconCaretDown, IconCross } from '@frontify/fondue-icons';\nimport { type ForwardedRef, forwardRef, useMemo } from 'react';\n\nimport { useTranslation } from '#/hooks/useTranslation';\nimport { type CommonAriaAttrs } from '#/utilities/types';\n\nimport { Button } from '../Button/Button';\n\nimport { getDateDisplayString } from './helpers/dateDisplayFormatter';\nimport styles from './styles/datePickerInput.module.scss';\nimport { type DatePickerDateRange, type DatePickerDate } from './types';\n\ntype DatePickerInputProps = {\n id?: string;\n /**\n * The active date or date range in the date picker\n */\n selected?: DatePickerDateRange | DatePickerDate;\n /**\n * The open state of the date picker used to determine arrow state\n */\n isOpen?: boolean;\n /**\n * Whether the date picker input is disabled\n */\n disabled?: boolean;\n /**\n * callback for clearing the date\n */\n onClear?: () => void;\n /**\n * Event handler called when the date picker input is clicked\n */\n onClick?: () => void;\n /**\n * The test id of the date picker input\n */\n 'data-test-id'?: string;\n} & CommonAriaAttrs;\n\nexport const DatePickerInput = (\n {\n id,\n selected,\n isOpen,\n disabled = false,\n onClear,\n onClick,\n 'data-test-id': dataTestId = 'date-picker-input',\n ...props\n }: DatePickerInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) => {\n const { t } = useTranslation();\n const displayString = useMemo(() => getDateDisplayString(selected), [selected]);\n return (\n <div id={id} className={styles.root} ref={forwardedRef} data-test-id={dataTestId}>\n <button\n className={styles.button}\n {...props}\n disabled={disabled}\n onClick={onClick}\n type=\"button\"\n data-date-input-select\n >\n <IconCalendar size={16} />\n {displayString ? (\n <span className={styles.dateName}>{displayString}</span>\n ) : (\n <span>{t('DatePicker_selectDate')}</span>\n )}\n </button>\n <div className={styles.actions}>\n {onClear && (\n <Button onPress={onClear} disabled={disabled} size=\"small\" emphasis=\"weak\" aspect=\"square\">\n <IconCross className={styles.clearIcon} size={16} />\n </Button>\n )}\n <div className={styles.caret} data-state={isOpen ? 'open' : 'closed'}>\n <IconCaretDown size={16} />\n </div>\n </div>\n </div>\n );\n};\n\nDatePickerInput.displayName = 'DatePicker.Input';\nexport const ForwardedRefDatePickerInput = forwardRef<HTMLDivElement, DatePickerInputProps>(DatePickerInput);\n"],"names":["DatePickerInput","id","selected","isOpen","disabled","onClear","onClick","dataTestId","props","forwardedRef","t","useTranslation","displayString","useMemo","getDateDisplayString","jsxs","styles","jsx","IconCalendar","Button","IconCross","IconCaretDown","ForwardedRefDatePickerInput","forwardRef"],"mappings":";;;;;;;AA0CO,MAAMA,IAAkB,CAC3B;AAAA,EACI,IAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAgBC,IAAa;AAAA,EAC7B,GAAGC;AACP,GACAC,MACC;AACD,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAgBC,EAAQ,MAAMC,EAAqBZ,CAAQ,GAAG,CAACA,CAAQ,CAAC;AAC9E,SACI,gBAAAa,EAAC,SAAI,IAAAd,GAAQ,WAAWe,EAAO,MAAM,KAAKP,GAAc,gBAAcF,GAClE,UAAA;AAAA,IAAA,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWC,EAAO;AAAA,QACjB,GAAGR;AAAA,QACJ,UAAAJ;AAAA,QACA,SAAAE;AAAA,QACA,MAAK;AAAA,QACL,0BAAsB;AAAA,QAEtB,UAAA;AAAA,UAAA,gBAAAW,EAACC,GAAA,EAAa,MAAM,GAAA,CAAI;AAAA,UACvBN,IACG,gBAAAK,EAAC,QAAA,EAAK,WAAWD,EAAO,UAAW,UAAAJ,EAAA,CAAc,IAEjD,gBAAAK,EAAC,QAAA,EAAM,UAAAP,EAAE,uBAAuB,EAAA,CAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAG1C,gBAAAK,EAAC,OAAA,EAAI,WAAWC,EAAO,SAClB,UAAA;AAAA,MAAAX,uBACIc,GAAA,EAAO,SAASd,GAAS,UAAAD,GAAoB,MAAK,SAAQ,UAAS,QAAO,QAAO,UAC9E,4BAACgB,GAAA,EAAU,WAAWJ,EAAO,WAAW,MAAM,IAAI,GACtD;AAAA,MAEJ,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,OAAO,cAAYb,IAAS,SAAS,UACxD,UAAA,gBAAAc,EAACI,GAAA,EAAc,MAAM,IAAI,EAAA,CAC7B;AAAA,IAAA,EAAA,CACJ;AAAA,EAAA,GACJ;AAER;AAEArB,EAAgB,cAAc;AACvB,MAAMsB,IAA8BC,EAAiDvB,CAAe;"}
@@ -1,8 +1,28 @@
1
- const o = "_root_1b3p9_6", t = {
2
- root: o
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { forwardRef as c } from "react";
3
+ import { DatePickerCalendar as f } from "./fondue-components105.js";
4
+ import { useDateRange as R } from "./fondue-components106.js";
5
+ import { useRangeHover as g } from "./fondue-components107.js";
6
+ const r = ({ "data-test-id": t, onChange: a, selected: o, ...i }, d) => {
7
+ const { selectedDateRange: e, handleSelect: n } = R(o, a), { hoverModifiers: s } = g(e);
8
+ return /* @__PURE__ */ m(
9
+ f,
10
+ {
11
+ ...i,
12
+ ref: d,
13
+ "data-test-id": t,
14
+ mode: "range",
15
+ required: !0,
16
+ selected: e,
17
+ onSelect: n,
18
+ modifiers: s
19
+ }
20
+ );
3
21
  };
22
+ r.displayName = "RangeDatePicker";
23
+ const P = c(r);
4
24
  export {
5
- t as default,
6
- o as root
25
+ P as ForwardedRefRangeDatePicker,
26
+ r as RangeDatePicker
7
27
  };
8
28
  //# sourceMappingURL=fondue-components59.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components59.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"fondue-components59.js","sources":["../src/components/DatePicker/RangeDatePicker.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { forwardRef, type ForwardedRef } from 'react';\n\nimport { type DatePickerBaseProps, DatePickerCalendar } from './DatePickerCalendar';\nimport { useDateRange } from './hooks/useDateRange';\nimport { useRangeHover } from './hooks/useRangeHover';\nimport { type DatePickerDateRange } from './types';\n\ntype RangeDatePickerProps = {\n selected?: DatePickerDateRange;\n onChange?: (dateRange: DatePickerDateRange) => void;\n} & DatePickerBaseProps;\n\nexport const RangeDatePicker = (\n { 'data-test-id': dataTestId, onChange, selected, ...props }: RangeDatePickerProps,\n ref: ForwardedRef<HTMLDivElement>,\n): JSX.Element => {\n const { selectedDateRange, handleSelect } = useDateRange(selected, onChange);\n const { hoverModifiers } = useRangeHover(selectedDateRange);\n\n return (\n <DatePickerCalendar\n {...props}\n ref={ref}\n data-test-id={dataTestId}\n mode=\"range\"\n required\n selected={selectedDateRange}\n onSelect={handleSelect}\n modifiers={hoverModifiers}\n />\n );\n};\n\nRangeDatePicker.displayName = 'RangeDatePicker';\nexport const ForwardedRefRangeDatePicker = forwardRef<HTMLDivElement, RangeDatePickerProps>(RangeDatePicker);\n"],"names":["RangeDatePicker","dataTestId","onChange","selected","props","ref","selectedDateRange","handleSelect","useDateRange","hoverModifiers","useRangeHover","jsx","DatePickerCalendar","ForwardedRefRangeDatePicker","forwardRef"],"mappings":";;;;;AAcO,MAAMA,IAAkB,CAC3B,EAAE,gBAAgBC,GAAY,UAAAC,GAAU,UAAAC,GAAU,GAAGC,EAAA,GACrDC,MACc;AACd,QAAM,EAAE,mBAAAC,GAAmB,cAAAC,EAAA,IAAiBC,EAAaL,GAAUD,CAAQ,GACrE,EAAE,gBAAAO,EAAA,IAAmBC,EAAcJ,CAAiB;AAE1D,SACI,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACI,GAAGR;AAAA,MACJ,KAAAC;AAAA,MACA,gBAAcJ;AAAA,MACd,MAAK;AAAA,MACL,UAAQ;AAAA,MACR,UAAUK;AAAA,MACV,UAAUC;AAAA,MACV,WAAWE;AAAA,IAAA;AAAA,EAAA;AAGvB;AAEAT,EAAgB,cAAc;AACvB,MAAMa,IAA8BC,EAAiDd,CAAe;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as B } from "react/jsx-runtime";
2
2
  import { forwardRef as j } from "react";
3
- import k from "./fondue-components44.js";
3
+ import k from "./fondue-components45.js";
4
4
  const w = j(
5
5
  ({
6
6
  children: o,
@@ -1,21 +1,26 @@
1
- const r = "_root_1ri4z_2", i = {
2
- root: r,
3
- "size-medium": "_size-medium_1ri4z_6",
4
- "size-large": "_size-large_1ri4z_11",
5
- "size-x-large": "_size-x-large_1ri4z_16",
6
- "size-xx-large": "_size-xx-large_1ri4z_21",
7
- "weight-default": "_weight-default_1ri4z_26",
8
- "weight-strong": "_weight-strong_1ri4z_30",
9
- "color-default": "_color-default_1ri4z_34",
10
- "color-weak": "_color-weak_1ri4z_38",
11
- "color-disabled": "_color-disabled_1ri4z_42",
12
- "color-negative": "_color-negative_1ri4z_46",
13
- "color-positive": "_color-positive_1ri4z_50",
14
- "color-warning": "_color-warning_1ri4z_54",
15
- "color-interactive": "_color-interactive_1ri4z_58"
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as c } from "react";
3
+ import { DatePickerCalendar as s } from "./fondue-components105.js";
4
+ import { useSingleDate as m } from "./fondue-components108.js";
5
+ const e = ({ "data-test-id": t, onChange: r, selected: a, ...i }, o) => {
6
+ const { selectedDate: d, handleSelect: l } = m(a, r);
7
+ return /* @__PURE__ */ n(
8
+ s,
9
+ {
10
+ ...i,
11
+ ref: o,
12
+ "data-test-id": t,
13
+ mode: "single",
14
+ required: !0,
15
+ selected: d,
16
+ onSelect: l
17
+ }
18
+ );
16
19
  };
20
+ e.displayName = "SingleDatePicker";
21
+ const g = c(e);
17
22
  export {
18
- i as default,
19
- r as root
23
+ g as ForwardedRefSingleDatePicker,
24
+ e as SingleDatePicker
20
25
  };
21
26
  //# sourceMappingURL=fondue-components60.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components60.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fondue-components60.js","sources":["../src/components/DatePicker/SingleDatePicker.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { forwardRef, type ForwardedRef } from 'react';\n\nimport { type DatePickerBaseProps, DatePickerCalendar } from './DatePickerCalendar';\nimport { useSingleDate } from './hooks/useSingleDate';\nimport { type DatePickerDate } from './types';\n\ntype SingleDatePickerProps = {\n selected?: DatePickerDate;\n onChange?: (date?: DatePickerDate) => void;\n} & DatePickerBaseProps;\n\nexport const SingleDatePicker = (\n { 'data-test-id': dataTestId, onChange, selected, ...props }: SingleDatePickerProps,\n ref: ForwardedRef<HTMLDivElement>,\n): JSX.Element => {\n const { selectedDate, handleSelect } = useSingleDate(selected, onChange);\n return (\n <DatePickerCalendar\n {...props}\n ref={ref}\n data-test-id={dataTestId}\n mode=\"single\"\n required\n selected={selectedDate}\n onSelect={handleSelect}\n />\n );\n};\n\nSingleDatePicker.displayName = 'SingleDatePicker';\nexport const ForwardedRefSingleDatePicker = forwardRef<HTMLDivElement, SingleDatePickerProps>(SingleDatePicker);\n"],"names":["SingleDatePicker","dataTestId","onChange","selected","props","ref","selectedDate","handleSelect","useSingleDate","jsx","DatePickerCalendar","ForwardedRefSingleDatePicker","forwardRef"],"mappings":";;;;AAaO,MAAMA,IAAmB,CAC5B,EAAE,gBAAgBC,GAAY,UAAAC,GAAU,UAAAC,GAAU,GAAGC,EAAA,GACrDC,MACc;AACd,QAAM,EAAE,cAAAC,GAAc,cAAAC,EAAA,IAAiBC,EAAcL,GAAUD,CAAQ;AACvE,SACI,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACI,GAAGN;AAAA,MACJ,KAAAC;AAAA,MACA,gBAAcJ;AAAA,MACd,MAAK;AAAA,MACL,UAAQ;AAAA,MACR,UAAUK;AAAA,MACV,UAAUC;AAAA,IAAA;AAAA,EAAA;AAGtB;AAEAP,EAAiB,cAAc;AACxB,MAAMW,IAA+BC,EAAkDZ,CAAgB;"}
@@ -1,14 +1,8 @@
1
- const t = "_root_1h7zi_3", e = "_contentArea_1h7zi_71", o = "_hiddenText_1h7zi_76", n = "_visibleText_1h7zi_82", i = {
2
- root: t,
3
- contentArea: e,
4
- hiddenText: o,
5
- visibleText: n
1
+ const o = "_root_wpwbd_6", t = {
2
+ root: o
6
3
  };
7
4
  export {
8
- e as contentArea,
9
- i as default,
10
- o as hiddenText,
11
- t as root,
12
- n as visibleText
5
+ t as default,
6
+ o as root
13
7
  };
14
8
  //# sourceMappingURL=fondue-components61.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components61.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"fondue-components61.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}