@zentauri-ui/zentauri-components 2.2.1 → 2.3.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 (142) hide show
  1. package/README.md +11 -8
  2. package/cli/props.json +437 -0
  3. package/cli/registry.json +9 -0
  4. package/dist/{chunk-NW5BSLR2.js → chunk-AARJLZXP.js} +6 -6
  5. package/dist/{chunk-NW5BSLR2.js.map → chunk-AARJLZXP.js.map} +1 -1
  6. package/dist/chunk-ATE5SCTR.mjs +39 -0
  7. package/dist/chunk-ATE5SCTR.mjs.map +1 -0
  8. package/dist/{chunk-YSQW56JX.mjs → chunk-BFHJF4MV.mjs} +4 -4
  9. package/dist/{chunk-YSQW56JX.mjs.map → chunk-BFHJF4MV.mjs.map} +1 -1
  10. package/dist/chunk-DIAA5VH4.mjs +64 -0
  11. package/dist/chunk-DIAA5VH4.mjs.map +1 -0
  12. package/dist/{chunk-DUH2YLH2.js → chunk-DSX6RUYI.js} +12 -12
  13. package/dist/{chunk-DUH2YLH2.js.map → chunk-DSX6RUYI.js.map} +1 -1
  14. package/dist/chunk-ENKXB2BA.js +19 -0
  15. package/dist/{chunk-YBKNXDZU.js.map → chunk-ENKXB2BA.js.map} +1 -1
  16. package/dist/chunk-EZNR7VLJ.js +65 -0
  17. package/dist/chunk-EZNR7VLJ.js.map +1 -0
  18. package/dist/chunk-H3BJOK22.js +74 -0
  19. package/dist/chunk-H3BJOK22.js.map +1 -0
  20. package/dist/{chunk-45ZHGDT2.mjs → chunk-JKKF5DCF.mjs} +3 -3
  21. package/dist/{chunk-45ZHGDT2.mjs.map → chunk-JKKF5DCF.mjs.map} +1 -1
  22. package/dist/chunk-PQ2XTY3M.js +44 -0
  23. package/dist/chunk-PQ2XTY3M.js.map +1 -0
  24. package/dist/chunk-RDYR4DHG.mjs +62 -0
  25. package/dist/chunk-RDYR4DHG.mjs.map +1 -0
  26. package/dist/chunk-RWF3NVZP.mjs +29 -0
  27. package/dist/chunk-RWF3NVZP.mjs.map +1 -0
  28. package/dist/{chunk-Z4Y5IPR3.mjs → chunk-WZY32L6K.mjs} +3 -3
  29. package/dist/{chunk-Z4Y5IPR3.mjs.map → chunk-WZY32L6K.mjs.map} +1 -1
  30. package/dist/chunk-YRQN3AV4.js +38 -0
  31. package/dist/chunk-YRQN3AV4.js.map +1 -0
  32. package/dist/{chunk-UJZ7JQBQ.js → chunk-YY7G4NV3.js} +25 -6
  33. package/dist/chunk-YY7G4NV3.js.map +1 -0
  34. package/dist/{chunk-5HLEHSPM.mjs → chunk-ZB6C6CJQ.mjs} +25 -6
  35. package/dist/chunk-ZB6C6CJQ.mjs.map +1 -0
  36. package/dist/design-system/facade.js +8 -6
  37. package/dist/design-system/facade.js.map +1 -1
  38. package/dist/design-system/facade.mjs +7 -5
  39. package/dist/design-system/facade.mjs.map +1 -1
  40. package/dist/design-system/hash-generator.d.ts +15 -0
  41. package/dist/design-system/hash-generator.d.ts.map +1 -0
  42. package/dist/design-system/index.d.ts +2 -0
  43. package/dist/design-system/index.d.ts.map +1 -1
  44. package/dist/design-system/secret-reveal.d.ts +57 -0
  45. package/dist/design-system/secret-reveal.d.ts.map +1 -0
  46. package/dist/hooks/index.d.ts +1 -0
  47. package/dist/hooks/index.d.ts.map +1 -1
  48. package/dist/hooks/useHash/index.d.ts +2 -0
  49. package/dist/hooks/useHash/index.d.ts.map +1 -0
  50. package/dist/hooks/useHash/useHash.d.ts +20 -0
  51. package/dist/hooks/useHash/useHash.d.ts.map +1 -0
  52. package/dist/hooks/useHash.js +18 -0
  53. package/dist/hooks/useHash.js.map +1 -0
  54. package/dist/hooks/useHash.mjs +5 -0
  55. package/dist/hooks/useHash.mjs.map +1 -0
  56. package/dist/ui/buttons/animated.js +10 -8
  57. package/dist/ui/buttons/animated.js.map +1 -1
  58. package/dist/ui/buttons/animated.mjs +8 -6
  59. package/dist/ui/buttons/animated.mjs.map +1 -1
  60. package/dist/ui/buttons.js +11 -9
  61. package/dist/ui/buttons.mjs +9 -7
  62. package/dist/ui/data-table.js +21 -19
  63. package/dist/ui/data-table.js.map +1 -1
  64. package/dist/ui/data-table.mjs +11 -9
  65. package/dist/ui/data-table.mjs.map +1 -1
  66. package/dist/ui/dynamic-stepper.js +20 -18
  67. package/dist/ui/dynamic-stepper.js.map +1 -1
  68. package/dist/ui/dynamic-stepper.mjs +9 -7
  69. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  70. package/dist/ui/hash-generator/hash-generator-base.d.ts +6 -0
  71. package/dist/ui/hash-generator/hash-generator-base.d.ts.map +1 -0
  72. package/dist/ui/hash-generator/hash-generator.d.ts +2 -0
  73. package/dist/ui/hash-generator/hash-generator.d.ts.map +1 -0
  74. package/dist/ui/hash-generator/index.d.ts +5 -0
  75. package/dist/ui/hash-generator/index.d.ts.map +1 -0
  76. package/dist/ui/hash-generator/types.d.ts +17 -0
  77. package/dist/ui/hash-generator/types.d.ts.map +1 -0
  78. package/dist/ui/hash-generator/variants.d.ts +10 -0
  79. package/dist/ui/hash-generator/variants.d.ts.map +1 -0
  80. package/dist/ui/hash-generator.js +126 -0
  81. package/dist/ui/hash-generator.js.map +1 -0
  82. package/dist/ui/hash-generator.mjs +117 -0
  83. package/dist/ui/hash-generator.mjs.map +1 -0
  84. package/dist/ui/pagination.js +12 -10
  85. package/dist/ui/pagination.mjs +9 -7
  86. package/dist/ui/secret-reveal/animated/animations.d.ts +8 -0
  87. package/dist/ui/secret-reveal/animated/animations.d.ts.map +1 -0
  88. package/dist/ui/secret-reveal/animated/index.d.ts +4 -0
  89. package/dist/ui/secret-reveal/animated/index.d.ts.map +1 -0
  90. package/dist/ui/secret-reveal/animated/secret-reveal-animated.d.ts +6 -0
  91. package/dist/ui/secret-reveal/animated/secret-reveal-animated.d.ts.map +1 -0
  92. package/dist/ui/secret-reveal/animated/types.d.ts +9 -0
  93. package/dist/ui/secret-reveal/animated/types.d.ts.map +1 -0
  94. package/dist/ui/secret-reveal/animated.js +194 -0
  95. package/dist/ui/secret-reveal/animated.js.map +1 -0
  96. package/dist/ui/secret-reveal/animated.mjs +191 -0
  97. package/dist/ui/secret-reveal/animated.mjs.map +1 -0
  98. package/dist/ui/secret-reveal/index.d.ts +4 -0
  99. package/dist/ui/secret-reveal/index.d.ts.map +1 -0
  100. package/dist/ui/secret-reveal/secret-reveal-base.d.ts +6 -0
  101. package/dist/ui/secret-reveal/secret-reveal-base.d.ts.map +1 -0
  102. package/dist/ui/secret-reveal/secret-reveal.d.ts +2 -0
  103. package/dist/ui/secret-reveal/secret-reveal.d.ts.map +1 -0
  104. package/dist/ui/secret-reveal/types.d.ts +15 -0
  105. package/dist/ui/secret-reveal/types.d.ts.map +1 -0
  106. package/dist/ui/secret-reveal/variants.d.ts +15 -0
  107. package/dist/ui/secret-reveal/variants.d.ts.map +1 -0
  108. package/dist/ui/secret-reveal.js +136 -0
  109. package/dist/ui/secret-reveal.js.map +1 -0
  110. package/dist/ui/secret-reveal.mjs +119 -0
  111. package/dist/ui/secret-reveal.mjs.map +1 -0
  112. package/dist/ui/split-button.js +22 -20
  113. package/dist/ui/split-button.js.map +1 -1
  114. package/dist/ui/split-button.mjs +9 -7
  115. package/dist/ui/split-button.mjs.map +1 -1
  116. package/package.json +1 -1
  117. package/src/design-system/hash-generator.ts +34 -0
  118. package/src/design-system/index.ts +2 -0
  119. package/src/design-system/secret-reveal.ts +75 -0
  120. package/src/hooks/index.ts +6 -0
  121. package/src/hooks/useHash/index.ts +6 -0
  122. package/src/hooks/useHash/useHash.test.ts +77 -0
  123. package/src/hooks/useHash/useHash.ts +89 -0
  124. package/src/ui/hash-generator/hash-generator-base.tsx +106 -0
  125. package/src/ui/hash-generator/hash-generator.test.tsx +73 -0
  126. package/src/ui/hash-generator/hash-generator.tsx +1 -0
  127. package/src/ui/hash-generator/index.ts +18 -0
  128. package/src/ui/hash-generator/types.ts +29 -0
  129. package/src/ui/hash-generator/variants.ts +31 -0
  130. package/src/ui/secret-reveal/animated/animations.ts +74 -0
  131. package/src/ui/secret-reveal/animated/index.ts +5 -0
  132. package/src/ui/secret-reveal/animated/secret-reveal-animated.tsx +132 -0
  133. package/src/ui/secret-reveal/animated/types.ts +11 -0
  134. package/src/ui/secret-reveal/index.ts +14 -0
  135. package/src/ui/secret-reveal/secret-reveal-base.tsx +116 -0
  136. package/src/ui/secret-reveal/secret-reveal.test.tsx +75 -0
  137. package/src/ui/secret-reveal/secret-reveal.tsx +2 -0
  138. package/src/ui/secret-reveal/types.ts +21 -0
  139. package/src/ui/secret-reveal/variants.ts +49 -0
  140. package/dist/chunk-5HLEHSPM.mjs.map +0 -1
  141. package/dist/chunk-UJZ7JQBQ.js.map +0 -1
  142. package/dist/chunk-YBKNXDZU.js +0 -19
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/dynamic-stepper/variants.ts","../../src/ui/dynamic-stepper/dynamic-stepper.tsx"],"names":["zuiDynamicStepperIndicatorToneClasses","cva","zuiDynamicStepperRootBase","zuiDynamicStepperRootOrientations","zuiDynamicStepperMapperBase","zuiDynamicStepperMapperOrientations","zuiDynamicStepperItemBase","zuiDynamicStepperItemOrientations","zuiDynamicStepperIndicatorBase","zuiDynamicStepperIndicatorSizes","useId","useDynamicStepper","jsxs","cn","jsx","Button"],"mappings":"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","file":"dynamic-stepper.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nimport {\n zuiDynamicStepperIndicatorBase,\n zuiDynamicStepperIndicatorSizes,\n zuiDynamicStepperIndicatorToneClasses,\n zuiDynamicStepperItemBase,\n zuiDynamicStepperItemOrientations,\n zuiDynamicStepperMapperBase,\n zuiDynamicStepperMapperOrientations,\n zuiDynamicStepperRootBase,\n zuiDynamicStepperRootOrientations,\n type ZuiDynamicStepperIndicatorSemanticState,\n type ZuiDynamicStepperIndicatorToneAppearance,\n} from \"../../design-system/dynamic-stepper\";\n\nexport type DynamicStepperIndicatorToneAppearance =\n ZuiDynamicStepperIndicatorToneAppearance;\n\nexport type DynamicStepperIndicatorSemanticState =\n ZuiDynamicStepperIndicatorSemanticState;\n\nexport function dynamicStepperIndicatorToneClass(\n state: DynamicStepperIndicatorSemanticState,\n tone: DynamicStepperIndicatorToneAppearance,\n) {\n return zuiDynamicStepperIndicatorToneClasses[tone][state];\n}\n\nexport const dynamicStepperRootVariants = cva(zuiDynamicStepperRootBase, {\n variants: {\n orientation: zuiDynamicStepperRootOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperMapperVariants = cva(zuiDynamicStepperMapperBase, {\n variants: {\n orientation: zuiDynamicStepperMapperOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperItemVariants = cva(zuiDynamicStepperItemBase, {\n variants: {\n orientation: zuiDynamicStepperItemOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperIndicatorVariants = cva(\n zuiDynamicStepperIndicatorBase,\n {\n variants: {\n size: zuiDynamicStepperIndicatorSizes,\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport { useId } from \"react\";\n\nimport { useDynamicStepper } from \"../../hooks/useDynamicStepper/useDynamicStepper\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../buttons/button\";\n\nimport type { DynamicStepperProps } from \"./types\";\nimport {\n dynamicStepperIndicatorToneClass,\n dynamicStepperIndicatorVariants,\n dynamicStepperItemVariants,\n dynamicStepperMapperVariants,\n dynamicStepperRootVariants,\n} from \"./variants\";\n\nexport const DynamicStepper = ({\n steps,\n orientation = \"horizontal\",\n buttonAppearance = \"outline\",\n buttonSize = \"md\",\n indicatorSize = \"md\",\n indicatorCompleteAppearance = \"emerald\",\n indicatorCurrentAppearance = \"violet\",\n indicatorUpcomingAppearance = \"outline\",\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n prevLabel = \"Previous\",\n nextLabel = \"Next\",\n className,\n ref,\n ...rest\n}: DynamicStepperProps) => {\n const baseId = useId();\n const previousId = `${baseId}-previous`;\n const nextId = `${baseId}-next`;\n const mapperId = `${baseId}-mapper`;\n\n const { activeStep, goPrevious, goNext, canGoPrevious, canGoNext } =\n useDynamicStepper({\n stepCount: steps.length,\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n });\n\n if (steps.length === 0) {\n return null;\n }\n\n const itemOrientation =\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\";\n\n return (\n <div\n ref={ref}\n role=\"navigation\"\n data-slot=\"dynamic-stepper\"\n className={cn(dynamicStepperRootVariants({ orientation }), className)}\n {...rest}\n >\n <Button\n id={previousId}\n data-slot=\"dynamic-stepper-previous\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoPrevious}\n onClick={goPrevious}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {prevLabel}\n </Button>\n\n <ol\n id={mapperId}\n aria-label=\"Steps\"\n data-slot=\"dynamic-stepper-mapper\"\n className={dynamicStepperMapperVariants({ orientation })}\n >\n {steps.map((step, index) => {\n const key = step.id ?? `dynamic-stepper-step-${index}`;\n const isCurrent = index === activeStep;\n const semanticState =\n index < activeStep\n ? \"complete\"\n : isCurrent\n ? \"current\"\n : \"upcoming\";\n const indicatorTone =\n semanticState === \"complete\"\n ? indicatorCompleteAppearance\n : semanticState === \"current\"\n ? indicatorCurrentAppearance\n : indicatorUpcomingAppearance;\n\n const isVertical = orientation === \"vertical\";\n\n return (\n <li\n key={key}\n data-slot=\"dynamic-stepper-item\"\n aria-current={isCurrent ? \"step\" : undefined}\n className={dynamicStepperItemVariants({\n orientation: itemOrientation,\n })}\n >\n <div\n data-slot=\"dynamic-stepper-indicator\"\n className={cn(\n dynamicStepperIndicatorVariants({ size: indicatorSize }),\n dynamicStepperIndicatorToneClass(\n semanticState,\n indicatorTone,\n ),\n )}\n >\n {step.indicator ?? index + 1}\n </div>\n <div\n className={cn(\n \"min-w-0\",\n !isVertical && \"flex flex-col items-center\",\n )}\n >\n {step.title != null && (\n <div\n className={cn(\n \"text-sm font-semibold dark:text-white text-slate-900\",\n !isVertical && \"mt-3\",\n )}\n >\n {step.title}\n </div>\n )}\n {step.description != null && (\n <p className=\"mt-1 text-xs text-slate-900 dark:text-slate-400\">\n {step.description}\n </p>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n\n <Button\n id={nextId}\n data-slot=\"dynamic-stepper-next\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoNext}\n onClick={goNext}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {nextLabel}\n </Button>\n </div>\n );\n};\n\nDynamicStepper.displayName = \"DynamicStepper\";\n"]}
1
+ {"version":3,"sources":["../../src/ui/dynamic-stepper/variants.ts","../../src/ui/dynamic-stepper/dynamic-stepper.tsx"],"names":["zuiDynamicStepperIndicatorToneClasses","cva","zuiDynamicStepperRootBase","zuiDynamicStepperRootOrientations","zuiDynamicStepperMapperBase","zuiDynamicStepperMapperOrientations","zuiDynamicStepperItemBase","zuiDynamicStepperItemOrientations","zuiDynamicStepperIndicatorBase","zuiDynamicStepperIndicatorSizes","useId","useDynamicStepper","jsxs","cn","jsx","Button"],"mappings":"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","file":"dynamic-stepper.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nimport {\n zuiDynamicStepperIndicatorBase,\n zuiDynamicStepperIndicatorSizes,\n zuiDynamicStepperIndicatorToneClasses,\n zuiDynamicStepperItemBase,\n zuiDynamicStepperItemOrientations,\n zuiDynamicStepperMapperBase,\n zuiDynamicStepperMapperOrientations,\n zuiDynamicStepperRootBase,\n zuiDynamicStepperRootOrientations,\n type ZuiDynamicStepperIndicatorSemanticState,\n type ZuiDynamicStepperIndicatorToneAppearance,\n} from \"../../design-system/dynamic-stepper\";\n\nexport type DynamicStepperIndicatorToneAppearance =\n ZuiDynamicStepperIndicatorToneAppearance;\n\nexport type DynamicStepperIndicatorSemanticState =\n ZuiDynamicStepperIndicatorSemanticState;\n\nexport function dynamicStepperIndicatorToneClass(\n state: DynamicStepperIndicatorSemanticState,\n tone: DynamicStepperIndicatorToneAppearance,\n) {\n return zuiDynamicStepperIndicatorToneClasses[tone][state];\n}\n\nexport const dynamicStepperRootVariants = cva(zuiDynamicStepperRootBase, {\n variants: {\n orientation: zuiDynamicStepperRootOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperMapperVariants = cva(zuiDynamicStepperMapperBase, {\n variants: {\n orientation: zuiDynamicStepperMapperOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperItemVariants = cva(zuiDynamicStepperItemBase, {\n variants: {\n orientation: zuiDynamicStepperItemOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperIndicatorVariants = cva(\n zuiDynamicStepperIndicatorBase,\n {\n variants: {\n size: zuiDynamicStepperIndicatorSizes,\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport { useId } from \"react\";\n\nimport { useDynamicStepper } from \"../../hooks/useDynamicStepper/useDynamicStepper\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../buttons/button\";\n\nimport type { DynamicStepperProps } from \"./types\";\nimport {\n dynamicStepperIndicatorToneClass,\n dynamicStepperIndicatorVariants,\n dynamicStepperItemVariants,\n dynamicStepperMapperVariants,\n dynamicStepperRootVariants,\n} from \"./variants\";\n\nexport const DynamicStepper = ({\n steps,\n orientation = \"horizontal\",\n buttonAppearance = \"outline\",\n buttonSize = \"md\",\n indicatorSize = \"md\",\n indicatorCompleteAppearance = \"emerald\",\n indicatorCurrentAppearance = \"violet\",\n indicatorUpcomingAppearance = \"outline\",\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n prevLabel = \"Previous\",\n nextLabel = \"Next\",\n className,\n ref,\n ...rest\n}: DynamicStepperProps) => {\n const baseId = useId();\n const previousId = `${baseId}-previous`;\n const nextId = `${baseId}-next`;\n const mapperId = `${baseId}-mapper`;\n\n const { activeStep, goPrevious, goNext, canGoPrevious, canGoNext } =\n useDynamicStepper({\n stepCount: steps.length,\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n });\n\n if (steps.length === 0) {\n return null;\n }\n\n const itemOrientation =\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\";\n\n return (\n <div\n ref={ref}\n role=\"navigation\"\n data-slot=\"dynamic-stepper\"\n className={cn(dynamicStepperRootVariants({ orientation }), className)}\n {...rest}\n >\n <Button\n id={previousId}\n data-slot=\"dynamic-stepper-previous\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoPrevious}\n onClick={goPrevious}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {prevLabel}\n </Button>\n\n <ol\n id={mapperId}\n aria-label=\"Steps\"\n data-slot=\"dynamic-stepper-mapper\"\n className={dynamicStepperMapperVariants({ orientation })}\n >\n {steps.map((step, index) => {\n const key = step.id ?? `dynamic-stepper-step-${index}`;\n const isCurrent = index === activeStep;\n const semanticState =\n index < activeStep\n ? \"complete\"\n : isCurrent\n ? \"current\"\n : \"upcoming\";\n const indicatorTone =\n semanticState === \"complete\"\n ? indicatorCompleteAppearance\n : semanticState === \"current\"\n ? indicatorCurrentAppearance\n : indicatorUpcomingAppearance;\n\n const isVertical = orientation === \"vertical\";\n\n return (\n <li\n key={key}\n data-slot=\"dynamic-stepper-item\"\n aria-current={isCurrent ? \"step\" : undefined}\n className={dynamicStepperItemVariants({\n orientation: itemOrientation,\n })}\n >\n <div\n data-slot=\"dynamic-stepper-indicator\"\n className={cn(\n dynamicStepperIndicatorVariants({ size: indicatorSize }),\n dynamicStepperIndicatorToneClass(\n semanticState,\n indicatorTone,\n ),\n )}\n >\n {step.indicator ?? index + 1}\n </div>\n <div\n className={cn(\n \"min-w-0\",\n !isVertical && \"flex flex-col items-center\",\n )}\n >\n {step.title != null && (\n <div\n className={cn(\n \"text-sm font-semibold dark:text-white text-slate-900\",\n !isVertical && \"mt-3\",\n )}\n >\n {step.title}\n </div>\n )}\n {step.description != null && (\n <p className=\"mt-1 text-xs text-slate-900 dark:text-slate-400\">\n {step.description}\n </p>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n\n <Button\n id={nextId}\n data-slot=\"dynamic-stepper-next\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoNext}\n onClick={goNext}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {nextLabel}\n </Button>\n </div>\n );\n};\n\nDynamicStepper.displayName = \"DynamicStepper\";\n"]}
@@ -1,33 +1,35 @@
1
1
  "use client";
