@lindle/linoardo 1.0.18 → 1.0.20

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 (130) hide show
  1. package/dist/card.cjs +81 -19
  2. package/dist/card.cjs.map +1 -1
  3. package/dist/card.d.cts +8 -1
  4. package/dist/card.d.ts +8 -1
  5. package/dist/card.js +1 -1
  6. package/dist/chip.cjs +9 -1
  7. package/dist/chip.cjs.map +1 -1
  8. package/dist/chip.d.cts +3 -0
  9. package/dist/chip.d.ts +3 -0
  10. package/dist/chip.js +1 -1
  11. package/dist/chunk-36T6I3XH.js +167 -0
  12. package/dist/chunk-36T6I3XH.js.map +1 -0
  13. package/dist/{chunk-N65GNKRG.js → chunk-5LWU5T2C.js} +48 -42
  14. package/dist/chunk-5LWU5T2C.js.map +1 -0
  15. package/dist/{chunk-PWK6MLZT.js → chunk-5PBPURGP.js} +11 -3
  16. package/dist/chunk-5PBPURGP.js.map +1 -0
  17. package/dist/{chunk-XFPBICJG.js → chunk-5WQW6YSJ.js} +12 -3
  18. package/dist/chunk-5WQW6YSJ.js.map +1 -0
  19. package/dist/{chunk-5GY2JCBO.js → chunk-AK7LFJI4.js} +16 -5
  20. package/dist/chunk-AK7LFJI4.js.map +1 -0
  21. package/dist/chunk-B5FW33K3.js +147 -0
  22. package/dist/chunk-B5FW33K3.js.map +1 -0
  23. package/dist/{chunk-AOHXZ7OM.js → chunk-GMDNSU26.js} +19 -5
  24. package/dist/chunk-GMDNSU26.js.map +1 -0
  25. package/dist/chunk-HAXGOTZO.js +94 -0
  26. package/dist/chunk-HAXGOTZO.js.map +1 -0
  27. package/dist/chunk-HEXJCQRO.js +51 -0
  28. package/dist/chunk-HEXJCQRO.js.map +1 -0
  29. package/dist/{chunk-GA6HSRN6.js → chunk-KRYWWWXR.js} +20 -7
  30. package/dist/chunk-KRYWWWXR.js.map +1 -0
  31. package/dist/{chunk-U6NAIIDI.js → chunk-LIEBZOLG.js} +42 -20
  32. package/dist/chunk-LIEBZOLG.js.map +1 -0
  33. package/dist/{chunk-E32P5AHO.js → chunk-LYP7V32H.js} +10 -4
  34. package/dist/chunk-LYP7V32H.js.map +1 -0
  35. package/dist/chunk-MFLH36XK.js +168 -0
  36. package/dist/chunk-MFLH36XK.js.map +1 -0
  37. package/dist/{chunk-QGQ66FJD.js → chunk-T37VPLS4.js} +2 -2
  38. package/dist/chunk-T37VPLS4.js.map +1 -0
  39. package/dist/{chunk-32KFNI6K.js → chunk-U2AL7XFY.js} +48 -28
  40. package/dist/chunk-U2AL7XFY.js.map +1 -0
  41. package/dist/dialog.cjs +40 -18
  42. package/dist/dialog.cjs.map +1 -1
  43. package/dist/dialog.d.cts +3 -0
  44. package/dist/dialog.d.ts +3 -0
  45. package/dist/dialog.js +1 -1
  46. package/dist/expansion-panel/item.cjs +11 -2
  47. package/dist/expansion-panel/item.cjs.map +1 -1
  48. package/dist/expansion-panel/item.js +1 -1
  49. package/dist/expansion-panel.cjs +25 -6
  50. package/dist/expansion-panel.cjs.map +1 -1
  51. package/dist/expansion-panel.js +2 -2
  52. package/dist/icon.cjs +53 -0
  53. package/dist/icon.cjs.map +1 -0
  54. package/dist/icon.d.cts +15 -0
  55. package/dist/icon.d.ts +15 -0
  56. package/dist/icon.js +3 -0
  57. package/dist/icon.js.map +1 -0
  58. package/dist/{index-Md3BuoGM.d.cts → index-B5n8tN2G.d.cts} +3 -0
  59. package/dist/{index-d_JuI06O.d.ts → index-D4-O-oJt.d.ts} +3 -0
  60. package/dist/index.cjs +956 -149
  61. package/dist/index.cjs.map +1 -1
  62. package/dist/index.d.cts +64 -3
  63. package/dist/index.d.ts +64 -3
  64. package/dist/index.js +296 -12
  65. package/dist/index.js.map +1 -1
  66. package/dist/input.cjs +104 -30
  67. package/dist/input.cjs.map +1 -1
  68. package/dist/input.d.cts +8 -19
  69. package/dist/input.d.ts +8 -19
  70. package/dist/input.js +1 -1
  71. package/dist/list/item.cjs +10 -1
  72. package/dist/list/item.cjs.map +1 -1
  73. package/dist/list/item.d.cts +1 -1
  74. package/dist/list/item.d.ts +1 -1
  75. package/dist/list/item.js +1 -1
  76. package/dist/list.cjs +23 -3
  77. package/dist/list.cjs.map +1 -1
  78. package/dist/list.d.cts +5 -2
  79. package/dist/list.d.ts +5 -2
  80. package/dist/list.js +2 -2
  81. package/dist/masonry.cjs +116 -0
  82. package/dist/masonry.cjs.map +1 -0
  83. package/dist/masonry.d.cts +45 -0
  84. package/dist/masonry.d.ts +45 -0
  85. package/dist/masonry.js +3 -0
  86. package/dist/masonry.js.map +1 -0
  87. package/dist/menu.cjs.map +1 -1
  88. package/dist/menu.d.cts +3 -0
  89. package/dist/menu.d.ts +3 -0
  90. package/dist/menu.js +1 -1
  91. package/dist/select.cjs +173 -0
  92. package/dist/select.cjs.map +1 -0
  93. package/dist/select.d.cts +29 -0
  94. package/dist/select.d.ts +29 -0
  95. package/dist/select.js +3 -0
  96. package/dist/select.js.map +1 -0
  97. package/dist/slider.cjs +17 -3
  98. package/dist/slider.cjs.map +1 -1
  99. package/dist/slider.d.cts +3 -0
  100. package/dist/slider.d.ts +3 -0
  101. package/dist/slider.js +1 -1
  102. package/dist/styles.css +1096 -8
  103. package/dist/switch.cjs +46 -40
  104. package/dist/switch.cjs.map +1 -1
  105. package/dist/switch.d.cts +3 -0
  106. package/dist/switch.d.ts +3 -0
  107. package/dist/switch.js +1 -1
  108. package/dist/tooltip.cjs +46 -26
  109. package/dist/tooltip.cjs.map +1 -1
  110. package/dist/tooltip.d.cts +3 -0
  111. package/dist/tooltip.d.ts +3 -0
  112. package/dist/tooltip.js +1 -1
  113. package/dist/types-BCqIOkp1.d.cts +24 -0
  114. package/dist/types-ChXN4u7x.d.ts +24 -0
  115. package/package.json +29 -7
  116. package/readme.md +1 -0
  117. package/dist/chunk-32KFNI6K.js.map +0 -1
  118. package/dist/chunk-5GY2JCBO.js.map +0 -1
  119. package/dist/chunk-AOHXZ7OM.js.map +0 -1
  120. package/dist/chunk-E32P5AHO.js.map +0 -1
  121. package/dist/chunk-GA6HSRN6.js.map +0 -1
  122. package/dist/chunk-N65GNKRG.js.map +0 -1
  123. package/dist/chunk-PWK6MLZT.js.map +0 -1
  124. package/dist/chunk-PYG5SDNO.js +0 -98
  125. package/dist/chunk-PYG5SDNO.js.map +0 -1
  126. package/dist/chunk-QGQ66FJD.js.map +0 -1
  127. package/dist/chunk-U6NAIIDI.js.map +0 -1
  128. package/dist/chunk-V4BVJOSC.js +0 -85
  129. package/dist/chunk-V4BVJOSC.js.map +0 -1
  130. package/dist/chunk-XFPBICJG.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Form/Slider/index.tsx"],"names":["useState","useEffect","twMerge","jsxs","jsx"],"mappings":"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","file":"slider.cjs","sourcesContent":["import { type ChangeEvent, type CSSProperties, useEffect, useState } from 'react';\nimport type { Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\nimport type { SliderProps, SliderSize } from './types.slider';\n\nconst paletteValues: Record<Palette, { fill: string; ring: string; thumbBorder: string }> = {\n primary: { fill: 'var(--color-primary, #6366f1)', ring: 'rgba(99, 102, 241, 0.28)', thumbBorder: '#6366f1' },\n neutral: { fill: '#4b5563', ring: 'rgba(75, 85, 99, 0.28)', thumbBorder: '#4b5563' },\n info: { fill: '#0284c7', ring: 'rgba(2, 132, 199, 0.28)', thumbBorder: '#0284c7' },\n success: { fill: '#059669', ring: 'rgba(5, 150, 105, 0.24)', thumbBorder: '#059669' },\n warning: { fill: '#d97706', ring: 'rgba(217, 119, 6, 0.24)', thumbBorder: '#d97706' },\n danger: { fill: '#dc2626', ring: 'rgba(220, 38, 38, 0.24)', thumbBorder: '#dc2626' },\n surface: { fill: '#0f172a', ring: 'rgba(15, 23, 42, 0.22)', thumbBorder: '#0f172a' },\n bw: { fill: '#000000', ring: 'rgba(0, 0, 0, 0.26)', thumbBorder: '#000000' }\n};\n\nconst sizeTokens: Record<\n SliderSize,\n { trackHeight: string; thumbSize: string; trackClass: string; valueClass: string }\n> = {\n small: { trackHeight: '0.375rem', thumbSize: '1.1rem', trackClass: 'h-1.5', valueClass: 'text-xs' },\n medium: { trackHeight: '0.5rem', thumbSize: '1.25rem', trackClass: 'h-2', valueClass: 'text-sm' },\n large: { trackHeight: '0.6rem', thumbSize: '1.4rem', trackClass: 'h-[0.65rem]', valueClass: 'text-base' }\n};\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\nconst toNumber = (value: number | string | undefined, fallback: number) => {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\ntype SliderCssVariables = CSSProperties & Record<string, string>;\n\nconst Slider: React.FC<SliderProps> = ({\n color = 'primary',\n size = 'medium',\n label,\n hint,\n showValue = true,\n valueLabel,\n wrapperClassName,\n className,\n trackColor,\n onChange,\n disabled,\n min = 0,\n max = 100,\n step = 1,\n ...rest\n}) => {\n const palette = paletteValues[color] ?? paletteValues.primary;\n const sizeToken = sizeTokens[size] ?? sizeTokens.medium;\n const { value, defaultValue, ...inputProps } = rest;\n const resolvedMin = toNumber(min, 0);\n const resolvedMax = toNumber(max, resolvedMin < 100 ? 100 : resolvedMin);\n const resolvedStep = toNumber(step, 1);\n const isControlled = typeof value === 'number';\n const [internalValue, setInternalValue] = useState<number>(\n clamp(\n typeof value === 'number'\n ? value\n : typeof defaultValue === 'number'\n ? defaultValue\n : resolvedMin,\n resolvedMin,\n resolvedMax\n )\n );\n\n useEffect(() => {\n if (isControlled && typeof value === 'number') {\n setInternalValue(clamp(value, resolvedMin, resolvedMax));\n }\n }, [isControlled, value, resolvedMin, resolvedMax]);\n\n useEffect(() => {\n if (!isControlled) {\n setInternalValue(prev => clamp(prev, resolvedMin, resolvedMax));\n }\n }, [isControlled, resolvedMin, resolvedMax]);\n\n const currentValue =\n isControlled && typeof value === 'number' ? clamp(value, resolvedMin, resolvedMax) : internalValue;\n const percentage = resolvedMax === resolvedMin ? 0 : ((currentValue - resolvedMin) / (resolvedMax - resolvedMin)) * 100;\n const cssVars: SliderCssVariables = {\n '--slider-color': palette.fill,\n '--slider-ring-color': palette.ring,\n '--slider-thumb-border': palette.thumbBorder,\n '--slider-track-color': trackColor ?? '#e5e7eb',\n '--slider-track-height': sizeToken.trackHeight,\n '--slider-thumb-size': sizeToken.thumbSize,\n '--slider-percentage': `${percentage}%`\n };\n\n if (disabled) {\n cssVars['--slider-disabled-fill'] = '#d1d5db';\n cssVars['--slider-thumb-border'] = '#d1d5db';\n cssVars['--slider-track-color-disabled'] = '#e5e7eb';\n }\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = Number(event.target.value);\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n onChange?.(nextValue, event);\n };\n\n const displayValue = valueLabel ? valueLabel(currentValue) : currentValue;\n\n return (\n <div className={twMerge('flex flex-col gap-2', wrapperClassName)}>\n {(label || showValue) && (\n <div className='flex items-center justify-between'>\n {label && <span className='text-sm font-medium text-gray-900'>{label}</span>}\n {showValue && <span className={twMerge('tabular-nums text-gray-900', sizeToken.valueClass)}>{displayValue}</span>}\n </div>\n )}\n\n <input\n {...inputProps}\n type='range'\n min={resolvedMin}\n max={resolvedMax}\n step={resolvedStep}\n value={currentValue}\n onChange={handleChange}\n disabled={disabled}\n className={twMerge(\n 'slider-control focus-visible:outline-none rounded-full',\n sizeToken.trackClass,\n disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer',\n className\n )}\n style={cssVars}\n />\n\n {hint && <p className='text-xs text-gray-600'>{hint}</p>}\n </div>\n );\n};\n\nexport default Slider;\n"]}
1
+ {"version":3,"sources":["../src/Form/Slider/index.tsx"],"names":["useState","useEffect","twMerge","jsxs","jsx"],"mappings":"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","file":"slider.cjs","sourcesContent":["import { type ChangeEvent, type CSSProperties, useEffect, useState } from 'react';\nimport type { Palette } from '@lindle/linoardo/global.types';\nimport { twMerge } from 'tailwind-merge';\nimport type { SliderProps, SliderSize } from './types.slider';\n\nconst paletteValues: Record<Palette, { fill: string; ring: string; thumbBorder: string }> = {\n primary: {\n fill: 'var(--color-primary, #6366f1)',\n ring: 'rgba(99, 102, 241, 0.28)',\n thumbBorder: '#6366f1'\n },\n neutral: { fill: '#4b5563', ring: 'rgba(75, 85, 99, 0.28)', thumbBorder: '#4b5563' },\n info: { fill: '#0284c7', ring: 'rgba(2, 132, 199, 0.28)', thumbBorder: '#0284c7' },\n success: { fill: '#059669', ring: 'rgba(5, 150, 105, 0.24)', thumbBorder: '#059669' },\n warning: { fill: '#d97706', ring: 'rgba(217, 119, 6, 0.24)', thumbBorder: '#d97706' },\n danger: { fill: '#dc2626', ring: 'rgba(220, 38, 38, 0.24)', thumbBorder: '#dc2626' },\n surface: { fill: '#0f172a', ring: 'rgba(15, 23, 42, 0.22)', thumbBorder: '#0f172a' },\n bw: { fill: '#000000', ring: 'rgba(0, 0, 0, 0.26)', thumbBorder: '#000000' }\n};\n\nconst sizeTokens: Record<\n SliderSize,\n { trackHeight: string; thumbSize: string; trackClass: string; valueClass: string }\n> = {\n small: {\n trackHeight: '0.375rem',\n thumbSize: '1.1rem',\n trackClass: 'h-1.5',\n valueClass: 'text-xs'\n },\n medium: { trackHeight: '0.5rem', thumbSize: '1.25rem', trackClass: 'h-2', valueClass: 'text-sm' },\n large: {\n trackHeight: '0.6rem',\n thumbSize: '1.4rem',\n trackClass: 'h-[0.65rem]',\n valueClass: 'text-base'\n }\n};\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\nconst toNumber = (value: number | string | undefined, fallback: number) => {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : fallback;\n};\n\ntype SliderCssVariables = CSSProperties & Record<string, string>;\n\n/**\n * Range input styled as a slider with palette-aware colors, labels and controlled/uncontrolled modes.\n */\nconst Slider: React.FC<SliderProps> = ({\n color = 'primary',\n size = 'medium',\n label,\n hint,\n showValue = true,\n valueLabel,\n wrapperClassName,\n className,\n trackColor,\n onChange,\n disabled,\n min = 0,\n max = 100,\n step = 1,\n ...rest\n}) => {\n const palette = paletteValues[color] ?? paletteValues.primary;\n const sizeToken = sizeTokens[size] ?? sizeTokens.medium;\n const { value, defaultValue, ...inputProps } = rest;\n const resolvedMin = toNumber(min, 0);\n const resolvedMax = toNumber(max, resolvedMin < 100 ? 100 : resolvedMin);\n const resolvedStep = toNumber(step, 1);\n const isControlled = typeof value === 'number';\n const [internalValue, setInternalValue] = useState<number>(\n clamp(\n typeof value === 'number'\n ? value\n : typeof defaultValue === 'number'\n ? defaultValue\n : resolvedMin,\n resolvedMin,\n resolvedMax\n )\n );\n\n useEffect(() => {\n if (isControlled && typeof value === 'number') {\n setInternalValue(clamp(value, resolvedMin, resolvedMax));\n }\n }, [isControlled, value, resolvedMin, resolvedMax]);\n\n useEffect(() => {\n if (!isControlled) {\n setInternalValue(prev => clamp(prev, resolvedMin, resolvedMax));\n }\n }, [isControlled, resolvedMin, resolvedMax]);\n\n const currentValue =\n isControlled && typeof value === 'number'\n ? clamp(value, resolvedMin, resolvedMax)\n : internalValue;\n const percentage =\n resolvedMax === resolvedMin\n ? 0\n : ((currentValue - resolvedMin) / (resolvedMax - resolvedMin)) * 100;\n const cssVars: SliderCssVariables = {\n '--slider-color': palette.fill,\n '--slider-ring-color': palette.ring,\n '--slider-thumb-border': palette.thumbBorder,\n '--slider-track-color': trackColor ?? '#e5e7eb',\n '--slider-track-height': sizeToken.trackHeight,\n '--slider-thumb-size': sizeToken.thumbSize,\n '--slider-percentage': `${percentage}%`\n };\n\n if (disabled) {\n cssVars['--slider-disabled-fill'] = '#d1d5db';\n cssVars['--slider-thumb-border'] = '#d1d5db';\n cssVars['--slider-track-color-disabled'] = '#e5e7eb';\n }\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = Number(event.target.value);\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n onChange?.(nextValue, event);\n };\n\n const displayValue = valueLabel ? valueLabel(currentValue) : currentValue;\n\n return (\n <div className={twMerge('flex flex-col gap-2', wrapperClassName)}>\n {(label || showValue) && (\n <div className='flex items-center justify-between'>\n {label && <span className='text-sm font-medium text-gray-900'>{label}</span>}\n {showValue && (\n <span className={twMerge('tabular-nums text-gray-900', sizeToken.valueClass)}>\n {displayValue}\n </span>\n )}\n </div>\n )}\n\n <input\n {...inputProps}\n type='range'\n min={resolvedMin}\n max={resolvedMax}\n step={resolvedStep}\n value={currentValue}\n onChange={handleChange}\n disabled={disabled}\n className={twMerge(\n 'slider-control focus-visible:outline-none rounded-full',\n sizeToken.trackClass,\n disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer',\n className\n )}\n style={cssVars}\n />\n\n {hint && <p className='text-xs text-gray-600'>{hint}</p>}\n </div>\n );\n};\n\nexport default Slider;\n"]}
package/dist/slider.d.cts CHANGED
@@ -37,6 +37,9 @@ type SliderProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 's
37
37
  onChange?: (value: number, event: React.ChangeEvent<HTMLInputElement>) => void;
38
38
  };
39
39
 
40
+ /**
41
+ * Range input styled as a slider with palette-aware colors, labels and controlled/uncontrolled modes.
42
+ */
40
43
  declare const Slider: React.FC<SliderProps>;
41
44
 
42
45
  export { Slider as default };
package/dist/slider.d.ts CHANGED
@@ -37,6 +37,9 @@ type SliderProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 's
37
37
  onChange?: (value: number, event: React.ChangeEvent<HTMLInputElement>) => void;
38
38
  };
39
39
 
40
+ /**
41
+ * Range input styled as a slider with palette-aware colors, labels and controlled/uncontrolled modes.
42
+ */
40
43
  declare const Slider: React.FC<SliderProps>;
41
44
 
42
45
  export { Slider as default };
package/dist/slider.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Slider_default as default } from './chunk-AOHXZ7OM.js';
1
+ export { Slider_default as default } from './chunk-GMDNSU26.js';
2
2
  //# sourceMappingURL=slider.js.map
3
3
  //# sourceMappingURL=slider.js.map