2
2
  import { useDynamicStepper } from '../chunk-4MPNRGUA.mjs';
3
3
  import '../chunk-NWOE2TZN.mjs';
4
- import { Button } from '../chunk-45ZHGDT2.mjs';
5
- import '../chunk-Z4Y5IPR3.mjs';
6
- import { zuiDynamicStepperRootBase, zuiDynamicStepperRootOrientations, zuiDynamicStepperMapperBase, zuiDynamicStepperMapperOrientations, zuiDynamicStepperItemBase, zuiDynamicStepperItemOrientations, zuiDynamicStepperIndicatorBase, zuiDynamicStepperIndicatorSizes, zuiDynamicStepperIndicatorToneClasses } from '../chunk-5HLEHSPM.mjs';
4
+ import { Button } from '../chunk-JKKF5DCF.mjs';
5
+ import '../chunk-WZY32L6K.mjs';
6
+ import { zuiDynamicStepperRootBase, zuiDynamicStepperRootOrientations, zuiDynamicStepperMapperBase, zuiDynamicStepperMapperOrientations, zuiDynamicStepperItemBase, zuiDynamicStepperItemOrientations, zuiDynamicStepperIndicatorBase, zuiDynamicStepperIndicatorSizes, zuiDynamicStepperIndicatorToneClasses } from '../chunk-ZB6C6CJQ.mjs';
7
7
  import '../chunk-2NQKFH26.mjs';
8
+ import '../chunk-YH6MOKHR.mjs';
9
+ import '../chunk-T4ZLTKV2.mjs';
8
10
  import '../chunk-EMZC6ICD.mjs';
9
11
  import '../chunk-PUSCPBT2.mjs';
12
+ import '../chunk-XFJIX2YP.mjs';
10
13
  import '../chunk-4WG3VNVL.mjs';
11
14
  import '../chunk-YPTHTFVF.mjs';
12
15
  import '../chunk-XY3TKIIH.mjs';
13
16
  import '../chunk-FX5KR2GP.mjs';
14
17
  import '../chunk-ZBAKTM2R.mjs';
15
18
  import '../chunk-4ZBMDWWY.mjs';
16
- import '../chunk-YH6MOKHR.mjs';
17
- import '../chunk-T4ZLTKV2.mjs';
19
+ import '../chunk-3IE4IELX.mjs';
18
20
  import '../chunk-BUEI4RMR.mjs';
19
21
  import '../chunk-5AOVTY2X.mjs';
20
22
  import '../chunk-523VQLCW.mjs';
21
23
  import '../chunk-3VW4HMJT.mjs';
24
+ import '../chunk-DIAA5VH4.mjs';
22
25
  import '../chunk-LRYKMXKI.mjs';
23
- import '../chunk-XFJIX2YP.mjs';
26
+ import '../chunk-RWF3NVZP.mjs';
24
27
  import '../chunk-34LHS26H.mjs';
25
28
  import '../chunk-JEDMUBYI.mjs';
26
29
  import '../chunk-EJ3UMMCS.mjs';
27
30
  import '../chunk-EE53BIXR.mjs';
28
31
  import '../chunk-YXU2MJMT.mjs';
29
32
  import '../chunk-LOEKM3FL.mjs';
30
- import '../chunk-3IE4IELX.mjs';
31
33
  import '../chunk-U64ISRUX.mjs';
32
34
  import '../chunk-SS3T3BUL.mjs';
33
35
  import '../chunk-SCWQSQBJ.mjs';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/dynamic-stepper/variants.ts","../../src/ui/dynamic-stepper/dynamic-stepper.tsx"],"names":[],"mappings":"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","file":"dynamic-stepper.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nimport {\n zuiDynamicStepperIndicatorBase,\n zuiDynamicStepperIndicatorSizes,\n zuiDynamicStepperIndicatorToneClasses,\n zuiDynamicStepperItemBase,\n zuiDynamicStepperItemOrientations,\n zuiDynamicStepperMapperBase,\n zuiDynamicStepperMapperOrientations,\n zuiDynamicStepperRootBase,\n zuiDynamicStepperRootOrientations,\n type ZuiDynamicStepperIndicatorSemanticState,\n type ZuiDynamicStepperIndicatorToneAppearance,\n} from \"../../design-system/dynamic-stepper\";\n\nexport type DynamicStepperIndicatorToneAppearance =\n ZuiDynamicStepperIndicatorToneAppearance;\n\nexport type DynamicStepperIndicatorSemanticState =\n ZuiDynamicStepperIndicatorSemanticState;\n\nexport function dynamicStepperIndicatorToneClass(\n state: DynamicStepperIndicatorSemanticState,\n tone: DynamicStepperIndicatorToneAppearance,\n) {\n return zuiDynamicStepperIndicatorToneClasses[tone][state];\n}\n\nexport const dynamicStepperRootVariants = cva(zuiDynamicStepperRootBase, {\n variants: {\n orientation: zuiDynamicStepperRootOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperMapperVariants = cva(zuiDynamicStepperMapperBase, {\n variants: {\n orientation: zuiDynamicStepperMapperOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperItemVariants = cva(zuiDynamicStepperItemBase, {\n variants: {\n orientation: zuiDynamicStepperItemOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperIndicatorVariants = cva(\n zuiDynamicStepperIndicatorBase,\n {\n variants: {\n size: zuiDynamicStepperIndicatorSizes,\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport { useId } from \"react\";\n\nimport { useDynamicStepper } from \"../../hooks/useDynamicStepper/useDynamicStepper\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../buttons/button\";\n\nimport type { DynamicStepperProps } from \"./types\";\nimport {\n dynamicStepperIndicatorToneClass,\n dynamicStepperIndicatorVariants,\n dynamicStepperItemVariants,\n dynamicStepperMapperVariants,\n dynamicStepperRootVariants,\n} from \"./variants\";\n\nexport const DynamicStepper = ({\n steps,\n orientation = \"horizontal\",\n buttonAppearance = \"outline\",\n buttonSize = \"md\",\n indicatorSize = \"md\",\n indicatorCompleteAppearance = \"emerald\",\n indicatorCurrentAppearance = \"violet\",\n indicatorUpcomingAppearance = \"outline\",\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n prevLabel = \"Previous\",\n nextLabel = \"Next\",\n className,\n ref,\n ...rest\n}: DynamicStepperProps) => {\n const baseId = useId();\n const previousId = `${baseId}-previous`;\n const nextId = `${baseId}-next`;\n const mapperId = `${baseId}-mapper`;\n\n const { activeStep, goPrevious, goNext, canGoPrevious, canGoNext } =\n useDynamicStepper({\n stepCount: steps.length,\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n });\n\n if (steps.length === 0) {\n return null;\n }\n\n const itemOrientation =\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\";\n\n return (\n <div\n ref={ref}\n role=\"navigation\"\n data-slot=\"dynamic-stepper\"\n className={cn(dynamicStepperRootVariants({ orientation }), className)}\n {...rest}\n >\n <Button\n id={previousId}\n data-slot=\"dynamic-stepper-previous\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoPrevious}\n onClick={goPrevious}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {prevLabel}\n </Button>\n\n <ol\n id={mapperId}\n aria-label=\"Steps\"\n data-slot=\"dynamic-stepper-mapper\"\n className={dynamicStepperMapperVariants({ orientation })}\n >\n {steps.map((step, index) => {\n const key = step.id ?? `dynamic-stepper-step-${index}`;\n const isCurrent = index === activeStep;\n const semanticState =\n index < activeStep\n ? \"complete\"\n : isCurrent\n ? \"current\"\n : \"upcoming\";\n const indicatorTone =\n semanticState === \"complete\"\n ? indicatorCompleteAppearance\n : semanticState === \"current\"\n ? indicatorCurrentAppearance\n : indicatorUpcomingAppearance;\n\n const isVertical = orientation === \"vertical\";\n\n return (\n <li\n key={key}\n data-slot=\"dynamic-stepper-item\"\n aria-current={isCurrent ? \"step\" : undefined}\n className={dynamicStepperItemVariants({\n orientation: itemOrientation,\n })}\n >\n <div\n data-slot=\"dynamic-stepper-indicator\"\n className={cn(\n dynamicStepperIndicatorVariants({ size: indicatorSize }),\n dynamicStepperIndicatorToneClass(\n semanticState,\n indicatorTone,\n ),\n )}\n >\n {step.indicator ?? index + 1}\n </div>\n <div\n className={cn(\n \"min-w-0\",\n !isVertical && \"flex flex-col items-center\",\n )}\n >\n {step.title != null && (\n <div\n className={cn(\n \"text-sm font-semibold dark:text-white text-slate-900\",\n !isVertical && \"mt-3\",\n )}\n >\n {step.title}\n </div>\n )}\n {step.description != null && (\n <p className=\"mt-1 text-xs text-slate-900 dark:text-slate-400\">\n {step.description}\n </p>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n\n <Button\n id={nextId}\n data-slot=\"dynamic-stepper-next\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoNext}\n onClick={goNext}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {nextLabel}\n </Button>\n </div>\n );\n};\n\nDynamicStepper.displayName = \"DynamicStepper\";\n"]}
1
+ {"version":3,"sources":["../../src/ui/dynamic-stepper/variants.ts","../../src/ui/dynamic-stepper/dynamic-stepper.tsx"],"names":[],"mappings":"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","file":"dynamic-stepper.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nimport {\n zuiDynamicStepperIndicatorBase,\n zuiDynamicStepperIndicatorSizes,\n zuiDynamicStepperIndicatorToneClasses,\n zuiDynamicStepperItemBase,\n zuiDynamicStepperItemOrientations,\n zuiDynamicStepperMapperBase,\n zuiDynamicStepperMapperOrientations,\n zuiDynamicStepperRootBase,\n zuiDynamicStepperRootOrientations,\n type ZuiDynamicStepperIndicatorSemanticState,\n type ZuiDynamicStepperIndicatorToneAppearance,\n} from \"../../design-system/dynamic-stepper\";\n\nexport type DynamicStepperIndicatorToneAppearance =\n ZuiDynamicStepperIndicatorToneAppearance;\n\nexport type DynamicStepperIndicatorSemanticState =\n ZuiDynamicStepperIndicatorSemanticState;\n\nexport function dynamicStepperIndicatorToneClass(\n state: DynamicStepperIndicatorSemanticState,\n tone: DynamicStepperIndicatorToneAppearance,\n) {\n return zuiDynamicStepperIndicatorToneClasses[tone][state];\n}\n\nexport const dynamicStepperRootVariants = cva(zuiDynamicStepperRootBase, {\n variants: {\n orientation: zuiDynamicStepperRootOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperMapperVariants = cva(zuiDynamicStepperMapperBase, {\n variants: {\n orientation: zuiDynamicStepperMapperOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperItemVariants = cva(zuiDynamicStepperItemBase, {\n variants: {\n orientation: zuiDynamicStepperItemOrientations,\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport const dynamicStepperIndicatorVariants = cva(\n zuiDynamicStepperIndicatorBase,\n {\n variants: {\n size: zuiDynamicStepperIndicatorSizes,\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport { useId } from \"react\";\n\nimport { useDynamicStepper } from \"../../hooks/useDynamicStepper/useDynamicStepper\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../buttons/button\";\n\nimport type { DynamicStepperProps } from \"./types\";\nimport {\n dynamicStepperIndicatorToneClass,\n dynamicStepperIndicatorVariants,\n dynamicStepperItemVariants,\n dynamicStepperMapperVariants,\n dynamicStepperRootVariants,\n} from \"./variants\";\n\nexport const DynamicStepper = ({\n steps,\n orientation = \"horizontal\",\n buttonAppearance = \"outline\",\n buttonSize = \"md\",\n indicatorSize = \"md\",\n indicatorCompleteAppearance = \"emerald\",\n indicatorCurrentAppearance = \"violet\",\n indicatorUpcomingAppearance = \"outline\",\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n prevLabel = \"Previous\",\n nextLabel = \"Next\",\n className,\n ref,\n ...rest\n}: DynamicStepperProps) => {\n const baseId = useId();\n const previousId = `${baseId}-previous`;\n const nextId = `${baseId}-next`;\n const mapperId = `${baseId}-mapper`;\n\n const { activeStep, goPrevious, goNext, canGoPrevious, canGoNext } =\n useDynamicStepper({\n stepCount: steps.length,\n activeStep: activeStepProp,\n defaultActiveStep,\n onActiveStepChange,\n onPrevious,\n onNext,\n });\n\n if (steps.length === 0) {\n return null;\n }\n\n const itemOrientation =\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\";\n\n return (\n <div\n ref={ref}\n role=\"navigation\"\n data-slot=\"dynamic-stepper\"\n className={cn(dynamicStepperRootVariants({ orientation }), className)}\n {...rest}\n >\n <Button\n id={previousId}\n data-slot=\"dynamic-stepper-previous\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoPrevious}\n onClick={goPrevious}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {prevLabel}\n </Button>\n\n <ol\n id={mapperId}\n aria-label=\"Steps\"\n data-slot=\"dynamic-stepper-mapper\"\n className={dynamicStepperMapperVariants({ orientation })}\n >\n {steps.map((step, index) => {\n const key = step.id ?? `dynamic-stepper-step-${index}`;\n const isCurrent = index === activeStep;\n const semanticState =\n index < activeStep\n ? \"complete\"\n : isCurrent\n ? \"current\"\n : \"upcoming\";\n const indicatorTone =\n semanticState === \"complete\"\n ? indicatorCompleteAppearance\n : semanticState === \"current\"\n ? indicatorCurrentAppearance\n : indicatorUpcomingAppearance;\n\n const isVertical = orientation === \"vertical\";\n\n return (\n <li\n key={key}\n data-slot=\"dynamic-stepper-item\"\n aria-current={isCurrent ? \"step\" : undefined}\n className={dynamicStepperItemVariants({\n orientation: itemOrientation,\n })}\n >\n <div\n data-slot=\"dynamic-stepper-indicator\"\n className={cn(\n dynamicStepperIndicatorVariants({ size: indicatorSize }),\n dynamicStepperIndicatorToneClass(\n semanticState,\n indicatorTone,\n ),\n )}\n >\n {step.indicator ?? index + 1}\n </div>\n <div\n className={cn(\n \"min-w-0\",\n !isVertical && \"flex flex-col items-center\",\n )}\n >\n {step.title != null && (\n <div\n className={cn(\n \"text-sm font-semibold dark:text-white text-slate-900\",\n !isVertical && \"mt-3\",\n )}\n >\n {step.title}\n </div>\n )}\n {step.description != null && (\n <p className=\"mt-1 text-xs text-slate-900 dark:text-slate-400\">\n {step.description}\n </p>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n\n <Button\n id={nextId}\n data-slot=\"dynamic-stepper-next\"\n type=\"button\"\n appearance={buttonAppearance}\n size={buttonSize}\n disabled={!canGoNext}\n onClick={goNext}\n className={\n orientation === \"vertical\" ? \"shrink-0 self-start\" : \"shrink-0\"\n }\n >\n {nextLabel}\n </Button>\n </div>\n );\n};\n\nDynamicStepper.displayName = \"DynamicStepper\";\n"]}
@@ -0,0 +1,6 @@
1
+ import type { HashGeneratorBaseProps } from "./types";
2
+ export declare function HashGeneratorBase({ className, appearance, size, algorithm, value, onValueChange, readOnly, showCopyButton, ref, ...rest }: HashGeneratorBaseProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare namespace HashGeneratorBase {
4
+ var displayName: string;
5
+ }
6
+ //# sourceMappingURL=hash-generator-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-generator-base.d.ts","sourceRoot":"","sources":["../../../src/ui/hash-generator/hash-generator-base.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAWtD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,UAAU,EACV,IAAI,EACJ,SAAoB,EACpB,KAAK,EACL,aAAa,EACb,QAAgB,EAChB,cAAqB,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,sBAAsB,2CA0ExB;yBArFe,iBAAiB"}
@@ -0,0 +1,2 @@
1
+ export { HashGeneratorBase as HashGenerator } from "./hash-generator-base";
2
+ //# sourceMappingURL=hash-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-generator.d.ts","sourceRoot":"","sources":["../../../src/ui/hash-generator/hash-generator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { HashGenerator } from "./hash-generator";
2
+ export type { HashGeneratorAlgorithm, HashGeneratorBaseProps, HashGeneratorProps, HashGeneratorVariantProps, } from "./types";
3
+ export { ALGORITHM_LABELS } from "./types";
4
+ export { hashGeneratorHeaderVariants, hashGeneratorInputVariants, hashGeneratorLabelVariants, hashGeneratorOutputTextVariants, hashGeneratorOutputVariants, hashGeneratorVariants, } from "./variants";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/hash-generator/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { VariantProps } from "class-variance-authority";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import type { hashGeneratorVariants } from "./variants";
4
+ export type HashGeneratorAlgorithm = "sha1" | "sha256" | "sha384" | "sha512";
5
+ export type HashGeneratorVariantProps = VariantProps<typeof hashGeneratorVariants>;
6
+ export interface HashGeneratorBaseProps extends ComponentPropsWithRef<"div"> {
7
+ algorithm?: HashGeneratorAlgorithm;
8
+ value?: string;
9
+ onValueChange?: (value: string) => void;
10
+ readOnly?: boolean;
11
+ showCopyButton?: boolean;
12
+ appearance?: HashGeneratorVariantProps["appearance"];
13
+ size?: HashGeneratorVariantProps["size"];
14
+ }
15
+ export type HashGeneratorProps = HashGeneratorBaseProps;
16
+ export declare const ALGORITHM_LABELS: Record<HashGeneratorAlgorithm, string>;
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/hash-generator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAClD,OAAO,qBAAqB,CAC7B,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IAC1E,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAK1D,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const hashGeneratorVariants: (props?: ({
2
+ appearance?: "default" | null | undefined;
3
+ size?: "md" | "sm" | "lg" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export declare const hashGeneratorHeaderVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ export declare const hashGeneratorLabelVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ export declare const hashGeneratorInputVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
8
+ export declare const hashGeneratorOutputVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ export declare const hashGeneratorOutputTextVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
10
+ //# sourceMappingURL=variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/hash-generator/variants.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,qBAAqB;;;8EAShC,CAAC;AAEH,eAAO,MAAM,2BAA2B,oFAAkC,CAAC;AAC3E,eAAO,MAAM,0BAA0B,oFAAiC,CAAC;AACzE,eAAO,MAAM,0BAA0B,oFAAiC,CAAC;AACzE,eAAO,MAAM,2BAA2B,oFAAkC,CAAC;AAC3E,eAAO,MAAM,+BAA+B,oFAE3C,CAAC"}
@@ -0,0 +1,126 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkEZNR7VLJ_js = require('../chunk-EZNR7VLJ.js');
5
+ var chunkYRQN3AV4_js = require('../chunk-YRQN3AV4.js');
6
+ var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
7
+ require('../chunk-PZ5AY32C.js');
8
+ var react = require('react');
9
+ var classVarianceAuthority = require('class-variance-authority');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+
12
+ // src/ui/hash-generator/types.ts
13
+ var ALGORITHM_LABELS = {
14
+ sha1: "SHA-1",
15
+ sha256: "SHA-256",
16
+ sha384: "SHA-384",
17
+ sha512: "SHA-512"
18
+ };
19
+ var hashGeneratorVariants = classVarianceAuthority.cva(chunkYRQN3AV4_js.zuiHashGeneratorBase, {
20
+ variants: {
21
+ appearance: chunkYRQN3AV4_js.zuiHashGeneratorAppearances,
22
+ size: chunkYRQN3AV4_js.zuiHashGeneratorSizes
23
+ },
24
+ defaultVariants: {
25
+ appearance: "default",
26
+ size: "md"
27
+ }
28
+ });
29
+ var hashGeneratorHeaderVariants = classVarianceAuthority.cva(chunkYRQN3AV4_js.zuiHashGeneratorHeaderBase);
30
+ var hashGeneratorLabelVariants = classVarianceAuthority.cva(chunkYRQN3AV4_js.zuiHashGeneratorLabelBase);
31
+ var hashGeneratorInputVariants = classVarianceAuthority.cva(chunkYRQN3AV4_js.zuiHashGeneratorInputBase);
32
+ var hashGeneratorOutputVariants = classVarianceAuthority.cva(chunkYRQN3AV4_js.zuiHashGeneratorOutputBase);
33
+ var hashGeneratorOutputTextVariants = classVarianceAuthority.cva(
34
+ chunkYRQN3AV4_js.zuiHashGeneratorOutputTextBase
35
+ );
36
+ function HashGeneratorBase({
37
+ className,
38
+ appearance,
39
+ size,
40
+ algorithm = "sha256",
41
+ value,
42
+ onValueChange,
43
+ readOnly = false,
44
+ showCopyButton = true,
45
+ ref,
46
+ ...rest
47
+ }) {
48
+ const [internalValue, setInternalValue] = react.useState("");
49
+ const [copied, setCopied] = react.useState(false);
50
+ const inputValue = value ?? internalValue;
51
+ const handleChange = onValueChange ?? setInternalValue;
52
+ const { hash, error } = chunkEZNR7VLJ_js.useHash(inputValue, algorithm);
53
+ react.useEffect(() => {
54
+ if (!copied) return;
55
+ const timeout = setTimeout(() => setCopied(false), 2e3);
56
+ return () => clearTimeout(timeout);
57
+ }, [copied]);
58
+ const handleCopy = react.useCallback(async () => {
59
+ if (!hash) return;
60
+ try {
61
+ await navigator.clipboard.writeText(hash);
62
+ setCopied(true);
63
+ } catch {
64
+ }
65
+ }, [hash]);
66
+ return /* @__PURE__ */ jsxRuntime.jsxs(
67
+ "div",
68
+ {
69
+ ref,
70
+ "data-slot": "hash-generator",
71
+ className: chunkZS5756ZC_js.cn(hashGeneratorVariants({ appearance, size }), className),
72
+ ...rest,
73
+ children: [
74
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: hashGeneratorHeaderVariants(), children: [
75
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: hashGeneratorLabelVariants(), children: ALGORITHM_LABELS[algorithm] }),
76
+ showCopyButton && hash ? /* @__PURE__ */ jsxRuntime.jsx(
77
+ "button",
78
+ {
79
+ type: "button",
80
+ onClick: handleCopy,
81
+ className: "rounded px-2 py-0.5 text-xs font-medium transition-colors text-[color:var(--zui-hash-generator-label-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-hash-generator-label-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))] hover:bg-[var(--zui-hash-generator-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:hover:bg-[var(--zui-hash-generator-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))]",
82
+ children: copied ? "Copied!" : "Copy"
83
+ }
84
+ ) : null
85
+ ] }),
86
+ /* @__PURE__ */ jsxRuntime.jsx(
87
+ "textarea",
88
+ {
89
+ "data-slot": "hash-generator-input",
90
+ value: inputValue,
91
+ onChange: (e) => handleChange(e.target.value),
92
+ readOnly,
93
+ placeholder: "Enter text to hash...",
94
+ rows: 3,
95
+ "aria-label": `Input text to hash using ${ALGORITHM_LABELS[algorithm]}`,
96
+ className: chunkZS5756ZC_js.cn(hashGeneratorInputVariants(), "resize-y min-h-[5rem]")
97
+ }
98
+ ),
99
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: hashGeneratorOutputVariants(), children: /* @__PURE__ */ jsxRuntime.jsx(
100
+ "span",
101
+ {
102
+ role: "status",
103
+ "data-slot": "hash-generator-output",
104
+ className: chunkZS5756ZC_js.cn(
105
+ hashGeneratorOutputTextVariants(),
106
+ !hash && !error && "opacity-40"
107
+ ),
108
+ children: error ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500", children: error.message }) : hash || "Hash output"
109
+ }
110
+ ) })
111
+ ]
112
+ }
113
+ );
114
+ }
115
+ HashGeneratorBase.displayName = "HashGenerator";
116
+
117
+ exports.ALGORITHM_LABELS = ALGORITHM_LABELS;
118
+ exports.HashGenerator = HashGeneratorBase;
119
+ exports.hashGeneratorHeaderVariants = hashGeneratorHeaderVariants;
120
+ exports.hashGeneratorInputVariants = hashGeneratorInputVariants;
121
+ exports.hashGeneratorLabelVariants = hashGeneratorLabelVariants;
122
+ exports.hashGeneratorOutputTextVariants = hashGeneratorOutputTextVariants;
123
+ exports.hashGeneratorOutputVariants = hashGeneratorOutputVariants;
124
+ exports.hashGeneratorVariants = hashGeneratorVariants;
125
+ //# sourceMappingURL=hash-generator.js.map
126
+ //# sourceMappingURL=hash-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/hash-generator/types.ts","../../src/ui/hash-generator/variants.ts","../../src/ui/hash-generator/hash-generator-base.tsx"],"names":["cva","zuiHashGeneratorBase","zuiHashGeneratorAppearances","zuiHashGeneratorSizes","zuiHashGeneratorHeaderBase","zuiHashGeneratorLabelBase","zuiHashGeneratorInputBase","zuiHashGeneratorOutputBase","zuiHashGeneratorOutputTextBase","useState","useHash","useEffect","useCallback","jsxs","cn","jsx"],"mappings":"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","file":"hash-generator.js","sourcesContent":["import type { VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport type { hashGeneratorVariants } from \"./variants\";\n\nexport type HashGeneratorAlgorithm = \"sha1\" | \"sha256\" | \"sha384\" | \"sha512\";\n\nexport type HashGeneratorVariantProps = VariantProps<\n typeof hashGeneratorVariants\n>;\n\nexport interface HashGeneratorBaseProps extends ComponentPropsWithRef<\"div\"> {\n algorithm?: HashGeneratorAlgorithm;\n value?: string;\n onValueChange?: (value: string) => void;\n readOnly?: boolean;\n showCopyButton?: boolean;\n appearance?: HashGeneratorVariantProps[\"appearance\"];\n size?: HashGeneratorVariantProps[\"size\"];\n}\n\nexport type HashGeneratorProps = HashGeneratorBaseProps;\n\nexport const ALGORITHM_LABELS: Record<HashGeneratorAlgorithm, string> = {\n sha1: \"SHA-1\",\n sha256: \"SHA-256\",\n sha384: \"SHA-384\",\n sha512: \"SHA-512\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiHashGeneratorAppearances,\n zuiHashGeneratorBase,\n zuiHashGeneratorHeaderBase,\n zuiHashGeneratorInputBase,\n zuiHashGeneratorLabelBase,\n zuiHashGeneratorOutputBase,\n zuiHashGeneratorOutputTextBase,\n zuiHashGeneratorSizes,\n} from \"../../design-system/hash-generator\";\n\nexport const hashGeneratorVariants = cva(zuiHashGeneratorBase, {\n variants: {\n appearance: zuiHashGeneratorAppearances,\n size: zuiHashGeneratorSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n\nexport const hashGeneratorHeaderVariants = cva(zuiHashGeneratorHeaderBase);\nexport const hashGeneratorLabelVariants = cva(zuiHashGeneratorLabelBase);\nexport const hashGeneratorInputVariants = cva(zuiHashGeneratorInputBase);\nexport const hashGeneratorOutputVariants = cva(zuiHashGeneratorOutputBase);\nexport const hashGeneratorOutputTextVariants = cva(\n zuiHashGeneratorOutputTextBase,\n);\n","\"use client\";\n\nimport { useCallback, useEffect, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useHash } from \"../../hooks/useHash\";\n\nimport type { HashGeneratorBaseProps } from \"./types\";\nimport { ALGORITHM_LABELS } from \"./types\";\nimport {\n hashGeneratorHeaderVariants,\n hashGeneratorInputVariants,\n hashGeneratorLabelVariants,\n hashGeneratorOutputTextVariants,\n hashGeneratorOutputVariants,\n hashGeneratorVariants,\n} from \"./variants\";\n\nexport function HashGeneratorBase({\n className,\n appearance,\n size,\n algorithm = \"sha256\",\n value,\n onValueChange,\n readOnly = false,\n showCopyButton = true,\n ref,\n ...rest\n}: HashGeneratorBaseProps) {\n const [internalValue, setInternalValue] = useState(\"\");\n const [copied, setCopied] = useState(false);\n\n const inputValue = value ?? internalValue;\n const handleChange = onValueChange ?? setInternalValue;\n\n const { hash, error } = useHash(inputValue, algorithm);\n\n useEffect(() => {\n if (!copied) return;\n const timeout = setTimeout(() => setCopied(false), 2000);\n return () => clearTimeout(timeout);\n }, [copied]);\n\n const handleCopy = useCallback(async () => {\n if (!hash) return;\n try {\n await navigator.clipboard.writeText(hash);\n setCopied(true);\n } catch {\n // Clipboard API not available\n }\n }, [hash]);\n\n return (\n <div\n ref={ref}\n data-slot=\"hash-generator\"\n className={cn(hashGeneratorVariants({ appearance, size }), className)}\n {...rest}\n >\n <div className={hashGeneratorHeaderVariants()}>\n <span className={hashGeneratorLabelVariants()}>\n {ALGORITHM_LABELS[algorithm]}\n </span>\n {showCopyButton && hash ? (\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"rounded px-2 py-0.5 text-xs font-medium transition-colors text-[color:var(--zui-hash-generator-label-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-hash-generator-label-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))] hover:bg-[var(--zui-hash-generator-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:hover:bg-[var(--zui-hash-generator-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))]\"\n >\n {copied ? \"Copied!\" : \"Copy\"}\n </button>\n ) : null}\n </div>\n <textarea\n data-slot=\"hash-generator-input\"\n value={inputValue}\n onChange={(e) => handleChange(e.target.value)}\n readOnly={readOnly}\n placeholder=\"Enter text to hash...\"\n rows={3}\n aria-label={`Input text to hash using ${ALGORITHM_LABELS[algorithm]}`}\n className={cn(hashGeneratorInputVariants(), \"resize-y min-h-[5rem]\")}\n />\n <div className={hashGeneratorOutputVariants()}>\n <span\n role=\"status\"\n data-slot=\"hash-generator-output\"\n className={cn(\n hashGeneratorOutputTextVariants(),\n !hash && !error && \"opacity-40\",\n )}\n >\n {error ? (\n <span className=\"text-red-500\">{error.message}</span>\n ) : (\n hash || \"Hash output\"\n )}\n </span>\n </div>\n </div>\n );\n}\n\nHashGeneratorBase.displayName = \"HashGenerator\";\n"]}
@@ -0,0 +1,117 @@
1
+ "use client";
2
+ import { useHash } from '../chunk-RDYR4DHG.mjs';
3
+ import { zuiHashGeneratorBase, zuiHashGeneratorSizes, zuiHashGeneratorAppearances, zuiHashGeneratorHeaderBase, zuiHashGeneratorLabelBase, zuiHashGeneratorInputBase, zuiHashGeneratorOutputBase, zuiHashGeneratorOutputTextBase } from '../chunk-RWF3NVZP.mjs';
4
+ import { cn } from '../chunk-4D54YOL6.mjs';
5
+ import '../chunk-J5LGTIGS.mjs';
6
+ import { useState, useEffect, useCallback } from 'react';
7
+ import { cva } from 'class-variance-authority';
8
+ import { jsxs, jsx } from 'react/jsx-runtime';
9
+
10
+ // src/ui/hash-generator/types.ts
11
+ var ALGORITHM_LABELS = {
12
+ sha1: "SHA-1",
13
+ sha256: "SHA-256",
14
+ sha384: "SHA-384",
15
+ sha512: "SHA-512"
16
+ };
17
+ var hashGeneratorVariants = cva(zuiHashGeneratorBase, {
18
+ variants: {
19
+ appearance: zuiHashGeneratorAppearances,
20
+ size: zuiHashGeneratorSizes
21
+ },
22
+ defaultVariants: {
23
+ appearance: "default",
24
+ size: "md"
25
+ }
26
+ });
27
+ var hashGeneratorHeaderVariants = cva(zuiHashGeneratorHeaderBase);
28
+ var hashGeneratorLabelVariants = cva(zuiHashGeneratorLabelBase);
29
+ var hashGeneratorInputVariants = cva(zuiHashGeneratorInputBase);
30
+ var hashGeneratorOutputVariants = cva(zuiHashGeneratorOutputBase);
31
+ var hashGeneratorOutputTextVariants = cva(
32
+ zuiHashGeneratorOutputTextBase
33
+ );
34
+ function HashGeneratorBase({
35
+ className,
36
+ appearance,
37
+ size,
38
+ algorithm = "sha256",
39
+ value,
40
+ onValueChange,
41
+ readOnly = false,
42
+ showCopyButton = true,
43
+ ref,
44
+ ...rest
45
+ }) {
46
+ const [internalValue, setInternalValue] = useState("");
47
+ const [copied, setCopied] = useState(false);
48
+ const inputValue = value ?? internalValue;
49
+ const handleChange = onValueChange ?? setInternalValue;
50
+ const { hash, error } = useHash(inputValue, algorithm);
51
+ useEffect(() => {
52
+ if (!copied) return;
53
+ const timeout = setTimeout(() => setCopied(false), 2e3);
54
+ return () => clearTimeout(timeout);
55
+ }, [copied]);
56
+ const handleCopy = useCallback(async () => {
57
+ if (!hash) return;
58
+ try {
59
+ await navigator.clipboard.writeText(hash);
60
+ setCopied(true);
61
+ } catch {
62
+ }
63
+ }, [hash]);
64
+ return /* @__PURE__ */ jsxs(
65
+ "div",
66
+ {
67
+ ref,
68
+ "data-slot": "hash-generator",
69
+ className: cn(hashGeneratorVariants({ appearance, size }), className),
70
+ ...rest,
71
+ children: [
72
+ /* @__PURE__ */ jsxs("div", { className: hashGeneratorHeaderVariants(), children: [
73
+ /* @__PURE__ */ jsx("span", { className: hashGeneratorLabelVariants(), children: ALGORITHM_LABELS[algorithm] }),
74
+ showCopyButton && hash ? /* @__PURE__ */ jsx(
75
+ "button",
76
+ {
77
+ type: "button",
78
+ onClick: handleCopy,
79
+ className: "rounded px-2 py-0.5 text-xs font-medium transition-colors text-[color:var(--zui-hash-generator-label-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-hash-generator-label-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))] hover:bg-[var(--zui-hash-generator-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:hover:bg-[var(--zui-hash-generator-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))]",
80
+ children: copied ? "Copied!" : "Copy"
81
+ }
82
+ ) : null
83
+ ] }),
84
+ /* @__PURE__ */ jsx(
85
+ "textarea",
86
+ {
87
+ "data-slot": "hash-generator-input",
88
+ value: inputValue,
89
+ onChange: (e) => handleChange(e.target.value),
90
+ readOnly,
91
+ placeholder: "Enter text to hash...",
92
+ rows: 3,
93
+ "aria-label": `Input text to hash using ${ALGORITHM_LABELS[algorithm]}`,
94
+ className: cn(hashGeneratorInputVariants(), "resize-y min-h-[5rem]")
95
+ }
96
+ ),
97
+ /* @__PURE__ */ jsx("div", { className: hashGeneratorOutputVariants(), children: /* @__PURE__ */ jsx(
98
+ "span",
99
+ {
100
+ role: "status",
101
+ "data-slot": "hash-generator-output",
102
+ className: cn(
103
+ hashGeneratorOutputTextVariants(),
104
+ !hash && !error && "opacity-40"
105
+ ),
106
+ children: error ? /* @__PURE__ */ jsx("span", { className: "text-red-500", children: error.message }) : hash || "Hash output"
107
+ }
108
+ ) })
109
+ ]
110
+ }
111
+ );
112
+ }
113
+ HashGeneratorBase.displayName = "HashGenerator";
114
+
115
+ export { ALGORITHM_LABELS, HashGeneratorBase as HashGenerator, hashGeneratorHeaderVariants, hashGeneratorInputVariants, hashGeneratorLabelVariants, hashGeneratorOutputTextVariants, hashGeneratorOutputVariants, hashGeneratorVariants };
116
+ //# sourceMappingURL=hash-generator.mjs.map
117
+ //# sourceMappingURL=hash-generator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/hash-generator/types.ts","../../src/ui/hash-generator/variants.ts","../../src/ui/hash-generator/hash-generator-base.tsx"],"names":[],"mappings":"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","file":"hash-generator.mjs","sourcesContent":["import type { VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport type { hashGeneratorVariants } from \"./variants\";\n\nexport type HashGeneratorAlgorithm = \"sha1\" | \"sha256\" | \"sha384\" | \"sha512\";\n\nexport type HashGeneratorVariantProps = VariantProps<\n typeof hashGeneratorVariants\n>;\n\nexport interface HashGeneratorBaseProps extends ComponentPropsWithRef<\"div\"> {\n algorithm?: HashGeneratorAlgorithm;\n value?: string;\n onValueChange?: (value: string) => void;\n readOnly?: boolean;\n showCopyButton?: boolean;\n appearance?: HashGeneratorVariantProps[\"appearance\"];\n size?: HashGeneratorVariantProps[\"size\"];\n}\n\nexport type HashGeneratorProps = HashGeneratorBaseProps;\n\nexport const ALGORITHM_LABELS: Record<HashGeneratorAlgorithm, string> = {\n sha1: \"SHA-1\",\n sha256: \"SHA-256\",\n sha384: \"SHA-384\",\n sha512: \"SHA-512\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiHashGeneratorAppearances,\n zuiHashGeneratorBase,\n zuiHashGeneratorHeaderBase,\n zuiHashGeneratorInputBase,\n zuiHashGeneratorLabelBase,\n zuiHashGeneratorOutputBase,\n zuiHashGeneratorOutputTextBase,\n zuiHashGeneratorSizes,\n} from \"../../design-system/hash-generator\";\n\nexport const hashGeneratorVariants = cva(zuiHashGeneratorBase, {\n variants: {\n appearance: zuiHashGeneratorAppearances,\n size: zuiHashGeneratorSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n});\n\nexport const hashGeneratorHeaderVariants = cva(zuiHashGeneratorHeaderBase);\nexport const hashGeneratorLabelVariants = cva(zuiHashGeneratorLabelBase);\nexport const hashGeneratorInputVariants = cva(zuiHashGeneratorInputBase);\nexport const hashGeneratorOutputVariants = cva(zuiHashGeneratorOutputBase);\nexport const hashGeneratorOutputTextVariants = cva(\n zuiHashGeneratorOutputTextBase,\n);\n","\"use client\";\n\nimport { useCallback, useEffect, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useHash } from \"../../hooks/useHash\";\n\nimport type { HashGeneratorBaseProps } from \"./types\";\nimport { ALGORITHM_LABELS } from \"./types\";\nimport {\n hashGeneratorHeaderVariants,\n hashGeneratorInputVariants,\n hashGeneratorLabelVariants,\n hashGeneratorOutputTextVariants,\n hashGeneratorOutputVariants,\n hashGeneratorVariants,\n} from \"./variants\";\n\nexport function HashGeneratorBase({\n className,\n appearance,\n size,\n algorithm = \"sha256\",\n value,\n onValueChange,\n readOnly = false,\n showCopyButton = true,\n ref,\n ...rest\n}: HashGeneratorBaseProps) {\n const [internalValue, setInternalValue] = useState(\"\");\n const [copied, setCopied] = useState(false);\n\n const inputValue = value ?? internalValue;\n const handleChange = onValueChange ?? setInternalValue;\n\n const { hash, error } = useHash(inputValue, algorithm);\n\n useEffect(() => {\n if (!copied) return;\n const timeout = setTimeout(() => setCopied(false), 2000);\n return () => clearTimeout(timeout);\n }, [copied]);\n\n const handleCopy = useCallback(async () => {\n if (!hash) return;\n try {\n await navigator.clipboard.writeText(hash);\n setCopied(true);\n } catch {\n // Clipboard API not available\n }\n }, [hash]);\n\n return (\n <div\n ref={ref}\n data-slot=\"hash-generator\"\n className={cn(hashGeneratorVariants({ appearance, size }), className)}\n {...rest}\n >\n <div className={hashGeneratorHeaderVariants()}>\n <span className={hashGeneratorLabelVariants()}>\n {ALGORITHM_LABELS[algorithm]}\n </span>\n {showCopyButton && hash ? (\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"rounded px-2 py-0.5 text-xs font-medium transition-colors text-[color:var(--zui-hash-generator-label-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-hash-generator-label-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))] hover:bg-[var(--zui-hash-generator-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:hover:bg-[var(--zui-hash-generator-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))]\"\n >\n {copied ? \"Copied!\" : \"Copy\"}\n </button>\n ) : null}\n </div>\n <textarea\n data-slot=\"hash-generator-input\"\n value={inputValue}\n onChange={(e) => handleChange(e.target.value)}\n readOnly={readOnly}\n placeholder=\"Enter text to hash...\"\n rows={3}\n aria-label={`Input text to hash using ${ALGORITHM_LABELS[algorithm]}`}\n className={cn(hashGeneratorInputVariants(), \"resize-y min-h-[5rem]\")}\n />\n <div className={hashGeneratorOutputVariants()}>\n <span\n role=\"status\"\n data-slot=\"hash-generator-output\"\n className={cn(\n hashGeneratorOutputTextVariants(),\n !hash && !error && \"opacity-40\",\n )}\n >\n {error ? (\n <span className=\"text-red-500\">{error.message}</span>\n ) : (\n hash || \"Hash output\"\n )}\n </span>\n </div>\n </div>\n );\n}\n\nHashGeneratorBase.displayName = \"HashGenerator\";\n"]}
@@ -1,34 +1,36 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkDUH2YLH2_js = require('../chunk-DUH2YLH2.js');
4
+ var chunkDSX6RUYI_js = require('../chunk-DSX6RUYI.js');
5
5
  var chunk2VUMVDR3_js = require('../chunk-2VUMVDR3.js');
6
- require('../chunk-YBKNXDZU.js');
7
- require('../chunk-UJZ7JQBQ.js');
6
+ require('../chunk-ENKXB2BA.js');
7
+ require('../chunk-YY7G4NV3.js');
8
8
  require('../chunk-FBUY6K6S.js');
9
+ require('../chunk-D7ATXPVI.js');
10
+ require('../chunk-IEHY6KNM.js');
9
11
  require('../chunk-HNPGWFVY.js');
10
12
  require('../chunk-3MK7CWEX.js');
13
+ require('../chunk-6KVTKYTB.js');
11
14
  require('../chunk-L7W4NRK6.js');
12
15
  require('../chunk-KWBGLH7G.js');
13
16
  require('../chunk-OH5VOGNW.js');
14
17
  require('../chunk-Y7BU5RC4.js');
15
18
  require('../chunk-NDF3HORF.js');
16
19
  require('../chunk-USLNTKVQ.js');
17
- require('../chunk-D7ATXPVI.js');
18
- require('../chunk-IEHY6KNM.js');
20
+ require('../chunk-PZ25OHJE.js');
19
21
  require('../chunk-HOOZYA4N.js');
20
22
  require('../chunk-CJCOURVM.js');
21
23
  require('../chunk-22FJROCI.js');
22
24
  require('../chunk-UJXFD4SK.js');
25
+ require('../chunk-H3BJOK22.js');
23
26
  require('../chunk-3EJCQXGV.js');
24
- require('../chunk-6KVTKYTB.js');
27
+ require('../chunk-YRQN3AV4.js');
25
28
  require('../chunk-A7MU6SFI.js');
26
29
  require('../chunk-WGN2CBG6.js');
27
30
  require('../chunk-SRSRY5K2.js');
28
31
  require('../chunk-UG3GF2BD.js');
29
32
  require('../chunk-BZTAA3MK.js');
30
33
  require('../chunk-46HJFCP7.js');
31
- require('../chunk-PZ25OHJE.js');
32
34
  require('../chunk-7DVECOO7.js');
33
35
  require('../chunk-KJMW7S5X.js');
34
36
  require('../chunk-3CYJQ6KF.js');
@@ -56,15 +58,15 @@ require('../chunk-PZ5AY32C.js');
56
58
 
57
59
  Object.defineProperty(exports, "Pagination", {
58
60
  enumerable: true,
59
- get: function () { return chunkDUH2YLH2_js.Pagination; }
61
+ get: function () { return chunkDSX6RUYI_js.Pagination; }
60
62
  });
61
63
  Object.defineProperty(exports, "paginationEllipsisVariants", {
62
64
  enumerable: true,
63
- get: function () { return chunkDUH2YLH2_js.paginationEllipsisVariants; }
65
+ get: function () { return chunkDSX6RUYI_js.paginationEllipsisVariants; }
64
66
  });
65
67
  Object.defineProperty(exports, "paginationListVariants", {
66
68
  enumerable: true,
67
- get: function () { return chunkDUH2YLH2_js.paginationListVariants; }
69
+ get: function () { return chunkDSX6RUYI_js.paginationListVariants; }
68
70
  });
69
71
  Object.defineProperty(exports, "usePagination", {
70
72
  enumerable: true,
@@ -1,32 +1,34 @@
1
1
  "use client";
2
- export { Pagination, paginationEllipsisVariants, paginationListVariants } from '../chunk-YSQW56JX.mjs';
2
+ export { Pagination, paginationEllipsisVariants, paginationListVariants } from '../chunk-BFHJF4MV.mjs';
3
3
  export { usePagination } from '../chunk-YNBJAFI2.mjs';
4
- import '../chunk-Z4Y5IPR3.mjs';
5
- import '../chunk-5HLEHSPM.mjs';
4
+ import '../chunk-WZY32L6K.mjs';
5
+ import '../chunk-ZB6C6CJQ.mjs';
6
6
  import '../chunk-2NQKFH26.mjs';
7
+ import '../chunk-YH6MOKHR.mjs';
8
+ import '../chunk-T4ZLTKV2.mjs';
7
9
  import '../chunk-EMZC6ICD.mjs';
8
10
  import '../chunk-PUSCPBT2.mjs';
11
+ import '../chunk-XFJIX2YP.mjs';
9
12
  import '../chunk-4WG3VNVL.mjs';
10
13
  import '../chunk-YPTHTFVF.mjs';
11
14
  import '../chunk-XY3TKIIH.mjs';
12
15
  import '../chunk-FX5KR2GP.mjs';
13
16
  import '../chunk-ZBAKTM2R.mjs';
14
17
  import '../chunk-4ZBMDWWY.mjs';
15
- import '../chunk-YH6MOKHR.mjs';
16
- import '../chunk-T4ZLTKV2.mjs';
18
+ import '../chunk-3IE4IELX.mjs';
17
19
  import '../chunk-BUEI4RMR.mjs';
18
20
  import '../chunk-5AOVTY2X.mjs';
19
21
  import '../chunk-523VQLCW.mjs';
20
22
  import '../chunk-3VW4HMJT.mjs';
23
+ import '../chunk-DIAA5VH4.mjs';
21
24
  import '../chunk-LRYKMXKI.mjs';
22
- import '../chunk-XFJIX2YP.mjs';
25
+ import '../chunk-RWF3NVZP.mjs';
23
26
  import '../chunk-34LHS26H.mjs';
24
27
  import '../chunk-JEDMUBYI.mjs';
25
28
  import '../chunk-EJ3UMMCS.mjs';
26
29
  import '../chunk-EE53BIXR.mjs';
27
30
  import '../chunk-YXU2MJMT.mjs';
28
31
  import '../chunk-LOEKM3FL.mjs';
29
- import '../chunk-3IE4IELX.mjs';
30
32
  import '../chunk-U64ISRUX.mjs';
31
33
  import '../chunk-SS3T3BUL.mjs';
32
34
  import '../chunk-SCWQSQBJ.mjs';