@digo-labs/ui 0.1.9 → 0.1.12
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.
- package/README.md +11 -0
- package/dist/animation/motion-animate-presence.d.ts +1 -1
- package/dist/blocks/auth-guard.d.ts +1 -1
- package/dist/blocks/card.d.ts +4 -4
- package/dist/blocks/chat-thread.d.ts +1 -1
- package/dist/blocks/command-button.d.ts +1 -1
- package/dist/blocks/copy-paste-button.d.ts +1 -1
- package/dist/blocks/dropzone.d.ts +5 -5
- package/dist/blocks/font-picker.d.ts +1 -1
- package/dist/blocks/google-signin-button.d.ts +1 -1
- package/dist/blocks/image-dropzone.d.ts +1 -1
- package/dist/blocks/navbar.d.ts +4 -4
- package/dist/blocks/palette-picker.d.ts +1 -1
- package/dist/blocks/parameter-color-swatch-picker.d.ts +1 -1
- package/dist/blocks/parameter-color.d.ts +1 -1
- package/dist/blocks/parameter-combobox.d.ts +1 -1
- package/dist/blocks/parameter-files.d.ts +1 -1
- package/dist/blocks/parameter-font-picker.d.ts +1 -1
- package/dist/blocks/parameter-image.d.ts +1 -1
- package/dist/blocks/parameter-number.d.ts +1 -1
- package/dist/blocks/parameter-palette-picker.d.ts +1 -1
- package/dist/blocks/parameter-preset-picker.d.ts +1 -1
- package/dist/blocks/parameter-select.d.ts +1 -1
- package/dist/blocks/parameter-shadow-group.d.ts +1 -1
- package/dist/blocks/parameter-slider.d.ts +1 -1
- package/dist/blocks/parameter-switch.d.ts +1 -1
- package/dist/blocks/parameter-text-area.d.ts +1 -1
- package/dist/blocks/parameter-text.d.ts +1 -1
- package/dist/blocks/parameter-toggle-group.d.ts +1 -1
- package/dist/blocks/parameter-toggle.d.ts +1 -1
- package/dist/blocks/parameter-typography-group.d.ts +1 -1
- package/dist/blocks/placeholder.d.ts +4 -4
- package/dist/blocks/preset-picker.d.ts +1 -1
- package/dist/blocks/prompt-input.d.ts +7 -7
- package/dist/blocks/switch-theme.d.ts +1 -1
- package/dist/blocks/toggle-theme.d.ts +1 -1
- package/dist/blocks/transparent-background.d.ts +1 -1
- package/dist/components/accordion.d.ts +4 -4
- package/dist/components/alert.d.ts +6 -6
- package/dist/components/autocomplete.d.ts +15 -15
- package/dist/components/button.d.ts +1 -1
- package/dist/components/chart.d.ts +10 -10
- package/dist/components/checkbox.d.ts +1 -1
- package/dist/components/code-block.d.ts +6 -5
- package/dist/components/collapsible.d.ts +4 -4
- package/dist/components/color-area.d.ts +1 -1
- package/dist/components/color-field.d.ts +1 -1
- package/dist/components/color-input.d.ts +1 -1
- package/dist/components/color-picker.d.ts +1 -1
- package/dist/components/color-slider.d.ts +1 -1
- package/dist/components/color-swatch-picker.d.ts +1 -1
- package/dist/components/color-swatch.d.ts +1 -1
- package/dist/components/combobox.d.ts +16 -16
- package/dist/components/command.d.ts +15 -15
- package/dist/components/drawer.d.ts +10 -10
- package/dist/components/empty.d.ts +7 -7
- package/dist/components/field-set.d.ts +2 -2
- package/dist/components/field.d.ts +5 -5
- package/dist/components/form.d.ts +1 -1
- package/dist/components/group.d.ts +3 -3
- package/dist/components/icon.d.ts +1 -1
- package/dist/components/image.d.ts +1 -1
- package/dist/components/input-group.d.ts +5 -5
- package/dist/components/input.d.ts +1 -1
- package/dist/components/kbd.d.ts +2 -2
- package/dist/components/label.d.ts +1 -1
- package/dist/components/loader.d.ts +1 -1
- package/dist/components/masonry.d.ts +1 -1
- package/dist/components/navigation-menu.d.ts +9 -9
- package/dist/components/number-field.d.ts +5 -5
- package/dist/components/pagination.d.ts +7 -7
- package/dist/components/parameter-group.d.ts +1 -1
- package/dist/components/parameter.d.ts +7 -7
- package/dist/components/popover.d.ts +5 -5
- package/dist/components/progress.d.ts +5 -5
- package/dist/components/scroll-area.d.ts +2 -2
- package/dist/components/select.d.ts +8 -8
- package/dist/components/separator.d.ts +1 -1
- package/dist/components/sidebar.d.ts +10 -10
- package/dist/components/slider.d.ts +3 -3
- package/dist/components/spacer.d.ts +1 -1
- package/dist/components/spinner.d.ts +1 -1
- package/dist/components/steps.d.ts +7 -0
- package/dist/components/switch.d.ts +1 -1
- package/dist/components/table-of-contents.d.ts +4 -3
- package/dist/components/tabs.d.ts +4 -4
- package/dist/components/text-area.d.ts +1 -1
- package/dist/components/tint-image.d.ts +1 -1
- package/dist/components/toast.d.ts +1 -1
- package/dist/components/toggle-group.d.ts +3 -3
- package/dist/components/toggle.d.ts +1 -1
- package/dist/components/tooltip.d.ts +2 -2
- package/dist/cursors/cursor-bracket.d.ts +1 -1
- package/dist/cursors/cursor-clipping.d.ts +1 -1
- package/dist/cursors/cursor-container.d.ts +1 -1
- package/dist/effects/border-glow.d.ts +1 -1
- package/dist/effects/border-trail.d.ts +1 -1
- package/dist/effects/counter.d.ts +1 -1
- package/dist/effects/cube-scene.d.ts +1 -1
- package/dist/effects/dark-veil.d.ts +1 -1
- package/dist/effects/dissolve-overlay.d.ts +1 -1
- package/dist/effects/dot-grid.d.ts +1 -1
- package/dist/effects/draggable-container.d.ts +1 -1
- package/dist/effects/faulty-terminal.d.ts +1 -1
- package/dist/effects/floating-lines.d.ts +1 -1
- package/dist/effects/glass-container.d.ts +1 -1
- package/dist/effects/grainient.d.ts +1 -1
- package/dist/effects/image-transition.d.ts +1 -1
- package/dist/effects/infinite-menu.d.ts +1 -1
- package/dist/effects/iridescence.d.ts +1 -1
- package/dist/effects/letter-swap.d.ts +1 -1
- package/dist/effects/marquee-bar.d.ts +1 -1
- package/dist/effects/marquee.d.ts +1 -1
- package/dist/effects/noise.d.ts +1 -1
- package/dist/effects/orb.d.ts +1 -1
- package/dist/effects/text-morph.d.ts +1 -1
- package/dist/effects/text-pressure.d.ts +1 -1
- package/dist/effects/text-roll.d.ts +1 -1
- package/dist/effects/text-scramble.d.ts +2 -2
- package/dist/effects/text-shimmer-wave.d.ts +2 -1
- package/dist/effects/text-shimmer.d.ts +2 -2
- package/dist/effects/text-swap-letter.d.ts +1 -1
- package/dist/index.css +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +12148 -13595
- package/dist/index.js.map +1 -1
- package/dist/outdated/lottie.d.ts +1 -1
- package/dist/outdated/qr-code.d.ts +1 -1
- package/dist/outdated/shape.d.ts +1 -1
- package/dist/outdated/tint.d.ts +1 -1
- package/dist/providers/command-provider.d.ts +1 -1
- package/dist/providers/component-styles-provider.d.ts +1 -1
- package/dist/providers/design-system-provider.d.ts +1 -1
- package/dist/styles/code-block.d.ts +8 -0
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/steps.d.ts +45 -0
- package/dist/styles/table-of-contents.d.ts +67 -11
- package/package.json +11 -8
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/presets/palettes.ts","../src/presets/types.ts","../src/presets/helpers.ts","../src/providers/design-system-provider.tsx","../src/providers/component-styles-provider.tsx","../src/utils/styles.ts","../src/utils/motion-presets.ts","../src/animation/motion-animate-presence.tsx","../src/other/animations.ts","../src/blocks/auth-guard.tsx","../src/blocks/card.tsx","../src/blocks/chat-thread.tsx","../src/components/icon.tsx","../src/components/kbd.tsx","../src/blocks/command-button.tsx","../src/components/button.tsx","../src/blocks/copy-paste-button.tsx","../src/components/field.tsx","../src/blocks/dropzone.tsx","../src/blocks/font-picker.tsx","../src/blocks/image-dropzone.tsx","../src/blocks/navbar.tsx","../src/blocks/palette-picker.tsx","../src/blocks/parameter-text.tsx","../src/blocks/parameter-palette-picker.tsx","../src/blocks/parameter-text-area.tsx","../src/blocks/parameter-slider.tsx","../src/blocks/parameter-toggle-group.tsx","../src/blocks/parameter-switch.tsx","../src/blocks/parameter-toggle.tsx","../src/blocks/parameter-color.tsx","../src/blocks/parameter-color-swatch-picker.tsx","../src/blocks/parameter-combobox.tsx","../src/blocks/parameter-files.tsx","../src/blocks/parameter-font-picker.tsx","../src/blocks/parameter-image.tsx","../src/blocks/parameter-number.tsx","../src/blocks/parameter-preset-picker.tsx","../src/blocks/parameter-select.tsx","../src/components/parameter-group.tsx","../src/blocks/parameter-typography-group.tsx","../src/blocks/parameter-shadow-group.tsx","../src/blocks/placeholder.tsx","../src/presets/curated/default.ts","../src/presets/curated/ocean.ts","../src/presets/curated/retro-futuristic.ts","../src/presets/index.ts","../src/blocks/preset-picker.tsx","../src/blocks/prompt-input.tsx","../src/blocks/google-signin-button.tsx","../src/blocks/switch-theme.tsx","../src/blocks/toggle-theme.tsx","../src/blocks/transparent-background.tsx","../src/components/accordion.tsx","../src/components/alert.tsx","../src/components/autocomplete.tsx","../src/components/chart.tsx","../src/components/checkbox.tsx","../src/components/code-block.tsx","../src/components/collapsible.tsx","../src/components/color-area.tsx","../src/components/color-field.tsx","../src/components/color-input.tsx","../src/components/color-picker.tsx","../src/components/color-slider.tsx","../src/components/color-swatch.tsx","../src/components/color-swatch-picker.tsx","../src/components/combobox.tsx","../src/components/command.tsx","../src/effects/counter.tsx","../src/components/drawer.tsx","../src/components/empty.tsx","../src/components/field-set.tsx","../src/components/form.tsx","../src/components/group.tsx","../src/components/image.tsx","../src/components/input-group.tsx","../src/components/input.tsx","../src/components/label.tsx","../src/components/masonry.tsx","../src/components/navigation-menu.tsx","../src/components/number-field.tsx","../src/components/pagination.tsx","../src/components/parameter.tsx","../src/components/popover.tsx","../src/components/progress.tsx","../src/components/scroll-area.tsx","../src/components/select.tsx","../src/components/separator.tsx","../src/components/sidebar.tsx","../src/components/spacer.tsx","../src/components/slider.tsx","../src/components/spinner.tsx","../src/components/switch.tsx","../src/components/loader.tsx","../src/components/tabs.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/table-of-contents.tsx","../src/components/text-area.tsx","../src/components/tint-image.tsx","../src/components/toast.tsx","../src/components/tooltip.tsx","../src/cursors/cursor-container.tsx","../src/cursors/cursor-clipping.tsx","../src/cursors/cursor-bracket.tsx","../src/effects/border-glow.tsx","../src/effects/border-trail.tsx","../src/effects/dark-veil.tsx","../src/effects/dissolve-overlay.tsx","../src/effects/dot-grid.tsx","../src/effects/draggable-container.tsx","../src/effects/faulty-terminal.tsx","../src/effects/floating-lines.tsx","../src/effects/glass-container.tsx","../src/effects/grainient.tsx","../src/other/image-transition-effects.ts","../src/effects/image-transition.tsx","../src/effects/infinite-menu.tsx","../src/effects/iridescence.tsx","../src/effects/letter-swap.tsx","../src/effects/marquee-bar.tsx","../src/effects/marquee.tsx","../src/effects/noise.tsx","../src/effects/orb.tsx","../src/effects/text-morph.tsx","../src/effects/text-pressure.tsx","../src/effects/text-roll.tsx","../src/effects/text-scramble.tsx","../src/effects/text-shimmer.tsx","../src/effects/text-shimmer-wave.tsx","../src/effects/text-swap-letter.tsx","../src/effects/text-type.tsx","../src/hooks/use-animated-value.tsx","../src/hooks/use-element-size.tsx","../src/hooks/use-focus-size.tsx","../src/hooks/use-preloaded-image.tsx","../src/hooks/use-stopwatch.tsx","../src/hooks/use-timer.tsx","../src/providers/command-provider.tsx","../src/styles/accordion.ts","../src/styles/alert.ts","../src/styles/autocomplete.ts","../src/styles/button.ts","../src/styles/slider.ts","../src/styles/card.ts","../src/styles/chat-thread.ts","../src/styles/chart.ts","../src/styles/checkbox.ts","../src/styles/code-block.ts","../src/styles/collapsible.ts","../src/styles/color-area.ts","../src/styles/color-field.ts","../src/styles/color-input.ts","../src/styles/color-picker.ts","../src/styles/color-slider.ts","../src/styles/color-swatch.ts","../src/styles/color-swatch-picker.ts","../src/styles/combobox.ts","../src/styles/command-button.ts","../src/styles/command.ts","../src/styles/counter.ts","../src/styles/drawer.ts","../src/styles/dropzone.ts","../src/styles/image.ts","../src/styles/image-dropzone.ts","../src/styles/empty.ts","../src/styles/field.ts","../src/styles/field-set.ts","../src/styles/form.ts","../src/styles/group.ts","../src/styles/input-group.ts","../src/styles/input.ts","../src/styles/masonry.ts","../src/styles/kbd.ts","../src/styles/label.ts","../src/styles/motion-animate-presence.ts","../src/styles/navbar.ts","../src/styles/navigation-menu.ts","../src/styles/number-field.ts","../src/styles/pagination.ts","../src/styles/font-picker.ts","../src/styles/google-signin-button.ts","../src/styles/palette-picker.ts","../src/styles/parameter.ts","../src/styles/parameter-color.ts","../src/styles/parameter-color-swatch-picker.ts","../src/styles/parameter-combobox.ts","../src/styles/parameter-font-picker.ts","../src/styles/parameter-group.ts","../src/styles/parameter-palette-picker.ts","../src/styles/parameter-preset-picker.ts","../src/styles/parameter-slider.ts","../src/styles/parameter-switch.ts","../src/styles/parameter-text.ts","../src/styles/parameter-text-area.ts","../src/styles/parameter-toggle.ts","../src/styles/parameter-toggle-group.ts","../src/styles/parameter-typography-group.ts","../src/styles/parameter-files.ts","../src/styles/parameter-image.ts","../src/styles/parameter-number.ts","../src/styles/parameter-select.ts","../src/styles/parameter-shadow-group.ts","../src/styles/placeholder.ts","../src/styles/popover.ts","../src/styles/preset-picker.ts","../src/styles/progress.ts","../src/styles/prompt-input.ts","../src/styles/properties.ts","../src/styles/scroll-area.ts","../src/styles/select.ts","../src/styles/separator.ts","../src/styles/sidebar.ts","../src/styles/spacer.ts","../src/styles/spinner.ts","../src/styles/switch.ts","../src/styles/table-of-contents.ts","../src/styles/tabs.ts","../src/styles/text-area.ts","../src/styles/text-shimmer.ts","../src/styles/tint-image.ts","../src/styles/toast.ts","../src/styles/toggle-group.ts","../src/styles/toggle.ts","../src/styles/tooltip.ts","../src/utils/shiki-highlighter.ts","../src/utils/code-meta-parser.ts","../src/utils/helpers.ts","../src/outdated/lottie.tsx","../src/outdated/qr-code.tsx","../src/shapes/square.svg?react","../src/shapes/circle.svg?react","../src/outdated/shape.tsx","../src/outdated/tint.tsx"],"sourcesContent":["import type { Palettes } from './types';\n\nexport const PALETTES: Palettes = {\n amber: {\n light: {\n 1: '#fefdfb', 2: '#fefbe9', 3: '#fff7c2', 4: '#ffee9c',\n 5: '#fbe577', 6: '#f3d673', 7: '#e9c162', 8: '#e2a336',\n 9: '#ffc53d', 10: '#ffba18', 11: '#ab6400', 12: '#4f3422',\n },\n lightA: {\n 1: '#c0800004', 2: '#f4d10016', 3: '#ffde003d', 4: '#ffd40063',\n 5: '#f8cf0088', 6: '#eab5008c', 7: '#dc9b009d', 8: '#da8a00c9',\n 9: '#ffb300c2', 10: '#ffb300e7', 11: '#ab6400', 12: '#341500dd',\n },\n dark: {\n 1: '#16120c', 2: '#1d180f', 3: '#302008', 4: '#3f2700',\n 5: '#4d3000', 6: '#5c3d05', 7: '#714f19', 8: '#8f6424',\n 9: '#ffc53d', 10: '#ffd60a', 11: '#ffca16', 12: '#ffe7b3',\n },\n darkA: {\n 1: '#e63c0006', 2: '#fd9b000d', 3: '#fa820022', 4: '#fc820032',\n 5: '#fd8b0041', 6: '#fd9b0051', 7: '#ffab2567', 8: '#ffae3587',\n 9: '#ffc53d', 10: '#ffd60a', 11: '#ffca16', 12: '#ffe7b3',\n },\n },\n blue: {\n light: {\n 1: '#fbfdff', 2: '#f4faff', 3: '#e6f4fe', 4: '#d5efff',\n 5: '#c2e5ff', 6: '#acd8fc', 7: '#8ec8f6', 8: '#5eb1ef',\n 9: '#0090ff', 10: '#0588f0', 11: '#0d74ce', 12: '#113264',\n },\n lightA: {\n 1: '#0080ff04', 2: '#008cff0b', 3: '#008ff519', 4: '#009eff2a',\n 5: '#0093ff3d', 6: '#0088f653', 7: '#0083eb71', 8: '#0084e6a1',\n 9: '#0090ff', 10: '#0086f0fa', 11: '#006dcbf2', 12: '#002359ee',\n },\n dark: {\n 1: '#0d1520', 2: '#111927', 3: '#0d2847', 4: '#003362',\n 5: '#004074', 6: '#104d87', 7: '#205d9e', 8: '#2870bd',\n 9: '#0090ff', 10: '#3b9eff', 11: '#70b8ff', 12: '#c2e6ff',\n },\n darkA: {\n 1: '#004df211', 2: '#1166fb18', 3: '#0077ff3a', 4: '#0075ff57',\n 5: '#0081fd6b', 6: '#0f89fd7f', 7: '#2a91fe98', 8: '#3094feb9',\n 9: '#0090ff', 10: '#3b9eff', 11: '#70b8ff', 12: '#c2e6ff',\n },\n },\n bronze: {\n light: {\n 1: '#fdfcfc', 2: '#fdf7f5', 3: '#f6edea', 4: '#efe4df',\n 5: '#e7d9d3', 6: '#dfcdc5', 7: '#d3bcb3', 8: '#c2a499',\n 9: '#a18072', 10: '#957468', 11: '#7d5e54', 12: '#43302b',\n },\n lightA: {\n 1: '#55000003', 2: '#cc33000a', 3: '#92250015', 4: '#80280020',\n 5: '#7423002c', 6: '#7324003a', 7: '#6c1f004c', 8: '#671c0066',\n 9: '#551a008d', 10: '#4c150097', 11: '#3d0f00ab', 12: '#1d0600d4',\n },\n dark: {\n 1: '#141110', 2: '#1c1917', 3: '#262220', 4: '#302a27',\n 5: '#3b3330', 6: '#493e3a', 7: '#5a4c47', 8: '#6f5f58',\n 9: '#a18072', 10: '#ae8c7e', 11: '#d4b3a5', 12: '#ede0d9',\n },\n darkA: {\n 1: '#d1110004', 2: '#fbbc910c', 3: '#faceb817', 4: '#facdb622',\n 5: '#ffd2c12d', 6: '#ffd1c03c', 7: '#fdd0c04f', 8: '#ffd6c565',\n 9: '#fec7b09b', 10: '#fecab5a9', 11: '#ffd7c6d1', 12: '#fff1e9ec',\n },\n },\n brown: {\n light: {\n 1: '#fefdfc', 2: '#fcf9f6', 3: '#f6eee7', 4: '#f0e4d9',\n 5: '#ebdaca', 6: '#e4cdb7', 7: '#dcbc9f', 8: '#cea37e',\n 9: '#ad7f58', 10: '#a07553', 11: '#815e46', 12: '#3e332e',\n },\n lightA: {\n 1: '#aa550003', 2: '#aa550009', 3: '#a04b0018', 4: '#9b4a0026',\n 5: '#9f4d0035', 6: '#a04e0048', 7: '#a34e0060', 8: '#9f4a0081',\n 9: '#823c00a7', 10: '#723300ac', 11: '#522100b9', 12: '#140600d1',\n },\n dark: {\n 1: '#12110f', 2: '#1c1816', 3: '#28211d', 4: '#322922',\n 5: '#3e3128', 6: '#4d3c2f', 7: '#614a39', 8: '#7c5f46',\n 9: '#ad7f58', 10: '#b88c67', 11: '#dbb594', 12: '#f2e1ca',\n },\n darkA: {\n 1: '#91110002', 2: '#fba67c0c', 3: '#fcb58c19', 4: '#fbbb8a24',\n 5: '#fcb88931', 6: '#fdba8741', 7: '#ffbb8856', 8: '#ffbe8773',\n 9: '#feb87da8', 10: '#ffc18cb3', 11: '#fed1aad9', 12: '#feecd4f2',\n },\n },\n crimson: {\n light: {\n 1: '#fffcfd', 2: '#fef7f9', 3: '#ffe9f0', 4: '#fedce7',\n 5: '#facedd', 6: '#f3bed1', 7: '#eaacc3', 8: '#e093b2',\n 9: '#e93d82', 10: '#df3478', 11: '#cb1d63', 12: '#621639',\n },\n lightA: {\n 1: '#ff005503', 2: '#e0004008', 3: '#ff005216', 4: '#f8005123',\n 5: '#e5004f31', 6: '#d0004b41', 7: '#bf004753', 8: '#b6004a6c',\n 9: '#e2005bc2', 10: '#d70056cb', 11: '#c4004fe2', 12: '#530026e9',\n },\n dark: {\n 1: '#191114', 2: '#201318', 3: '#381525', 4: '#4d122f',\n 5: '#5c1839', 6: '#6d2545', 7: '#873356', 8: '#b0436e',\n 9: '#e93d82', 10: '#ee518a', 11: '#ff92ad', 12: '#fdd3e8',\n },\n darkA: {\n 1: '#f4126709', 2: '#f22f7a11', 3: '#fe2a8b2a', 4: '#fd158741',\n 5: '#fd278f51', 6: '#fe459763', 7: '#fd559b7f', 8: '#fe5b9bab',\n 9: '#fe418de8', 10: '#ff5693ed', 11: '#ff92ad', 12: '#ffd5eafd',\n },\n },\n cyan: {\n light: {\n 1: '#fafdfe', 2: '#f2fafb', 3: '#def7f9', 4: '#caf1f6',\n 5: '#b5e9f0', 6: '#9ddde7', 7: '#7dcedc', 8: '#3db9cf',\n 9: '#00a2c7', 10: '#0797b9', 11: '#107d98', 12: '#0d3c48',\n },\n lightA: {\n 1: '#0099cc05', 2: '#009db10d', 3: '#00c2d121', 4: '#00bcd435',\n 5: '#01b4cc4a', 6: '#00a7c162', 7: '#009fbb82', 8: '#00a3c0c2',\n 9: '#00a2c7', 10: '#0094b7f8', 11: '#007491ef', 12: '#00323ef2',\n },\n dark: {\n 1: '#0b161a', 2: '#101b20', 3: '#082c36', 4: '#003848',\n 5: '#004558', 6: '#045468', 7: '#12677e', 8: '#11809c',\n 9: '#00a2c7', 10: '#23afd0', 11: '#4ccce6', 12: '#b6ecf7',\n },\n darkA: {\n 1: '#0091f70a', 2: '#02a7f211', 3: '#00befd28', 4: '#00baff3b',\n 5: '#00befd4d', 6: '#00c7fd5e', 7: '#14cdff75', 8: '#11cfff95',\n 9: '#00cfffc3', 10: '#28d6ffcd', 11: '#52e1fee5', 12: '#bbf3fef7',\n },\n },\n gold: {\n light: {\n 1: '#fdfdfc', 2: '#faf9f2', 3: '#f2f0e7', 4: '#eae6db',\n 5: '#e1dccf', 6: '#d8d0bf', 7: '#cbc0aa', 8: '#b9a88d',\n 9: '#978365', 10: '#8c7a5e', 11: '#71624b', 12: '#3b352b',\n },\n lightA: {\n 1: '#55550003', 2: '#9d8a000d', 3: '#75600018', 4: '#6b4e0024',\n 5: '#60460030', 6: '#64440040', 7: '#63420055', 8: '#633d0072',\n 9: '#5332009a', 10: '#492d00a1', 11: '#362100b4', 12: '#130c00d4',\n },\n dark: {\n 1: '#121211', 2: '#1b1a17', 3: '#24231f', 4: '#2d2b26',\n 5: '#38352e', 6: '#444039', 7: '#544f46', 8: '#696256',\n 9: '#978365', 10: '#a39073', 11: '#cbb99f', 12: '#e8e2d9',\n },\n darkA: {\n 1: '#91911102', 2: '#f9e29d0b', 3: '#f8ecbb15', 4: '#ffeec41e',\n 5: '#feecc22a', 6: '#feebcb37', 7: '#ffedcd48', 8: '#fdeaca5f',\n 9: '#ffdba690', 10: '#fedfb09d', 11: '#fee7c6c8', 12: '#fef7ede7',\n },\n },\n grass: {\n light: {\n 1: '#fbfefb', 2: '#f5fbf5', 3: '#e9f6e9', 4: '#daf1db',\n 5: '#c9e8ca', 6: '#b2ddb5', 7: '#94ce9a', 8: '#65ba74',\n 9: '#46a758', 10: '#3e9b4f', 11: '#2a7e3b', 12: '#203c25',\n },\n lightA: {\n 1: '#00c00004', 2: '#0099000a', 3: '#00970016', 4: '#009f0725',\n 5: '#00930536', 6: '#008f0a4d', 7: '#018b0f6b', 8: '#008d199a',\n 9: '#008619b9', 10: '#007b17c1', 11: '#006514d5', 12: '#002006df',\n },\n dark: {\n 1: '#0e1511', 2: '#141a15', 3: '#1b2a1e', 4: '#1d3a24',\n 5: '#25482d', 6: '#2d5736', 7: '#366740', 8: '#3e7949',\n 9: '#46a758', 10: '#53b365', 11: '#71d083', 12: '#c2f0c2',\n },\n darkA: {\n 1: '#00de1205', 2: '#5ef7780a', 3: '#70fe8c1b', 4: '#57ff802c',\n 5: '#68ff8b3b', 6: '#71ff8f4b', 7: '#77fd925d', 8: '#77fd9070',\n 9: '#65ff82a1', 10: '#72ff8dae', 11: '#89ff9fcd', 12: '#ceffceef',\n },\n },\n gray: {\n light: {\n 1: '#fcfcfc', 2: '#f9f9f9', 3: '#f0f0f0', 4: '#e8e8e8',\n 5: '#e0e0e0', 6: '#d9d9d9', 7: '#cecece', 8: '#bbbbbb',\n 9: '#8d8d8d', 10: '#838383', 11: '#646464', 12: '#202020',\n },\n lightA: {\n 1: '#00000003', 2: '#00000006', 3: '#0000000f', 4: '#00000017',\n 5: '#0000001f', 6: '#00000026', 7: '#00000031', 8: '#00000044',\n 9: '#00000072', 10: '#0000007c', 11: '#0000009b', 12: '#000000df',\n },\n dark: {\n 1: '#111111', 2: '#191919', 3: '#222222', 4: '#2a2a2a',\n 5: '#313131', 6: '#3a3a3a', 7: '#484848', 8: '#606060',\n 9: '#6e6e6e', 10: '#7b7b7b', 11: '#b4b4b4', 12: '#eeeeee',\n },\n darkA: {\n 1: '#00000000', 2: '#ffffff09', 3: '#ffffff12', 4: '#ffffff1b',\n 5: '#ffffff22', 6: '#ffffff2c', 7: '#ffffff3b', 8: '#ffffff55',\n 9: '#ffffff64', 10: '#ffffff72', 11: '#ffffffaf', 12: '#ffffffed',\n },\n },\n green: {\n light: {\n 1: '#fbfefc', 2: '#f4fbf6', 3: '#e6f6eb', 4: '#d6f1df',\n 5: '#c4e8d1', 6: '#adddc0', 7: '#8eceaa', 8: '#5bb98b',\n 9: '#30a46c', 10: '#2b9a66', 11: '#218358', 12: '#193b2d',\n },\n lightA: {\n 1: '#00c04004', 2: '#00a32f0b', 3: '#00a43319', 4: '#00a83829',\n 5: '#019c393b', 6: '#00963c52', 7: '#00914071', 8: '#00924ba4',\n 9: '#008f4acf', 10: '#008647d4', 11: '#00713fde', 12: '#002616e6',\n },\n dark: {\n 1: '#0e1512', 2: '#121b17', 3: '#132d21', 4: '#113b29',\n 5: '#174933', 6: '#20573e', 7: '#28684a', 8: '#2f7c57',\n 9: '#30a46c', 10: '#33b074', 11: '#3dd68c', 12: '#b1f1cb',\n },\n darkA: {\n 1: '#00de4505', 2: '#29f99d0b', 3: '#22ff991e', 4: '#11ff992d',\n 5: '#2bffa23c', 6: '#44ffaa4b', 7: '#50fdac5e', 8: '#54ffad73',\n 9: '#44ffa49e', 10: '#43fea4ab', 11: '#46fea5d4', 12: '#bbffd7f0',\n },\n },\n indigo: {\n light: {\n 1: '#fdfdfe', 2: '#f7f9ff', 3: '#edf2fe', 4: '#e1e9ff',\n 5: '#d2deff', 6: '#c1d0ff', 7: '#abbdf9', 8: '#8da4ef',\n 9: '#3e63dd', 10: '#3358d4', 11: '#3a5bc7', 12: '#1f2d5c',\n },\n lightA: {\n 1: '#00008002', 2: '#0040ff08', 3: '#0047f112', 4: '#0044ff1e',\n 5: '#0044ff2d', 6: '#003eff3e', 7: '#0037ed54', 8: '#0034dc72',\n 9: '#0031d2c1', 10: '#002ec9cc', 11: '#002bb7c5', 12: '#001046e0',\n },\n dark: {\n 1: '#11131f', 2: '#141726', 3: '#182449', 4: '#1d2e62',\n 5: '#253974', 6: '#304384', 7: '#3a4f97', 8: '#435db1',\n 9: '#3e63dd', 10: '#5472e4', 11: '#9eb1ff', 12: '#d6e1ff',\n },\n darkA: {\n 1: '#1133ff0f', 2: '#3354fa17', 3: '#2f62ff3c', 4: '#3566ff57',\n 5: '#4171fd6b', 6: '#5178fd7c', 7: '#5a7fff90', 8: '#5b81feac',\n 9: '#4671ffdb', 10: '#5c7efee3', 11: '#9eb1ff', 12: '#d6e1ff',\n },\n },\n iris: {\n light: {\n 1: '#fdfdff', 2: '#f8f8ff', 3: '#f0f1fe', 4: '#e6e7ff',\n 5: '#dadcff', 6: '#cbcdff', 7: '#b8baf8', 8: '#9b9ef0',\n 9: '#5b5bd6', 10: '#5151cd', 11: '#5753c6', 12: '#272962',\n },\n lightA: {\n 1: '#0000ff02', 2: '#0000ff07', 3: '#0011ee0f', 4: '#000bff19',\n 5: '#000eff25', 6: '#000aff34', 7: '#0008e647', 8: '#0008d964',\n 9: '#0000c0a4', 10: '#0000b6ae', 11: '#0600abac', 12: '#000246d8',\n },\n dark: {\n 1: '#13131e', 2: '#171625', 3: '#202248', 4: '#262a65',\n 5: '#303374', 6: '#3d3e82', 7: '#4a4a95', 8: '#5958b1',\n 9: '#5b5bd6', 10: '#6e6ade', 11: '#b1a9ff', 12: '#e0dffe',\n },\n darkA: {\n 1: '#3636fe0e', 2: '#564bf916', 3: '#525bff3b', 4: '#4d58ff5a',\n 5: '#5b62fd6b', 6: '#6d6ffd7a', 7: '#7777fe8e', 8: '#7b7afeac',\n 9: '#6a6afed4', 10: '#7d79ffdc', 11: '#b1a9ff', 12: '#e1e0fffe',\n },\n },\n jade: {\n light: {\n 1: '#fbfefd', 2: '#f4fbf7', 3: '#e6f7ed', 4: '#d6f1e3',\n 5: '#c3e9d7', 6: '#acdec8', 7: '#8bceb6', 8: '#56ba9f',\n 9: '#29a383', 10: '#26997b', 11: '#208368', 12: '#1d3b31',\n },\n lightA: {\n 1: '#00c08004', 2: '#00a3460b', 3: '#00ae4819', 4: '#00a85129',\n 5: '#00a2553c', 6: '#009a5753', 7: '#00945f74', 8: '#00976ea9',\n 9: '#00916bd6', 10: '#008764d9', 11: '#007152df', 12: '#002217e2',\n },\n dark: {\n 1: '#0d1512', 2: '#121c18', 3: '#0f2e22', 4: '#0b3b2c',\n 5: '#114837', 6: '#1b5745', 7: '#246854', 8: '#2a7e68',\n 9: '#29a383', 10: '#27b08b', 11: '#1fd8a4', 12: '#adf0d4',\n },\n darkA: {\n 1: '#00de4505', 2: '#27fba60c', 3: '#02f99920', 4: '#00ffaa2d',\n 5: '#11ffb63b', 6: '#34ffc24b', 7: '#45fdc75e', 8: '#48ffcf75',\n 9: '#38feca9d', 10: '#31fec7ab', 11: '#21fec0d6', 12: '#b8ffe1ef',\n },\n },\n lime: {\n light: {\n 1: '#fcfdfa', 2: '#f8faf3', 3: '#eef6d6', 4: '#e2f0bd',\n 5: '#d3e7a6', 6: '#c2da91', 7: '#abc978', 8: '#8db654',\n 9: '#bdee63', 10: '#b0e64c', 11: '#5c7c2f', 12: '#37401c',\n },\n lightA: {\n 1: '#66990005', 2: '#6b95000c', 3: '#96c80029', 4: '#8fc60042',\n 5: '#81bb0059', 6: '#72aa006e', 7: '#61990087', 8: '#559200ab',\n 9: '#93e4009c', 10: '#8fdc00b3', 11: '#375f00d0', 12: '#1e2900e3',\n },\n dark: {\n 1: '#11130c', 2: '#151a10', 3: '#1f2917', 4: '#29371d',\n 5: '#334423', 6: '#3d522a', 7: '#496231', 8: '#577538',\n 9: '#bdee63', 10: '#d4ff70', 11: '#bde56c', 12: '#e3f7ba',\n },\n darkA: {\n 1: '#11bb0003', 2: '#78f7000a', 3: '#9bfd4c1a', 4: '#a7fe5c29',\n 5: '#affe6537', 6: '#b2fe6d46', 7: '#b6ff6f57', 8: '#b6fd6d6c',\n 9: '#caff69ed', 10: '#d4ff70', 11: '#d1fe77e4', 12: '#e9febff7',\n },\n },\n mauve: {\n light: {\n 1: '#fdfcfd', 2: '#faf9fb', 3: '#f2eff3', 4: '#eae7ec',\n 5: '#e3dfe6', 6: '#dbd8e0', 7: '#d0cdd7', 8: '#bcbac7',\n 9: '#8e8c99', 10: '#84828e', 11: '#65636d', 12: '#211f26',\n },\n lightA: {\n 1: '#55005503', 2: '#2b005506', 3: '#30004010', 4: '#20003618',\n 5: '#20003820', 6: '#14003527', 7: '#10003332', 8: '#08003145',\n 9: '#05001d73', 10: '#0500197d', 11: '#0400119c', 12: '#020008e0',\n },\n dark: {\n 1: '#121113', 2: '#1a191b', 3: '#232225', 4: '#2b292d',\n 5: '#323035', 6: '#3c393f', 7: '#49474e', 8: '#625f69',\n 9: '#6f6d78', 10: '#7c7a85', 11: '#b5b2bc', 12: '#eeeef0',\n },\n darkA: {\n 1: '#00000000', 2: '#f5f4f609', 3: '#ebeaf814', 4: '#eee5f81d',\n 5: '#efe6fe25', 6: '#f1e6fd30', 7: '#eee9ff40', 8: '#eee7ff5d',\n 9: '#eae6fd6e', 10: '#ece9fd7c', 11: '#f5f1ffb7', 12: '#fdfdffef',\n },\n },\n mint: {\n light: {\n 1: '#f9fefd', 2: '#f2fbf9', 3: '#ddf9f2', 4: '#c8f4e9',\n 5: '#b3ecde', 6: '#9ce0d0', 7: '#7ecfbd', 8: '#4cbba5',\n 9: '#86ead4', 10: '#7de0cb', 11: '#027864', 12: '#16433c',\n },\n lightA: {\n 1: '#00d5aa06', 2: '#00b18a0d', 3: '#00d29e22', 4: '#00cc9937',\n 5: '#00c0914c', 6: '#00b08663', 7: '#00a17d81', 8: '#009e7fb3',\n 9: '#00d3a579', 10: '#00c39982', 11: '#007763fd', 12: '#00312ae9',\n },\n dark: {\n 1: '#0e1515', 2: '#0f1b1b', 3: '#092c2b', 4: '#003a38',\n 5: '#004744', 6: '#105650', 7: '#1e685f', 8: '#277f70',\n 9: '#86ead4', 10: '#a8f5e5', 11: '#58d5ba', 12: '#c4f5e1',\n },\n darkA: {\n 1: '#00dede05', 2: '#00f9f90b', 3: '#00fff61d', 4: '#00fff42c',\n 5: '#00fff23a', 6: '#0effeb4a', 7: '#34fde55e', 8: '#41ffdf76',\n 9: '#92ffe7e9', 10: '#aefeedf5', 11: '#67ffded2', 12: '#cbfee9f5',\n },\n },\n olive: {\n light: {\n 1: '#fcfdfc', 2: '#f8faf8', 3: '#eff1ef', 4: '#e7e9e7',\n 5: '#dfe2df', 6: '#d7dad7', 7: '#cccfcc', 8: '#b9bcb8',\n 9: '#898e87', 10: '#7f847d', 11: '#60655f', 12: '#1d211c',\n },\n lightA: {\n 1: '#00550003', 2: '#00490007', 3: '#00200010', 4: '#00160018',\n 5: '#00180020', 6: '#00140028', 7: '#000f0033', 8: '#040f0047',\n 9: '#050f0078', 10: '#040e0082', 11: '#020a00a0', 12: '#010600e3',\n },\n dark: {\n 1: '#111210', 2: '#181917', 3: '#212220', 4: '#282a27',\n 5: '#2f312e', 6: '#383a36', 7: '#454843', 8: '#5c625b',\n 9: '#687066', 10: '#767d74', 11: '#afb5ad', 12: '#eceeec',\n },\n darkA: {\n 1: '#00000000', 2: '#f1f2f008', 3: '#f4f5f312', 4: '#f3fef21a',\n 5: '#f2fbf122', 6: '#f4faed2c', 7: '#f2fced3b', 8: '#edfdeb57',\n 9: '#ebfde766', 10: '#f0fdec74', 11: '#f6fef4b0', 12: '#fdfffded',\n },\n },\n orange: {\n light: {\n 1: '#fefcfb', 2: '#fff7ed', 3: '#ffefd6', 4: '#ffdfb5',\n 5: '#ffd19a', 6: '#ffc182', 7: '#f5ae73', 8: '#ec9455',\n 9: '#f76b15', 10: '#ef5f00', 11: '#cc4e00', 12: '#582d1d',\n },\n lightA: {\n 1: '#c0400004', 2: '#ff8e0012', 3: '#ff9c0029', 4: '#ff91014a',\n 5: '#ff8b0065', 6: '#ff81007d', 7: '#ed6c008c', 8: '#e35f00aa',\n 9: '#f65e00ea', 10: '#ef5f00', 11: '#cc4e00', 12: '#431200e2',\n },\n dark: {\n 1: '#17120e', 2: '#1e160f', 3: '#331e0b', 4: '#462100',\n 5: '#562800', 6: '#66350c', 7: '#7e451d', 8: '#a35829',\n 9: '#f76b15', 10: '#ff801f', 11: '#ffa057', 12: '#ffe0c2',\n },\n darkA: {\n 1: '#ec360007', 2: '#fe6d000e', 3: '#fb6a0025', 4: '#ff590039',\n 5: '#ff61004a', 6: '#fd75045c', 7: '#ff832c75', 8: '#fe84389d',\n 9: '#fe6d15f7', 10: '#ff801f', 11: '#ffa057', 12: '#ffe0c2',\n },\n },\n pink: {\n light: {\n 1: '#fffcfe', 2: '#fef7fb', 3: '#fee9f5', 4: '#fbdcef',\n 5: '#f6cee7', 6: '#efbfdd', 7: '#e7acd0', 8: '#dd93c2',\n 9: '#d6409f', 10: '#cf3897', 11: '#c2298a', 12: '#651249',\n },\n lightA: {\n 1: '#ff00aa03', 2: '#e0008008', 3: '#f4008c16', 4: '#e2008b23',\n 5: '#d1008331', 6: '#c0007840', 7: '#b6006f53', 8: '#af006f6c',\n 9: '#c8007fbf', 10: '#c2007ac7', 11: '#b60074d6', 12: '#59003bed',\n },\n dark: {\n 1: '#191117', 2: '#21121d', 3: '#37172f', 4: '#4b143d',\n 5: '#591c47', 6: '#692955', 7: '#833869', 8: '#a84885',\n 9: '#d6409f', 10: '#de51a8', 11: '#ff8dcc', 12: '#fdd1ea',\n },\n darkA: {\n 1: '#f412bc09', 2: '#f420bb12', 3: '#fe37cc29', 4: '#fc1ec43f',\n 5: '#fd35c24e', 6: '#fd51c75f', 7: '#fd62c87b', 8: '#ff68c8a2',\n 9: '#fe49bcd4', 10: '#ff5cc0dc', 11: '#ff8dcc', 12: '#ffd3ecfd',\n },\n },\n plum: {\n light: {\n 1: '#fefcff', 2: '#fdf7fd', 3: '#fbebfb', 4: '#f7def8',\n 5: '#f2d1f3', 6: '#e9c2ec', 7: '#deade3', 8: '#cf91d8',\n 9: '#ab4aba', 10: '#a144af', 11: '#953ea3', 12: '#53195d',\n },\n lightA: {\n 1: '#aa00ff03', 2: '#c000c008', 3: '#cc00cc14', 4: '#c200c921',\n 5: '#b700bd2e', 6: '#a400b03d', 7: '#9900a852', 8: '#9000a56e',\n 9: '#89009eb5', 10: '#7f0092bb', 11: '#730086c1', 12: '#40004be6',\n },\n dark: {\n 1: '#181118', 2: '#201320', 3: '#351a35', 4: '#451d47',\n 5: '#512454', 6: '#5e3061', 7: '#734079', 8: '#92549c',\n 9: '#ab4aba', 10: '#b658c4', 11: '#e796f3', 12: '#f4d4f4',\n },\n darkA: {\n 1: '#f112f108', 2: '#f22ff211', 3: '#fd4cfd27', 4: '#f646ff3a',\n 5: '#f455ff48', 6: '#f66dff56', 7: '#f07cfd70', 8: '#ee84ff95',\n 9: '#e961feb6', 10: '#ed70ffc0', 11: '#f19cfef3', 12: '#feddfef4',\n },\n },\n purple: {\n light: {\n 1: '#fefcfe', 2: '#fbf7fe', 3: '#f7edfe', 4: '#f2e2fc',\n 5: '#ead5f9', 6: '#e0c4f4', 7: '#d1afec', 8: '#be93e4',\n 9: '#8e4ec6', 10: '#8347b9', 11: '#8145b5', 12: '#402060',\n },\n lightA: {\n 1: '#aa00aa03', 2: '#8000e008', 3: '#8e00f112', 4: '#8d00e51d',\n 5: '#8000db2a', 6: '#7a01d03b', 7: '#6d00c350', 8: '#6600c06c',\n 9: '#5c00adb1', 10: '#53009eb8', 11: '#52009aba', 12: '#250049df',\n },\n dark: {\n 1: '#18111b', 2: '#1e1523', 3: '#301c3b', 4: '#3d224e',\n 5: '#48295c', 6: '#54346b', 7: '#664282', 8: '#8457aa',\n 9: '#8e4ec6', 10: '#9a5cd0', 11: '#d19dff', 12: '#ecd9fa',\n },\n darkA: {\n 1: '#b412f90b', 2: '#b744f714', 3: '#c150ff2d', 4: '#bb53fd42',\n 5: '#be5cfd51', 6: '#c16dfd61', 7: '#c378fd7a', 8: '#c47effa4',\n 9: '#b661ffc2', 10: '#bc6fffcd', 11: '#d19dff', 12: '#f1ddfffa',\n },\n },\n red: {\n light: {\n 1: '#fffcfc', 2: '#fff7f7', 3: '#feebec', 4: '#ffdbdc',\n 5: '#ffcdce', 6: '#fdbdbe', 7: '#f4a9aa', 8: '#eb8e90',\n 9: '#e5484d', 10: '#dc3e42', 11: '#ce2c31', 12: '#641723',\n },\n lightA: {\n 1: '#ff000003', 2: '#ff000008', 3: '#f3000d14', 4: '#ff000824',\n 5: '#ff000632', 6: '#f8000442', 7: '#df000356', 8: '#d2000571',\n 9: '#db0007b7', 10: '#d10005c1', 11: '#c40006d3', 12: '#55000de8',\n },\n dark: {\n 1: '#191111', 2: '#201314', 3: '#3b1219', 4: '#500f1c',\n 5: '#611623', 6: '#72232d', 7: '#8c333a', 8: '#b54548',\n 9: '#e5484d', 10: '#ec5d5e', 11: '#ff9592', 12: '#ffd1d9',\n },\n darkA: {\n 1: '#f4121209', 2: '#f22f3e11', 3: '#ff173f2d', 4: '#fe0a3b44',\n 5: '#ff204756', 6: '#ff3e5668', 7: '#ff536184', 8: '#ff5d61b0',\n 9: '#fe4e54e4', 10: '#ff6465eb', 11: '#ff9592', 12: '#ffd1d9',\n },\n },\n ruby: {\n light: {\n 1: '#fffcfd', 2: '#fff7f8', 3: '#feeaed', 4: '#ffdce1',\n 5: '#ffced6', 6: '#f8bfc8', 7: '#efacb8', 8: '#e592a3',\n 9: '#e54666', 10: '#dc3b5d', 11: '#ca244d', 12: '#64172b',\n },\n lightA: {\n 1: '#ff005503', 2: '#ff002008', 3: '#f3002515', 4: '#ff002523',\n 5: '#ff002a31', 6: '#e4002440', 7: '#ce002553', 8: '#c300286d',\n 9: '#db002cb9', 10: '#d2002cc4', 11: '#c10030db', 12: '#550016e8',\n },\n dark: {\n 1: '#191113', 2: '#1e1517', 3: '#3a141e', 4: '#4e1325',\n 5: '#5e1a2e', 6: '#6f2539', 7: '#883447', 8: '#b3445a',\n 9: '#e54666', 10: '#ec5a72', 11: '#ff949d', 12: '#fed2e1',\n },\n darkA: {\n 1: '#f4124a09', 2: '#fe5a7f0e', 3: '#ff235d2c', 4: '#fd195e42',\n 5: '#fe2d6b53', 6: '#ff447665', 7: '#ff577d80', 8: '#ff5c7cae',\n 9: '#fe4c70e4', 10: '#ff617beb', 11: '#ff949d', 12: '#ffd3e2fe',\n },\n },\n sage: {\n light: {\n 1: '#fbfdfc', 2: '#f7f9f8', 3: '#eef1f0', 4: '#e6e9e8',\n 5: '#dfe2e0', 6: '#d7dad9', 7: '#cbcfcd', 8: '#b8bcba',\n 9: '#868e8b', 10: '#7c8481', 11: '#5f6563', 12: '#1a211e',\n },\n lightA: {\n 1: '#00804004', 2: '#00402008', 3: '#002d1e11', 4: '#001f1519',\n 5: '#00180820', 6: '#00140d28', 7: '#00140a34', 8: '#000f0847',\n 9: '#00110b79', 10: '#00100a83', 11: '#000a07a0', 12: '#000805e5',\n },\n dark: {\n 1: '#101211', 2: '#171918', 3: '#202221', 4: '#272a29',\n 5: '#2e3130', 6: '#373b39', 7: '#444947', 8: '#5b625f',\n 9: '#63706b', 10: '#717d79', 11: '#adb5b2', 12: '#eceeed',\n },\n darkA: {\n 1: '#00000000', 2: '#f0f2f108', 3: '#f3f5f412', 4: '#f2fefd1a',\n 5: '#f1fbfa22', 6: '#edfbf42d', 7: '#edfcf73c', 8: '#ebfdf657',\n 9: '#dffdf266', 10: '#e5fdf674', 11: '#f4fefbb0', 12: '#fdfffeed',\n },\n },\n sand: {\n light: {\n 1: '#fdfdfc', 2: '#f9f9f8', 3: '#f1f0ef', 4: '#e9e8e6',\n 5: '#e2e1de', 6: '#dad9d6', 7: '#cfceca', 8: '#bcbbb5',\n 9: '#8d8d86', 10: '#82827c', 11: '#63635e', 12: '#21201c',\n },\n lightA: {\n 1: '#55550003', 2: '#25250007', 3: '#20100010', 4: '#1f150019',\n 5: '#1f180021', 6: '#19130029', 7: '#19140035', 8: '#1915014a',\n 9: '#0f0f0079', 10: '#0c0c0083', 11: '#080800a1', 12: '#060500e3',\n },\n dark: {\n 1: '#111110', 2: '#191918', 3: '#222221', 4: '#2a2a28',\n 5: '#31312e', 6: '#3b3a37', 7: '#494844', 8: '#62605b',\n 9: '#6f6d66', 10: '#7c7b74', 11: '#b5b3ad', 12: '#eeeeec',\n },\n darkA: {\n 1: '#00000000', 2: '#f4f4f309', 3: '#f6f6f513', 4: '#fefef31b',\n 5: '#fbfbeb23', 6: '#fffaed2d', 7: '#fffbed3c', 8: '#fff9eb57',\n 9: '#fffae965', 10: '#fffdee73', 11: '#fffcf4b0', 12: '#fffffded',\n },\n },\n sky: {\n light: {\n 1: '#f9feff', 2: '#f1fafd', 3: '#e1f6fd', 4: '#d1f0fa',\n 5: '#bee7f5', 6: '#a9daed', 7: '#8dcae3', 8: '#60b3d7',\n 9: '#7ce2fe', 10: '#74daf8', 11: '#00749e', 12: '#1d3e56',\n },\n lightA: {\n 1: '#00d5ff06', 2: '#00a4db0e', 3: '#00b3ee1e', 4: '#00ace42e',\n 5: '#00a1d841', 6: '#0092ca56', 7: '#0089c172', 8: '#0085bf9f',\n 9: '#00c7fe83', 10: '#00bcf38b', 11: '#00749e', 12: '#002540e2',\n },\n dark: {\n 1: '#0d141f', 2: '#111a27', 3: '#112840', 4: '#113555',\n 5: '#154467', 6: '#1b537b', 7: '#1f6692', 8: '#197cae',\n 9: '#7ce2fe', 10: '#a8eeff', 11: '#75c7f0', 12: '#c2f3ff',\n },\n darkA: {\n 1: '#0044ff0f', 2: '#1171fb18', 3: '#1184fc33', 4: '#128fff49',\n 5: '#1c9dfd5d', 6: '#28a5ff72', 7: '#2badfe8b', 8: '#1db2fea9',\n 9: '#7ce3fffe', 10: '#a8eeff', 11: '#7cd3ffef', 12: '#c2f3ff',\n },\n },\n slate: {\n light: {\n 1: '#fcfcfd', 2: '#f9f9fb', 3: '#f0f0f3', 4: '#e8e8ec',\n 5: '#e0e1e6', 6: '#d9d9e0', 7: '#cdced6', 8: '#b9bbc6',\n 9: '#8b8d98', 10: '#80838d', 11: '#60646c', 12: '#1c2024',\n },\n lightA: {\n 1: '#00005503', 2: '#00005506', 3: '#0000330f', 4: '#00002d17',\n 5: '#0009321f', 6: '#00002f26', 7: '#00062e32', 8: '#00083046',\n 9: '#00051d74', 10: '#00071b7f', 11: '#0007149f', 12: '#000509e3',\n },\n dark: {\n 1: '#111113', 2: '#18191b', 3: '#212225', 4: '#272a2d',\n 5: '#2e3135', 6: '#363a3f', 7: '#43484e', 8: '#5a6169',\n 9: '#696e77', 10: '#777b84', 11: '#b0b4ba', 12: '#edeef0',\n },\n darkA: {\n 1: '#00000000', 2: '#d8f4f609', 3: '#ddeaf814', 4: '#d3edf81d',\n 5: '#d9edfe25', 6: '#d6ebfd30', 7: '#d9edff40', 8: '#d9edff5d',\n 9: '#dfebfd6d', 10: '#e5edfd7b', 11: '#f1f7feb5', 12: '#fcfdffef',\n },\n },\n teal: {\n light: {\n 1: '#fafefd', 2: '#f3fbf9', 3: '#e0f8f3', 4: '#ccf3ea',\n 5: '#b8eae0', 6: '#a1ded2', 7: '#83cdc1', 8: '#53b9ab',\n 9: '#12a594', 10: '#0d9b8a', 11: '#008573', 12: '#0d3d38',\n },\n lightA: {\n 1: '#00cc9905', 2: '#00aa800c', 3: '#00c69d1f', 4: '#00c39633',\n 5: '#00b49047', 6: '#00a6855e', 7: '#0099807c', 8: '#009783ac',\n 9: '#009e8ced', 10: '#009684f2', 11: '#008573', 12: '#00332df2',\n },\n dark: {\n 1: '#0d1514', 2: '#111c1b', 3: '#0d2d2a', 4: '#023b37',\n 5: '#084843', 6: '#145750', 7: '#1c6961', 8: '#207e73',\n 9: '#12a594', 10: '#0eb39e', 11: '#0bd8b6', 12: '#adf0dd',\n },\n darkA: {\n 1: '#00deab05', 2: '#12fbe60c', 3: '#00ffe61e', 4: '#00ffe92d',\n 5: '#00ffea3b', 6: '#1cffe84b', 7: '#2efde85f', 8: '#32ffe775',\n 9: '#13ffe49f', 10: '#0dffe0ae', 11: '#0afed5d6', 12: '#b8ffebef',\n },\n },\n tomato: {\n light: {\n 1: '#fffcfc', 2: '#fff8f7', 3: '#feebe7', 4: '#ffdcd3',\n 5: '#ffcdc2', 6: '#fdbdaf', 7: '#f5a898', 8: '#ec8e7b',\n 9: '#e54d2e', 10: '#dd4425', 11: '#d13415', 12: '#5c271f',\n },\n lightA: {\n 1: '#ff000003', 2: '#ff200008', 3: '#f52b0018', 4: '#ff35002c',\n 5: '#ff2e003d', 6: '#f92d0050', 7: '#e7280067', 8: '#db250084',\n 9: '#df2600d1', 10: '#d72400da', 11: '#cd2200ea', 12: '#460900e0',\n },\n dark: {\n 1: '#181111', 2: '#1f1513', 3: '#391714', 4: '#4e1511',\n 5: '#5e1c16', 6: '#6e2920', 7: '#853a2d', 8: '#ac4d39',\n 9: '#e54d2e', 10: '#ec6142', 11: '#ff977d', 12: '#fbd3cb',\n },\n darkA: {\n 1: '#f1121208', 2: '#ff55330f', 3: '#ff35232b', 4: '#fd201142',\n 5: '#fe332153', 6: '#ff4f3864', 7: '#fd644a7d', 8: '#fe6d4ea7',\n 9: '#fe5431e4', 10: '#ff6847eb', 11: '#ff977d', 12: '#ffd6cefb',\n },\n },\n violet: {\n light: {\n 1: '#fdfcfe', 2: '#faf8ff', 3: '#f4f0fe', 4: '#ebe4ff',\n 5: '#e1d9ff', 6: '#d4cafe', 7: '#c2b5f5', 8: '#aa99ec',\n 9: '#6e56cf', 10: '#654dc4', 11: '#6550b9', 12: '#2f265f',\n },\n lightA: {\n 1: '#5500aa03', 2: '#4900ff07', 3: '#4400ee0f', 4: '#4300ff1b',\n 5: '#3600ff26', 6: '#3100fb35', 7: '#2d01dd4a', 8: '#2b00d066',\n 9: '#2400b7a9', 10: '#2300abb2', 11: '#1f0099af', 12: '#0b0043d9',\n },\n dark: {\n 1: '#14121f', 2: '#1b1525', 3: '#291f43', 4: '#33255b',\n 5: '#3c2e69', 6: '#473876', 7: '#56468b', 8: '#6958ad',\n 9: '#6e56cf', 10: '#7d66d9', 11: '#baa7ff', 12: '#e2ddfe',\n },\n darkA: {\n 1: '#4422ff0f', 2: '#853ff916', 3: '#8354fe36', 4: '#7d51fd50',\n 5: '#845ffd5f', 6: '#8f6cfd6d', 7: '#9879ff83', 8: '#977dfea8',\n 9: '#8668ffcc', 10: '#9176fed7', 11: '#baa7ff', 12: '#e3defffe',\n },\n },\n yellow: {\n light: {\n 1: '#fdfdf9', 2: '#fefce9', 3: '#fffab8', 4: '#fff394',\n 5: '#ffe770', 6: '#f3d768', 7: '#e4c767', 8: '#d5ae39',\n 9: '#ffe629', 10: '#ffdc00', 11: '#9e6c00', 12: '#473b1f',\n },\n lightA: {\n 1: '#aaaa0006', 2: '#f4dd0016', 3: '#ffee0047', 4: '#ffe3016b',\n 5: '#ffd5008f', 6: '#ebbc0097', 7: '#d2a10098', 8: '#c99700c6',\n 9: '#ffe100d6', 10: '#ffdc00', 11: '#9e6c00', 12: '#2e2000e0',\n },\n dark: {\n 1: '#14120b', 2: '#1b180f', 3: '#2d2305', 4: '#362b00',\n 5: '#433500', 6: '#524202', 7: '#665417', 8: '#836a21',\n 9: '#ffe629', 10: '#ffff57', 11: '#f5e147', 12: '#f6eeb4',\n },\n darkA: {\n 1: '#d1510004', 2: '#f9b4000b', 3: '#ffaa001e', 4: '#fdb70028',\n 5: '#febb0036', 6: '#fec40046', 7: '#fdcb225c', 8: '#fdca327b',\n 9: '#ffe629', 10: '#ffff57', 11: '#fee949f5', 12: '#fef6baf6',\n },\n },\n};\n","import type { PALETTES } from './palettes';\n\nimport type { Styles } from '../providers/design-system-provider';\n\nexport type Mode = 'dark' | 'light';\n\nexport type PaletteName = keyof typeof PALETTES;\n\nexport type ColorStep = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport type ColorScale = Record<ColorStep, string>;\n\nexport type ColorVariant = 'light' | 'lightA' | 'dark' | 'darkA';\n\nexport type Palette = Record<ColorVariant, ColorScale>;\n\nexport type Palettes = Record<string, Palette>;\n\nexport interface TypographyProperties {\n font: string;\n weight: string;\n tracking: string;\n leading: string;\n}\n\nexport interface ShadowProperties {\n color: PaletteName;\n offsetX: number;\n offsetY: number;\n blur: number;\n spread: number;\n opacity: number;\n}\n\nexport type ShadowStep = 'xs' | 's' | 'm' | 'l' | 'xl';\n\nexport const SHADOW_STEPS: ShadowStep[] = ['xs', 's', 'm', 'l', 'xl'];\n\nexport type ColorRole = 'neutral' | 'accent' | 'error' | 'success' | 'warning' | 'info';\n\nexport const COLOR_ROLES: ColorRole[] = ['neutral', 'accent', 'error', 'success', 'warning', 'info'];\n\nexport type TypographyRole = 'header' | 'label' | 'body' | 'code';\n\nexport const TYPOGRAPHY_ROLES: TypographyRole[] = ['header', 'label', 'body', 'code'];\n\nexport interface ThemePreset {\n name: string;\n colors: Record<ColorRole, PaletteName>;\n shadows: Record<ShadowStep, ShadowProperties>;\n typography: Record<TypographyRole, TypographyProperties>;\n radius: string;\n spacingFactor: number;\n typographyScaleFactor: number;\n custom?: Record<string, string>;\n overrides?: Partial<Styles>;\n}\n","import { PALETTES } from './palettes';\n\nimport { COLOR_ROLES, SHADOW_STEPS, type Mode, type PaletteName, type ThemePreset } from './types';\n\nexport class PresetHelpers {\n public static resolve(preset: ThemePreset, mode: Mode): Record<string, string> {\n const vars: Record<string, string> = {};\n\n for (const role of COLOR_ROLES) {\n const palette = PALETTES[preset.colors[role] as PaletteName];\n const solid = palette[mode];\n const alpha = palette[`${mode}A`];\n const alphaKey = role === 'neutral' ? 'neutralA' : `${role}A`;\n\n for (let i = 1; i <= 12; i++) {\n vars[`--color-${role}-${i}`] = solid[i as keyof typeof solid];\n vars[`--color-${alphaKey}-${i}`] = alpha[i as keyof typeof alpha];\n }\n }\n\n for (const step of SHADOW_STEPS) {\n const config = preset.shadows[step];\n\n vars[`--shadow-${step}-color`] = PALETTES[config.color as PaletteName][mode][9];\n vars[`--shadow-${step}-offsetX`] = `${config.offsetX}px`;\n vars[`--shadow-${step}-offsetY`] = `${config.offsetY}px`;\n vars[`--shadow-${step}-blur`] = `${config.blur}px`;\n vars[`--shadow-${step}-spread`] = `${config.spread}px`;\n vars[`--shadow-${step}-opacity`] = `${Math.round(config.opacity * 100)}%`;\n }\n\n for (const [role, config] of Object.entries(preset.typography)) {\n vars[`--typo-${role}-font`] = `'${config.font}', sans-serif`;\n vars[`--typo-${role}-weight`] = config.weight;\n vars[`--typo-${role}-tracking`] = config.tracking;\n vars[`--typo-${role}-leading`] = config.leading;\n }\n\n vars['--radius'] = preset.radius;\n vars['--spacing'] = `${0.25 * preset.spacingFactor}rem`;\n vars['--typo-scale-factor'] = `${preset.typographyScaleFactor}`;\n\n if (preset.custom) Object.assign(vars, preset.custom);\n\n return vars;\n }}\n","import { LocalStorage } from '@digo-labs/common';\n\nimport { baseStyles } from '..';\n\nimport { createContext, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from 'react';\n\nimport { PresetHelpers } from '../presets/helpers';\n\nimport type { ColorRole, Mode, PaletteName, ShadowProperties, ShadowStep, ThemePreset, TypographyProperties, TypographyRole } from '../presets/types';\n\nexport type Styles = typeof baseStyles;\n\ntype PartialStyles = Partial<Styles>;\n\nconst LOCAL_STORAGE_KEY = 'mode';\n\ninterface DesignSystemContextType {\n mode: Mode;\n toggleMode: () => void;\n setMode: (mode: Mode) => void;\n preset: ThemePreset;\n setPreset: (preset: ThemePreset) => void;\n updatePreset: (partial: Partial<ThemePreset>) => void;\n setRolePalette: (role: ColorRole, palette: PaletteName) => void;\n updateTypography: (role: TypographyRole, partial: Partial<TypographyProperties>) => void;\n updateShadow: (step: ShadowStep, partial: Partial<ShadowProperties>) => void;\n updateComponentOverrides: (component: string, overrides: Record<string, string>) => void;\n}\n\nconst DesignSystemContext = createContext<DesignSystemContextType | undefined>(undefined);\n\nconst StylesContext = createContext<Styles>(baseStyles);\n\ninterface DesignSystemProviderProps {\n children: ReactNode;\n preset: ThemePreset;\n defaultMode?: Mode;\n overrides?: PartialStyles;\n}\n\nexport function DesignSystemProvider(properties: DesignSystemProviderProps) {\n const {\n children,\n preset,\n defaultMode = 'dark',\n overrides,\n } = properties;\n\n const [mode, setMode] = useState<Mode>(defaultMode);\n const [currentPreset, setCurrentPreset] = useState<ThemePreset>(preset);\n const previousVarsRef = useRef<Record<string, string>>({});\n\n useEffect(() => {\n const savedMode = LocalStorage.loadValue<Mode>(LOCAL_STORAGE_KEY, defaultMode);\n\n setMode(savedMode);\n }, []);\n\n useEffect(() => {\n LocalStorage.setValue<Mode>(LOCAL_STORAGE_KEY, mode);\n }, [mode]);\n\n useLayoutEffect(() => {\n const root = document.documentElement;\n const vars = PresetHelpers.resolve(currentPreset, mode);\n const prevVars = previousVarsRef.current;\n\n for (const key of Object.keys(prevVars)) {\n if (!(key in vars)) root.style.removeProperty(key);\n }\n\n for (const [key, value] of Object.entries(vars)) {\n if (prevVars[key] !== value) root.style.setProperty(key, value);\n }\n\n previousVarsRef.current = vars;\n }, [mode, currentPreset]);\n\n function toggleMode(): void {\n setMode(current => current === 'light' ? 'dark' : 'light');\n }\n\n function updatePreset(partial: Partial<ThemePreset>): void {\n setCurrentPreset(prev => ({ ...prev, ...partial }));\n }\n\n function setRolePalette(role: ColorRole, palette: PaletteName): void {\n setCurrentPreset(prev => ({ ...prev, colors: { ...prev.colors, [role]: palette } }));\n }\n\n function updateTypography(role: TypographyRole, partial: Partial<TypographyProperties>): void {\n setCurrentPreset(prev => ({\n ...prev,\n typography: {\n ...prev.typography,\n [role]: { ...prev.typography[role], ...partial },\n },\n }));\n }\n\n function updateShadow(step: ShadowStep, partial: Partial<ShadowProperties>): void {\n setCurrentPreset(prev => ({\n ...prev,\n shadows: {\n ...prev.shadows,\n [step]: { ...prev.shadows[step], ...partial },\n },\n }));\n }\n\n function updateComponentOverrides(component: string, componentOverrides: Record<string, string>): void {\n setCurrentPreset(prev => ({\n ...prev,\n overrides: {\n ...(prev.overrides ?? {}),\n [component]: componentOverrides,\n } as PartialStyles,\n }));\n }\n\n const styles = useMemo(() => {\n const presetOverrides = currentPreset.overrides ?? {};\n\n return { ...baseStyles, ...presetOverrides, ...overrides } as Styles;\n }, [currentPreset, overrides]);\n\n const contextValue = useMemo(() => ({\n mode,\n toggleMode,\n setMode,\n preset: currentPreset,\n setPreset: setCurrentPreset,\n updatePreset,\n setRolePalette,\n updateTypography,\n updateShadow,\n updateComponentOverrides,\n }), [mode, currentPreset]);\n\n return (\n <DesignSystemContext.Provider value={contextValue}>\n <StylesContext.Provider value={styles}>\n {children}\n </StylesContext.Provider>\n </DesignSystemContext.Provider>\n );\n}\n\nexport function useDesignSystem(): DesignSystemContextType {\n const context = useContext(DesignSystemContext);\n\n if (!context) {\n throw new Error('useDesignSystem must be used within a DesignSystemProvider');\n }\n\n return context;\n}\n\nexport function useStyles(): Styles {\n const context = useContext(StylesContext);\n\n if (!context) {\n throw new Error('useStyles must be used within a DesignSystemProvider');\n }\n\n return context;\n}\n","import { cn } from '@digo-labs/common';\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\n\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Styles, useStyles } from './design-system-provider';\n\ntype StyleKey = keyof Styles;\n\ntype ReturnOf<T> = T extends (...args: any[]) => infer R ? R : never;\n\ntype SlotNames<T> = keyof ReturnOf<T> & string;\n\ntype ResolvedSlots<T> = Record<SlotNames<T>, string>;\n\ntype SlotsClassNames<T extends (...args: any[]) => any> = Partial<Record<SlotNames<T>, string>>;\n\nexport type ComponentStylesProps<K extends StyleKey> = VariantProps<Styles[K]> & { classNames?: SlotsClassNames<Styles[K]>; };\n\nexport function createComponentStyles<K extends StyleKey>(styleKey: K) {\n type StyleFn = Styles[K];\n type Slots = SlotNames<StyleFn>;\n type Resolved = ResolvedSlots<StyleFn>;\n type Variants = VariantProps<StyleFn>;\n\n type ContextValue = {\n styles: Resolved;\n variants: Variants;\n };\n\n const Context = createContext<ContextValue | null>(null);\n\n type ProviderProperties = Variants & {\n classNames?: Partial<Record<Slots, string>>;\n children: ReactNode;\n };\n\n function ComponentStylesProvider(props: ProviderProperties) {\n const { classNames, children, ...variants } = props;\n\n const styleFn = useStyles()[styleKey];\n const variantKey = JSON.stringify(variants);\n const classNamesKey = JSON.stringify(classNames);\n\n const value = useMemo(() => {\n const slots = (styleFn as any)(variants);\n const styles = {} as Resolved;\n\n for (const name of Object.keys(slots) as Slots[]) {\n const base = slots[name]();\n styles[name] = classNames?.[name] ? cn(base, classNames[name]) : base;\n }\n\n return { styles, variants: variants as unknown as Variants };\n }, [styleFn, variantKey, classNamesKey]);\n\n return (\n <Context.Provider value={value}>\n {children}\n </Context.Provider>\n );\n }\n\n function useComponentStyles(): Resolved {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error(`useComponentStyles must be used within a ComponentStylesProvider for \"${String(styleKey)}\"`);\n }\n\n return context.styles;\n }\n\n function useComponentVariants(): Variants {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error(`useComponentVariants must be used within a ComponentStylesProvider for \"${String(styleKey)}\"`);\n }\n\n return context.variants;\n }\n\n return { ComponentStylesProvider, useComponentStyles, useComponentVariants };\n}\n","import { createTV } from 'tailwind-variants';\n\nimport type * as BaseStyles from '../styles';\n\nexport const styles = createTV({\n twMergeConfig: {\n classGroups: {\n 'font-size': [{ typo: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] }],\n 'font-weight': [{ 'typo-weight': ['100', '200', '300', '400', '500', '600', '700', '800', '900'] }],\n },\n },\n});\n\nexport { createComponentStyles, type ComponentStylesProps } from '../providers/component-styles-provider';\n\nexport function defineOverrides<T extends Partial<Record<keyof typeof BaseStyles, any>>>(overrides: T) {\n return overrides as Partial<typeof BaseStyles>;\n}\n","import type { ComponentProps } from 'react';\nimport type { Inertia, motion, Spring, Tween } from 'motion/react';\n\nexport const motionTransitionPresets = {\n spring1: { type: 'spring', stiffness: 400, damping: 40 },\n spring2: { type: 'spring', stiffness: 150, damping: 20 },\n spring3: { type: 'spring', stiffness: 200, damping: 10 },\n spring4: { type: 'spring', stiffness: 200, damping: 10 },\n spring5: { type: 'spring', stiffness: 300, damping: 10 },\n spring6: { type: 'spring', stiffness: 400, damping: 10 },\n} satisfies Record<string, Spring | Tween | Inertia>;\n\ntype MotionDivProps = ComponentProps<typeof motion.div>;\n\nexport const motionComponentPresets = {\n dragSnapBack: {\n drag: true,\n dragElastic: 0.3,\n dragConstraints: { left: 0, right: 0, top: 0, bottom: 0 },\n dragTransition: { bounceStiffness: 600, bounceDamping: 10, power: 0.3 },\n transition: motionTransitionPresets.spring3,\n },\n\n} satisfies Record<string, MotionDivProps>;\n\nexport const motionPresencePresets = {\n variant1: {\n initial: { opacity: 0, y: 20 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -20 },\n transition: motionTransitionPresets.spring5,\n },\n variant2: {\n initial: { opacity: 0, scale: 0.95 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.95, height: 0, padding: 0, margin: 0, overflow: 'hidden', transition: { duration: 0.25, ease: 'easeOut' } },\n transition: motionTransitionPresets.spring1,\n },\n variant3: {\n initial: { opacity: 0, scale: 0.75 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.75, transition: { duration: 0.2, ease: 'easeOut' } },\n transition: motionTransitionPresets.spring3,\n },\n} satisfies Record<string, MotionDivProps>;\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps, ReactNode } from 'react';\nimport { Transition } from 'motion';\nimport { AnimatePresence, motion, Variants } from 'motion/react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { motionPresencePresets } from '../utils/motion-presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('motionAnimatePresence');\n\ninterface Properties extends ComponentProps<typeof AnimatePresence>, ComponentStylesProps<'motionAnimatePresence'> {\n children: ReactNode[];\n activeIndex: number;\n preset?: keyof typeof motionPresencePresets;\n transition?: Transition;\n variants?: Variants;\n className?: string;\n}\n\nexport function MotionAnimatePresence(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <MotionAnimatePresenceRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction MotionAnimatePresenceRoot(properties: Omit<Properties, 'classNames'>) {\n const {\n children,\n activeIndex,\n preset = 'variant3',\n transition,\n variants,\n mode = 'wait',\n className,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const resolved = motionPresencePresets[preset];\n\n const finalVariants: Variants = variants ?? {\n initial: resolved.initial,\n animate: resolved.animate,\n exit: resolved.exit,\n };\n\n const finalTransition = transition ?? resolved.transition;\n\n return (\n\n <div data-slot=\"motion-animate-presence\" className={cn(styles.root, className)}>\n <AnimatePresence mode={mode} {...props}>\n <motion.div\n data-slot=\"motion-animate-presence-content\"\n key={activeIndex}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={finalVariants}\n transition={finalTransition}\n className={styles.content}\n >\n {children[activeIndex]}\n </motion.div>\n </AnimatePresence>\n </div>\n\n );\n}\n","export const ANIMATIONS = {\n default: 'https://cdn.digo-labs.com/animations/default-animation.json',\n empty: 'https://cdn.digo-labs.com/animations/empty-animation.json',\n error: 'https://cdn.digo-labs.com/animations/error-animation.json',\n score: 'https://cdn.digo-labs.com/animations/score-animation.json',\n heart: 'https://cdn.digo-labs.com/animations/heart-animation.json',\n};\n","import { useAuth } from '@digo-labs/services';\n\nimport { Navigate, Outlet, useLocation } from 'react-router-dom';\n\nimport { ReactNode } from 'react';\n\ninterface Properties {\n loginPath?: string;\n fallback?: ReactNode;\n}\n\nexport function AuthGuard(properties: Properties) {\n const { loginPath = '/login', fallback } = properties;\n\n const { isAuthenticated, isLoading } = useAuth();\n const location = useLocation();\n\n if (isLoading) return fallback ?? null;\n\n if (!isAuthenticated) {\n return (\n <Navigate\n to={loginPath}\n state={{ from: location }}\n replace={true}\n />);\n }\n\n return <Outlet />;\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps, createContext, ReactNode, useContext, useMemo, useRef, useState } from 'react';\nimport { HTMLMotionProps, motion, TargetAndTransition } from 'motion/react';\n\nimport { motionTransitionPresets } from 'src/utils/motion-presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('card');\n\nconst DEFAULT_HOVERED: TargetAndTransition = { translateX: 6 };\nconst DEFAULT_TAPPED: TargetAndTransition = { translateX: 0 };\n\ntype ContextProperties = {\n showFeedback: boolean;\n delay: number;\n getNextIndex: () => number;\n};\n\nconst Context = createContext<ContextProperties>({\n showFeedback: false,\n delay: 0.03,\n getNextIndex: () => 0,\n});\n\ninterface Properties extends RootProperties, ComponentStylesProps<'card'> {\n children: ReactNode;\n delay?: number;\n}\n\nexport function Card(properties: Properties) {\n const { classNames, children, onClick, delay = 0.03, className, ...props } = properties;\n\n const [showFeedback, setShowFeedback] = useState(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>(null);\n const indexRef = useRef(0);\n\n indexRef.current = 0;\n\n function handleClick() {\n clearTimeout(timeoutRef.current!);\n setShowFeedback(true);\n timeoutRef.current = setTimeout(() => setShowFeedback(false), 1000);\n }\n\n function getNextIndex() {\n return indexRef.current++;\n }\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ showFeedback, delay, getNextIndex }}>\n <CardRoot\n className={className}\n onHoverEnd={() => setShowFeedback(false)}\n onClick={(e) => {\n handleClick();\n onClick?.(e);\n }}\n {...props}\n >\n {children}\n </CardRoot>\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = HTMLMotionProps<'div'>;\n\nfunction CardRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <motion.div\n data-slot=\"card\"\n className={cn(styles.root, className)}\n whileHover=\"hovered\"\n whileTap=\"tapped\"\n {...props}\n />\n );\n}\n\nexport function CardContent(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"card-content\"\n className={cn(styles.content, className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\ninterface ItemProperties extends HTMLMotionProps<'div'> {\n hovered?: TargetAndTransition | false;\n tapped?: TargetAndTransition | false;\n}\n\nexport function CardItem(properties: ItemProperties) {\n const { className, children, hovered = DEFAULT_HOVERED, tapped = DEFAULT_TAPPED, ...props } = properties;\n\n const { delay, getNextIndex } = useContext(Context);\n\n const index = useMemo(() => getNextIndex(), []);\n\n return (\n <motion.div\n data-slot=\"card-item\"\n variants={{ hovered: hovered || {}, tapped: tapped || {} }}\n transition={{ ...motionTransitionPresets.spring1, delay: index * delay }}\n className={className}\n {...props}\n >\n {children}\n </motion.div>\n );\n}\n\ninterface FeedbackProperties extends ComponentProps<'div'> {\n label?: string;\n}\n\nexport function CardFeedback(properties: FeedbackProperties) {\n const { className, label = 'Copied!', ...props } = properties;\n\n const { showFeedback } = useContext(Context);\n const styles = useComponentStyles();\n\n return (\n <motion.div\n data-slot=\"card-feedback\"\n className={styles.feedbackWrapper}\n initial={false}\n hidden={undefined}\n animate={{\n height: showFeedback ? 'auto' : 0,\n opacity: showFeedback ? 1 : 0,\n }}\n transition={motionTransitionPresets.spring1}\n >\n <div className={cn(styles.feedback, className)} {...props}>\n {label}\n </div>\n </motion.div>\n );\n}\n","import { cn, TextMessage } from '@digo-labs/common';\nimport { Image } from '..';\n\nimport { ComponentProps, useEffect, useRef } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('chatThread');\n\nexport interface ChatThreadMessage {\n role: 'user' | 'assistant' | 'error';\n content: TextMessage['content'];\n stopReason?: string;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'chatThread'>;\n\nexport function ChatThread(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ChatThreadRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'div'> {\n messages: ChatThreadMessage[];\n streamingText?: string;\n}\n\nfunction ChatThreadRoot(properties: RootProperties) {\n const { messages, streamingText, className, ...props } = properties;\n\n const styles = useComponentStyles();\n const bottomRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n // bottomRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [messages.length, streamingText]);\n\n return (\n <div\n data-slot=\"chat-thread\"\n className={cn(styles.root, className)}\n {...props}\n >\n {messages.map((message, index) => (\n <ChatThreadBubble key={index} message={message} />\n ))}\n\n {streamingText !== undefined && (\n <ChatThreadStreamingBubble text={streamingText} />\n )}\n\n <div ref={bottomRef} />\n </div>\n );\n}\n\ninterface ChatThreadBubbleProperties {\n message: ChatThreadMessage;\n}\n\nfunction ChatThreadBubble(properties: ChatThreadBubbleProperties) {\n const { message } = properties;\n\n const styles = useComponentStyles();\n\n const variantSlot = message.role === 'user'\n ? styles.userMessage\n : message.role === 'error'\n ? styles.errorMessage\n : styles.assistantMessage;\n\n const showStopReason = message.role === 'assistant' && !!message.stopReason;\n\n return (\n <div\n data-slot=\"chat-thread-message\"\n data-role={message.role}\n className={cn(styles.message, variantSlot)}\n >\n {message.role === 'error' && (\n <span data-slot=\"chat-thread-error-tag\" className={styles.errorTag}>\n Error\n </span>\n )}\n\n <ChatThreadMessageContent content={message.content} />\n\n {showStopReason && (\n <span data-slot=\"chat-thread-stop-reason\" className={styles.stopReason}>\n {message.stopReason}\n </span>\n )}\n </div>\n );\n}\n\ninterface ChatThreadStreamingBubbleProperties {\n text: string;\n}\n\nfunction ChatThreadStreamingBubble(properties: ChatThreadStreamingBubbleProperties) {\n const { text } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"chat-thread-message\"\n data-role=\"assistant\"\n data-streaming=\"true\"\n className={cn(styles.message, styles.assistantMessage)}\n >\n <span data-slot=\"chat-thread-message-content\" className={styles.messageContent}>\n {text}\n <span data-slot=\"chat-thread-cursor\" aria-hidden=\"true\" className={styles.cursor} />\n </span>\n </div>\n );\n}\n\ninterface ChatThreadMessageContentProperties {\n content: TextMessage['content'];\n}\n\nfunction ChatThreadMessageContent(properties: ChatThreadMessageContentProperties) {\n const { content } = properties;\n\n const styles = useComponentStyles();\n\n if (typeof content === 'string') {\n return (\n <span data-slot=\"chat-thread-message-content\" className={styles.messageContent}>\n {content}\n </span>\n );\n }\n\n const textParts = content.filter(part => part.type === 'text');\n const imageParts = content.filter(part => part.type === 'image');\n\n const joinedText = textParts.map(part => part.text).join('\\n');\n\n return (\n <>\n {joinedText.length > 0 && (\n <span data-slot=\"chat-thread-message-content\" className={styles.messageContent}>\n {joinedText}\n </span>\n )}\n\n {imageParts.length > 0 && (\n <div data-slot=\"chat-thread-message-images\" className={styles.contentImages}>\n {imageParts.map((part, index) => (\n <Image key={index} src={part.source} classNames={{ root: styles.contentImage }} />\n ))}\n </div>\n )}\n </>\n );\n}\n","import { ComponentPropsWithoutRef } from 'react';\n\nimport { cn, CuratedIcons, IconHelpers } from '@digo-labs/common';\n\ninterface Properties extends ComponentPropsWithoutRef<'div'> {\n icon?: CuratedIcons | (string & {}); // (string & {}) preserves autocomplete\n}\n\nexport function Icon(properties: Properties) {\n const {\n icon = 'favorite',\n className = '',\n } = properties;\n\n const iconClass = IconHelpers.getIcon(icon);\n\n return (\n <span className={cn(iconClass, className)} />\n );\n}\n\nexport { Icon as IconifyIcon } from '@iconify-icon/react';\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('kbd');\n\ntype Properties = RootProperties & ComponentStylesProps<'kbd'>;\n\nexport function Kbd(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <KbdRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'kbd'>;\n\nfunction KbdRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function KbdGroup(properties: RootProperties & ComponentStylesProps<'kbd'>) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <KbdGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction KbdGroupRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { Icon } from 'src/components/icon';\nimport { Kbd, KbdGroup } from 'src/components/kbd';\nimport { Button } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('commandButton');\n\ntype Properties = RootProperties & ComponentStylesProps<'commandButton'>;\n\nexport function CommandButton(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CommandButtonRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Button>, 'classNames'> {\n placeholder?: string;\n}\n\nfunction CommandButtonRoot(properties: RootProperties) {\n const { placeholder, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Button\n data-slot=\"command-button\"\n className={cn(styles.root, className)}\n {...props}\n >\n <Icon icon=\"search\" />\n\n {placeholder && <span data-slot=\"command-button-placeholder\" className={styles.placeholder}>{placeholder}</span>}\n\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </KbdGroup>\n </Button>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('button');\n\ntype Properties = RootProperties & ComponentStylesProps<'button'>;\n\nexport function Button(properties: Properties) {\n const { classNames, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant}>\n <ButtonRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ButtonPrimitive.Props;\n\nfunction ButtonRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { CommonHelpers } from '@digo-labs/common';\n\nimport { ComponentProps, useState } from 'react';\n\nimport { Button } from 'src/components/button';\nimport { Icon } from 'src/components/icon';\nimport { MotionAnimatePresence } from 'src/animation/motion-animate-presence';\nimport { motionTransitionPresets } from 'src/utils/motion-presets';\n\ninterface Properties extends ComponentProps<typeof Button> {\n text: string;\n onCopy?: () => void;\n timeout?: number;\n}\n\nexport function CopyPasteButton(properties: Properties) {\n const { text, children, className, onClick, variant = 'icon', onCopy, timeout = 2000, ...props } = properties;\n\n const [copied, setCopied] = useState(false);\n\n async function handleCopy() {\n CommonHelpers.copyToClipboard(text);\n\n setCopied(true);\n\n onCopy?.();\n\n setTimeout(() => setCopied(false), timeout);\n };\n return (\n\n <Button\n variant={variant}\n onClick={(e) => {\n handleCopy();\n onClick?.(e);\n }}\n disabled={!text}\n className={className}\n {...props}\n >\n <MotionAnimatePresence\n activeIndex={copied ? 1 : 0}\n className=\"relative\"\n classNames={{ content: 'static typo-2' }}\n mode=\"popLayout\"\n transition={motionTransitionPresets.spring1}\n >\n <Icon icon=\"copy\" />\n <Icon icon=\"check\" />\n </MotionAnimatePresence>\n </Button>\n\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Field as FieldPrimitive } from '@base-ui/react/field';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('field');\n\nexport const FieldControl = FieldPrimitive.Control;\nexport const FieldValidity = FieldPrimitive.Validity;\n\ntype Properties = RootProperties & ComponentStylesProps<'field'>;\n\nexport function Field(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FieldRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = FieldPrimitive.Root.Props;\n\nfunction FieldRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Root\n data-slot=\"field\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function FieldLabel(properties: FieldPrimitive.Label.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Label\n data-slot=\"field-label\"\n className={cn(styles.label, className)}\n {...props}\n />\n );\n}\n\nexport function FieldItem(properties: FieldPrimitive.Item.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Item\n data-slot=\"field-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function FieldDescription(properties: FieldPrimitive.Description.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Description\n data-slot=\"field-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n\nexport function FieldError(properties: FieldPrimitive.Error.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Error\n data-slot=\"field-error\"\n className={cn(styles.error, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ReorderList } from '..';\n\nimport { ComponentProps, createContext, ReactNode, useContext, useEffect, useMemo } from 'react';\nimport { AnimatePresence } from 'motion/react';\nimport { useDropzone, DropzoneOptions, FileRejection } from 'react-dropzone';\n\nimport { FieldControl } from 'src/components/field';\nimport { Button } from 'src/components/button';\nimport { Icon } from 'src/components/icon';\nimport { motionPresencePresets } from 'src/utils/motion-presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('dropzone');\n\nexport type { FileRejection };\n\ninterface ContextProperties extends\n Pick<Properties, 'id' | 'name' | 'required' | 'multiple' | 'disabled'>,\n Pick<ReturnType<typeof useDropzone>, 'isDragActive' | 'getRootProps' | 'getInputProps' | 'inputRef' | 'open'> {\n files: File[];\n onRemove: (file: File) => void;\n onReorder: (files: File[]) => void;\n}\n\nconst Context = createContext<ContextProperties | undefined>(undefined);\n\ninterface Properties extends DropzoneOptions, ComponentStylesProps<'dropzone'> {\n value: File[];\n onChange: (files: File[]) => void;\n className?: string;\n children?: ReactNode;\n id?: string;\n name?: string;\n required?: boolean;\n}\n\nexport function Dropzone(properties: Properties) {\n const {\n classNames,\n value: files,\n onChange,\n multiple = true,\n accept,\n maxSize,\n disabled = false,\n onDropRejected,\n children,\n id,\n name,\n required,\n className,\n } = properties;\n\n const { getRootProps, getInputProps, inputRef, isDragActive, open } = useDropzone({\n accept,\n maxSize,\n multiple,\n disabled,\n noClick: true,\n noKeyboard: true,\n onDropRejected,\n onDropAccepted: (acceptedFiles) => {\n const next = multiple === false ? acceptedFiles.slice(0, 1) : [...files, ...acceptedFiles];\n onChange(next);\n },\n });\n\n function handleRemove(file: File) {\n onChange(files.filter(f => f !== file));\n }\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ files, multiple, isDragActive, disabled, onRemove: handleRemove, onReorder: onChange, getRootProps, getInputProps, inputRef, open, id, name, required }}>\n <DropzoneRoot className={className}>\n {children ?? (\n <DropzoneArea>\n <DropzoneCTA>\n <p className=\"truncate\">Upload File</p>\n <Icon icon=\"upload\" />\n </DropzoneCTA>\n <DropzoneFileList />\n </DropzoneArea>\n )}\n </DropzoneRoot>\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction DropzoneRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"dropzone\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function DropzoneArea(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const { getRootProps, getInputProps, inputRef, isDragActive, disabled, id, name, required, files } = useContext(Context)!;\n\n useEffect(() => {\n if (!inputRef.current) return;\n\n const dataTransfer = new DataTransfer();\n\n files.forEach(file => dataTransfer.items.add(file));\n\n inputRef.current.files = dataTransfer.files;\n\n inputRef.current.required = !!required && files.length === 0;\n }, [files, required]);\n\n const styles = useComponentStyles();\n\n return (\n <div\n {...getRootProps({\n ...props,\n 'className': cn(styles.area, className),\n 'data-slot': 'dropzone-area',\n 'data-drag-over': isDragActive || undefined,\n 'data-disabled': disabled || undefined,\n })}\n >\n <FieldControl\n render={<input />}\n {...getInputProps({ id, name })}\n />\n {children}\n </div>\n );\n}\n\nexport function DropzoneCTA(properties: ComponentProps<'button'>) {\n const { className, children, ...props } = properties;\n\n const { open, disabled } = useContext(Context)!;\n\n const styles = useComponentStyles();\n\n return (\n <button\n type=\"button\"\n data-slot=\"dropzone-cta\"\n disabled={disabled}\n className={cn(styles.cta, className)}\n onClick={(event) => {\n event.stopPropagation();\n open();\n }}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function DropzoneFileList(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const { files, onReorder } = useContext(Context)!;\n\n const styles = useComponentStyles();\n\n if (files.length === 0) return null;\n\n return (\n <ReorderList.Group\n axis=\"y\"\n values={files}\n onReorder={onReorder}\n data-slot=\"dropzone-file-list\"\n className={cn(styles.fileList, className)}\n {...props}\n >\n <AnimatePresence>\n {children ?? files.map(file => (\n <DropzoneFileItem\n key={`${file.name}-${file.size}-${file.lastModified}`}\n file={file}\n />\n ))}\n </AnimatePresence>\n </ReorderList.Group>\n );\n}\n\ninterface FileItemProperties extends Omit<ComponentProps<typeof ReorderList.Item>, 'value'> {\n file: File;\n onDeleteFile?: (file: File) => void;\n}\n\nexport function DropzoneFileItem(properties: FileItemProperties) {\n const { file, onDeleteFile, className, ...props } = properties;\n\n const { onRemove, files } = useContext(Context)!;\n\n const styles = useComponentStyles();\n\n const handleDelete = onDeleteFile ?? onRemove;\n\n const previewUrl = useMemo(\n () => file.type.startsWith('image/') ? URL.createObjectURL(file) : undefined,\n [file],\n );\n\n useEffect(() => {\n return () => {\n if (previewUrl) URL.revokeObjectURL(previewUrl);\n };\n }, [previewUrl]);\n\n return (\n <ReorderList.Item\n value={file}\n data-slot=\"dropzone-file-item\"\n className={cn(styles.fileItem, className)}\n {...motionPresencePresets.variant2}\n layout\n {...props}\n >\n\n <div data-slot=\"dropzone-thumbnail\" className={styles.thumbnailContainer}>\n { previewUrl\n ? <img src={previewUrl} alt={file.name} className={styles.thumbnail} />\n : <Icon icon=\"file\" className=\"size-7\" />}\n </div>\n\n <div data-slot=\"dropzone-info\" className={styles.info}>\n <span data-slot=\"dropzone-name\" className={styles.name}>{file.name}</span>\n <span data-slot=\"dropzone-type\" className={styles.type}>{file.type}</span>\n </div>\n\n {files.length > 1 && <Icon icon=\"dragHandle\" className={styles.grab} />}\n\n <Button\n data-slot=\"dropzone-remove\"\n variant=\"default\"\n className={styles.remove}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n handleDelete(file);\n }}\n >\n <Icon icon=\"delete\" className=\"size-3\" />\n </Button>\n\n </ReorderList.Item>\n );\n}\n","import { useRef } from 'react';\n\nimport { FONT_FACES } from '@digo-labs/common';\n\nimport { Button, Combobox, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxTrigger, ComboboxValue, Icon } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('fontPicker');\n\ninterface Font {\n label: string;\n value: string;\n}\n\nconst fonts: Font[] = FONT_FACES.map(f => ({ label: f.family, value: f.family }));\n\ntype Properties = RootProperties & ComponentStylesProps<'fontPicker'>;\n\nexport function FontPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FontPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: string;\n onValueChange: (font: string) => void;\n}\n\nfunction FontPickerRoot(properties: RootProperties) {\n const { value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Combobox\n items={fonts}\n value={fonts.find(font => font.value === value) ?? fonts[0]}\n onValueChange={font => font && onValueChange(font.value)}\n classNames={{\n itemIndicator: styles.itemIndicator,\n }}\n >\n <ComboboxTrigger\n className={styles.trigger}\n ref={triggerRef}\n render={<Button variant=\"default\" />}\n >\n <ComboboxValue placeholder=\"Select a font…\" />\n <span className={styles.fontPreview} style={{ fontFamily: `'${value}', sans-serif` }}>\n Aa\n </span>\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput\n className={styles.input}\n placeholder=\"Search font...\"\n showTrigger={false}\n startAddon={<Icon icon=\"search\" />}\n />\n </div>\n\n <ComboboxEmpty className={styles.empty}>\n No fonts found.\n </ComboboxEmpty>\n\n <ComboboxList className={styles.list}>\n {(font: Font) => (\n <ComboboxItem\n key={font.value}\n value={font}\n className={styles.item}\n >\n <span\n style={{ fontFamily: `'${font.value}', sans-serif` }}\n className={styles.itemPreview}\n >\n Aa\n </span>\n\n <div className={styles.itemlabel}>\n {font.label}\n </div>\n\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n );\n}\n","import { cn, CommonHelpers, ImagePayload } from '@digo-labs/common';\nimport { Icon, Image, Button, Dropzone, DropzoneArea, DropzoneCTA, MotionAnimatePresence } from '..';\n\nimport { ComponentProps, useMemo, useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('imageDropzone');\n\ntype Properties = RootProperties & ComponentStylesProps<'imageDropzone'>;\n\nexport function ImageDropzone(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ImageDropzoneRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Dropzone>, 'value' | 'onChange' | 'children' | 'multiple'> {\n value: ImagePayload | undefined;\n onChange: (image: ImagePayload | undefined) => void;\n}\n\nfunction ImageDropzoneRoot(properties: RootProperties) {\n const {\n value,\n onChange,\n accept = { 'image/*': [] },\n className,\n ...dropzoneProps\n } = properties;\n\n const styles = useComponentStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n\n const files = useMemo(() => (value ? [CommonHelpers.getFileFromImagePayload(value)] : []), [value]);\n\n async function handleChange(nextFiles: File[]) {\n const file = nextFiles[0];\n\n if (!file) return onChange(undefined);\n\n setIsLoading(true);\n\n const [image, error] = await CommonHelpers.getImagePayloadFromFile(file);\n\n setIsLoading(false);\n\n if (error) return;\n\n onChange(image);\n }\n\n return (\n <Dropzone\n {...dropzoneProps}\n value={files}\n onChange={handleChange}\n multiple={false}\n accept={accept}\n className={cn(styles.root, className)}\n >\n <DropzoneArea\n data-has-image={!!value || undefined}\n className={styles.area}\n >\n\n <MotionAnimatePresence\n activeIndex={value ? 1 : 0}\n classNames={{ root: 'h-auto', content: 'relative' }}\n >\n <ImageDropzonePlaceHolder />\n <Image src={value!} classNames={{ root: styles.image }} />\n </MotionAnimatePresence>\n\n {isLoading && <ImageDropzoneLoader />}\n\n {value && (\n <Button variant=\"default\" className={styles.deleteButton} onClick={() => onChange(undefined)}>\n <Icon icon=\"trash\" />\n </Button>\n )}\n\n <DropzoneCTA className={styles.cta} />\n </DropzoneArea>\n </Dropzone>\n );\n}\n\nfunction ImageDropzoneLoader() {\n const styles = useComponentStyles();\n\n return (\n <div className={styles.loader}>\n <Icon icon=\"loading\" className={styles.loaderIcon} />\n </div>\n );\n}\n\nfunction ImageDropzonePlaceHolder() {\n const styles = useComponentStyles();\n\n return (\n <div className={styles.placeholder}>\n <Icon icon=\"upload\" className={styles.placeholderIcon} />\n <span>\n Upload Image\n </span>\n </div>\n );\n}\n","import { cn, CommonHelpers } from '@digo-labs/common';\n\nimport { ComponentProps, useLayoutEffect, useRef } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('navbar');\n\ntype Properties = RootProperties & ComponentStylesProps<'navbar'>;\n\nexport function Navbar(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <NavbarRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'nav'>;\n\nfunction NavbarRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n const ref = useRef<HTMLElement>(null);\n\n useLayoutEffect(() => {\n const element = ref.current;\n\n if (!element) return;\n\n CommonHelpers.setCssVariable('--navbar-h', element);\n\n const resizeObserver = new ResizeObserver(() => CommonHelpers.setCssVariable('--navbar-h', element));\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n return (\n <nav\n ref={ref}\n data-slot=\"navbar\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function NavbarLogo(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"navbar-logo\"\n className={cn(styles.logo, className)}\n {...props}\n />\n );\n}\n\nexport function NavbarContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"navbar-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function NavbarActions(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"navbar-actions\"\n className={cn(styles.actions, className)}\n {...props}\n />\n );\n}\n","import { useRef } from 'react';\n\nimport { Button, ColorSwatch, Combobox, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxTrigger, ComboboxValue, Icon, PaletteName, PALETTES, useDesignSystem } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('palettePicker');\n\ninterface Palette {\n label: string;\n value: PaletteName;\n}\n\nconst paletteNames: PaletteName[] = Object.keys(PALETTES);\n\nconst palettes: Palette[] = paletteNames.map(name => ({ label: name, value: name }));\n\ntype Properties = RootProperties & ComponentStylesProps<'palettePicker'>;\n\nexport function PalettePicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PalettePickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: PaletteName;\n onValueChange: (palette: PaletteName) => void;\n}\n\nfunction PalettePickerRoot(properties: RootProperties) {\n const { value, onValueChange } = properties;\n\n const { mode } = useDesignSystem();\n const styles = useComponentStyles();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Combobox\n items={palettes}\n value={palettes.find(palette => palette.value === value) ?? palettes[0]}\n onValueChange={palette => palette && onValueChange(palette.value)}\n >\n <ComboboxTrigger\n className={styles.trigger}\n ref={triggerRef}\n render={<Button variant=\"default\" />}\n >\n <ComboboxValue placeholder=\"Select a palette…\" />\n <div className={styles.paletteContainer}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][1]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][3]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][5]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][7]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][9]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][11]} />\n </div>\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput\n className={styles.input}\n placeholder=\"Search palette...\"\n showTrigger={false}\n startAddon={<Icon icon=\"search\" />}\n />\n </div>\n\n <ComboboxEmpty className={styles.empty}>\n No palettes found.\n </ComboboxEmpty>\n\n <ComboboxList className={styles.list}>\n {(palette: Palette) => (\n <ComboboxItem\n key={palette.value}\n value={palette}\n >\n <div className={styles.item}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[palette.value][mode][9]} />\n <span>\n {palette.label}\n </span>\n </div>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n );\n}\n","import { Parameter, Input, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterTextProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterText');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterText'>;\n\nexport function ParameterText(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterTextRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Input> {\n label: string;\n}\n\nfunction ParameterTextRoot(properties: RootProperties) {\n const { label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-text\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <Input {...props} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, PalettePicker, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nimport type { PaletteName } from 'src/presets';\n\nexport type { Properties as ParameterPalettePickerProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterPalettePicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterPalettePicker'>;\n\nexport function ParameterPalettePicker(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterPalettePickerRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n value: PaletteName;\n onValueChange: (palette: PaletteName) => void;\n}\n\nfunction ParameterPalettePickerRoot(properties: RootProperties) {\n const { label, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-palette-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <PalettePicker value={value} onValueChange={onValueChange} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, TextArea } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nimport { ComponentProps } from 'react';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterTextArea');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterTextArea'>;\n\nexport function ParameterTextArea(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterTextAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof TextArea> {\n label: string;\n}\n\nfunction ParameterTextAreaRoot(properties: RootProperties) {\n const { label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-text-area\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <TextArea {...props} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, Slider, ParameterLabel, ParameterMeasure, ParameterRow, ParameterSeparator, ParameterValue } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterSliderProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterSlider');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterSlider'>;\n\nexport function ParameterSlider(properties: Properties) {\n const { classNames, label, measure, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterSliderRoot label={label} measure={measure} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Slider> {\n label: string;\n measure?: string;\n}\n\nfunction ParameterSliderRoot(properties: RootProperties) {\n const { label, measure, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-slider\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n {props.value && <ParameterValue value={props.value.toString()} className={styles.value} />}\n\n {measure && <ParameterMeasure measure={measure} className={styles.measure} />}\n </ParameterRow>\n <Slider {...props} />\n </Parameter>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon, ToggleGroup, ToggleGroupItem, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterToggleGroup');\n\nexport type { Properties as ParameterToggleGroupProperties };\n\nexport interface ToggleGroupItemData {\n value: string;\n label: string;\n icon?: CuratedIcons;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterToggleGroup'>;\n\nexport function ParameterToggleGroup(properties: Properties) {\n const { classNames, label, items, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterToggleGroupRoot label={label} items={items} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ToggleGroup> {\n label: string;\n items: ToggleGroupItemData[];\n inline?: boolean;\n itemVariant?: ComponentProps<typeof ToggleGroupItem>['variant'];\n}\n\nfunction ParameterToggleGroupRoot(properties: RootProperties) {\n const { label, items, itemVariant, inline = false, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const toggleInput = (\n <ParameterInput>\n <ToggleGroup className={styles.input} {...props}>\n {items.map(item => (\n <ToggleGroupItem variant={itemVariant} key={item.value} value={item.value} className={styles.item}>\n {item.icon && <Icon icon={item.icon} />}\n {item.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n </ParameterInput>\n );\n\n return (\n <Parameter data-slot=\"parameter-toggle-group\" className={cn(styles.root, className)}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n {inline && toggleInput }\n\n </ParameterRow>\n\n {!inline && toggleInput}\n </Parameter>\n );\n}\n","import { Parameter, Switch, ParameterLabel, ParameterInput, ParameterSeparator, ParameterRow } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterSwitchProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterSwitch');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterSwitch'>;\n\nexport function ParameterSwitch(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterSwitchRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Switch> {\n label: string;\n}\n\nfunction ParameterSwitchRoot(properties: RootProperties) {\n const { label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-switch\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n <ParameterInput className={styles.input}>\n <Switch {...props} />\n </ParameterInput>\n </ParameterRow>\n </Parameter>\n );\n}\n","import { Toggle, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { CuratedIcons } from '@digo-labs/common';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterToggle');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterToggle'>;\n\nexport function ParameterToggle(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterToggleRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Toggle> {\n label: string;\n icon?: CuratedIcons;\n}\n\nfunction ParameterToggleRoot(properties: RootProperties) {\n const { label, icon, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-toggle\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n <ParameterInput>\n <Toggle {...props} className={styles.input}>\n {icon && <Icon icon={icon} />}\n {children}\n </Toggle>\n </ParameterInput>\n </ParameterRow>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, ColorInput } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { ComponentProps } from 'react';\nimport { cn } from '@digo-labs/common';\n\nexport type { Properties as ParameterColorProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterColor');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterColor'>;\n\nexport function ParameterColor(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterColorRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ColorInput>, 'classNames'> {\n label: string;\n className?: string;\n}\n\nfunction ParameterColorRoot(properties: RootProperties) {\n const { label, className, ...pickerProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-color\" className={cn(styles.root, className)}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <ColorInput {...pickerProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, ColorSwatchPicker } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterColorSwatchPickerProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterColorSwatchPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterColorSwatchPicker'>;\n\nexport function ParameterColorSwatchPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterColorSwatchPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ColorSwatchPicker>, 'classNames'> {\n label: string;\n}\n\nfunction ParameterColorSwatchPickerRoot(properties: RootProperties) {\n const { label, ...pickerProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-color-swatch-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <ColorSwatchPicker {...pickerProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { CuratedIcons } from '@digo-labs/common';\nimport { Combobox, ComboboxTrigger, ComboboxValue, ComboboxPopup, ComboboxInput, ComboboxList, ComboboxItem, ComboboxEmpty, Button, Icon, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { useRef } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterComboboxProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterCombobox');\n\nexport interface ComboboxItemData {\n label: string;\n value: string;\n icon?: CuratedIcons;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterCombobox'>;\n\nexport function ParameterCombobox(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterComboboxRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n placeholder?: string;\n items: ComboboxItemData[];\n value: ComboboxItemData | ComboboxItemData[] | null;\n onValueChange: (value: any) => void;\n multiple?: boolean;\n}\n\nfunction ParameterComboboxRoot(properties: RootProperties) {\n const { label, placeholder = 'Select...', items, value, onValueChange, multiple } = properties;\n\n const styles = useComponentStyles();\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Parameter data-slot=\"parameter-combobox\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput>\n <Combobox items={items} value={value} onValueChange={onValueChange} multiple={multiple}>\n <ComboboxTrigger className={styles.trigger} ref={triggerRef} render={<Button variant=\"default\" />}>\n <ComboboxValue placeholder={placeholder} />\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput className={styles.input} placeholder=\"Search...\" showTrigger={false} startAddon={<Icon icon=\"search\" />} />\n </div>\n <ComboboxEmpty className={styles.empty}>No results found.</ComboboxEmpty>\n <ComboboxList className={styles.list}>\n {(item: ComboboxItemData) => (\n <ComboboxItem key={item.value} value={item} className={styles.item}>\n {item.icon &&\n <div className={styles.itemIcon}>\n <Icon icon={item.icon} />\n </div>}\n <div className={styles.itemName}>\n {item.label}\n </div>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, Dropzone } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterFilesProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterFiles');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterFiles'>;\n\nexport function ParameterFiles(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterFilesRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Dropzone>, 'classNames'> {\n label: string;\n}\n\nfunction ParameterFilesRoot(properties: RootProperties) {\n const { label, ...dropzoneProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-files\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <Dropzone {...dropzoneProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, FontPicker } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterFontPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterFontPicker'>;\n\nexport function ParameterFontPicker(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterFontPickerRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n value: string;\n onValueChange: (font: string) => void;\n}\n\nfunction ParameterFontPickerRoot(properties: RootProperties) {\n const { label, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-font-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <FontPicker value={value} onValueChange={onValueChange} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, ImageDropzone } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterImageProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterImage');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterImage'>;\n\nexport function ParameterImage(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterImageRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ImageDropzone>, 'classNames'> {\n label: string;\n}\n\nfunction ParameterImageRoot(properties: RootProperties) {\n const { label, ...dropzoneProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-image\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <ImageDropzone {...dropzoneProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, Parameter, ParameterLabel, ParameterMeasure, ParameterRow, ParameterSeparator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterNumberProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterNumber');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterNumber'>;\n\nexport function ParameterNumber(properties: Properties) {\n const { classNames, label, measure, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterNumberRoot label={label} measure={measure} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof NumberField> {\n label: string;\n measure?: string;\n}\n\nfunction ParameterNumberRoot(properties: RootProperties) {\n const { label, measure, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-number\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n {measure && <ParameterMeasure measure={measure} className={styles.measure} />}\n </ParameterRow>\n <NumberField {...props}>\n <NumberFieldGroup>\n <NumberFieldDecrement />\n <NumberFieldInput />\n <NumberFieldIncrement />\n </NumberFieldGroup>\n </NumberField>\n </Parameter>\n );\n}\n","import { Parameter, PresetPicker, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nimport type { ThemePreset } from 'src/presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterPresetPicker');\n\ninterface RootProperties {\n label: string;\n value: ThemePreset;\n onValueChange: (preset: ThemePreset) => void;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterPresetPicker'>;\n\nexport function ParameterPresetPicker(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterPresetPickerRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction ParameterPresetPickerRoot(properties: RootProperties) {\n const { label, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-preset-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <PresetPicker value={value} onValueChange={onValueChange} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { CuratedIcons } from '@digo-labs/common';\n\nimport { Icon, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, Select, SelectTrigger, SelectValue, SelectPopup, SelectItem } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterSelectProperties };\n\nexport interface SelectItemData {\n label: string;\n value: string;\n icon?: CuratedIcons;\n}\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterSelect');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterSelect'>;\n\nexport function ParameterSelect(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterSelectRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n placeholder?: string;\n items: SelectItemData[];\n value: string;\n onValueChange: (value: string) => void;\n}\n\nfunction ParameterSelectRoot(properties: RootProperties) {\n const { label, placeholder = 'Select...', items, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-select\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <Select value={value} onValueChange={value => value != null && onValueChange(value)}>\n <SelectTrigger className={styles.trigger}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectPopup>\n {items.map(item => (\n <SelectItem key={item.value} value={item.value}>\n {item.icon && <Icon icon={item.icon} />}\n {item.label}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n </ParameterInput>\n </Parameter>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon, Collapsible, CollapsibleIcon, CollapsiblePanel, CollapsibleTrigger } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterGroup'>;\n\nexport function ParameterGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Collapsible> {\n name: string;\n icon?: CuratedIcons;\n collapsible?: boolean;\n}\n\nfunction ParameterGroupRoot(properties: RootProperties) {\n const { className, collapsible = true, name, icon, children, open, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n collapsible ?\n\n <Collapsible\n open={open}\n data-slot=\"parameter-group\"\n className={cn(styles.root, className)}\n {...props}\n >\n <CollapsibleTrigger className={styles.trigger}>\n\n {icon &&\n <div className={styles.icon}>\n <Icon icon={icon} />\n </div>}\n\n <div className={styles.name}>\n {name}\n </div>\n\n <div className={styles.collapsibleIcon}>\n <CollapsibleIcon open={open} />\n </div>\n\n </CollapsibleTrigger>\n\n <CollapsiblePanel className={styles.panel}>\n {children}\n </CollapsiblePanel>\n\n </Collapsible>\n\n : <div className={styles.root}>\n {children}\n </div>\n\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { ParameterGroup } from '../components/parameter-group';\nimport { ParameterSlider } from './parameter-slider';\nimport { ParameterFontPicker } from './parameter-font-picker';\n\nimport { ComponentProps } from 'react';\n\nimport type { TypographyProperties } from 'src/presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterTypographyGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterTypographyGroup'>;\n\nexport function ParameterTypographyGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterTypographyGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ParameterGroup> {\n name: string;\n icon?: CuratedIcons;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n value: TypographyProperties;\n onValueChange: (partial: Partial<TypographyProperties>) => void;\n}\n\nfunction ParameterTypographyGroupRoot(properties: RootProperties) {\n const { value, onValueChange, className, ...groupProps } = properties;\n\n const styles = useComponentStyles();\n\n const weight = parseInt(value.weight);\n const tracking = Math.round(parseFloat(value.tracking) * 1000);\n const leading = Math.round(parseFloat(value.leading) * 100);\n\n return (\n <ParameterGroup\n data-slot=\"parameter-typography-group\"\n {...groupProps}\n className={cn(styles.root, className)}\n >\n <div className={styles.content}>\n\n <ParameterFontPicker\n label=\"Font\"\n value={value.font}\n onValueChange={font => onValueChange({ font })}\n />\n\n <ParameterSlider\n label=\"Weight\"\n value={weight}\n onValueChange={value => onValueChange({ weight: `${Array.isArray(value) ? value[0] : value}` })}\n min={100}\n max={900}\n step={100}\n />\n\n <ParameterSlider\n label=\"Tracking\"\n value={tracking}\n onValueChange={value => onValueChange({ tracking: `${(Array.isArray(value) ? value[0] : value) / 1000}em` })}\n min={0}\n max={100}\n step={5}\n measure=\"em\"\n />\n\n <ParameterSlider\n label=\"Leading\"\n value={leading}\n onValueChange={value => onValueChange({ leading: `${(Array.isArray(value) ? value[0] : value) / 100}` })}\n min={80}\n max={200}\n step={5}\n />\n\n </div>\n </ParameterGroup>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { useDesignSystem } from '../providers/design-system-provider';\nimport { PALETTES } from '../presets/palettes';\nimport { ParameterGroup } from '../components/parameter-group';\nimport { ParameterSlider } from './parameter-slider';\nimport { ParameterPalettePicker } from './parameter-palette-picker';\n\nimport { ComponentProps } from 'react';\n\nimport type { PaletteName, ShadowProperties } from 'src/presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterShadowGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterShadowGroup'>;\n\nexport function ParameterShadowGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterShadowGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ParameterGroup> {\n name: string;\n icon?: CuratedIcons;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n value: ShadowProperties;\n onValueChange: (partial: Partial<ShadowProperties>) => void;\n}\n\nfunction ParameterShadowGroupRoot(properties: RootProperties) {\n const { value, onValueChange, className, ...groupProps } = properties;\n\n const styles = useComponentStyles();\n const { mode } = useDesignSystem();\n\n const colorHex = PALETTES[value.color as PaletteName][mode][9];\n\n return (\n <ParameterGroup\n data-slot=\"parameter-shadow-group\"\n {...groupProps}\n className={cn(styles.root, className)}\n >\n <div\n data-slot=\"preview\"\n className={styles.preview}\n style={{ boxShadow: `${value.offsetX}px ${value.offsetY}px ${value.blur}px ${value.spread}px color-mix(in srgb, ${colorHex} ${Math.round(value.opacity * 100)}%, transparent)` }}\n />\n\n <div className={styles.content}>\n\n <ParameterPalettePicker\n label=\"Color\"\n value={value.color}\n onValueChange={color => onValueChange({ color })}\n />\n\n <ParameterSlider\n label=\"Blur\"\n value={value.blur}\n onValueChange={value => onValueChange({ blur: Array.isArray(value) ? value[0] : value })}\n min={0}\n max={80}\n />\n\n <ParameterSlider\n label=\"Spread\"\n value={value.spread}\n onValueChange={value => onValueChange({ spread: Array.isArray(value) ? value[0] : value })}\n min={-20}\n max={20}\n />\n\n <ParameterSlider\n label=\"Opacity\"\n value={Math.round(value.opacity * 100)}\n onValueChange={value => onValueChange({ opacity: (Array.isArray(value) ? value[0] : value) / 100 })}\n min={0}\n max={100}\n measure=\"%\"\n />\n\n <ParameterSlider\n label=\"Offset X\"\n value={value.offsetX}\n onValueChange={value => onValueChange({ offsetX: Array.isArray(value) ? value[0] : value })}\n min={-40}\n max={40}\n measure=\"px\"\n />\n\n <ParameterSlider\n label=\"Offset Y\"\n value={value.offsetY}\n onValueChange={value => onValueChange({ offsetY: Array.isArray(value) ? value[0] : value })}\n min={-40}\n max={40}\n measure=\"px\"\n />\n\n </div>\n </ParameterGroup>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ScrollArea } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('placeholder');\n\ntype Properties = RootProperties & ComponentStylesProps<'placeholder'>;\n\nexport function Placeholder(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PlaceholderRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction PlaceholderRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"placeholder\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\ninterface ListProperties extends ComponentProps<'div'> {\n count: number;\n}\n\nexport function PlaceholderList(properties: ListProperties) {\n const { children, className, count, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-slot=\"placeholder-list\" className={cn(styles.list, className)} {...props}>\n {Array.from({ length: count }, (_, index) => (\n <div key={index} className={styles.itemWrapper}>\n {children}\n </div>\n ))}\n </div>\n );\n}\n\nexport function PlaceholderItem(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"placeholder-list-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function PlaceholderScrollableArea(properties: ComponentProps<typeof ScrollArea>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollArea\n data-slot=\"placeholder-scrollable-area\"\n className={cn(styles.scrollableArea, className)}\n {...props}\n />\n );\n}\n","import type { ThemePreset } from '../types';\n\nexport const defaultPreset: ThemePreset = {\n name: 'default',\n colors: {\n neutral: 'gray',\n accent: 'green',\n error: 'crimson',\n success: 'green',\n warning: 'yellow',\n info: 'blue',\n },\n shadows: {\n xs: { color: 'gray', offsetX: 0, offsetY: 0, blur: 2, spread: 0, opacity: 0.05 },\n s: { color: 'gray', offsetX: 0, offsetY: 0, blur: 4, spread: 0, opacity: 0.1 },\n m: { color: 'gray', offsetX: 0, offsetY: 0, blur: 8, spread: -1, opacity: 0.15 },\n l: { color: 'gray', offsetX: 0, offsetY: 0, blur: 16, spread: -2, opacity: 0.2 },\n xl: { color: 'gray', offsetX: 0, offsetY: 0, blur: 40, spread: -8, opacity: 0.3 },\n },\n typography: {\n header: { font: 'geist', weight: '700', tracking: '0.025em', leading: '1' },\n label: { font: 'geist', weight: '500', tracking: '0.025em', leading: '1' },\n body: { font: 'geist', weight: '400', tracking: '0em', leading: '1.5' },\n code: { font: 'geist-mono', weight: '400', tracking: '0em', leading: '1.4' },\n },\n radius: '1rem',\n spacingFactor: 1,\n typographyScaleFactor: 1,\n};\n","import type { ThemePreset } from '../types';\n\nexport const oceanPreset: ThemePreset = {\n name: 'ocean',\n colors: {\n neutral: 'slate',\n accent: 'cyan',\n error: 'red',\n success: 'teal',\n warning: 'amber',\n info: 'indigo',\n },\n shadows: {\n xs: { color: 'slate', offsetX: 0, offsetY: 0, blur: 2, spread: 0, opacity: 0.05 },\n s: { color: 'slate', offsetX: 0, offsetY: 0, blur: 4, spread: 0, opacity: 0.1 },\n m: { color: 'slate', offsetX: 0, offsetY: 0, blur: 8, spread: -1, opacity: 0.15 },\n l: { color: 'slate', offsetX: 0, offsetY: 0, blur: 16, spread: -2, opacity: 0.2 },\n xl: { color: 'slate', offsetX: 0, offsetY: 0, blur: 40, spread: -8, opacity: 0.3 },\n },\n typography: {\n header: { font: 'clash-grotesk', weight: '700', tracking: '0.025em', leading: '1' },\n label: { font: 'geist', weight: '500', tracking: '0.025em', leading: '1' },\n body: { font: 'geist', weight: '400', tracking: '0em', leading: '1.5' },\n code: { font: 'geist-mono', weight: '400', tracking: '0em', leading: '1.4' },\n },\n radius: '0.5rem',\n spacingFactor: 1,\n typographyScaleFactor: 1,\n};\n","import type { ThemePreset } from '../types';\n\nexport const retroFuturisticPreset: ThemePreset = {\n name: 'retro-futuristic',\n colors: {\n neutral: 'indigo',\n accent: 'mint',\n error: 'crimson',\n success: 'lime',\n warning: 'yellow',\n info: 'blue',\n },\n shadows: {\n xs: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 2,\n spread: 0,\n opacity: 0.05,\n },\n s: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 4,\n spread: 0,\n opacity: 0.1,\n },\n m: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 8,\n spread: -1,\n opacity: 0.15,\n },\n l: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 16,\n spread: -2,\n opacity: 0.2,\n },\n xl: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 40,\n spread: -8,\n opacity: 0.3,\n },\n },\n typography: {\n header: {\n font: 'miratrix',\n weight: '800',\n tracking: '0.1em',\n leading: '1',\n },\n label: {\n font: 'nippo',\n weight: '300',\n tracking: '0.1em',\n leading: '1',\n },\n body: {\n font: 'geist-mono',\n weight: '300',\n tracking: '0em',\n leading: '1',\n },\n code: {\n font: 'geist-mono',\n weight: '400',\n tracking: '0em',\n leading: '1.4',\n },\n },\n radius: '0rem',\n spacingFactor: 1,\n typographyScaleFactor: 1,\n};\n","import { ThemePreset } from './types';\nimport * as curated from './curated';\n\nexport * from './types';\nexport * from './palettes';\nexport * from './helpers';\nexport * from './curated';\n\nexport const PRESETS: ThemePreset[] = Object.values(curated) as ThemePreset[];\n","import { useRef } from 'react';\n\nimport { Button, ColorSwatch, Combobox, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxTrigger, ComboboxValue, Icon, PALETTES, useDesignSystem } from '..';\n\nimport type { ThemePreset } from '../presets/types';\nimport { PRESETS } from '../presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('presetPicker');\n\ninterface Preset {\n label: string;\n value: ThemePreset;\n}\n\nconst presets: Preset[] = PRESETS.map(preset => ({ label: preset.name, value: preset }));\n\ntype Properties = RootProperties & ComponentStylesProps<'presetPicker'>;\n\nexport function PresetPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PresetPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: ThemePreset;\n onValueChange: (preset: ThemePreset) => void;\n}\n\nfunction PresetPickerRoot(properties: RootProperties) {\n const { value, onValueChange } = properties;\n\n const { mode } = useDesignSystem();\n const styles = useComponentStyles();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Combobox\n items={presets}\n value={presets.find(preset => preset.value.name === value.name) ?? presets[0]}\n onValueChange={preset => preset && onValueChange(preset.value)}\n >\n <ComboboxTrigger\n className={styles.trigger}\n onClick={e => e.stopPropagation()}\n ref={triggerRef}\n render={<Button variant=\"default\" />}\n >\n <ComboboxValue placeholder=\"Select a preset…\" />\n <div className={styles.presetContainer}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.accent][mode][3]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.accent][mode][6]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.accent][mode][9]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.neutral][mode][3]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.neutral][mode][6]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.neutral][mode][9]} />\n </div>\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput\n className={styles.input}\n placeholder=\"Search preset...\"\n showTrigger={false}\n startAddon={<Icon icon=\"search\" />}\n />\n </div>\n\n <ComboboxEmpty className={styles.empty}>\n No presets found.\n </ComboboxEmpty>\n\n <ComboboxList className={styles.list}>\n {(preset: Preset) => (\n <ComboboxItem\n key={preset.label}\n value={preset}\n >\n <div className={styles.item}>\n <div className={styles.itemColors}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[preset.value.colors.accent][mode][9]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[preset.value.colors.neutral][mode][9]} />\n </div>\n\n <span>\n {preset.label}\n </span>\n </div>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n );\n}\n","import { cn, CommonHelpers, FilePayload, ModelMetadata } from '@digo-labs/common';\n\nimport { Button, ReorderList, Icon, Image, motionPresencePresets, Select, SelectItem, SelectPopup, SelectTrigger, SelectValue, Separator, TextArea, toastManager, Tooltip } from '..';\n\nimport { AnimatePresence } from 'motion/react';\n\nimport { ComponentProps, createContext, KeyboardEvent, useContext } from 'react';\nimport { Accept, useDropzone } from 'react-dropzone';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('promptInput');\n\ninterface ContextProperties {\n value: string;\n onChange: (next: string) => void;\n attachments: FilePayload[];\n onAttachmentsChange: (next: FilePayload[]) => void;\n maxAttachments: number;\n model: ModelMetadata;\n onModelChange: (next: ModelMetadata) => void;\n models: ModelMetadata[];\n isSubmitting: boolean;\n isStreaming: boolean;\n onSubmit: () => void;\n onAbort: () => void;\n openFilePicker: () => void;\n isDragActive: boolean;\n accept?: Accept;\n}\n\nconst PromptInputContext = createContext<ContextProperties | null>(null);\n\nfunction usePromptInputContext(): ContextProperties {\n const context = useContext(PromptInputContext);\n\n if (!context) {\n throw new Error('PromptInput subcomponents must be used within a <PromptInput>');\n }\n\n return context;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'promptInput'>;\n\nexport function PromptInput(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PromptInputRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties =\n & Omit<ContextProperties, 'openFilePicker' | 'isDragActive' | 'maxAttachments'>\n & Partial<Pick<ContextProperties, 'maxAttachments'>>\n & Omit<ComponentProps<'div'>, 'onChange' | 'onSubmit'>;\n\nfunction PromptInputRoot(properties: RootProperties) {\n const {\n value,\n onChange,\n attachments,\n onAttachmentsChange,\n maxAttachments = 10,\n model,\n onModelChange,\n models,\n isSubmitting,\n isStreaming,\n onSubmit,\n onAbort,\n children,\n accept = { 'image/*': [] },\n className,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const { getRootProps, getInputProps, isDragActive, open: openFilePicker } = useDropzone({\n accept: accept,\n multiple: true,\n disabled: isSubmitting,\n noClick: true,\n noKeyboard: true,\n onDropAccepted: async (acceptedFiles) => {\n if (attachments.length + acceptedFiles.length > maxAttachments) {\n toastManager.add({\n title: 'Too many files',\n description: `You can attach up to ${maxAttachments} files.`,\n type: 'error',\n });\n return;\n }\n\n const payloads: FilePayload[] = [];\n\n for (const file of acceptedFiles) {\n const [payload, error] = await CommonHelpers.getImagePayloadFromFile(file);\n\n if (error || !payload) continue;\n\n payloads.push(payload);\n }\n\n if (payloads.length > 0) {\n onAttachmentsChange([...attachments, ...payloads]);\n }\n },\n });\n\n return (\n <PromptInputContext.Provider value={{ value, onChange, attachments, onAttachmentsChange, maxAttachments, model, onModelChange, models, isSubmitting, isStreaming, onSubmit, onAbort, openFilePicker, isDragActive, accept }}>\n <div\n {...getRootProps({\n ...props,\n 'data-slot': 'prompt-input',\n 'data-drag-over': isDragActive || undefined,\n 'className': cn(styles.root, className),\n })}\n >\n <input {...getInputProps()} />\n {children ?? <PromptInputDefault />}\n </div>\n </PromptInputContext.Provider>\n );\n}\n\nfunction PromptInputDefault() {\n return (\n <>\n <PromptInputAttachments />\n <PromptInputInput />\n <PromptInputToolbarRow>\n <PromptInputAttachButton />\n <PromptInputModelPicker />\n <Separator className=\"flex-1\" />\n <PromptInputSubmit />\n </PromptInputToolbarRow>\n </>\n );\n}\n\ntype PromptInputAttachmentsProperties = Omit<ComponentProps<typeof ReorderList.Group>, 'values' | 'onReorder' | 'axis' | 'children'>;\n\nexport function PromptInputAttachments(properties: PromptInputAttachmentsProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n const { attachments, onAttachmentsChange } = usePromptInputContext();\n\n function handleRemove(base64: string) {\n onAttachmentsChange(attachments.filter(a => a.base64 !== base64));\n }\n\n if (attachments.length === 0) return null;\n\n return (\n <ReorderList.Group\n {...props}\n axis=\"x\"\n values={attachments}\n onReorder={onAttachmentsChange}\n data-slot=\"prompt-input-attachments\"\n className={cn(styles.attachments, className)}\n >\n <AnimatePresence mode=\"popLayout\">\n {attachments.map(attachment => (\n <ReorderList.Item\n key={attachment.base64}\n value={attachment}\n {...motionPresencePresets.variant2}\n layout={true}\n data-slot=\"prompt-input-attachment\"\n className={styles.attachment}\n >\n {isImagePayload(attachment)\n ?\n <Tooltip classNames={{ popup: styles.attachmentImageTooltip, viewport: 'px-0' }} content={<Image src={attachment} classNames={{ root: styles.attachmentImagePreview }} />}>\n <Image src={attachment} classNames={{ root: styles.attachmentImage }} />\n </Tooltip>\n :\n <div data-slot=\"prompt-input-attachment-file\" className={styles.attachmentFile}>\n <span className={styles.attachmentExtension}>{getFileExtensionLabel(attachment)}</span>\n </div>}\n <Button variant=\"close\" className={styles.removeButton} onClick={() => handleRemove(attachment.base64)}>\n <Icon icon=\"close\" />\n </Button>\n </ReorderList.Item>\n ))}\n </AnimatePresence>\n </ReorderList.Group>\n );\n}\n\ntype PromptInputInputProperties = Omit<ComponentProps<typeof TextArea>, 'value' | 'onChange' | 'disabled'>;\n\nexport function PromptInputInput(properties: PromptInputInputProperties) {\n const { className, onKeyDown, minRows = 1, maxRows = 10, ...props } = properties;\n\n const styles = useComponentStyles();\n const context = usePromptInputContext();\n\n const { value, onChange, isSubmitting, isStreaming } = context;\n\n function handleKeyDown(event: KeyboardEvent<HTMLTextAreaElement>) {\n onKeyDown?.(event);\n\n if (event.defaultPrevented) return;\n\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n\n if (isSubmitting || isStreaming) return;\n\n submitAndClear(context);\n }\n }\n\n return (\n <TextArea\n data-slot=\"prompt-input-input\"\n className={cn(styles.input, className)}\n value={value}\n onChange={event => onChange(event.target.value)}\n onKeyDown={handleKeyDown}\n disabled={isSubmitting}\n minRows={minRows}\n maxRows={maxRows}\n variant=\"ghost\"\n unstyled={true}\n {...props}\n />\n );\n}\n\nexport function PromptInputToolbarRow(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"prompt-input-toolbar-row\"\n className={cn(styles.toolbarRow, className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\ninterface PromptInputModelPickerProperties {\n className?: string;\n}\n\nexport function PromptInputModelPicker(properties: PromptInputModelPickerProperties) {\n const { className } = properties;\n\n const styles = useComponentStyles();\n const { model, onModelChange, models, isSubmitting } = usePromptInputContext();\n\n function handleValueChange(nextId: string | null) {\n if (nextId == null) return;\n\n const next = models.find(entry => entry.id === nextId);\n\n if (next) onModelChange(next);\n }\n\n return (\n <Select<string>\n value={model.id}\n onValueChange={handleValueChange}\n disabled={isSubmitting}\n >\n <Tooltip content=\"Select Model\">\n <SelectTrigger className={cn(styles.modelPicker, className)}>\n <SelectValue>\n {() => {\n const found = models.find(entry => entry.id === model.id);\n\n return found ? `${found.name} ${found.version}` : model.id;\n }}\n </SelectValue>\n </SelectTrigger>\n </Tooltip>\n <SelectPopup>\n {models.map(entry => (\n <SelectItem key={entry.id} value={entry.id}>\n {entry.name}\n {' '}\n {entry.version}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n );\n}\n\ninterface PromptInputAttachButtonProperties {\n className?: string;\n}\n\nexport function PromptInputAttachButton(properties: PromptInputAttachButtonProperties) {\n const { className } = properties;\n\n const styles = useComponentStyles();\n const { openFilePicker, isSubmitting, attachments, maxAttachments } = usePromptInputContext();\n\n const atLimit = attachments.length >= maxAttachments;\n\n return (\n <Tooltip content={atLimit ? `Max ${maxAttachments} files` : 'Attach file'}>\n <Button\n data-slot=\"prompt-input-attach-button\"\n className={cn(styles.attachButton, className)}\n onClick={openFilePicker}\n disabled={isSubmitting || atLimit}\n >\n <Icon icon=\"attach\" />\n </Button>\n </Tooltip>\n );\n}\n\ninterface PromptInputSubmitProperties {\n className?: string;\n}\n\nexport function PromptInputSubmit(properties: PromptInputSubmitProperties) {\n const { className } = properties;\n\n const styles = useComponentStyles();\n const context = usePromptInputContext();\n\n const { value, attachments, isSubmitting, isStreaming, onAbort } = context;\n\n const idleDisabled = value.trim() === '' && attachments.length === 0;\n const isBusy = isSubmitting || isStreaming;\n\n function handleClick() {\n if (isBusy) {\n onAbort();\n return;\n }\n\n submitAndClear(context);\n }\n\n const tooltip = isStreaming\n ? 'Stop'\n : isSubmitting\n ? 'Sending…'\n : 'Send';\n\n return (\n <Tooltip content={tooltip}>\n <Button\n data-slot=\"prompt-input-submit\"\n className={cn(styles.submitButton, className)}\n onClick={handleClick}\n disabled={!isBusy && idleDisabled}\n variant={isStreaming ? 'destructive' : 'primary'}\n >\n <Icon icon={isSubmitting ? 'loading' : isStreaming ? 'stop' : 'arrowUp'} />\n </Button>\n </Tooltip>\n );\n}\n\nfunction submitAndClear(context: ContextProperties) {\n context.onSubmit();\n context.onChange('');\n context.onAttachmentsChange([]);\n}\n\nfunction isImagePayload(file: FilePayload): boolean {\n return file.mediaType.startsWith('image/');\n}\n\nfunction getFileExtensionLabel(file: FilePayload): string {\n const subtype = file.mediaType.split('/')[1] ?? 'file';\n const simplified = subtype.split('.').pop() ?? subtype;\n\n return simplified.slice(0, 4).toUpperCase();\n}\n","import { cn, tryCatch } from '@digo-labs/common';\nimport { AuthHelper } from '@digo-labs/services';\nimport { Button, Icon, Spinner, toastManager } from '..';\n\nimport { ComponentProps, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('googleSignInButton');\n\ntype Properties = RootProperties & ComponentStylesProps<'googleSignInButton'>;\n\nexport function GoogleSignInButton(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <GoogleSignInButtonRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Button>, 'classNames'> {}\n\nfunction GoogleSignInButtonRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const location = useLocation();\n const from = (location.state as any)?.from?.pathname ?? '/';\n\n const styles = useComponentStyles();\n\n async function handleSignIn() {\n const client = AuthHelper.auth;\n\n if (!client) return;\n\n setIsSigningIn(true);\n\n const [, error] = await tryCatch(\n client.signIn.social({\n provider: 'google',\n callbackURL: `${window.location.origin}${from}`,\n }),\n );\n\n if (error) {\n toastManager.add({ type: 'error', title: 'Sign in failed', description: error.message });\n setIsSigningIn(false);\n }\n }\n\n return (\n <Button\n data-slot=\"google-signin-button\"\n onClick={handleSignIn}\n className={cn(styles.root, className)}\n {...props}\n disabled={isSigningIn}\n >\n <Icon icon=\"google\" className={styles.icon} />\n <span data-slot=\"google-signin-button-label\" className={styles.label}>\n Continue with Google\n </span>\n {isSigningIn && <Spinner className={styles.spinner} />}\n </Button>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Switch, useDesignSystem } from '..';\n\nimport { ComponentProps } from 'react';\n\ninterface SwitchThemeProperties extends ComponentProps<typeof Switch> {\n className?: string;\n}\n\nexport function SwitchTheme(properties: SwitchThemeProperties) {\n const { className } = properties;\n\n const { mode, setMode } = useDesignSystem();\n return (\n <Switch\n id=\"switch-theme\"\n checkedIcon=\"lightMode\"\n uncheckedIcon=\"darkMode\"\n className={cn(className)}\n checked={mode === 'light'}\n onCheckedChange={() => setMode(mode === 'light' ? 'dark' : 'light')}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon, motionTransitionPresets, useDesignSystem } from '..';\n\nimport { ComponentProps, useState } from 'react';\nimport { motion } from 'motion/react';\n\nexport function ToggleTheme(properties: ComponentProps<typeof motion.div>) {\n const { className, ...props } = properties;\n\n const [pressed, setPressed] = useState(false);\n const [hovered, setHovered] = useState(false);\n\n const { toggleMode } = useDesignSystem();\n\n return (\n\n <motion.div\n className={cn('flex-col-center', className)}\n animate={{\n rotate: hovered ? 0 : 180,\n scale: pressed ? 1.2 : 1,\n }}\n transition={motionTransitionPresets.spring3}\n onClick={toggleMode}\n onMouseDown={() => setPressed(true)}\n onMouseUp={() => setPressed(false)}\n onHoverStart={() => setHovered(true)}\n onHoverEnd={() => setHovered(false)}\n {...props}\n >\n\n <Icon icon=\"contrast\" />\n\n </motion.div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nexport interface TransparentBackgroundProperties extends ComponentProps<'div'> {\n cols?: number;\n rows?: number;\n}\n\nexport function TransparentBackground(properties: TransparentBackgroundProperties) {\n const {\n cols = 5,\n rows = 3,\n className,\n } = properties;\n\n return (\n\n <div\n className={cn('absolute inset-0 z-0 grid', className)}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${cols}, 1fr)`,\n gridTemplateRows: `repeat(${rows}, 1fr)`,\n }}\n\n >\n {\n Array.from({ length: cols * rows }, (_, index) => (\n <div\n key={index}\n className={cn('size-full', (Math.floor(index / cols) + index % cols) % 2 === 0 ? 'bg-neutral-2' : 'bg-neutral-11/25')}\n />\n ))\n }\n\n </div>\n\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon, motionTransitionPresets } from '..';\n\nimport { HTMLMotionProps, motion } from 'motion/react';\nimport { Accordion as AccordionPrimitive } from '@base-ui/react/accordion';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('accordion');\n\ntype Properties = RootProperties & ComponentStylesProps<'accordion'>;\n\nexport function Accordion(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <AccordionRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = AccordionPrimitive.Root.Props;\n\nfunction AccordionRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function AccordionItem(properties: AccordionPrimitive.Item.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger(properties: AccordionPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Header data-slot=\"accordion-header\" className={styles.header}>\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(styles.trigger, className)}\n render={(props, state) => (\n <button {...props}>\n {children}\n <motion.span\n animate={{ rotate: state.open ? 45 : 0 }}\n data-slot=\"accordion-trigger-icon-wrapper\"\n className={styles.triggerIcon}\n transition={state.open ? motionTransitionPresets.spring3 : motionTransitionPresets.spring1}\n >\n <Icon icon=\"add\" />\n </motion.span>\n </button>\n )}\n {...props}\n />\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent(properties: AccordionPrimitive.Panel.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-panel\"\n className={styles.panel}\n keepMounted={true}\n render={(props, state) => (\n <motion.div\n {...props as HTMLMotionProps<'div'>}\n initial={false}\n hidden={undefined}\n animate={{\n height: state.open ? 'auto' : 0,\n opacity: state.open ? 1 : 0,\n }}\n transition={state.open ? motionTransitionPresets.spring3 : motionTransitionPresets.spring1}\n />\n )}\n {...props}\n >\n <div data-slot=\"accordion-content\" className={cn(styles.content, className)}>\n {children}\n </div>\n </AccordionPrimitive.Panel>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('alert');\n\ntype Properties = RootProperties & ComponentStylesProps<'alert'>;\n\nexport function Alert(properties: Properties) {\n const { classNames, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant}>\n <AlertRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction AlertRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function AlertContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function AlertTitle(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function AlertDescription(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n\nexport function AlertAction(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(styles.action, className)}\n {...props}\n />\n );\n}\n\nexport function AlertIcon(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-icon\"\n className={cn(styles.icon, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon, Input, ScrollArea, Separator, Spinner } from '..';\n\nimport { Autocomplete as AutocompletePrimitive } from '@base-ui/react/autocomplete';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('autocomplete');\n\ntype Properties = ComponentProps<typeof AutocompletePrimitive.Root> & ComponentStylesProps<'autocomplete'>;\n\nexport function Autocomplete(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <AutocompletePrimitive.Root {...props} />\n </ComponentStylesProvider>\n );\n}\n\nexport function AutocompleteInput(properties: AutocompletePrimitive.Input.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Input\n data-slot=\"control\"\n className={cn(styles.input, className)}\n render={<Input variant=\"ghost\" unstyled />}\n {...props}\n />\n );\n}\n\ntype PopupProperties = AutocompletePrimitive.Popup.Props & {\n anchor?: AutocompletePrimitive.Positioner.Props['anchor'];\n side?: AutocompletePrimitive.Positioner.Props['side'];\n sideOffset?: AutocompletePrimitive.Positioner.Props['sideOffset'];\n align?: AutocompletePrimitive.Positioner.Props['align'];\n alignOffset?: AutocompletePrimitive.Positioner.Props['alignOffset'];\n};\n\nexport function AutocompletePopup(properties: PopupProperties) {\n const { className, children, anchor, side = 'bottom', sideOffset = 4, align = 'start', alignOffset, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Portal>\n <AutocompletePrimitive.Positioner\n data-slot=\"autocomplete-positioner\"\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={styles.positioner}\n >\n <AutocompletePrimitive.Popup\n data-slot=\"autocomplete-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <div className={styles.popupInner}>\n {children}\n </div>\n </AutocompletePrimitive.Popup>\n </AutocompletePrimitive.Positioner>\n </AutocompletePrimitive.Portal>\n );\n}\n\nexport function AutocompleteItem(properties: AutocompletePrimitive.Item.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Item\n data-slot=\"autocomplete-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteSeparator(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Separator\n data-slot=\"autocomplete-separator\"\n className={cn(styles.separator, className)}\n render={<Separator />}\n {...props}\n />\n );\n}\n\nexport function AutocompleteGroup(properties: AutocompletePrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Group\n data-slot=\"autocomplete-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteGroupLabel(properties: AutocompletePrimitive.GroupLabel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.GroupLabel\n data-slot=\"autocomplete-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteEmpty(properties: AutocompletePrimitive.Empty.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Empty\n data-slot=\"autocomplete-empty\"\n className={cn(styles.empty, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteRow(properties: AutocompletePrimitive.Row.Props) {\n const { className, ...props } = properties;\n\n return (\n <AutocompletePrimitive.Row\n data-slot=\"autocomplete-row\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function AutocompleteValue(properties: AutocompletePrimitive.Value.Props) {\n return (\n <AutocompletePrimitive.Value\n data-slot=\"autocomplete-value\"\n {...properties}\n />\n );\n}\n\nexport function AutocompleteList(properties: AutocompletePrimitive.List.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollArea scrollbarGutter scrollFade>\n <AutocompletePrimitive.List\n data-slot=\"autocomplete-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n </ScrollArea>\n );\n}\n\nexport function AutocompleteClear(properties: AutocompletePrimitive.Clear.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Clear\n data-slot=\"autocomplete-clear\"\n className={cn(styles.clear, className)}\n {...props}\n >\n {children ?? <Icon icon=\"close\" />}\n </AutocompletePrimitive.Clear>\n );\n}\n\ntype AutocompleteStatusProperties = AutocompletePrimitive.Status.Props & {\n loading?: boolean;\n};\n\nexport function AutocompleteStatus(properties: AutocompleteStatusProperties) {\n const { className, loading, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Status\n data-slot=\"autocomplete-status\"\n className={cn(styles.status, loading && styles.statusLoading, className)}\n {...props}\n >\n {children}\n {loading && <Spinner className=\"size-4\" />}\n </AutocompletePrimitive.Status>\n );\n}\n\nexport function AutocompleteCollection(properties: AutocompletePrimitive.Collection.Props) {\n return (\n <AutocompletePrimitive.Collection\n data-slot=\"autocomplete-collection\"\n {...properties}\n />\n );\n}\n\nexport function AutocompleteTrigger(properties: AutocompletePrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Trigger\n data-slot=\"autocomplete-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n >\n {children ?? <Icon icon=\"select\" />}\n </AutocompletePrimitive.Trigger>\n );\n}\n\nexport const useAutocompleteFilter = AutocompletePrimitive.useFilter;\n","import { cn, Size } from '@digo-labs/common';\n\nimport { createContext, useContext, useMemo, type ComponentProps, type CSSProperties, type ReactNode } from 'react';\n\nimport { Legend, ResponsiveContainer, Tooltip, TooltipPayloadEntry } from 'recharts';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('chart');\n\nconst INITIAL_DIMENSION: Size = { width: 320, height: 200 };\n\ninterface ChartConfigItem {\n label?: ReactNode;\n color?: string;\n}\n\nexport type ChartConfig = Record<string, ChartConfigItem\n>;\n\ninterface ChartContextValue {\n config: ChartConfig;\n}\n\nconst ChartContext = createContext<ChartContextValue | null>(null);\n\nfunction useChart(): ChartContextValue {\n const context = useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\ntype PayloadItem = TooltipPayloadEntry<string | number, string | number>;\n\nconst ChartItemContext = createContext<PayloadItem | null>(null);\n\nfunction useChartItem(): PayloadItem {\n const context = useContext(ChartItemContext);\n\n if (!context) {\n throw new Error('useChartItem must be used within a <ChartTooltipItem /> or <ChartLegendItem />');\n }\n\n return context;\n}\n\ntype Properties = ContainerRootProperties & ComponentStylesProps<'chart'>;\n\nexport function ChartContainer(properties: Properties) {\n const { classNames, config, ...props } = properties;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <ComponentStylesProvider classNames={classNames}>\n <ChartContainerRoot config={config} {...props} />\n </ComponentStylesProvider>\n </ChartContext.Provider>\n );\n}\n\ninterface ContainerRootProperties extends ComponentProps<'div'> {\n config: ChartConfig;\n children: ComponentProps<typeof ResponsiveContainer>['children'];\n initialDimension?: Size;\n}\n\nfunction ChartContainerRoot(properties: ContainerRootProperties) {\n const {\n config,\n className,\n children,\n initialDimension = INITIAL_DIMENSION,\n style,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const cssVars = useMemo(() => {\n const vars: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(config)) {\n if (value.color) {\n vars[`--color-${key}`] = `var(--color-${value.color})`;\n }\n }\n\n return vars;\n }, [config]);\n\n return (\n <div\n data-slot=\"chart\"\n className={cn(styles.root, className)}\n style={{ ...cssVars, ...style } as CSSProperties}\n {...props}\n >\n <ResponsiveContainer initialDimension={initialDimension}>\n {children}\n </ResponsiveContainer>\n </div>\n );\n}\n\ninterface TooltipRootProperties extends Omit<ComponentProps<typeof Tooltip>, 'children'> {\n active?: boolean;\n payload?: PayloadItem[];\n children?: (items: PayloadItem[]) => ReactNode;\n className?: string;\n}\n\nexport function ChartTooltip(properties: TooltipRootProperties) {\n const { children, ...props } = properties;\n\n return (\n <Tooltip content={<ChartTooltipRoot children={children} {...props} />} />\n );\n}\n\nfunction ChartTooltipRoot(properties: TooltipRootProperties) {\n const { active, payload, className, children } = properties;\n\n const styles = useComponentStyles();\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const items = payload.filter(item => item.type !== 'none');\n\n return (\n <div\n data-slot=\"chart-tooltip\"\n className={cn(styles.tooltip, className)}\n >\n {children\n ? children(items)\n : items.map(item => (\n <ChartTooltipItem key={String(item.dataKey ?? item.name)} item={item}>\n <ChartTooltipIndicator />\n <ChartTooltipLabel />\n <ChartTooltipValue />\n </ChartTooltipItem>\n ))}\n </div>\n );\n}\n\ninterface TooltipItemProperties extends ComponentProps<'div'> {\n item: PayloadItem;\n}\n\nexport function ChartTooltipItem(properties: TooltipItemProperties) {\n const { item, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ChartItemContext.Provider value={item}>\n <div\n data-slot=\"chart-tooltip-item\"\n className={cn(styles.tooltipItem, className)}\n {...props}\n />\n </ChartItemContext.Provider>\n );\n}\n\nexport function ChartTooltipIndicator(properties: ComponentProps<'div'>) {\n const { className, style, ...props } = properties;\n\n const item = useChartItem();\n const styles = useComponentStyles();\n const color = item.payload?.fill ?? item.color;\n\n return (\n <div\n data-slot=\"chart-tooltip-indicator\"\n className={cn(styles.tooltipIndicator, className)}\n style={{ backgroundColor: color, ...style }}\n {...props}\n />\n );\n}\n\nexport function ChartTooltipLabel(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const item = useChartItem();\n const { config } = useChart();\n const styles = useComponentStyles();\n const itemConfig = getPayloadConfigFromPayload(config, item);\n\n return (\n <span\n data-slot=\"chart-tooltip-label\"\n className={cn(styles.tooltipLabel, className)}\n {...props}\n >\n {children ?? itemConfig?.label ?? item.name}\n </span>\n );\n}\n\nexport function ChartTooltipValue(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const item = useChartItem();\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"chart-tooltip-value\"\n className={cn(styles.tooltipValue, className)}\n {...props}\n >\n {children ?? (typeof item.value === 'number' ? item.value.toLocaleString() : String(item.value))}\n </span>\n );\n}\n\ninterface LegendRootProperties extends Omit<ComponentProps<typeof Legend>, 'children'> {\n payload?: PayloadItem[];\n children?: (items: PayloadItem[]) => ReactNode;\n}\n\nexport function ChartLegend(properties: LegendRootProperties) {\n const { children, className, ...props } = properties;\n\n return (\n <Legend {...props} content={<ChartLegendRoot children={children} className={className} />} />\n );\n}\n\nfunction ChartLegendRoot(properties: LegendRootProperties) {\n const { payload, className, children } = properties;\n\n const styles = useComponentStyles();\n\n if (!payload?.length) {\n return null;\n }\n\n const items = payload.filter(item => item.type !== 'none');\n\n return (\n <div\n data-slot=\"chart-legend\"\n className={cn(styles.legend, className)}\n >\n {children\n ? children(items)\n : items.map(item => (\n <ChartLegendItem key={String(item.dataKey ?? item.name)} item={item}>\n <ChartLegendIndicator />\n <ChartLegendLabel />\n </ChartLegendItem>\n ))}\n </div>\n );\n}\n\ninterface LegendItemProperties extends ComponentProps<'div'> {\n item: PayloadItem;\n}\n\nexport function ChartLegendItem(properties: LegendItemProperties) {\n const { item, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ChartItemContext.Provider value={item}>\n <div\n data-slot=\"chart-legend-item\"\n className={cn(styles.legendItem, className)}\n {...props}\n />\n </ChartItemContext.Provider>\n );\n}\n\nexport function ChartLegendIndicator(properties: ComponentProps<'div'>) {\n const { className, style, ...props } = properties;\n\n const item = useChartItem();\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"chart-legend-indicator\"\n className={cn(styles.legendIndicator, className)}\n style={{ backgroundColor: item.color, ...style }}\n {...props}\n />\n );\n}\n\nexport function ChartLegendLabel(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const item = useChartItem();\n const { config } = useChart();\n const styles = useComponentStyles();\n const itemConfig = getPayloadConfigFromPayload(config, item);\n\n return (\n <span\n data-slot=\"chart-legend-label\"\n className={cn(styles.legendLabel, className)}\n {...props}\n >\n {children ?? itemConfig?.label ?? item.name ?? String((item as unknown as Record<string, unknown>).value ?? '')}\n </span>\n );\n}\n\nfunction getPayloadConfigFromPayload(config: ChartConfig, item: PayloadItem) {\n const key = `${item.dataKey ?? item.name ?? (item as unknown as Record<string, unknown>).value ?? 'value'}`;\n\n if (key in config) {\n return config[key];\n }\n\n const nestedPayload = item.payload;\n\n if (nestedPayload && typeof nestedPayload === 'object' && key in nestedPayload) {\n const nestedKey = nestedPayload[key as keyof typeof nestedPayload];\n\n if (typeof nestedKey === 'string' && nestedKey in config) {\n return config[nestedKey];\n }\n }\n\n return undefined;\n}\n\nexport { PieChart, Pie } from 'recharts';\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { MotionAnimatePresence } from 'src/animation/motion-animate-presence';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('checkbox');\n\ntype Properties = RootProperties & ComponentStylesProps<'checkbox'>;\n\nexport function Checkbox(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CheckboxRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = CheckboxPrimitive.Root.Props;\n\nfunction CheckboxRoot(properties: RootProperties) {\n const { className, indeterminate, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(styles.root, className)}\n indeterminate={indeterminate}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className={styles.indicator}\n >\n <MotionAnimatePresence\n activeIndex={indeterminate ? 1 : 0}\n mode=\"popLayout\"\n >\n <Icon icon=\"check\" />\n <Icon icon=\"checkIndeterminate\" />\n </MotionAnimatePresence>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n","import { cn, CodeLanguageMetadata, LANGUAGE_MAP } from '@digo-labs/common';\nimport { Icon, highlightCode } from '..';\n\nimport { ComponentProps, createContext, useContext, useEffect, useState } from 'react';\nimport { useDesignSystem } from '../providers/design-system-provider';\nimport { CopyPasteButton } from 'src/blocks/copy-paste-button';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('codeBlock');\n\ninterface ContextProperties {\n language?: string;\n showLineNumbers?: boolean;\n highlightLines?: number[];\n code: string;\n};\n\nconst Context = createContext<ContextProperties>({ code: '' });\n\ninterface Properties extends RootProperties, ComponentStylesProps<'codeBlock'> {\n code: string;\n language?: string;\n showLineNumbers?: boolean;\n highlightLines?: number[];\n}\n\nexport function CodeBlock(properties: Properties) {\n const {\n classNames,\n code,\n language = 'text',\n showLineNumbers = false,\n highlightLines = [],\n ...props\n } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ language, showLineNumbers, highlightLines, code }}>\n <CodeBlockRoot {...props} />\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction CodeBlockRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n const context = useContext(Context);\n\n return (\n <div\n data-slot=\"code-block\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n <CodeBlockCode language={context.language} code={context.code} highlightLines={context.highlightLines} showLineNumbers={context.showLineNumbers} />\n </div>\n );\n}\n\nexport function CodeBlockHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"code-block-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function CodeBlockTitle(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const { language = 'text' } = useContext(Context);\n\n const languageMetadata: CodeLanguageMetadata = LANGUAGE_MAP[language.toLowerCase()] || LANGUAGE_MAP.text;\n\n return (\n <div\n data-slot=\"code-block-title\"\n className={cn(styles.title, className)}\n {...props}\n >\n {children || (\n <>\n <Icon icon={languageMetadata.icon} />\n {languageMetadata.name}\n </>\n )}\n </div>\n );\n}\n\nexport function CodeBlockActions(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"code-block-actions\"\n className={cn(styles.actions, className)}\n {...props}\n />\n );\n}\n\nexport function CodeBlockCopyButton(properties: Omit<ComponentProps<typeof CopyPasteButton>, 'text'>) {\n const { code } = useContext(Context);\n\n return (\n <CopyPasteButton text={code} {...properties} />\n );\n}\n\ntype CodeProperties = ComponentProps<'div'> & ContextProperties;\n\nfunction CodeBlockCode(properties: CodeProperties) {\n const { code, highlightLines, showLineNumbers, language, className } = properties;\n\n const styles = useComponentStyles();\n const { mode } = useDesignSystem();\n\n const [highlightedCode, setHighlightedCode] = useState<string>('');\n const [_isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n let cancelled = false;\n\n highlight(cancelled);\n\n return () => {\n cancelled = true;\n };\n }, [code, language, highlightLines, showLineNumbers, mode]);\n\n async function highlight(cancelled: boolean) {\n try {\n setIsLoading(true);\n const html = await highlightCode(code, language, { highlightLines, showLineNumbers, mode });\n\n if (!cancelled) {\n setHighlightedCode(html);\n }\n } catch (error) {\n console.error('Failed to highlight code:', error);\n\n if (!cancelled) {\n setHighlightedCode(`<pre><code>${code}</code></pre>`);\n }\n } finally {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n }\n\n return (\n <div\n data-slot=\"code-block-content\"\n className={cn(styles.code, className)}\n dangerouslySetInnerHTML={{ __html: highlightedCode }}\n tabIndex={-1}\n />\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon, motionTransitionPresets } from '..';\n\nimport { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';\nimport { HTMLMotionProps, Inertia, motion, Spring, Tween } from 'motion/react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('collapsible');\n\ntype Properties = RootProperties & ComponentStylesProps<'collapsible'>;\n\nexport function Collapsible(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CollapsibleRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = CollapsiblePrimitive.Root.Props;\n\nfunction CollapsibleRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CollapsiblePrimitive.Root\n data-slot=\"collapsible\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function CollapsibleTrigger(properties: CollapsiblePrimitive.Trigger.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n />\n );\n}\n\ninterface PanelProperties extends CollapsiblePrimitive.Panel.Props {\n openAnimation?: Spring | Tween | Inertia;\n closeAnimation?: Spring | Tween | Inertia;\n}\n\nexport function CollapsiblePanel(properties: PanelProperties) {\n const {\n className,\n children,\n openAnimation = motionTransitionPresets.spring3,\n closeAnimation = motionTransitionPresets.spring1,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-panel\"\n className={styles.panel}\n keepMounted={true}\n render={(renderProps, state) => (\n <motion.div\n initial={false}\n animate={{\n height: state.open ? 'auto' : 0,\n opacity: state.open ? 1 : 0,\n }}\n transition={state.open ? openAnimation : closeAnimation}\n {...renderProps as HTMLMotionProps<'div'>}\n hidden={undefined}\n />\n )}\n {...props}\n >\n <div className={cn(styles.panelContent, className as string)}>\n {children}\n </div>\n </CollapsiblePrimitive.Panel>\n );\n}\n\ninterface IconProperties {\n open?: boolean;\n icon?: CuratedIcons;\n className?: string;\n}\n\nexport function CollapsibleIcon(properties: IconProperties) {\n const { open = false, icon = 'chevronDown', className } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <motion.span\n data-slot=\"collapsible-icon\"\n className={cn(styles.icon, className)}\n animate={{ rotate: open ? 180 : 0 }}\n transition={open ? motionTransitionPresets.spring3 : motionTransitionPresets.spring1}\n >\n <Icon icon={icon} />\n </motion.span>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ColorArea as ColorAreaPrimitive, ColorThumb } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorArea');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorArea'>;\n\nexport function ColorArea(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof ColorAreaPrimitive>;\n\nfunction ColorAreaRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorAreaPrimitive\n data-slot=\"color-area\"\n className={cn(styles.root, className)}\n {...props}\n >\n <ColorThumb\n data-slot=\"color-area-thumb\"\n className={styles.thumb}\n />\n </ColorAreaPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ColorChannel } from '..';\n\nimport { ColorField as ColorFieldPrimitive, Input } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorField');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorField'>;\n\nexport function ColorField(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorFieldRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof ColorFieldPrimitive>;\n\nconst CHANNEL_PLACEHOLDERS: Record<ColorChannel, string> = {\n hue: '0°',\n saturation: '0%',\n brightness: '0%',\n lightness: '0%',\n red: '0',\n green: '0',\n blue: '0',\n alpha: '0%',\n};\n\nfunction ColorFieldRoot(properties: RootProperties) {\n const { className, channel, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorFieldPrimitive\n data-slot=\"color-field\"\n className={cn(styles.root, className)}\n channel={channel}\n {...props}\n >\n <Input\n data-slot=\"color-field-input\"\n placeholder={channel ? CHANNEL_PLACEHOLDERS[channel] : '#000000'}\n className={styles.input}\n />\n </ColorFieldPrimitive>\n );\n}\n","import { Color, ColorSpace, getColorChannels, ColorPicker, ColorField, Select, SelectTrigger, SelectValue, SelectPopup, SelectItem } from '..';\n\nimport { useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorInput');\n\ntype ColorMode = 'hex' | ColorSpace;\n\ntype Properties = RootProperties & ComponentStylesProps<'colorInput'>;\n\nconst colorModeItems = [\n { label: 'HEX', value: 'hex' },\n { label: 'HSB', value: 'hsb' },\n { label: 'HSL', value: 'hsl' },\n { label: 'RGB', value: 'rgb' },\n];\n\nexport function ColorInput(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorInputRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value?: Color | null;\n defaultValue?: Color | null;\n onChange?: (color: Color) => void;\n showAlpha?: boolean;\n}\n\nfunction ColorInputRoot(properties: RootProperties) {\n const { value: controlledValue, defaultValue, onChange, showAlpha = true } = properties;\n\n const styles = useComponentStyles();\n\n const isControlled = controlledValue !== undefined;\n\n const [internalColor, setInternalColor] = useState<Color | null>(defaultValue ?? null);\n\n const color = isControlled ? controlledValue : internalColor;\n\n const [colorMode, setColorMode] = useState<ColorMode>('hex');\n\n const handleChange = (newColor: Color | null) => {\n if (!newColor) return;\n if (!isControlled) setInternalColor(newColor);\n onChange?.(newColor);\n };\n\n return (\n <div data-slot=\"color-input\" className={styles.root}>\n <ColorPicker\n value={color ?? undefined}\n onChange={handleChange}\n showAlpha={showAlpha}\n classNames={{ trigger: styles.trigger }}\n className={styles.swatch}\n />\n\n <Select value={colorMode} onValueChange={value => setColorMode(value as ColorMode)} items={colorModeItems}>\n <SelectTrigger className={styles.select}>\n <SelectValue />\n </SelectTrigger>\n <SelectPopup>\n {colorModeItems.map(({ label, value }) => (\n <SelectItem key={value} value={value}>\n {label}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n\n <div data-slot=\"color-input-fields\" className={styles.fields}>\n {colorMode === 'hex'\n ? <ColorField\n value={color}\n onChange={handleChange}\n classNames={{ input: styles.hexInput }}\n />\n : getColorChannels(colorMode).map((channel, index) => (\n <ColorField\n key={channel}\n value={color}\n onChange={handleChange}\n channel={channel}\n colorSpace={colorMode}\n data-slot={index}\n classNames={{ input: styles.channelInput }}\n />\n ))}\n </div>\n </div>\n );\n}\n","import { ColorSpace, ColorSwatch, ColorArea, ColorSlider, ColorField, ColorSwatchPicker, Select, SelectTrigger, SelectValue, SelectPopup, SelectItem, Popover, PopoverTrigger, PopoverPopup, getColorChannels } from '..';\nimport { cn } from '@digo-labs/common';\n\nimport { ColorPicker as ColorPickerPrimitive } from 'react-aria-components';\n\nimport { ReactNode, useState, type ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst colorSpaces = [\n { label: 'HSB', value: 'hsb' },\n { label: 'HSL', value: 'hsl' },\n { label: 'RGB', value: 'rgb' },\n];\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorPicker'>;\n\nexport function ColorPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ColorPickerPrimitive>, 'children'> {\n children?: ReactNode;\n showAlpha?: boolean;\n showChannels?: boolean;\n swatches?: string[];\n side?: ComponentProps<typeof PopoverPopup>['side'];\n sideOffset?: ComponentProps<typeof PopoverPopup>['sideOffset'];\n align?: ComponentProps<typeof PopoverPopup>['align'];\n alignOffset?: ComponentProps<typeof PopoverPopup>['alignOffset'];\n className?: string;\n}\n\nfunction ColorPickerRoot(properties: RootProperties) {\n const {\n showAlpha = true,\n showChannels = false,\n swatches,\n children,\n side = 'top',\n sideOffset = 8,\n align = 'center',\n alignOffset = 0,\n className,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const [colorSpace, setColorSpace] = useState<ColorSpace>('hsb');\n\n return (\n <ColorPickerPrimitive\n data-slot=\"color-picker\"\n {...props}\n >\n {children ??\n <Popover>\n <PopoverTrigger className={styles.trigger}>\n <ColorSwatch className={cn(styles.swatch, className)} />\n </PopoverTrigger>\n\n <PopoverPopup\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n classNames={{ popup: styles.popup, content: styles.content }}\n >\n <ColorArea colorSpace=\"hsb\" xChannel=\"saturation\" yChannel=\"brightness\" />\n <ColorSlider channel=\"hue\" colorSpace=\"hsb\" />\n {showAlpha && <ColorSlider channel=\"alpha\" />}\n <ColorField classNames={{ input: styles.inputs }} />\n {showChannels && (\n <div className={styles.channelsContainer}>\n <Select value={colorSpace} onValueChange={value => setColorSpace(value as ColorSpace)} items={colorSpaces}>\n <SelectTrigger className={styles.select}>\n <SelectValue />\n </SelectTrigger>\n <SelectPopup>\n {colorSpaces.map(({ label, value }) => (\n <SelectItem key={value} value={value}>\n {label}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n <div data-slot=\"color-picker-channels\" className={styles.channels}>\n {getColorChannels(colorSpace).map(channel => (\n <ColorField key={channel} channel={channel} colorSpace={colorSpace} classNames={{ input: styles.inputs }} />\n ))}\n </div>\n </div>\n )}\n {swatches && swatches.length > 0 && <ColorSwatchPicker colors={swatches} />}\n </PopoverPopup>\n </Popover>}\n\n </ColorPickerPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { TransparentBackground } from '..';\n\nimport { ColorSlider as ColorSliderPrimitive, ColorThumb, SliderTrack } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorSlider');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorSlider'>;\n\nexport function ColorSlider(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <ColorSliderRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ColorSliderPrimitive> {\n cols?: ComponentProps<typeof TransparentBackground>['cols'];\n rows?: ComponentProps<typeof TransparentBackground>['rows'];\n}\n\nfunction ColorSliderRoot(properties: RootProperties) {\n const { className, channel, cols = 80, rows = 3, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorSliderPrimitive\n data-slot=\"color-slider\"\n className={cn(styles.root, className)}\n channel={channel}\n {...props}\n >\n <SliderTrack\n data-slot=\"color-slider-track\"\n className={styles.track}\n >\n <TransparentBackground\n className={styles.transparentBackground}\n cols={cols}\n rows={rows}\n />\n <ColorThumb\n data-slot=\"color-slider-thumb\"\n className={styles.thumb}\n />\n </SliderTrack>\n </ColorSliderPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { TransparentBackground } from '..';\n\nimport { ColorSwatch as ColorSwatchPrimitive } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport { parseColor, type ColorSpace, getColorChannels, type Color } from 'react-aria-components';\n\nexport type { ColorChannel } from 'react-stately';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorSwatch');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorSwatch'>;\n\nexport function ColorSwatch(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorSwatchRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof ColorSwatchPrimitive>;\n\nfunction ColorSwatchRoot(properties: RootProperties) {\n const { className, color, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-slot=\"color-swatch\" className={cn(styles.root, className)}>\n <TransparentBackground className={styles.transparentBackground} />\n <ColorSwatchPrimitive\n className={styles.color}\n color={color}\n {...props}\n />\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ColorSwatch } from '..';\n\nimport { Icon } from './icon';\n\nimport {\n ColorSwatchPicker as ColorSwatchPickerPrimitive,\n ColorSwatchPickerItem as ColorSwatchPickerItemPrimitive,\n} from 'react-aria-components';\n\nimport { ComponentProps, CSSProperties } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorSwatchPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorSwatchPicker'>;\n\nexport function ColorSwatchPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorSwatchPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ColorSwatchPickerPrimitive> {\n colors?: string[];\n}\n\nfunction ColorSwatchPickerRoot(properties: RootProperties) {\n const { className, colors, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorSwatchPickerPrimitive\n data-slot=\"color-swatch-picker\"\n className={cn(styles.root, className)}\n {...props}\n >\n {colors\n ? colors.map(color => (\n <ColorSwatchPickerItemPrimitive\n key={color}\n color={color}\n data-slot=\"color-swatch-picker-item\"\n className={styles.item}\n >\n <div\n data-slot=\"color-swatch-picker-swatch\"\n style={{\n '--color': color,\n } as CSSProperties}\n className={styles.swatchContainer}\n >\n <ColorSwatch color={color} className={styles.swatch} />\n <div className={styles.indicator}>\n <Icon icon=\"check\" />\n </div>\n </div>\n </ColorSwatchPickerItemPrimitive>\n ))\n : children}\n </ColorSwatchPickerPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Icon, InputGroup, InputGroupAddon, InputGroupInput, ScrollArea, Separator } from '..';\n\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { createContext, ReactNode, Ref, RefObject, useContext, useRef } from 'react';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { motionPresencePresets } from 'src/utils/motion-presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('combobox');\n\ninterface ContextProperties {\n anchorRef: RefObject<Element | null> | null;\n};\n\nconst Context = createContext<ContextProperties>({\n anchorRef: null,\n});\n\ntype Properties<Value, Multiple extends boolean | undefined = false> = RootProperties<Value, Multiple> & ComponentStylesProps<'combobox'>;\n\nexport function Combobox<Value, Multiple extends boolean | undefined = false>(properties: Properties<Value, Multiple>) {\n const {\n classNames,\n disabled = false,\n ...props\n } = properties;\n\n const anchorRef = useRef<Element | null>(null);\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ anchorRef }}>\n <ComboboxRoot disabled={disabled} {...props} />\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties<Value, Multiple extends boolean | undefined = false> extends ComboboxPrimitive.Root.Props<Value, Multiple> {\n disabled?: boolean;\n};\n\nfunction ComboboxRoot<Value, Multiple extends boolean | undefined = false>(properties: RootProperties<Value, Multiple>) {\n const { disabled, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-disabled={disabled || undefined} className={styles.root}>\n <ComboboxPrimitive.Root\n disabled={disabled}\n {...props}\n />\n </div>\n );\n}\n\ninterface InputProperties extends ComboboxPrimitive.Input.Props {\n showTrigger?: boolean;\n showClear?: boolean;\n startAddon?: ReactNode;\n triggerProps?: ComboboxPrimitive.Trigger.Props;\n clearProps?: ComboboxPrimitive.Clear.Props;\n}\n\nexport function ComboboxInput(properties: InputProperties) {\n const {\n className,\n showTrigger = true,\n showClear = false,\n startAddon,\n triggerProps,\n clearProps,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <InputGroup\n className={cn(styles.input, className as string)}\n ref={useContext(Context).anchorRef as Ref<HTMLDivElement> | null}\n >\n {startAddon &&\n <InputGroupAddon align=\"inline-start\">\n {startAddon}\n </InputGroupAddon>}\n\n <ComboboxPrimitive.Input\n data-slot=\"control\"\n render={<InputGroupInput />}\n {...props}\n />\n\n {(showTrigger || showClear) &&\n <InputGroupAddon align=\"inline-end\">\n\n {showTrigger &&\n <ComboboxTrigger className={cn(showClear && 'has-[~:not([hidden])]:hidden', styles.trigger)} {...triggerProps}>\n <ComboboxPrimitive.Icon data-slot=\"combobox-icon\" className=\"flex-row-center\">\n <Icon icon=\"chevronDown\" />\n </ComboboxPrimitive.Icon>\n </ComboboxTrigger>}\n\n {showClear &&\n <ComboboxClear {...clearProps} className={styles.clear}>\n <Icon icon=\"close\" />\n </ComboboxClear>}\n\n </InputGroupAddon>}\n\n </InputGroup>\n );\n}\n\nexport function ComboboxTrigger(properties: ComboboxPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={className}\n {...props}\n >\n {children}\n </ComboboxPrimitive.Trigger>\n );\n}\n\ninterface PopupProperties extends ComboboxPrimitive.Popup.Props {\n align?: ComboboxPrimitive.Positioner.Props['align'];\n sideOffset?: ComboboxPrimitive.Positioner.Props['sideOffset'];\n alignOffset?: ComboboxPrimitive.Positioner.Props['alignOffset'];\n side?: ComboboxPrimitive.Positioner.Props['side'];\n anchor?: ComboboxPrimitive.Positioner.Props['anchor'];\n}\n\nexport function ComboboxPopup(properties: PopupProperties) {\n const {\n className,\n children,\n side = 'bottom',\n sideOffset = 4,\n alignOffset,\n align = 'start',\n anchor: anchorProp,\n ...props\n } = properties;\n\n const { anchorRef } = useContext(Context);\n const anchor = anchorProp ?? anchorRef;\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n data-slot=\"combobox-positioner\"\n className={styles.positioner}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <div className={styles.popupInner}>\n {children}\n </div>\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n );\n}\n\nexport function ComboboxItem(properties: ComboboxPrimitive.Item.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(styles.item, className)}\n {...props}\n >\n {children}\n\n <ComboboxPrimitive.ItemIndicator className={styles.itemIndicator}>\n <Icon icon=\"check\" />\n </ComboboxPrimitive.ItemIndicator>\n\n </ComboboxPrimitive.Item>\n );\n}\n\nexport function ComboboxSeparator(properties: ComboboxPrimitive.Separator.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n render={<Separator />}\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxGroup(properties: ComboboxPrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxGroupLabel(properties: ComboboxPrimitive.GroupLabel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxEmpty(properties: ComboboxPrimitive.Empty.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(styles.empty, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxRow(properties: ComboboxPrimitive.Row.Props) {\n const { className, ...props } = properties;\n\n return (\n <ComboboxPrimitive.Row\n data-slot=\"combobox-row\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function ComboboxValue(properties: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...properties} />;\n}\n\nexport function ComboboxList(properties: ComboboxPrimitive.List.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollArea scrollbarGutter scrollFade className={styles.scrollArea}>\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n </ScrollArea>\n );\n}\n\nexport function ComboboxClear(properties: ComboboxPrimitive.Clear.Props) {\n const { className, ...props } = properties;\n\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function ComboboxStatus(properties: ComboboxPrimitive.Status.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Status\n data-slot=\"combobox-status\"\n className={cn(styles.status, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxCollection(properties: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...properties} />\n );\n}\n\ninterface MultipleInputProperties extends ComboboxPrimitive.Input.Props {\n startAddon?: ReactNode;\n getLabel?: (item: any) => string;\n getKey?: (item: any) => string;\n}\n\nexport function ComboboxMultipleInput(properties: MultipleInputProperties) {\n const {\n className,\n placeholder,\n startAddon,\n getLabel = (item: any) => item.label,\n getKey = (item: any) => item.value,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const { anchorRef } = useContext(Context);\n\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n render={<InputGroup />}\n className={cn(styles.chips, className)}\n ref={anchorRef as Ref<HTMLDivElement> | null}\n >\n\n {startAddon &&\n <InputGroupAddon align=\"inline-start\" className={styles.chipsAddon}>\n {startAddon}\n </InputGroupAddon>}\n\n <ComboboxValue>\n {(value: any[]) => (\n <>\n <AnimatePresence>\n {value?.map(item => (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n key={getKey(item)}\n aria-label={getLabel(item)}\n className={styles.chip}\n render={<motion.div layout {...motionPresencePresets.variant3} />}\n >\n {getLabel(item)}\n\n <ComboboxPrimitive.ChipRemove\n aria-label=\"Remove\"\n data-slot=\"combobox-chip-remove\"\n className={styles.chipRemove}\n >\n <Icon icon=\"close\" />\n </ComboboxPrimitive.ChipRemove>\n </ComboboxPrimitive.Chip>\n ))}\n </AnimatePresence>\n\n <ComboboxPrimitive.Input\n data-slot=\"control\"\n className={styles.chipsInput}\n placeholder={value.length > 0 ? undefined : placeholder}\n {...props}\n />\n </>\n )}\n </ComboboxValue>\n\n </ComboboxPrimitive.Chips>\n );\n}\n\nexport const useComboboxFilter = ComboboxPrimitive.useFilter;\n","import { cn } from '@digo-labs/common';\n\nimport {\n Autocomplete,\n AutocompleteCollection,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteInput,\n AutocompleteItem,\n AutocompleteList,\n AutocompleteSeparator,\n Icon,\n Kbd,\n} from '..';\n\nimport { Dialog as CommandDialogPrimitive } from '@base-ui/react/dialog';\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('command');\n\nconst CommandDialogRoot = CommandDialogPrimitive.Root;\n\nconst CommandDialogPortal = CommandDialogPrimitive.Portal;\n\nexport const CommandCreateHandle = CommandDialogPrimitive.createHandle;\n\ntype CommandDialogProperties = ComponentProps<typeof CommandDialogRoot> & ComponentStylesProps<'command'>;\n\nexport function CommandDialog(properties: CommandDialogProperties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CommandDialogRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nexport function CommandDialogTrigger(properties: CommandDialogPrimitive.Trigger.Props) {\n return (\n <CommandDialogPrimitive.Trigger\n data-slot=\"command-dialog-trigger\"\n {...properties}\n />\n );\n}\n\nexport function CommandDialogPopup(properties: CommandDialogPrimitive.Popup.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CommandDialogPortal>\n <CommandDialogPrimitive.Backdrop\n data-slot=\"command-dialog-backdrop\"\n className={styles.backdrop}\n />\n <CommandDialogPrimitive.Viewport\n data-slot=\"command-dialog-viewport\"\n className={styles.viewport}\n >\n <CommandDialogPrimitive.Popup\n data-slot=\"command-dialog-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n {children}\n </CommandDialogPrimitive.Popup>\n </CommandDialogPrimitive.Viewport>\n </CommandDialogPortal>\n );\n}\n\ntype CommandProperties = ComponentProps<typeof Autocomplete> & ComponentStylesProps<'command'>;\n\nexport function Command(properties: CommandProperties) {\n const { classNames, autoHighlight = 'always', keepHighlight = true, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Autocomplete\n autoHighlight={autoHighlight}\n inline\n keepHighlight={keepHighlight}\n open\n {...props}\n />\n </ComponentStylesProvider>\n );\n}\n\nexport function CommandInput(properties: ComponentProps<typeof AutocompleteInput>) {\n const { className, placeholder = undefined, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"command-input\"\n className={cn(styles.inputContainer, className)}\n >\n <Icon icon=\"search\" />\n <AutocompleteInput\n autoFocus\n className={styles.input}\n placeholder={placeholder}\n {...props}\n />\n </div>\n );\n}\n\nexport function CommandList(properties: ComponentProps<typeof AutocompleteList>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteList\n data-slot=\"command-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n );\n}\n\nexport function CommandEmpty(properties: ComponentProps<typeof AutocompleteEmpty>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteEmpty\n data-slot=\"command-empty\"\n className={cn(styles.empty, className)}\n {...props}\n />\n );\n}\n\nexport function CommandPanel(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"command-panel\"\n className={cn(styles.panel, className)}\n {...props}\n />\n );\n}\n\nexport function CommandGroup(properties: ComponentProps<typeof AutocompleteGroup>) {\n const { className, ...props } = properties;\n\n return (\n <AutocompleteGroup\n data-slot=\"command-group\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function CommandGroupLabel(properties: ComponentProps<typeof AutocompleteGroupLabel>) {\n const { className, ...props } = properties;\n\n return (\n <AutocompleteGroupLabel\n data-slot=\"command-group-label\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function CommandCollection(properties: ComponentProps<typeof AutocompleteCollection>) {\n return <AutocompleteCollection data-slot=\"command-collection\" {...properties} />;\n}\n\nexport function CommandItem(properties: ComponentProps<typeof AutocompleteItem>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteItem\n data-slot=\"command-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function CommandSeparator(properties: ComponentProps<typeof AutocompleteSeparator>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteSeparator\n data-slot=\"command-separator\"\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n\nexport function CommandShortcut(properties: ComponentProps<typeof Kbd>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Kbd\n data-slot=\"command-shortcut\"\n className={cn(styles.shortcut, className)}\n {...props}\n />\n );\n}\n\nexport function CommandFooter(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"command-footer\"\n className={cn(styles.footer, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { type CSSProperties, useEffect, useMemo } from 'react';\n\nimport { type MotionValue, type SpringOptions, motion, useSpring, useTransform } from 'framer-motion';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { motionTransitionPresets } from '../utils/motion-presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('counter');\n\ntype Properties = RootProperties & ComponentStylesProps<'counter'>;\n\nexport function Counter(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CounterRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: number;\n places?: number;\n className?: string;\n style?: CSSProperties;\n containerHeight?: number;\n spring?: SpringOptions;\n}\n\nfunction CounterRoot(properties: RootProperties) {\n const { value, places = 3, className, style, containerHeight = 100, spring = motionTransitionPresets.spring1 } = properties;\n\n const styles = useComponentStyles();\n const placesArray = useMemo(() => Array.from({ length: places }, (_, i) => 10 ** (places - 1 - i)), [places]);\n\n return (\n <div data-slot=\"counter\" className={cn(styles.root, className)} style={style}>\n <div data-slot=\"counter-digits\" className={styles.digits}>\n {placesArray.map(place => (\n <CounterDigit key={place} place={place} value={value} height={containerHeight} spring={spring} />\n ))}\n </div>\n <div data-slot=\"counter-overlay\" className={styles.overlay}>\n <div data-slot=\"counter-top-gradient\" className={styles.topGradient} />\n <div data-slot=\"counter-bottom-gradient\" className={styles.bottomGradient} />\n </div>\n </div>\n );\n}\n\ninterface DigitProperties {\n place: number;\n value: number;\n height: number;\n spring: SpringOptions;\n}\n\nfunction CounterDigit(properties: DigitProperties) {\n const { place, value, height, spring } = properties;\n\n const styles = useComponentStyles();\n\n const valueRoundedToPlace = Math.floor(value / place);\n const animatedValue = useSpring(valueRoundedToPlace, spring);\n\n useEffect(() => {\n animatedValue.set(valueRoundedToPlace);\n }, [animatedValue, valueRoundedToPlace]);\n\n return (\n <div data-slot=\"counter-digit\" className={styles.digit} style={{ height }}>\n {Array.from({ length: 10 }, (_, i) => (\n <CounterNumber key={i} mv={animatedValue} number={i} height={height} />\n ))}\n </div>\n );\n}\n\ninterface NumberProperties {\n mv: MotionValue<number>;\n number: number;\n height: number;\n}\n\nfunction CounterNumber(properties: NumberProperties) {\n const { mv, number, height } = properties;\n\n const styles = useComponentStyles();\n\n const y = useTransform(mv, (latest) => {\n const placeValue = latest % 10;\n const offset = (10 + number - placeValue) % 10;\n let memo = offset * height;\n if (offset > 5) {\n memo -= 10 * height;\n }\n return memo;\n });\n\n return (\n <motion.span data-slot=\"counter-number\" className={styles.number} style={{ y }}>\n {number}\n </motion.span>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('drawer');\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst sideToSwipe: Record<Side, DrawerPrimitive.Root.Props['swipeDirection']> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ninterface Properties<Payload = unknown> extends DrawerPrimitive.Root.Props<Payload>, ComponentStylesProps<'drawer'> {\n side?: Side;\n}\n\nexport function Drawer<Payload = unknown>(properties: Properties<Payload>) {\n const { classNames, side = 'right', swipeDirection, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} side={side}>\n <DrawerPrimitive.Root swipeDirection={swipeDirection ?? sideToSwipe[side]} {...props} />\n </ComponentStylesProvider>\n );\n}\n\nexport const DrawerCreateHandle = DrawerPrimitive.createHandle;\n\nexport function DrawerTrigger(properties: DrawerPrimitive.Trigger.Props) {\n return (\n <DrawerPrimitive.Trigger\n data-slot=\"drawer-trigger\"\n {...properties}\n />\n );\n}\n\nexport function DrawerHandle(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"drawer-handle\"\n className={cn(styles.handle, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerClose(properties: DrawerPrimitive.Close.Props) {\n return (\n <DrawerPrimitive.Close\n data-slot=\"drawer-close\"\n {...properties}\n />\n );\n}\n\ninterface DrawerPopupProperties extends DrawerPrimitive.Popup.Props {\n backdrop?: boolean;\n container?: DrawerPrimitive.Portal.Props['container'];\n}\n\nexport function DrawerPopup(properties: DrawerPopupProperties) {\n const { children, className, backdrop = true, container, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Portal container={container}>\n {backdrop && (\n <DrawerPrimitive.Backdrop\n data-slot=\"drawer-backdrop\"\n className={styles.backdrop}\n />\n )}\n\n <DrawerPrimitive.Viewport\n data-slot=\"drawer-viewport\"\n data-no-backdrop={!backdrop || undefined}\n className={styles.viewport}\n >\n <DrawerPrimitive.Popup\n data-slot=\"drawer-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n {children}\n </DrawerPrimitive.Popup>\n </DrawerPrimitive.Viewport>\n </DrawerPrimitive.Portal>\n );\n}\n\nexport function DrawerContent(properties: DrawerPrimitive.Content.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerFooter(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(styles.footer, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerTitle(properties: DrawerPrimitive.Title.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerDescription(properties: DrawerPrimitive.Description.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('empty');\n\ntype Properties = RootProperties & ComponentStylesProps<'empty'>;\n\nexport function Empty(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <EmptyRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction EmptyRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyMedia(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-media\"\n className={cn(styles.media, className)}\n {...props}\n />\n );\n}\n\ninterface EmptyIconProperties extends ComponentProps<'div'> {\n icon?: CuratedIcons;\n offset?: number;\n rotate?: number;\n}\n\nexport function EmptyIcon(properties: EmptyIconProperties) {\n const { className, icon = 'favorite', offset = 10, rotate = 15, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-icon\"\n className={styles.iconWrapper}\n {...props}\n >\n <div\n aria-hidden\n className={cn(styles.iconShadow, className)}\n style={{ rotate: -rotate + 'deg', translate: -offset + 'px' }}\n >\n <Icon icon={icon} />\n </div>\n\n <div\n aria-hidden\n className={cn(styles.iconShadow, className)}\n style={{ rotate: rotate + 'deg', translate: offset * 1.5 + 'px' }}\n >\n <Icon icon={icon} />\n </div>\n\n <div className={cn(styles.icon, className)}>\n <Icon icon={icon} />\n </div>\n </div>\n );\n}\n\nexport function EmptyTitle(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyDescription(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Fieldset as FieldsetPrimitive } from '@base-ui/react/fieldset';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('fieldSet');\n\ntype Properties = RootProperties & ComponentStylesProps<'fieldSet'>;\n\nexport function Fieldset(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FieldsetRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = FieldsetPrimitive.Root.Props;\n\nfunction FieldsetRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldsetPrimitive.Root\n data-slot=\"fieldset\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function FieldsetLegend(properties: FieldsetPrimitive.Legend.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldsetPrimitive.Legend\n data-slot=\"fieldset-legend\"\n className={cn(styles.legend, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Form as FormPrimitive } from '@base-ui/react/form';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('form');\n\ntype Properties = RootProperties & ComponentStylesProps<'form'>;\n\nexport function Form(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FormRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = FormPrimitive.Props;\n\nfunction FormRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FormPrimitive\n data-slot=\"form\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Separator } from '..';\n\nimport type { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles, useComponentVariants } = createComponentStyles('group');\n\ntype Properties = RootProperties & ComponentStylesProps<'group'>;\n\nexport function Group(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <GroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction GroupRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const { orientation } = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <div\n role=\"group\"\n data-slot=\"group\"\n data-orientation={orientation}\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\ninterface SeparatorProperties extends Omit<SeparatorPrimitive.Props, 'orientation'> {\n className?: string;\n}\n\nexport function GroupSeparator(properties: SeparatorProperties) {\n const { className, ...props } = properties;\n\n const { orientation } = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <Separator\n data-slot=\"separator\"\n className={cn(styles.separator, className)}\n orientation={orientation === 'horizontal' ? 'vertical' : 'horizontal'}\n {...props}\n />\n );\n}\n\nexport function GroupText(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"group-text\"\n className={cn(styles.text, className)}\n {...props}\n />\n );\n}\n","import { cn, ImagePayload } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('image');\n\ntype Properties = RootProperties & ComponentStylesProps<'image'>;\n\nexport function Image(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ImageRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'div'> {\n src?: ImagePayload | string;\n}\n\nfunction ImageRoot(properties: RootProperties) {\n const { src, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const resolvedSrc = typeof src === 'object' ? `data:${src.mediaType};base64,${src.base64}` : src;\n\n return (\n <div\n data-slot=\"image\"\n className={cn(styles.root, className)}\n {...props}\n >\n {resolvedSrc\n ? <img data-slot=\"image-img\" className={styles.image} src={resolvedSrc} />\n : <div data-slot=\"image-placeholder\" className={styles.placeholder} />}\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { Input, type InputProperties, TextArea, type TextAreaProperties } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('inputGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'inputGroup'>;\n\nexport function InputGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <InputGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction InputGroupRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function InputGroupInput(properties: InputProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Input\n data-slot=\"control\"\n className={cn(styles.input, className)}\n variant=\"ghost\"\n unstyled={true}\n {...props}\n />\n );\n}\n\ntype Align = 'inline-start' | 'inline-end' | 'block-start' | 'block-end';\n\ninterface InputGroupAddonProperties extends ComponentProps<'div'> {\n align?: Align;\n}\n\nexport function InputGroupAddon(properties: InputGroupAddonProperties) {\n const { align = 'inline-start', className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(styles.addon, className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) return;\n const parent = e.currentTarget.parentElement;\n (parent?.querySelector('input') ?? parent?.querySelector('textarea'))?.focus();\n }}\n {...props}\n />\n );\n}\n\nexport function InputGroupTextarea(properties: TextAreaProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TextArea\n data-slot=\"control\"\n className={cn(styles.input, className)}\n variant=\"ghost\"\n unstyled={true}\n {...props}\n />\n );\n}\n\nexport function InputGroupText(properties: ComponentProps<'span'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"input-group-text\"\n className={cn(styles.text, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Input as InputPrimitive } from '@base-ui/react/input';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('input');\n\nexport interface InputProperties extends RootProperties, ComponentStylesProps<'input'> {\n unstyled?: boolean;\n}\n\nexport function Input(properties: InputProperties) {\n const { classNames, variant, unstyled, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} unstyled={unstyled}>\n <InputRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = Omit<InputPrimitive.Props, 'size'>;\n\nfunction InputRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <InputPrimitive\n data-slot=\"input\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('label');\n\ntype Properties = RootProperties & ComponentStylesProps<'label'>;\n\nexport function Label(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <LabelRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'label'>;\n\nfunction LabelRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <label\n data-slot=\"label\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Children, ComponentProps, ReactNode, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('masonry');\n\ntype Properties = RootProperties & ComponentStylesProps<'masonry'>;\n\nexport function Masonry(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <MasonryRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'div'> {\n columns?: number;\n}\n\nfunction MasonryRoot(properties: RootProperties) {\n const { columns = 3, children, className, ...props } = properties;\n\n const styles = useComponentStyles();\n const items = Children.toArray(children);\n const measureRef = useRef<HTMLDivElement>(null);\n\n const [distributed, setDistributed] = useState<ReactNode[][] | null>(null);\n\n const distribute = useCallback(() => {\n const container = measureRef.current;\n if (!container) return;\n\n const nodes = Array.from(container.children) as HTMLElement[];\n const heights = Array.from<number>({ length: columns }).fill(0);\n const cols = Array.from<ReactNode[]>({ length: columns }).map(() => [] as ReactNode[]);\n\n nodes.forEach((node, index) => {\n const shortest = heights.indexOf(Math.min(...heights));\n cols[shortest].push(items[index]);\n heights[shortest] += node.offsetHeight;\n });\n\n setDistributed(cols);\n }, [columns, items]);\n\n useLayoutEffect(() => {\n distribute();\n }, [distribute]);\n\n return (\n <>\n {!distributed && (\n <div ref={measureRef} data-slot=\"masonry-measure\" className=\"invisible absolute\">\n {items}\n </div>\n )}\n <div\n data-slot=\"masonry\"\n className={cn(styles.root, className)}\n {...props}\n >\n {(distributed ?? Array.from<ReactNode[]>({ length: columns }).map(() => [])).map((columnItems, index) => (\n <div\n key={index}\n data-slot=\"masonry-column\"\n className={styles.column}\n style={{ flexBasis: `${100 / columns}%` }}\n >\n {columnItems}\n </div>\n ))}\n </div>\n </>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('navigationMenu');\n\ntype Properties = NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align' | 'side' | 'sideOffset' | 'alignOffset'> & ComponentStylesProps<'navigationMenu'>;\n\nexport function NavigationMenu(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <NavigationMenuRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align' | 'side' | 'sideOffset' | 'alignOffset'>;\n\nfunction NavigationMenuRoot(properties: RootProperties) {\n const { align = 'start', side, sideOffset, alignOffset, className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} side={side} sideOffset={sideOffset} alignOffset={alignOffset} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\nexport function NavigationMenuList(properties: ComponentProps<typeof NavigationMenuPrimitive.List>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuItem(properties: ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuTrigger(properties: NavigationMenuPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n >\n {children}\n <Icon\n icon=\"chevronDown\"\n className={styles.triggerIcon}\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nexport function NavigationMenuContent(properties: NavigationMenuPrimitive.Content.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuPositioner(properties: NavigationMenuPrimitive.Positioner.Props) {\n const { className, side = 'bottom', sideOffset = 8, align = 'start', alignOffset = 0, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionAvoidance={{ side: 'none' }}\n collisionPadding={{ top: 5, bottom: 5, left: 20, right: 20 }}\n className={cn(styles.positioner, className)}\n {...props}\n >\n <NavigationMenuPrimitive.Popup data-slot=\"navigation-menu-popup\" className={styles.popup}>\n <NavigationMenuPrimitive.Viewport data-slot=\"navigation-menu-viewport\" className={styles.viewport} />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\nexport function NavigationMenuLink(properties: NavigationMenuPrimitive.Link.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(styles.link, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuLinkCard(properties: NavigationMenuPrimitive.Link.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(styles.linkCard, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuIndicator(properties: ComponentProps<typeof NavigationMenuPrimitive.Icon>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={styles.indicatorWrapper}\n {...props}\n >\n <div className={cn(styles.indicator, className)} />\n </NavigationMenuPrimitive.Icon>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { NumberField as NumberFieldPrimitive } from '@base-ui/react/number-field';\nimport { useId } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('numberField');\n\ntype Properties = RootProperties & ComponentStylesProps<'numberField'>;\n\nexport function NumberField(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <NumberFieldRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = NumberFieldPrimitive.Root.Props;\n\nfunction NumberFieldRoot(properties: RootProperties) {\n const { id, className, ...props } = properties;\n\n const generatedId = useId();\n const fieldId = id ?? generatedId;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Root\n id={fieldId}\n data-slot=\"number-field\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function NumberFieldGroup(properties: NumberFieldPrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Group\n data-slot=\"number-field-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function NumberFieldDecrement(properties: NumberFieldPrimitive.Decrement.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Decrement\n data-slot=\"number-field-decrement\"\n className={cn(styles.button, className)}\n {...props}\n >\n <Icon icon=\"remove\" />\n </NumberFieldPrimitive.Decrement>\n );\n}\n\nexport function NumberFieldIncrement(properties: NumberFieldPrimitive.Increment.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Increment\n data-slot=\"number-field-increment\"\n className={cn(styles.button, className)}\n {...props}\n >\n <Icon icon=\"add\" />\n </NumberFieldPrimitive.Increment>\n );\n}\n\nexport function NumberFieldInput(properties: NumberFieldPrimitive.Input.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.ScrubArea\n direction=\"horizontal\"\n onPointerDown={() => {\n const body = document.body;\n const original = body.requestPointerLock.bind(body);\n body.requestPointerLock = () => Promise.resolve();\n\n window.addEventListener('pointerup', () => {\n body.requestPointerLock = original;\n }, { once: true, capture: true });\n }}\n >\n <NumberFieldPrimitive.Input\n data-slot=\"control\"\n className={cn(styles.input, className)}\n onPointerDown={(event) => {\n if (!event.metaKey) event.stopPropagation();\n }}\n {...props}\n />\n </NumberFieldPrimitive.ScrubArea>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Button, Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('pagination');\n\ntype Properties = RootProperties & ComponentStylesProps<'pagination'>;\n\nexport function Pagination(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PaginationRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'nav'>;\n\nfunction PaginationRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <nav\n data-slot=\"pagination\"\n className={cn(styles.root, className)}\n aria-label=\"pagination\"\n {...props}\n />\n );\n}\n\nexport function PaginationContent(properties: ComponentProps<'ul'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function PaginationItem(properties: ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"pagination-item\"\n {...properties}\n />\n );\n}\n\ninterface LinkProperties extends ComponentProps<typeof Button> {\n isActive?: boolean;\n}\n\nexport function PaginationLink(properties: LinkProperties) {\n const { className, isActive, render, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Button\n data-slot=\"pagination-link\"\n data-active={isActive}\n aria-current={isActive ? 'page' : undefined}\n variant={isActive ? 'default' : 'ghost'}\n render={render ?? <a />}\n className={cn(styles.link, className)}\n {...props}\n />\n );\n}\n\nexport function PaginationPrevious(properties: LinkProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PaginationLink\n className={cn(styles.previousNext, className)}\n aria-label=\"Go to previous page\"\n {...props}\n >\n <Icon icon=\"chevronLeft\" />\n <span data-slot=\"pagination-previous-label\" className={styles.previousNextLabel}>Previous</span>\n </PaginationLink>\n );\n}\n\nexport function PaginationNext(properties: LinkProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PaginationLink\n className={cn(styles.previousNext, className)}\n aria-label=\"Go to next page\"\n {...props}\n >\n <span data-slot=\"pagination-next-label\" className={styles.previousNextLabel}>Next</span>\n <Icon icon=\"chevronRight\" />\n </PaginationLink>\n );\n}\n\nexport function PaginationEllipsis(properties: ComponentProps<'span'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"pagination-ellipsis\"\n className={cn(styles.ellipsis, className)}\n aria-hidden\n {...props}\n >\n <Icon icon=\"moreHorizontal\" />\n </span>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Label, Separator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameter');\n\ntype Properties = ComponentProps<'div'> & ComponentStylesProps<'parameter'>;\n\nexport function Parameter(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction ParameterRoot(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\ninterface LabelProperties extends ComponentProps<'label'> {\n label: string;\n}\n\nexport function ParameterLabel(properties: LabelProperties) {\n const { className, label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Label\n data-slot=\"parameter-label\"\n className={cn(styles.label, className)}\n {...props}\n >\n {label}\n </Label>\n );\n}\n\ninterface ValueProperties extends ComponentProps<'div'> {\n value: string;\n}\n\nexport function ParameterValue(properties: ValueProperties) {\n const { className, value, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-value\"\n className={cn(styles.value, className)}\n {...props}\n >\n {value}\n </div>\n );\n}\n\ninterface MeasureProperties extends ComponentProps<'div'> {\n measure: string;\n}\n\nexport function ParameterMeasure(properties: MeasureProperties) {\n const { className, measure, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-measure\"\n className={cn(styles.measure, className)}\n {...props}\n >\n {measure}\n </div>\n );\n}\n\nexport function ParameterInput(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-input\"\n className={cn(styles.input, className)}\n {...props}\n />\n );\n}\n\nexport function ParameterRow(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-row\"\n className={cn(styles.row, className)}\n {...props}\n />\n );\n}\n\nexport function ParameterSeparator(properties: ComponentProps<typeof Separator>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Separator\n data-slot=\"parameter-separator\"\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('popover');\n\nexport const PopoverCreateHandle = PopoverPrimitive.createHandle;\n\nexport const Popover = PopoverPrimitive.Root;\n\nexport function PopoverTrigger(properties: PopoverPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n return (\n <PopoverPrimitive.Trigger\n data-slot=\"popover-trigger\"\n className={className}\n {...props}\n >\n {children}\n </PopoverPrimitive.Trigger>\n );\n}\n\ntype PopupProperties = PopoverPrimitive.Popup.Props & ComponentStylesProps<'popover'> & PopoverPrimitive.Positioner.Props;\n\nexport function PopoverPopup(properties: PopupProperties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PopoverPopupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype PopoverPopupRootProperties = PopoverPrimitive.Popup.Props & PopoverPrimitive.Positioner.Props;\n\nfunction PopoverPopupRoot(properties: PopoverPopupRootProperties) {\n const {\n children,\n className,\n side = 'bottom',\n align = 'center',\n sideOffset = 4,\n alignOffset = 0,\n anchor,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n data-slot=\"popover-positioner\"\n className={styles.positioner}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <PopoverPrimitive.Viewport\n data-slot=\"popover-viewport\"\n className={styles.viewport}\n >\n <div className={styles.content}>\n {children}\n </div>\n </PopoverPrimitive.Viewport>\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nexport function PopoverClose(properties: PopoverPrimitive.Close.Props) {\n return (\n <PopoverPrimitive.Close\n data-slot=\"popover-close\"\n {...properties}\n />\n );\n}\n\nexport function PopoverTitle(properties: PopoverPrimitive.Title.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function PopoverDescription(properties: PopoverPrimitive.Description.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Progress as ProgressPrimitive } from '@base-ui/react/progress';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('progress');\n\ntype Properties = RootProperties & ComponentStylesProps<'progress'>;\n\nexport function Progress(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ProgressRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ProgressPrimitive.Root.Props;\n\nfunction ProgressRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n );\n}\n\nexport function ProgressTrack(properties: ProgressPrimitive.Track.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Track\n data-slot=\"progress-track\"\n className={cn(styles.track, className)}\n {...props}\n />\n );\n}\n\nexport function ProgressIndicator(properties: ProgressPrimitive.Indicator.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(styles.indicator, className)}\n {...props}\n />\n );\n}\n\nexport function ProgressLabel(properties: ProgressPrimitive.Label.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Label\n data-slot=\"progress-label\"\n className={cn(styles.label, className)}\n {...props}\n />\n );\n}\n\nexport function ProgressValue(properties: ProgressPrimitive.Value.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Value\n data-slot=\"progress-value\"\n className={cn(styles.value, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('scrollArea');\n\ntype Properties = RootProperties & ComponentStylesProps<'scrollArea'>;\n\nexport function ScrollArea(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ScrollAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ScrollAreaPrimitive.Root.Props {\n scrollFade?: boolean;\n scrollbarGutter?: boolean;\n}\n\nfunction ScrollAreaRoot(properties: RootProperties) {\n const { className, children, scrollFade, scrollbarGutter, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(styles.root, className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n data-scroll-fade={scrollFade || undefined}\n data-scrollbar-gutter={scrollbarGutter || undefined}\n className={styles.viewport}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar orientation=\"vertical\" />\n <ScrollBar orientation=\"horizontal\" />\n <ScrollAreaPrimitive.Corner data-slot=\"scroll-area-corner\" />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nexport function ScrollBar(properties: ScrollAreaPrimitive.Scrollbar.Props) {\n const { className, orientation = 'vertical', ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n className={cn(styles.scrollbar, className)}\n orientation={orientation}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className={styles.thumb}\n />\n </ScrollAreaPrimitive.Scrollbar>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Icon, Separator } from '..';\n\nimport { Select as SelectPrimitive } from '@base-ui/react/select';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('select');\n\ntype Properties<Value, Multiple extends boolean | undefined = false> = RootProperties<Value, Multiple> & ComponentStylesProps<'select'>;\n\nexport function Select<Value, Multiple extends boolean | undefined = false>(properties: Properties<Value, Multiple>) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <SelectRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties<Value, Multiple extends boolean | undefined = false> extends SelectPrimitive.Root.Props<Value, Multiple> {\n disabled?: boolean;\n};\n\nfunction SelectRoot<Value, Multiple extends boolean | undefined = false>(properties: RootProperties<Value, Multiple>) {\n const { disabled = false, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-slot=\"select\" data-disabled={disabled || undefined} className={styles.root}>\n <SelectPrimitive.Root disabled={disabled} {...props} />\n </div>\n );\n}\n\nexport function SelectTrigger(properties: SelectPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon data-slot=\"select-icon\" className={styles.triggerIcon}>\n <Icon icon=\"chevronDown\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nexport function SelectValue(properties: SelectPrimitive.Value.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(styles.value, className)}\n {...props}\n />\n );\n}\n\ninterface PopupProperties extends SelectPrimitive.Popup.Props {\n side?: SelectPrimitive.Positioner.Props['side'];\n sideOffset?: SelectPrimitive.Positioner.Props['sideOffset'];\n align?: SelectPrimitive.Positioner.Props['align'];\n alignOffset?: SelectPrimitive.Positioner.Props['alignOffset'];\n alignItemWithTrigger?: SelectPrimitive.Positioner.Props['alignItemWithTrigger'];\n anchor?: SelectPrimitive.Positioner.Props['anchor'];\n}\n\nexport function SelectPopup(properties: PopupProperties) {\n const {\n className,\n children,\n side = 'bottom',\n sideOffset = 4,\n align = 'start',\n alignOffset = 0,\n alignItemWithTrigger = true,\n anchor,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n data-slot=\"select-positioner\"\n className={styles.positioner}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n anchor={anchor}\n >\n <SelectPrimitive.Popup\n data-slot=\"select-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-arrow\"\n className={styles.scrollArrow}\n >\n <Icon icon=\"chevronUp\" />\n </SelectPrimitive.ScrollUpArrow>\n <div className={styles.popupInner}>\n <SelectPrimitive.List\n data-slot=\"select-list\"\n className={styles.list}\n >\n {children}\n </SelectPrimitive.List>\n </div>\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-arrow\"\n className={styles.scrollArrow}\n >\n <Icon icon=\"chevronDown\" />\n </SelectPrimitive.ScrollDownArrow>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nexport function SelectItem(properties: SelectPrimitive.Item.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(styles.item, className)}\n {...props}\n >\n <SelectPrimitive.ItemIndicator className={styles.itemIndicator}>\n <Icon icon=\"check\" />\n </SelectPrimitive.ItemIndicator>\n\n <SelectPrimitive.ItemText className={styles.itemText}>\n {children}\n </SelectPrimitive.ItemText>\n\n </SelectPrimitive.Item>\n );\n}\n\nexport function SelectSeparator(properties: SelectPrimitive.Separator.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n render={<Separator />}\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n\nexport function SelectGroup(properties: SelectPrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function SelectGroupLabel(properties: SelectPrimitive.GroupLabel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('separator');\n\ntype Properties = RootProperties & ComponentStylesProps<'separator'>;\n\nexport function Separator(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <SeparatorRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = SeparatorPrimitive.Props;\n\nfunction SeparatorRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport {\n ComponentProps,\n createContext,\n ReactElement,\n useContext,\n useState,\n cloneElement,\n isValidElement,\n} from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('sidebar');\n\ninterface ContextProperties {\n open: boolean;\n setOpen: (open: boolean) => void;\n toggle: () => void;\n}\n\nconst Context = createContext<ContextProperties | undefined>(undefined);\n\ninterface Properties extends RootProperties, ComponentStylesProps<'sidebar'> {\n defaultOpen?: boolean;\n}\n\nexport function Sidebar(properties: Properties) {\n const { classNames, defaultOpen = true, ...props } = properties;\n\n const [open, setOpen] = useState(defaultOpen);\n const toggle = () => setOpen(prev => !prev);\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ open, setOpen, toggle }}>\n <SidebarRoot {...props} />\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'aside'>;\n\nfunction SidebarRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n const context = useContext(Context);\n\n if (!context?.open) return null;\n\n return (\n <aside\n data-slot=\"sidebar\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarFooter(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-footer\"\n className={cn(styles.footer, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroup(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupLabel(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupTitle(properties: ComponentProps<'span'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"sidebar-group-title\"\n className={cn(styles.groupTitle, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupAction(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group-action\"\n className={cn(styles.groupAction, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group-content\"\n className={cn(styles.groupContent, className)}\n {...props}\n />\n );\n}\n\ninterface ItemProperties extends ComponentProps<'a'> {\n active?: boolean;\n render?: ReactElement;\n}\n\nexport function SidebarItem(properties: ItemProperties) {\n const { className, active = false, render, children, ...props } = properties;\n\n const styles = useComponentStyles();\n const itemClassName = cn(styles.item, className);\n\n if (render && isValidElement(render)) {\n const clonedElement = cloneElement(render as ReactElement<any>, {\n 'data-slot': 'sidebar-item',\n 'data-active': active || undefined,\n 'className': cn(itemClassName, (render as ReactElement<any>).props.className),\n children,\n ...props,\n });\n\n return clonedElement;\n }\n\n return (\n <a\n data-slot=\"sidebar-item\"\n data-active={active || undefined}\n className={itemClassName}\n {...props}\n >\n {children}\n </a>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('spacer');\n\ntype Properties = RootProperties & ComponentStylesProps<'spacer'>;\n\nexport function Spacer(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <SpacerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction SpacerRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"spacer\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Slider as SliderPrimitive } from '@base-ui/react/slider';\n\nimport { useMemo } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('slider');\n\ntype Properties = RootProperties & ComponentStylesProps<'slider'>;\n\nexport function Slider(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <SliderRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends SliderPrimitive.Root.Props {\n bottomContent?: boolean;\n}\n\nfunction SliderRoot(properties: RootProperties) {\n const {\n className,\n children,\n defaultValue,\n value,\n min = 0,\n max = 100,\n orientation = 'horizontal',\n bottomContent = false,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const _values = useMemo(() => {\n if (value !== undefined) {\n return Array.isArray(value) ? value : [value];\n }\n if (defaultValue !== undefined) {\n return Array.isArray(defaultValue) ? defaultValue : [defaultValue];\n }\n return [min];\n }, [value, defaultValue, min]);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n className={cn(styles.root, className)}\n defaultValue={defaultValue}\n max={max}\n min={min}\n orientation={orientation}\n thumbAlignment=\"edge\"\n value={value}\n {...props}\n >\n\n {!bottomContent && children}\n\n <SliderPrimitive.Control\n data-slot=\"slider-control\"\n className={styles.control}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={styles.track}\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-indicator\"\n className={styles.indicator}\n />\n\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n className={styles.thumb}\n index={index}\n key={String(index)}\n />\n ))}\n </SliderPrimitive.Track>\n\n </SliderPrimitive.Control>\n\n {bottomContent && children}\n\n </SliderPrimitive.Root>\n );\n}\n\ntype TicksProperties = React.ComponentProps<'div'> & {\n min?: number;\n max?: number;\n step?: number;\n skipInterval?: number;\n renderLabel?: (value: number) => React.ReactNode;\n};\n\nexport function SliderTicks(properties: TicksProperties) {\n const {\n className,\n min = 0,\n max = 100,\n step = 1,\n skipInterval = 1,\n renderLabel,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n const ticks = Array.from({ length: Math.floor((max - min) / step) + 1 }, (_, i) => min + i * step);\n\n return (\n <div\n aria-hidden=\"true\"\n data-slot=\"slider-ticks\"\n className={cn(styles.ticksContainer, className)}\n {...props}\n >\n {ticks.map((value, i) => {\n const isMajor = i % skipInterval === 0;\n\n return (\n <div\n className={styles.tick}\n key={String(value)}\n >\n <div className={styles.tickLine} data-major={isMajor} />\n\n <p className={styles.tickLabel} data-major={isMajor}>\n {renderLabel ? renderLabel(value) : value}\n </p>\n\n </div>\n );\n })}\n </div>\n );\n}\n\nexport function SliderValue(properties: SliderPrimitive.Value.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SliderPrimitive.Value\n data-slot=\"slider-value\"\n className={cn(styles.value, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('spinner');\n\nconst icons = {\n default: 'spinner',\n dots: 'spinnerDots',\n} as const;\n\ntype Properties = RootProperties & ComponentStylesProps<'spinner'>;\n\nexport function Spinner(properties: Properties) {\n const { classNames, spin = true, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} spin={spin}>\n <SpinnerRoot variant={variant} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'span'> {\n variant?: keyof typeof icons;\n}\n\nfunction SpinnerRoot(properties: RootProperties) {\n const { className, variant = 'default', ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"spinner\"\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(styles.root, className)}\n {...props}\n >\n <Icon icon={icons[variant]} />\n </span>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { Switch as SwitchPrimitive } from '@base-ui/react/switch';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('switch');\n\ntype Properties = RootProperties & ComponentStylesProps<'switch'>;\n\nexport function Switch(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <SwitchRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends SwitchPrimitive.Root.Props {\n checkedIcon?: CuratedIcons;\n uncheckedIcon?: CuratedIcons;\n};\n\nfunction SwitchRoot(properties: RootProperties) {\n const { className, checkedIcon, uncheckedIcon, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(styles.root, className)}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={styles.thumb}\n >\n {checkedIcon && <Icon icon={checkedIcon} className={styles.checkedIcon} />}\n {uncheckedIcon && <Icon icon={uncheckedIcon} className={styles.uncheckedIcon} />}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentType } from 'react';\n\nimport {\n Bouncy, BouncyArc, Cardio, ChaoticOrbit, DotPulse, DotSpinner, DotStream, DotWave,\n Grid, Hatch, Helix, Hourglass, Infinity as InfinityLoader, Jelly, JellyTriangle,\n Leapfrog, LineSpinner, LineWobble, Metronome, Mirage, Miyagi, Momentum,\n NewtonsCradle, Orbit, Ping, Pinwheel, Pulsar, Quantum, Reuleaux, Ring, Ring2,\n Ripples, Spiral, Square, Squircle, Superballs, TailChase, Tailspin, Treadmill,\n Trefoil, Trio, Wobble, Waveform, Zoomies,\n} from 'ldrs/react';\n\nimport 'ldrs/react/Bouncy.css';\nimport 'ldrs/react/BouncyArc.css';\nimport 'ldrs/react/Cardio.css';\nimport 'ldrs/react/ChaoticOrbit.css';\nimport 'ldrs/react/DotPulse.css';\nimport 'ldrs/react/DotSpinner.css';\nimport 'ldrs/react/DotStream.css';\nimport 'ldrs/react/DotWave.css';\nimport 'ldrs/react/Grid.css';\nimport 'ldrs/react/Hatch.css';\nimport 'ldrs/react/Helix.css';\nimport 'ldrs/react/Hourglass.css';\nimport 'ldrs/react/Infinity.css';\nimport 'ldrs/react/Jelly.css';\nimport 'ldrs/react/JellyTriangle.css';\nimport 'ldrs/react/Leapfrog.css';\nimport 'ldrs/react/LineSpinner.css';\nimport 'ldrs/react/LineWobble.css';\nimport 'ldrs/react/Metronome.css';\nimport 'ldrs/react/Mirage.css';\nimport 'ldrs/react/Miyagi.css';\nimport 'ldrs/react/Momentum.css';\nimport 'ldrs/react/NewtonsCradle.css';\nimport 'ldrs/react/Orbit.css';\nimport 'ldrs/react/Ping.css';\nimport 'ldrs/react/Pinwheel.css';\nimport 'ldrs/react/Pulsar.css';\nimport 'ldrs/react/Quantum.css';\nimport 'ldrs/react/Reuleaux.css';\nimport 'ldrs/react/Ring.css';\nimport 'ldrs/react/Ring2.css';\nimport 'ldrs/react/Ripples.css';\nimport 'ldrs/react/Spiral.css';\nimport 'ldrs/react/Square.css';\nimport 'ldrs/react/Squircle.css';\nimport 'ldrs/react/Superballs.css';\nimport 'ldrs/react/TailChase.css';\nimport 'ldrs/react/Tailspin.css';\nimport 'ldrs/react/Treadmill.css';\nimport 'ldrs/react/Trefoil.css';\nimport 'ldrs/react/Trio.css';\nimport 'ldrs/react/Wobble.css';\nimport 'ldrs/react/Waveform.css';\nimport 'ldrs/react/Zoomies.css';\n\nconst loaders: Record<string, ComponentType<any>> = {\n ring: Ring,\n ring2: Ring2,\n tailspin: Tailspin,\n lineSpinner: LineSpinner,\n squircle: Squircle,\n square: Square,\n reuleaux: Reuleaux,\n tailChase: TailChase,\n dotSpinner: DotSpinner,\n spiral: Spiral,\n bouncy: Bouncy,\n treadmill: Treadmill,\n bouncyArc: BouncyArc,\n waveform: Waveform,\n hatch: Hatch,\n hourglass: Hourglass,\n zoomies: Zoomies,\n lineWobble: LineWobble,\n infinity: InfinityLoader,\n trefoil: Trefoil,\n cardio: Cardio,\n helix: Helix,\n grid: Grid,\n quantum: Quantum,\n wobble: Wobble,\n orbit: Orbit,\n chaoticOrbit: ChaoticOrbit,\n superballs: Superballs,\n trio: Trio,\n momentum: Momentum,\n dotWave: DotWave,\n leapfrog: Leapfrog,\n newtonsCradle: NewtonsCradle,\n dotStream: DotStream,\n dotPulse: DotPulse,\n metronome: Metronome,\n jelly: Jelly,\n jellyTriangle: JellyTriangle,\n mirage: Mirage,\n ping: Ping,\n pulsar: Pulsar,\n ripples: Ripples,\n miyagi: Miyagi,\n pinwheel: Pinwheel,\n};\n\nexport type LoaderType =\n | 'ring' | 'ring2' | 'tailspin' | 'lineSpinner' | 'squircle' | 'square'\n | 'reuleaux' | 'tailChase' | 'dotSpinner' | 'spiral' | 'bouncy' | 'treadmill'\n | 'bouncyArc' | 'waveform' | 'hatch' | 'hourglass' | 'zoomies' | 'lineWobble'\n | 'infinity' | 'trefoil' | 'cardio' | 'helix' | 'grid' | 'quantum'\n | 'wobble' | 'orbit' | 'chaoticOrbit' | 'superballs' | 'trio' | 'momentum'\n | 'dotWave' | 'leapfrog' | 'newtonsCradle' | 'dotStream' | 'dotPulse' | 'metronome'\n | 'jelly' | 'jellyTriangle' | 'mirage' | 'ping' | 'pulsar' | 'ripples'\n | 'miyagi' | 'pinwheel';\n\nexport interface LoaderProperties {\n type?: LoaderType;\n size?: number;\n speed?: number;\n stroke?: number;\n strokeLength?: number;\n bgOpacity?: number;\n color?: string;\n className?: string;\n}\n\nexport function Loader(properties: LoaderProperties) {\n const {\n type = 'dotSpinner',\n size = 20,\n speed = 1,\n stroke = 2,\n strokeLength = 0.2,\n bgOpacity = 0.1,\n color = 'white',\n className,\n } = properties;\n\n const Component = loaders[type];\n\n return (\n <div className={cn('flex-col-center', className)} data-slot=\"loader\">\n <Component\n size={size}\n speed={speed}\n color={color}\n stroke={stroke}\n stroke-length={strokeLength}\n bg-opacity={bgOpacity}\n />\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Tabs as TabsPrimitive } from '@base-ui/react/tabs';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tabs');\n\ntype Properties = RootProperties & ComponentStylesProps<'tabs'>;\n\nexport function Tabs(properties: Properties) {\n const { classNames, variant = 'default', orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} orientation={orientation}>\n <TabsRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = TabsPrimitive.Root.Props;\n\nfunction TabsRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function TabsList(properties: TabsPrimitive.List.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(styles.list, className)}\n {...props}\n >\n {children}\n <TabsPrimitive.Indicator\n data-slot=\"tab-indicator\"\n className={styles.indicator}\n />\n </TabsPrimitive.List>\n );\n}\n\nexport function TabsTab(properties: TabsPrimitive.Tab.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-tab\"\n className={cn(styles.tab, className)}\n {...props}\n />\n );\n}\n\nexport function TabsPanel(properties: TabsPrimitive.Panel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-panel\"\n className={cn(styles.panel, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('toggle');\n\ntype Properties = RootProperties & ComponentStylesProps<'toggle'>;\n\nexport function Toggle(properties: Properties) {\n const { classNames, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant}>\n <ToggleRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = TogglePrimitive.Props;\n\nfunction ToggleRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Toggle, Separator } from '..';\n\nimport { ComponentProps } from 'react';\nimport { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles, useComponentVariants } = createComponentStyles('toggleGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'toggleGroup'>;\n\nexport function ToggleGroup(properties: Properties) {\n const { classNames, variant = 'default', orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} orientation={orientation}>\n <ToggleGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ToggleGroupPrimitive.Props;\n\nfunction ToggleGroupRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const { variant } = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive>\n );\n}\n\nexport function ToggleGroupItem(properties: ComponentProps<typeof Toggle>) {\n const { variant, ...props } = properties;\n\n const variants = useComponentVariants();\n\n return (\n <Toggle\n variant={variant ?? variants.variant}\n {...props}\n />\n );\n}\n\nexport function ToggleGroupSeparator(properties: ComponentProps<typeof Separator>) {\n const { className, orientation, ...props } = properties;\n\n const variants = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <Separator\n data-slot=\"separator\"\n className={cn(styles.separator, className)}\n orientation={orientation ?? variants.orientation === 'horizontal' ? 'vertical' : 'horizontal'}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps, RefObject, useEffect, useRef, useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tableOfContents');\n\nexport interface TocItemData {\n depth: 2 | 3;\n value: string;\n slug: string;\n};\n\nexport function useTocHeadings(pathname: string): TocItemData[] {\n const [items, setItems] = useState<TocItemData[]>([]);\n\n useEffect(() => {\n const container = document.querySelector('main');\n\n if (!container) return;\n\n const updateHeadings = () => {\n const headings = container.querySelectorAll('h2, h3');\n const toc: TocItemData[] = Array.from(headings)\n .filter(h => h.id)\n .map(heading => ({\n depth: heading.tagName === 'H2' ? 2 : 3,\n value: heading.textContent || '',\n slug: heading.id,\n }));\n\n setItems(toc);\n };\n\n const observer = new MutationObserver(updateHeadings);\n\n observer.observe(container, { childList: true, subtree: true });\n\n updateHeadings();\n\n return () => observer.disconnect();\n }, [pathname]);\n\n return items;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'tableOfContents'>;\n\nexport function TableOfContents(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TableOfContentsRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'nav'>;\n\nfunction TableOfContentsRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <nav\n data-slot=\"toc\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n </nav>\n );\n}\n\nexport function TableOfContentsHeader(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"toc-header\"\n className={cn(styles.header, className)}\n {...props}\n >\n {children}\n </span>\n );\n}\n\ninterface ItemProperties extends ComponentProps<'a'> {\n active?: boolean;\n}\n\nfunction TableOfContentsItem(properties: ItemProperties) {\n const { className, active = false, onClick, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <a\n data-slot=\"toc-item\"\n data-active={active}\n className={cn(styles.item, className)}\n onClick={(e) => {\n e.preventDefault();\n\n const target = document.getElementById(props.href?.slice(1) ?? '');\n\n if (!target) return;\n\n let container: HTMLElement | null = target;\n\n while (container && getComputedStyle(container).overflowY !== 'auto') {\n container = container.parentElement;\n }\n\n if (!container) return;\n\n const top = target.getBoundingClientRect().top\n - container.getBoundingClientRect().top\n + container.scrollTop\n - 80;\n\n container.scrollTo({ top, behavior: 'smooth' });\n\n onClick?.(e);\n }}\n {...props}\n />\n );\n}\n\ninterface ThumbProperties extends ComponentProps<'div'> {\n containerRef: RefObject<HTMLElement | null>;\n activeItems: string[];\n}\n\nfunction TableOfContentsThumb(properties: ThumbProperties) {\n const { containerRef, activeItems, className, ...props } = properties;\n\n const thumbRef = useRef<HTMLDivElement>(null);\n\n function calc(): [number, number] {\n const container = containerRef.current;\n\n if (!container || activeItems.length === 0 || container.clientHeight === 0) return [0, 0];\n\n let upper = Number.MAX_VALUE;\n let lower = 0;\n\n for (const slug of activeItems) {\n const element = container.querySelector<HTMLElement>(`a[href=\"#${slug}\"]`);\n\n if (!element) continue;\n\n const computed = getComputedStyle(element);\n\n upper = Math.min(upper, element.offsetTop + parseFloat(computed.paddingTop));\n lower = Math.max(lower, element.offsetTop + element.clientHeight - parseFloat(computed.paddingBottom));\n }\n\n return [upper, lower - upper];\n }\n\n function update() {\n const element = thumbRef.current;\n\n if (!element) return;\n\n const [top, height] = calc();\n\n element.style.setProperty('--toc-top', `${top}px`);\n element.style.setProperty('--toc-height', `${height}px`);\n }\n\n useEffect(() => {\n const container = containerRef.current;\n\n if (!container) return;\n\n const observer = new ResizeObserver(update);\n\n observer.observe(container);\n\n return () => observer.disconnect();\n }, [containerRef, activeItems]);\n\n useEffect(() => {\n update();\n }, [activeItems]);\n\n return (\n <div\n ref={thumbRef}\n data-slot=\"toc-thumb\"\n data-hidden={activeItems.length === 0}\n className={className}\n {...props}\n />\n );\n}\n\nexport type TocOffsets = Record<2 | 3, number>;\n\ninterface ItemsProperties {\n items: TocItemData[];\n activeSlugs: string[];\n itemOffsets?: TocOffsets;\n lineOffsets?: TocOffsets;\n lineWidth?: number;\n}\n\nexport function TableOfContentsItems(properties: ItemsProperties) {\n const {\n items,\n activeSlugs,\n itemOffsets = { 2: 14, 3: 26 },\n lineOffsets = { 2: 0, 3: 10 },\n lineWidth = 1.5,\n } = properties;\n\n const styles = useComponentStyles();\n const containerRef = useRef<HTMLDivElement>(null);\n\n const [svg, setSvg] = useState<{ path: string; width: number; height: number; }>();\n\n useEffect(() => {\n const container = containerRef.current;\n\n if (!container) return;\n\n function onResize() {\n if (!container || container.clientHeight === 0) return;\n\n let w = 0;\n let h = 0;\n const d: string[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const element = container.querySelector<HTMLElement>(`a[href=\"#${items[i].slug}\"]`);\n\n if (!element) continue;\n\n const computed = getComputedStyle(element);\n const offset = lineOffsets[items[i].depth] + lineWidth / 2;\n const top = element.offsetTop + parseFloat(computed.paddingTop);\n const bottom = element.offsetTop + element.clientHeight - parseFloat(computed.paddingBottom);\n\n w = Math.max(offset, w);\n h = Math.max(h, bottom);\n\n d.push(`${i === 0 ? 'M' : 'L'}${offset} ${top}`);\n d.push(`L${offset} ${bottom}`);\n }\n\n setSvg({ path: d.join(' '), width: w + lineWidth, height: h });\n }\n\n const observer = new ResizeObserver(onResize);\n\n onResize();\n\n observer.observe(container);\n\n return () => observer.disconnect();\n }, [items]);\n\n return (\n <div ref={containerRef} className={styles.items}>\n\n {svg && (\n <svg\n data-slot=\"toc-line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${svg.width} ${svg.height}`}\n className={styles.line}\n style={{ width: svg.width, height: svg.height }}\n fill=\"none\"\n >\n <path d={svg.path} strokeWidth={lineWidth} />\n </svg>\n )}\n\n {svg && (\n <div\n data-slot=\"toc-tree-indicator\"\n className={styles.treeIndicator}\n style={{\n width: svg.width,\n height: svg.height,\n maskImage: `url(\"data:image/svg+xml,${encodeURIComponent(\n `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${svg.width} ${svg.height}\">` +\n `<path d=\"${svg.path}\" stroke=\"black\" stroke-width=\"${lineWidth}\" fill=\"none\" /></svg>`,\n )}\")`,\n }}\n >\n <TableOfContentsThumb\n containerRef={containerRef}\n activeItems={activeSlugs}\n className={styles.indicator}\n />\n </div>\n )}\n\n {items.map(item => (\n <TableOfContentsItem\n key={item.slug}\n href={`#${item.slug}`}\n active={activeSlugs.includes(item.slug)}\n style={{ paddingInlineStart: itemOffsets[item.depth] }}\n >\n {item.value}\n </TableOfContentsItem>\n ))}\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { FieldControl } from '..';\n\nimport TextareaAutosize, { TextareaAutosizeProps } from 'react-textarea-autosize';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('textArea');\n\ntype RootProperties = Omit<TextareaAutosizeProps, 'size'>;\n\nexport interface TextAreaProperties extends RootProperties, ComponentStylesProps<'textArea'> {\n unstyled?: boolean;\n resize?: boolean;\n}\n\nexport function TextArea(properties: TextAreaProperties) {\n const { classNames, variant, unstyled, resize, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} unstyled={unstyled} resize={resize}>\n <TextAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction TextAreaRoot(properties: RootProperties) {\n const { className, minRows = 3, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldControl\n render={\n <TextareaAutosize\n data-slot=\"text-area\"\n className={cn(styles.root, className)}\n minRows={minRows}\n {...props}\n />\n }\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { Image } from './image';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tintImage');\n\ntype Properties = RootProperties & ComponentStylesProps<'tintImage'>;\n\nexport function TintImage(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TintImageRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof Image>;\n\nfunction TintImageRoot(properties: RootProperties) {\n const { src, className, style, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const resolvedSrc = typeof src === 'object' ? `data:${src.mediaType};base64,${src.base64}` : src;\n\n return (\n <div\n data-slot=\"tint-image\"\n className={cn(styles.root, className)}\n style={{\n ...style,\n maskImage: resolvedSrc ? `url(${resolvedSrc})` : undefined,\n maskSize: 'contain',\n maskRepeat: 'no-repeat',\n maskPosition: 'center',\n WebkitMaskImage: resolvedSrc ? `url(${resolvedSrc})` : undefined,\n WebkitMaskSize: 'contain',\n WebkitMaskRepeat: 'no-repeat',\n WebkitMaskPosition: 'center',\n }}\n {...props}\n >\n <Image src={src} className={styles.image} />\n </div>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { Toast } from '@base-ui/react/toast';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('toast');\n\nexport const toastManager = Toast.createToastManager();\n\ntype ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nconst TOAST_ICONS: Partial<Record<ToastVariant, CuratedIcons>> = {\n error: 'error',\n info: 'info',\n loading: 'spinner',\n success: 'success',\n warning: 'warning',\n};\n\ntype ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\ntype SwipeDirection = 'up' | 'down' | 'right' | 'left';\n\ninterface ProviderProperties extends Toast.Provider.Props, ComponentStylesProps<'toast'> {\n position?: ToastPosition;\n}\n\nexport function ToastProvider(properties: ProviderProperties) {\n const { children, classNames, position = 'bottom-right', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Toast.Provider toastManager={toastManager} {...props}>\n {children}\n <Toasts position={position} />\n </Toast.Provider>\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n position: ToastPosition;\n}\n\nfunction Toasts(properties: RootProperties) {\n const { position = 'bottom-right' } = properties;\n\n const { toasts } = Toast.useToastManager();\n const styles = useComponentStyles();\n\n function getSwipeDirection(): SwipeDirection[] {\n const isTop = position.startsWith('top');\n\n const swipeDirection: SwipeDirection[] = position.includes('center')\n ? [isTop ? 'up' : 'down']\n : position.includes('left')\n ? ['left', isTop ? 'up' : 'down']\n : ['right', isTop ? 'up' : 'down'];\n\n return swipeDirection;\n }\n\n return (\n <Toast.Portal data-slot=\"toast-portal\">\n <Toast.Viewport\n data-slot=\"toast-viewport\"\n data-position={position}\n className={styles.viewport}\n >\n {toasts.map((toast) => {\n const variant = toast.type as ToastVariant;\n\n return (\n <ComponentStylesProvider key={toast.id} variant={variant}>\n <ToastItem toast={toast} position={position} swipeDirection={getSwipeDirection()} />\n </ComponentStylesProvider>\n );\n })}\n </Toast.Viewport>\n </Toast.Portal>\n );\n}\n\ntype ToastObject = ReturnType<typeof Toast.useToastManager>['toasts'][number];\n\ninterface ToastItemProperties {\n toast: ToastObject;\n position: ToastPosition;\n swipeDirection: SwipeDirection[];\n}\n\nfunction ToastItem(properties: ToastItemProperties) {\n const { toast, position, swipeDirection } = properties;\n\n const styles = useComponentStyles();\n const variant = toast.type as ToastVariant;\n const icon = variant ? TOAST_ICONS[variant] : undefined;\n\n return (\n <Toast.Root\n data-position={position}\n swipeDirection={swipeDirection}\n className={cn(styles.root, styles.toastRoot)}\n toast={toast}\n >\n <Toast.Content className={cn(styles.toastContent, styles.content)}>\n <div className={styles.outerContainer}>\n {icon &&\n <Icon\n data-slot=\"toast-icon\"\n icon={icon}\n className={styles.icon}\n />}\n\n <div className={styles.innerContainer}>\n <Toast.Title\n data-slot=\"toast-title\"\n className={styles.title}\n />\n <Toast.Description\n data-slot=\"toast-description\"\n className={styles.description}\n />\n </div>\n </div>\n\n {\n toast.actionProps &&\n <Toast.Action\n data-slot=\"toast-action\"\n className={styles.action}\n >\n {toast.actionProps.children}\n </Toast.Action>\n }\n </Toast.Content>\n </Toast.Root>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { createContext, useContext, useMemo, type ReactElement, type ReactNode } from 'react';\n\nimport { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tooltip');\n\nconst Context = createContext<ReturnType<typeof TooltipPrimitive.createHandle> | null>(null);\n\ninterface TooltipPayload extends ComponentStylesProps<'tooltip'> {\n content: ReactNode;\n side?: TooltipPrimitive.Positioner.Props['side'];\n align?: TooltipPrimitive.Positioner.Props['align'];\n sideOffset?: TooltipPrimitive.Positioner.Props['sideOffset'];\n};\n\ninterface ProviderProperties extends ComponentStylesProps<'tooltip'> {\n delay?: number;\n closeDelay?: number;\n timeout?: number;\n children?: ReactNode;\n}\n\nexport function TooltipProvider(properties: ProviderProperties) {\n const { classNames, children, ...props } = properties;\n\n const handle = useMemo(() => TooltipPrimitive.createHandle(), []);\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TooltipPrimitive.Provider {...props}>\n <Context.Provider value={handle}>\n {children}\n <TooltipPrimitive.Root handle={handle}>\n {({ payload }) => {\n if (!payload) return null;\n\n const { content, side, align, sideOffset, classNames } = payload as TooltipPayload;\n\n return (\n <TooltipPopup side={side} align={align} sideOffset={sideOffset} classNames={classNames} content={content}>\n {content}\n </TooltipPopup>\n );\n }}\n\n </TooltipPrimitive.Root>\n </Context.Provider>\n </TooltipPrimitive.Provider>\n </ComponentStylesProvider>\n );\n}\n\ninterface TooltipProperties extends TooltipPayload {\n children: ReactElement;\n}\n\nexport function Tooltip(properties: TooltipProperties) {\n const { content, side, align, sideOffset, classNames, children } = properties;\n\n const handle = useContext(Context);\n\n if (!handle) return;\n\n return (\n <TooltipPrimitive.Trigger\n data-slot=\"tooltip-trigger\"\n handle={handle}\n payload={{ content, side, align, sideOffset, classNames } satisfies TooltipPayload}\n render={children}\n />\n );\n}\n\ninterface PopupProperties extends TooltipPayload {\n children?: ReactNode;\n}\n\nfunction TooltipPopup(properties: PopupProperties) {\n const {\n side = 'top',\n align = 'center',\n sideOffset = 10,\n classNames,\n children,\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n data-slot=\"tooltip-positioner\"\n className={cn(styles.positioner, classNames?.positioner)}\n side={side}\n align={align}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-popup\"\n className={cn(styles.popup, classNames?.popup)}\n >\n <TooltipPrimitive.Arrow\n data-slot=\"tooltip-arrow\"\n className={cn(styles.arrow, classNames?.arrow)}\n >\n <svg viewBox=\"0 0 20 10\" className=\"size-full\">\n <path d=\"M0 10 L10 0 L20 10 Z\" className=\"stroke-none\" />\n <path d=\"M0 10 L10 0 L20 10\" className=\"fill-none\" />\n </svg>\n </TooltipPrimitive.Arrow>\n <TooltipPrimitive.Viewport\n data-slot=\"tooltip-viewport\"\n className={cn(styles.viewport, classNames?.viewport)}\n >\n {children}\n </TooltipPrimitive.Viewport>\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from 'react';\n\nimport { type MotionValue, type SpringOptions, useMotionValue, useSpring } from 'motion/react';\n\nexport type CursorSpring = SpringOptions;\n\ninterface ContextProperties {\n x: MotionValue<number>;\n y: MotionValue<number>;\n active: boolean;\n pressed: boolean;\n width: number;\n height: number;\n}\n\nconst Context = createContext<ContextProperties | undefined>(undefined);\n\ninterface Properties {\n children: ReactNode;\n className?: string;\n showNativeCursor?: boolean;\n}\n\nexport function CursorContainer(properties: Properties) {\n const { children, className, showNativeCursor = false } = properties;\n\n const ref = useRef<HTMLDivElement>(null);\n const dimensions = useRef({ width: 0, height: 0 });\n\n const [active, setActive] = useState(false);\n const [pressed, setPressed] = useState(false);\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n\n useEffect(() => {\n function handleMove(event: MouseEvent) {\n const rect = ref.current?.getBoundingClientRect();\n\n if (!rect) return;\n\n x.set(event.clientX - rect.left);\n y.set(event.clientY - rect.top);\n\n dimensions.current = { width: rect.width, height: rect.height };\n }\n\n document.addEventListener('mousemove', handleMove);\n\n return () => document.removeEventListener('mousemove', handleMove);\n }, []);\n\n return (\n <Context.Provider value={{\n x, y, active, pressed,\n width: dimensions.current.width,\n height: dimensions.current.height,\n }}\n >\n <div\n ref={ref}\n onMouseEnter={() => setActive(true)}\n onMouseDown={() => setPressed(true)}\n onMouseUp={() => setPressed(false)}\n onMouseLeave={() => {\n setActive(false);\n setPressed(false);\n }}\n className={cn('relative overflow-hidden', !showNativeCursor && 'cursor-none', className)}\n >\n {children}\n </div>\n </Context.Provider>\n );\n}\n\nexport function useCursorTracking(spring?: CursorSpring) {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error('useCursorTracking must be used within a CursorContainer');\n }\n\n const springX = useSpring(context.x, spring ?? {});\n const springY = useSpring(context.y, spring ?? {});\n\n return {\n x: spring ? springX : context.x,\n y: spring ? springY : context.y,\n active: context.active,\n pressed: context.pressed,\n width: context.width,\n height: context.height,\n };\n}\n","import { CursorSpring, useCursorTracking, motionTransitionPresets } from '..';\n\nimport { type ReactNode, useState } from 'react';\nimport { motion, useTransform } from 'motion/react';\n\ninterface Properties {\n children: ReactNode;\n radius?: number;\n spring?: CursorSpring;\n}\n\nexport function CursorClipping(properties: Properties) {\n const { children, radius = 60, spring } = properties;\n\n const { x, y, active, pressed, width, height } = useCursorTracking(spring);\n\n const [entered, setEntered] = useState(false);\n\n if (active && !entered) setEntered(true);\n\n const outerLeft = useTransform(x, v => v - radius);\n const outerTop = useTransform(y, v => v - radius);\n const innerLeft = useTransform(x, v => -(v - radius));\n const innerTop = useTransform(y, v => -(v - radius));\n\n const diameter = radius * 2;\n\n if (!entered) return null;\n\n return (\n <motion.div\n initial={{ scale: 0, opacity: 0 }}\n animate={{ scale: pressed ? 1.15 : 1, opacity: 1 }}\n transition={motionTransitionPresets.spring3}\n className=\"border-neutral-12 pointer-events-none absolute overflow-hidden rounded-full border\"\n style={{\n left: outerLeft,\n top: outerTop,\n width: diameter,\n height: diameter,\n }}\n >\n <motion.div\n className=\"absolute\"\n style={{\n left: innerLeft,\n top: innerTop,\n width: width,\n height: height,\n }}\n >\n {children}\n </motion.div>\n </motion.div>\n );\n}\n","import { type CursorSpring, useCursorTracking } from '..';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { motion, useMotionValue, useSpring, useTransform } from 'motion/react';\nimport { CommonHelpers } from '@digo-labs/common';\n\nconst SNAP_SPRING: CursorSpring = { stiffness: 400, damping: 40 };\n\ninterface Properties {\n spring?: CursorSpring;\n size?: number;\n offset?: number;\n color?: string;\n lineLength?: number;\n borderWidth?: number;\n}\n\nexport function CursorBracket(properties: Properties) {\n const { spring, size = 12, offset = 4, color = 'currentColor', lineLength = 0.2, borderWidth = 1 } = properties;\n\n const { x, y, active } = useCursorTracking(spring);\n\n const sentinelRef = useRef<HTMLDivElement>(null);\n const wasSnapped = useRef(false);\n\n const [entered, setEntered] = useState(false);\n\n if (active && !entered) setEntered(true);\n\n const rawLeft = useMotionValue(0);\n const rawTop = useMotionValue(0);\n const rawWidth = useMotionValue(size);\n const rawHeight = useMotionValue(size);\n\n const boxLeft = useSpring(rawLeft, SNAP_SPRING);\n const boxTop = useSpring(rawTop, SNAP_SPRING);\n const boxWidth = useSpring(rawWidth, SNAP_SPRING);\n const boxHeight = useSpring(rawHeight, SNAP_SPRING);\n\n const cornerW = useTransform(boxWidth, w => CommonHelpers.clamp(w * lineLength, 6, 30));\n const cornerH = useTransform(boxHeight, h => CommonHelpers.clamp(h * lineLength, 6, 30));\n\n useEffect(() => {\n let requestAnimationFrameId: number;\n\n const update = () => {\n const sentinel = sentinelRef.current;\n\n if (sentinel) {\n const containerRect = sentinel.getBoundingClientRect();\n const cursorX = x.get();\n const cursorY = y.get();\n const clientX = containerRect.left + cursorX;\n const clientY = containerRect.top + cursorY;\n\n const element = document.elementFromPoint(clientX, clientY);\n const target = element?.closest('[data-cursor-target]') as HTMLElement | null;\n\n if (target) {\n const targetRect = target.getBoundingClientRect();\n\n rawLeft.set(targetRect.left - containerRect.left - offset);\n rawTop.set(targetRect.top - containerRect.top - offset);\n rawWidth.set(targetRect.width + offset * 2);\n rawHeight.set(targetRect.height + offset * 2);\n\n wasSnapped.current = true;\n } else if (wasSnapped.current) {\n rawLeft.set(cursorX - size / 2);\n rawTop.set(cursorY - size / 2);\n rawWidth.set(size);\n rawHeight.set(size);\n\n wasSnapped.current = false;\n } else {\n rawLeft.set(cursorX - size / 2);\n rawTop.set(cursorY - size / 2);\n rawWidth.set(size);\n rawHeight.set(size);\n }\n }\n\n requestAnimationFrameId = requestAnimationFrame(update);\n };\n\n requestAnimationFrameId = requestAnimationFrame(update);\n\n return () => cancelAnimationFrame(requestAnimationFrameId);\n }, [x, y, size, offset]);\n\n if (!entered) return null;\n\n return (\n <>\n <div ref={sentinelRef} className=\"pointer-events-none absolute inset-0\" />\n\n <motion.div\n className=\"pointer-events-none absolute\"\n initial={{ opacity: 0 }}\n animate={{ opacity: active ? 1 : 0 }}\n transition={{ duration: 0.15 }}\n style={{\n left: boxLeft,\n top: boxTop,\n width: boxWidth,\n height: boxHeight,\n }}\n >\n <motion.div\n className=\"absolute top-0 left-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderTopWidth: borderWidth, borderLeftWidth: borderWidth }}\n />\n <motion.div\n className=\"absolute top-0 right-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderTopWidth: borderWidth, borderRightWidth: borderWidth }}\n />\n <motion.div\n className=\"absolute bottom-0 left-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderBottomWidth: borderWidth, borderLeftWidth: borderWidth }}\n />\n <motion.div\n className=\"absolute right-0 bottom-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderBottomWidth: borderWidth, borderRightWidth: borderWidth }}\n />\n </motion.div>\n </>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { type Color, parseColor } from '..';\nimport { useRef, useCallback, useState, useEffect, type ReactNode } from 'react';\n\nfunction buildBoxShadow(glowColor: Color, intensity: number): string {\n const hsl = glowColor.toFormat('hsl');\n const h = hsl.getChannelValue('hue');\n const s = hsl.getChannelValue('saturation');\n const l = hsl.getChannelValue('lightness');\n const base = `${h}deg ${s}% ${l}%`;\n const layers: [number, number, number, number, number, boolean][] = [\n [0, 0, 0, 1, 100, true],\n [0, 0, 1, 0, 60, true],\n [0, 0, 3, 0, 50, true],\n [0, 0, 6, 0, 40, true],\n [0, 0, 15, 0, 30, true],\n [0, 0, 25, 2, 20, true],\n [0, 0, 50, 2, 10, true],\n [0, 0, 1, 0, 60, false],\n [0, 0, 3, 0, 50, false],\n [0, 0, 6, 0, 40, false],\n [0, 0, 15, 0, 30, false],\n [0, 0, 25, 2, 20, false],\n [0, 0, 50, 2, 10, false],\n ];\n return layers.map(([x, y, blur, spread, alpha, inset]) => {\n const a = Math.min(alpha * intensity, 100);\n return `${inset ? 'inset ' : ''}${x}px ${y}px ${blur}px ${spread}px hsl(${base} / ${a}%)`;\n }).join(', ');\n}\n\nfunction easeOutCubic(x: number) {\n return 1 - Math.pow(1 - x, 3);\n}\nfunction easeInCubic(x: number) {\n return x * x * x;\n}\n\ninterface AnimateOptions {\n start?: number; end?: number; duration?: number; delay?: number;\n ease?: (t: number) => number; onUpdate: (v: number) => void; onEnd?: () => void;\n}\n\nfunction animateValue({ start = 0, end = 100, duration = 1000, delay = 0, ease = easeOutCubic, onUpdate, onEnd }: AnimateOptions) {\n const t0 = performance.now() + delay;\n function tick() {\n const elapsed = performance.now() - t0;\n const t = Math.min(elapsed / duration, 1);\n onUpdate(start + (end - start) * ease(t));\n if (t < 1) requestAnimationFrame(tick);\n else if (onEnd) onEnd();\n }\n setTimeout(() => requestAnimationFrame(tick), delay);\n}\n\nconst GRADIENT_POSITIONS = ['80% 55%', '69% 34%', '8% 6%', '41% 38%', '86% 85%', '82% 18%', '51% 4%'];\nconst COLOR_MAP = [0, 1, 2, 0, 1, 2, 1];\n\nfunction buildMeshGradients(colors: Color[]): string[] {\n const gradients: string[] = [];\n for (let i = 0; i < 7; i++) {\n const c = colors[Math.min(COLOR_MAP[i], colors.length - 1)].toString('css');\n gradients.push(`radial-gradient(at ${GRADIENT_POSITIONS[i]}, ${c} 0px, transparent 50%)`);\n }\n gradients.push(`linear-gradient(${colors[0].toString('css')} 0 100%)`);\n return gradients;\n}\n\ninterface BorderGlowClassNames {\n root?: string;\n content?: string;\n}\n\ninterface Properties {\n children?: ReactNode;\n className?: string;\n classNames?: BorderGlowClassNames;\n edgeSensitivity?: number;\n glowColor?: Color;\n backgroundColor?: string;\n borderRadius?: number;\n glowRadius?: number;\n glowIntensity?: number;\n coneSpread?: number;\n animated?: boolean;\n colors?: Color[];\n fillOpacity?: number;\n}\n\nexport function BorderGlow(properties: Properties) {\n const {\n children,\n className = '',\n classNames,\n edgeSensitivity = 30,\n glowColor = parseColor('hsl(40, 80%, 80%)'),\n backgroundColor = 'var(--color-neutral-1)',\n borderRadius = 28,\n glowRadius = 40,\n glowIntensity = 1.0,\n coneSpread = 25,\n animated = false,\n colors = [parseColor('#c084fc'), parseColor('#f472b6'), parseColor('#38bdf8')],\n fillOpacity = 0.5,\n } = properties;\n\n const cardRef = useRef<HTMLDivElement>(null);\n const [isHovered, setIsHovered] = useState(false);\n const [cursorAngle, setCursorAngle] = useState(45);\n const [edgeProximity, setEdgeProximity] = useState(0);\n const [sweepActive, setSweepActive] = useState(false);\n\n const getCenterOfElement = useCallback((el: HTMLElement) => {\n const { width, height } = el.getBoundingClientRect();\n return [width / 2, height / 2];\n }, []);\n\n const getEdgeProximity = useCallback((el: HTMLElement, x: number, y: number) => {\n const [cx, cy] = getCenterOfElement(el);\n const dx = x - cx;\n const dy = y - cy;\n let kx = Infinity;\n let ky = Infinity;\n if (dx !== 0) kx = cx / Math.abs(dx);\n if (dy !== 0) ky = cy / Math.abs(dy);\n return Math.min(Math.max(1 / Math.min(kx, ky), 0), 1);\n }, [getCenterOfElement]);\n\n const getCursorAngle = useCallback((el: HTMLElement, x: number, y: number) => {\n const [cx, cy] = getCenterOfElement(el);\n const dx = x - cx;\n const dy = y - cy;\n if (dx === 0 && dy === 0) return 0;\n const radians = Math.atan2(dy, dx);\n let degrees = radians * (180 / Math.PI) + 90;\n if (degrees < 0) degrees += 360;\n return degrees;\n }, [getCenterOfElement]);\n\n const handlePointerMove = useCallback((e: React.PointerEvent<HTMLDivElement>) => {\n const card = cardRef.current;\n if (!card) return;\n const rect = card.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n setEdgeProximity(getEdgeProximity(card, x, y));\n setCursorAngle(getCursorAngle(card, x, y));\n }, [getEdgeProximity, getCursorAngle]);\n\n useEffect(() => {\n if (!animated) return;\n const angleStart = 110;\n const angleEnd = 465;\n setSweepActive(true);\n setCursorAngle(angleStart);\n\n animateValue({ duration: 500, onUpdate: v => setEdgeProximity(v / 100) });\n animateValue({\n ease: easeInCubic, duration: 1500, end: 50, onUpdate: (v) => {\n setCursorAngle((angleEnd - angleStart) * (v / 100) + angleStart);\n },\n });\n animateValue({\n ease: easeOutCubic, delay: 1500, duration: 2250, start: 50, end: 100, onUpdate: (v) => {\n setCursorAngle((angleEnd - angleStart) * (v / 100) + angleStart);\n },\n });\n animateValue({\n ease: easeInCubic, delay: 2500, duration: 1500, start: 100, end: 0,\n onUpdate: v => setEdgeProximity(v / 100),\n onEnd: () => setSweepActive(false),\n });\n }, [animated]);\n\n const colorSensitivity = edgeSensitivity + 20;\n const isVisible = isHovered || sweepActive;\n const borderOpacity = isVisible\n ? Math.max(0, (edgeProximity * 100 - colorSensitivity) / (100 - colorSensitivity))\n : 0;\n const glowOpacity = isVisible\n ? Math.max(0, (edgeProximity * 100 - edgeSensitivity) / (100 - edgeSensitivity))\n : 0;\n\n const meshGradients = buildMeshGradients(colors);\n const borderBg = meshGradients.map(g => `${g} border-box`);\n const fillBg = meshGradients.map(g => `${g} padding-box`);\n const angleDeg = `${cursorAngle.toFixed(3)}deg`;\n const backgroundCss = backgroundColor;\n\n return (\n <div\n ref={cardRef}\n onPointerMove={handlePointerMove}\n onPointerEnter={() => setIsHovered(true)}\n onPointerLeave={() => setIsHovered(false)}\n className={cn('relative isolate grid', className, classNames?.root)}\n style={{\n background: backgroundCss,\n borderRadius: `${borderRadius}px`,\n transform: 'translate3d(0, 0, 0.01px)',\n }}\n >\n {/* mesh gradient border */}\n <div\n className=\"absolute inset-0 -z-1 rounded-[inherit]\"\n style={{\n border: '1px solid transparent',\n background: [\n `linear-gradient(${backgroundCss} 0 100%) padding-box`,\n 'linear-gradient(rgb(255 255 255 / 0%) 0% 100%) border-box',\n ...borderBg,\n ].join(', '),\n opacity: borderOpacity,\n maskImage: `conic-gradient(from ${angleDeg} at center, black ${coneSpread}%, transparent ${coneSpread + 15}%, transparent ${100 - coneSpread - 15}%, black ${100 - coneSpread}%)`,\n WebkitMaskImage: `conic-gradient(from ${angleDeg} at center, black ${coneSpread}%, transparent ${coneSpread + 15}%, transparent ${100 - coneSpread - 15}%, black ${100 - coneSpread}%)`,\n transition: isVisible ? 'opacity 0.25s ease-out' : 'opacity 0.75s ease-in-out',\n }}\n />\n\n {/* mesh gradient fill near edges */}\n <div\n className=\"absolute inset-0 -z-1 rounded-[inherit]\"\n style={{\n border: '1px solid transparent',\n background: fillBg.join(', '),\n maskImage: [\n 'linear-gradient(to bottom, black, black)',\n 'radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%)',\n 'radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%)',\n `conic-gradient(from ${angleDeg} at center, transparent 5%, black 15%, black 85%, transparent 95%)`,\n ].join(', '),\n WebkitMaskImage: [\n 'linear-gradient(to bottom, black, black)',\n 'radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%)',\n 'radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%)',\n `conic-gradient(from ${angleDeg} at center, transparent 5%, black 15%, black 85%, transparent 95%)`,\n ].join(', '),\n maskComposite: 'subtract, add, add, add, add, add',\n WebkitMaskComposite: 'source-out, source-over, source-over, source-over, source-over, source-over',\n opacity: borderOpacity * fillOpacity,\n mixBlendMode: 'soft-light',\n transition: isVisible ? 'opacity 0.25s ease-out' : 'opacity 0.75s ease-in-out',\n } as React.CSSProperties}\n />\n\n {/* outer glow */}\n <span\n className=\"pointer-events-none absolute z-1 rounded-[inherit]\"\n style={{\n inset: `${-glowRadius}px`,\n maskImage: `conic-gradient(from ${angleDeg} at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%)`,\n WebkitMaskImage: `conic-gradient(from ${angleDeg} at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%)`,\n opacity: glowOpacity,\n mixBlendMode: 'plus-lighter',\n transition: isVisible ? 'opacity 0.25s ease-out' : 'opacity 0.75s ease-in-out',\n } as React.CSSProperties}\n >\n <span\n className=\"absolute rounded-[inherit]\"\n style={{\n inset: `${glowRadius}px`,\n boxShadow: buildBoxShadow(glowColor, glowIntensity),\n }}\n />\n </span>\n\n <div className={cn('relative z-1 flex flex-col overflow-auto', classNames?.content)}>\n {children}\n </div>\n </div>\n );\n};\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties } from 'react';\nimport { motion, Transition } from 'motion/react';\n\nexport type BorderTrailProps = {\n className?: string;\n size?: number;\n transition?: Transition;\n onAnimationComplete?: () => void;\n style?: CSSProperties;\n};\n\nexport function BorderTrail(properties: BorderTrailProps) {\n const {\n className,\n size = 60,\n transition,\n onAnimationComplete,\n style,\n } = properties;\n\n const defaultTransition: Transition = {\n repeat: Infinity,\n duration: 5,\n ease: 'linear',\n };\n\n return (\n <div className=\"pointer-events-none absolute inset-0 rounded-[inherit] border border-transparent mask-[linear-gradient(transparent,transparent),linear-gradient(#000,#000)] mask-intersect [mask-clip:padding-box,border-box]\">\n <motion.div\n className={cn('absolute aspect-square bg-zinc-500', className)}\n style={{\n width: size,\n offsetPath: `rect(0 auto auto 0 round ${size}px)`,\n ...style,\n }}\n animate={{\n offsetDistance: ['0%', '100%'],\n }}\n transition={transition || defaultTransition}\n onAnimationComplete={onAnimationComplete}\n />\n </div>\n );\n}\n","import { useRef, useEffect } from 'react';\nimport { Renderer, Program, Mesh, Triangle, Vec2 } from 'ogl';\nimport { cn } from '@digo-labs/common';\n\nconst vertex = `\nattribute vec2 position;\nvoid main(){gl_Position=vec4(position,0.0,1.0);}\n`;\n\nconst fragment = `\n#ifdef GL_ES\nprecision lowp float;\n#endif\nuniform vec2 uResolution;\nuniform float uTime;\nuniform float uHueShift;\nuniform float uNoise;\nuniform float uScan;\nuniform float uScanFreq;\nuniform float uWarp;\n#define iTime uTime\n#define iResolution uResolution\n\nvec4 buf[8];\nfloat rand(vec2 c){return fract(sin(dot(c,vec2(12.9898,78.233)))*43758.5453);}\n\nmat3 rgb2yiq=mat3(0.299,0.587,0.114,0.596,-0.274,-0.322,0.211,-0.523,0.312);\nmat3 yiq2rgb=mat3(1.0,0.956,0.621,1.0,-0.272,-0.647,1.0,-1.106,1.703);\n\nvec3 hueShiftRGB(vec3 col,float deg){\n vec3 yiq=rgb2yiq*col;\n float rad=radians(deg);\n float cosh=cos(rad),sinh=sin(rad);\n vec3 yiqShift=vec3(yiq.x,yiq.y*cosh-yiq.z*sinh,yiq.y*sinh+yiq.z*cosh);\n return clamp(yiq2rgb*yiqShift,0.0,1.0);\n}\n\nvec4 sigmoid(vec4 x){return 1./(1.+exp(-x));}\n\nvec4 cppn_fn(vec2 coordinate,float in0,float in1,float in2){\n buf[6]=vec4(coordinate.x,coordinate.y,0.3948333106474662+in0,0.36+in1);\n buf[7]=vec4(0.14+in2,sqrt(coordinate.x*coordinate.x+coordinate.y*coordinate.y),0.,0.);\n buf[0]=mat4(vec4(6.5404263,-3.6126034,0.7590882,-1.13613),vec4(2.4582713,3.1660357,1.2219609,0.06276096),vec4(-5.478085,-6.159632,1.8701609,-4.7742867),vec4(6.039214,-5.542865,-0.90925294,3.251348))*buf[6]+mat4(vec4(0.8473259,-5.722911,3.975766,1.6522468),vec4(-0.24321538,0.5839259,-1.7661959,-5.350116),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(0.21808943,1.1243913,-1.7969975,5.0294676);\n buf[1]=mat4(vec4(-3.3522482,-6.0612736,0.55641043,-4.4719114),vec4(0.8631464,1.7432913,5.643898,1.6106541),vec4(2.4941394,-3.5012043,1.7184316,6.357333),vec4(3.310376,8.209261,1.1355612,-1.165539))*buf[6]+mat4(vec4(5.24046,-13.034365,0.009859298,15.870829),vec4(2.987511,3.129433,-0.89023495,-1.6822904),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(-5.9457836,-6.573602,-0.8812491,1.5436668);\n buf[0]=sigmoid(buf[0]);buf[1]=sigmoid(buf[1]);\n buf[2]=mat4(vec4(-15.219568,8.095543,-2.429353,-1.9381982),vec4(-5.951362,4.3115187,2.6393783,1.274315),vec4(-7.3145227,6.7297835,5.2473326,5.9411426),vec4(5.0796127,8.979051,-1.7278991,-1.158976))*buf[6]+mat4(vec4(-11.967154,-11.608155,6.1486754,11.237008),vec4(2.124141,-6.263192,-1.7050359,-0.7021966),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(-4.17164,-3.2281182,-4.576417,-3.6401186);\n buf[3]=mat4(vec4(3.1832156,-13.738922,1.879223,3.233465),vec4(0.64300746,12.768129,1.9141049,0.50990224),vec4(-0.049295485,4.4807224,1.4733979,1.801449),vec4(5.0039253,13.000481,3.3991797,-4.5561905))*buf[6]+mat4(vec4(-0.1285731,7.720628,-3.1425676,4.742367),vec4(0.6393625,3.714393,-0.8108378,-0.39174938),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(-1.1811101,-21.621881,0.7851888,1.2329718);\n buf[2]=sigmoid(buf[2]);buf[3]=sigmoid(buf[3]);\n buf[4]=mat4(vec4(5.214916,-7.183024,2.7228765,2.6592617),vec4(-5.601878,-25.3591,4.067988,0.4602802),vec4(-10.57759,24.286327,21.102104,37.546658),vec4(4.3024497,-1.9625226,2.3458803,-1.372816))*buf[0]+mat4(vec4(-17.6526,-10.507558,2.2587414,12.462782),vec4(6.265566,-502.75443,-12.642513,0.9112289),vec4(-10.983244,20.741234,-9.701768,-0.7635988),vec4(5.383626,1.4819539,-4.1911616,-4.8444734))*buf[1]+mat4(vec4(12.785233,-16.345072,-0.39901125,1.7955981),vec4(-30.48365,-1.8345358,1.4542528,-1.1118771),vec4(19.872723,-7.337935,-42.941723,-98.52709),vec4(8.337645,-2.7312303,-2.2927687,-36.142323))*buf[2]+mat4(vec4(-16.298317,3.5471997,-0.44300047,-9.444417),vec4(57.5077,-35.609753,16.163465,-4.1534753),vec4(-0.07470326,-3.8656476,-7.0901804,3.1523974),vec4(-12.559385,-7.077619,1.490437,-0.8211543))*buf[3]+vec4(-7.67914,15.927437,1.3207729,-1.6686112);\n buf[5]=mat4(vec4(-1.4109162,-0.372762,-3.770383,-21.367174),vec4(-6.2103205,-9.35908,0.92529047,8.82561),vec4(11.460242,-22.348068,13.625772,-18.693201),vec4(-0.3429052,-3.9905605,-2.4626114,-0.45033523))*buf[0]+mat4(vec4(7.3481627,-4.3661838,-6.3037653,-3.868115),vec4(1.5462853,6.5488915,1.9701879,-0.58291394),vec4(6.5858274,-2.2180402,3.7127688,-1.3730392),vec4(-5.7973905,10.134961,-2.3395722,-5.965605))*buf[1]+mat4(vec4(-2.5132585,-6.6685553,-1.4029363,-0.16285264),vec4(-0.37908727,0.53738135,4.389061,-1.3024765),vec4(-0.70647055,2.0111287,-5.1659346,-3.728635),vec4(-13.562562,10.487719,-0.9173751,-2.6487076))*buf[2]+mat4(vec4(-8.645013,6.5546675,-6.3944063,-5.5933375),vec4(-0.57783127,-1.077275,36.91025,5.736769),vec4(14.283112,3.7146652,7.1452246,-4.5958776),vec4(2.7192075,3.6021907,-4.366337,-2.3653464))*buf[3]+vec4(-5.9000807,-4.329569,1.2427121,8.59503);\n buf[4]=sigmoid(buf[4]);buf[5]=sigmoid(buf[5]);\n buf[6]=mat4(vec4(-1.61102,0.7970257,1.4675229,0.20917463),vec4(-28.793737,-7.1390953,1.5025433,4.656581),vec4(-10.94861,39.66238,0.74318546,-10.095605),vec4(-0.7229728,-1.5483948,0.7301322,2.1687684))*buf[0]+mat4(vec4(3.2547753,21.489103,-1.0194173,-3.3100595),vec4(-3.7316632,-3.3792162,-7.223193,-0.23685838),vec4(13.1804495,0.7916005,5.338587,5.687114),vec4(-4.167605,-17.798311,-6.815736,-1.6451967))*buf[1]+mat4(vec4(0.604885,-7.800309,-7.213122,-2.741014),vec4(-3.522382,-0.12359311,-0.5258442,0.43852118),vec4(9.6752825,-22.853785,2.062431,0.099892326),vec4(-4.3196306,-17.730087,2.5184598,5.30267))*buf[2]+mat4(vec4(-6.545563,-15.790176,-6.0438633,-5.415399),vec4(-43.591583,28.551912,-16.00161,18.84728),vec4(4.212382,8.394307,3.0958717,8.657522),vec4(-5.0237565,-4.450633,-4.4768,-5.5010443))*buf[3]+mat4(vec4(1.6985557,-67.05806,6.897715,1.9004834),vec4(1.8680354,2.3915145,2.5231109,4.081538),vec4(11.158006,1.7294737,2.0738268,7.386411),vec4(-4.256034,-306.24686,8.258898,-17.132736))*buf[4]+mat4(vec4(1.6889864,-4.5852966,3.8534803,-6.3482175),vec4(1.3543309,-1.2640043,9.932754,2.9079645),vec4(-5.2770967,0.07150358,-0.13962056,3.3269649),vec4(28.34703,-4.918278,6.1044083,4.085355))*buf[5]+vec4(6.6818056,12.522166,-3.7075126,-4.104386);\n buf[7]=mat4(vec4(-8.265602,-4.7027016,5.098234,0.7509808),vec4(8.6507845,-17.15949,16.51939,-8.884479),vec4(-4.036479,-2.3946867,-2.6055532,-1.9866527),vec4(-2.2167742,-1.8135649,-5.9759874,4.8846445))*buf[0]+mat4(vec4(6.7790847,3.5076547,-2.8191125,-2.7028968),vec4(-5.743024,-0.27844876,1.4958696,-5.0517144),vec4(13.122226,15.735168,-2.9397483,-4.101023),vec4(-14.375265,-5.030483,-6.2599335,2.9848232))*buf[1]+mat4(vec4(4.0950394,-0.94011575,-5.674733,4.755022),vec4(4.3809423,4.8310084,1.7425908,-3.437416),vec4(2.117492,0.16342592,-104.56341,16.949184),vec4(-5.22543,-2.994248,3.8350096,-1.9364246))*buf[2]+mat4(vec4(-5.900337,1.7946124,-13.604192,-3.8060522),vec4(6.6583457,31.911177,25.164474,91.81147),vec4(11.840538,4.1503043,-0.7314397,6.768467),vec4(-6.3967767,4.034772,6.1714606,-0.32874924))*buf[3]+mat4(vec4(3.4992442,-196.91893,-8.923708,2.8142626),vec4(3.4806502,-3.1846354,5.1725626,5.1804223),vec4(-2.4009497,15.585794,1.2863957,2.0252278),vec4(-71.25271,-62.441242,-8.138444,0.50670296))*buf[4]+mat4(vec4(-12.291733,-11.176166,-7.3474145,4.390294),vec4(10.805477,5.6337385,-0.9385842,-4.7348723),vec4(-12.869276,-7.039391,5.3029537,7.5436664),vec4(1.4593618,8.91898,3.5101583,5.840625))*buf[5]+vec4(2.2415268,-6.705987,-0.98861027,-2.117676);\n buf[6]=sigmoid(buf[6]);buf[7]=sigmoid(buf[7]);\n buf[0]=mat4(vec4(1.6794263,1.3817469,2.9625452,0.),vec4(-1.8834411,-1.4806935,-3.5924516,0.),vec4(-1.3279216,-1.0918057,-2.3124623,0.),vec4(0.2662234,0.23235129,0.44178495,0.))*buf[0]+mat4(vec4(-0.6299101,-0.5945583,-0.9125601,0.),vec4(0.17828953,0.18300213,0.18182953,0.),vec4(-2.96544,-2.5819945,-4.9001055,0.),vec4(1.4195864,1.1868085,2.5176322,0.))*buf[1]+mat4(vec4(-1.2584374,-1.0552157,-2.1688404,0.),vec4(-0.7200217,-0.52666044,-1.438251,0.),vec4(0.15345335,0.15196142,0.272854,0.),vec4(0.945728,0.8861938,1.2766753,0.))*buf[2]+mat4(vec4(-2.4218085,-1.968602,-4.35166,0.),vec4(-22.683098,-18.0544,-41.954372,0.),vec4(0.63792,0.5470648,1.1078634,0.),vec4(-1.5489894,-1.3075932,-2.6444845,0.))*buf[3]+mat4(vec4(-0.49252132,-0.39877754,-0.91366625,0.),vec4(0.95609266,0.7923952,1.640221,0.),vec4(0.30616966,0.15693925,0.8639857,0.),vec4(1.1825981,0.94504964,2.176963,0.))*buf[4]+mat4(vec4(0.35446745,0.3293795,0.59547555,0.),vec4(-0.58784515,-0.48177817,-1.0614829,0.),vec4(2.5271258,1.9991658,4.6846647,0.),vec4(0.13042648,0.08864098,0.30187556,0.))*buf[5]+mat4(vec4(-1.7718065,-1.4033192,-3.3355875,0.),vec4(3.1664357,2.638297,5.378702,0.),vec4(-3.1724713,-2.6107926,-5.549295,0.),vec4(-2.851368,-2.249092,-5.3013067,0.))*buf[6]+mat4(vec4(1.5203838,1.2212278,2.8404984,0.),vec4(1.5210563,1.2651345,2.683903,0.),vec4(2.9789467,2.4364579,5.2347264,0.),vec4(2.2270417,1.8825914,3.8028636,0.))*buf[7]+vec4(-1.5468478,-3.6171484,0.24762098,0.);\n buf[0]=sigmoid(buf[0]);\n return vec4(buf[0].x,buf[0].y,buf[0].z,1.);\n}\n\nvoid mainImage(out vec4 fragColor,in vec2 fragCoord){\n vec2 uv=fragCoord/uResolution.xy*2.-1.;\n uv.y*=-1.;\n uv+=uWarp*vec2(sin(uv.y*6.283+uTime*0.5),cos(uv.x*6.283+uTime*0.5))*0.05;\n fragColor=cppn_fn(uv,0.1*sin(0.3*uTime),0.1*sin(0.69*uTime),0.1*sin(0.44*uTime));\n}\n\nvoid main(){\n vec4 col;mainImage(col,gl_FragCoord.xy);\n col.rgb=hueShiftRGB(col.rgb,uHueShift);\n float scanline_val=sin(gl_FragCoord.y*uScanFreq)*0.5+0.5;\n col.rgb*=1.-(scanline_val*scanline_val)*uScan;\n col.rgb+=(rand(gl_FragCoord.xy+uTime)-0.5)*uNoise;\n gl_FragColor=vec4(clamp(col.rgb,0.0,1.0),1.0);\n}\n`;\n\ninterface Properties {\n hueShift?: number;\n noiseIntensity?: number;\n scanlineIntensity?: number;\n speed?: number;\n scanlineFrequency?: number;\n warpAmount?: number;\n resolutionScale?: number;\n className?: string;\n};\n\nexport function DarkVeil(properties: Properties) {\n const {\n hueShift = 0,\n noiseIntensity = 0,\n scanlineIntensity = 0,\n speed = 0.5,\n scanlineFrequency = 0,\n warpAmount = 0,\n resolutionScale = 1,\n className,\n } = properties;\n\n const ref = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = ref.current as HTMLCanvasElement;\n const parent = canvas.parentElement as HTMLElement;\n\n const renderer = new Renderer({\n dpr: Math.min(window.devicePixelRatio, 2),\n canvas,\n });\n\n const gl = renderer.gl;\n const geometry = new Triangle(gl);\n\n const program = new Program(gl, {\n vertex,\n fragment,\n uniforms: {\n uTime: { value: 0 },\n uResolution: { value: new Vec2() },\n uHueShift: { value: hueShift },\n uNoise: { value: noiseIntensity },\n uScan: { value: scanlineIntensity },\n uScanFreq: { value: scanlineFrequency },\n uWarp: { value: warpAmount },\n },\n });\n\n const mesh = new Mesh(gl, { geometry, program });\n\n const resize = () => {\n const w = parent.clientWidth,\n h = parent.clientHeight;\n renderer.setSize(w * resolutionScale, h * resolutionScale);\n program.uniforms.uResolution.value.set(w, h);\n };\n\n window.addEventListener('resize', resize);\n resize();\n\n const start = performance.now();\n let frame = 0;\n\n const loop = () => {\n program.uniforms.uTime.value = ((performance.now() - start) / 1000) * speed;\n program.uniforms.uHueShift.value = hueShift;\n program.uniforms.uNoise.value = noiseIntensity;\n program.uniforms.uScan.value = scanlineIntensity;\n program.uniforms.uScanFreq.value = scanlineFrequency;\n program.uniforms.uWarp.value = warpAmount;\n renderer.render({ scene: mesh });\n frame = requestAnimationFrame(loop);\n };\n\n loop();\n\n return () => {\n cancelAnimationFrame(frame);\n window.removeEventListener('resize', resize);\n };\n }, [hueShift, noiseIntensity, scanlineIntensity, speed, scanlineFrequency, warpAmount, resolutionScale]);\n return <canvas ref={ref} className={cn('block h-full w-full', className)} />;\n}\n","import { cn } from '@digo-labs/common';\nimport { type Color, parseColor } from '..';\nimport { useEffect, useRef } from 'react';\nimport gsap from 'gsap';\n\nimport {\n Scene,\n OrthographicCamera,\n WebGLRenderer,\n PlaneGeometry,\n Mesh,\n ShaderMaterial,\n Vector2,\n Vector3,\n} from 'three';\n\nconst vertexShader = `\nprecision highp float;\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragmentShader = `\nprecision highp float;\n\nuniform float uProgress;\nuniform vec3 uColor;\nuniform float uNoiseScale;\nuniform float uEdgeSoftness;\nuniform float uAdaptiveSoftness;\nuniform float uDisplacementStrength;\nuniform float uNoiseSpeed;\nuniform float uTime;\nuniform vec2 uResolution;\n\nvec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec2 mod289(vec2 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec3 permute(vec3 x) { return mod289(((x * 34.0) + 1.0) * x); }\n\nfloat snoise(vec2 v) {\n const vec4 C = vec4(\n 0.211324865405187,\n 0.366025403784439,\n -0.577350269189626,\n 0.024390243902439\n );\n\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n\n vec2 i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n i = mod289(i);\n vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));\n\n vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0);\n m = m * m;\n m = m * m;\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n\n m *= 1.79284291400159 - 0.85373472095314 * (a0 * a0 + h * h);\n\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n\n return 130.0 * dot(m, g);\n}\n\nfloat fbm(vec2 uv, float time) {\n float timeOffset = time * uNoiseSpeed;\n float value = 0.0;\n\n value += snoise(uv * uNoiseScale * 1.0 + vec2(0.0, timeOffset)) * 0.5;\n value += snoise(uv * uNoiseScale * 2.0 + vec2(17.3, 31.7 + timeOffset)) * 0.25;\n value += snoise(uv * uNoiseScale * 4.0 + vec2(43.1, 7.9 + timeOffset)) * 0.125;\n value += snoise(uv * uNoiseScale * 8.0 + vec2(91.2, 53.4 + timeOffset)) * 0.0625;\n\n return clamp((value / 0.9375) * 0.5 + 0.5, 0.0, 1.0);\n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy / uResolution;\n\n float totalSoftness = uEdgeSoftness + uAdaptiveSoftness;\n float progress = uProgress * (1.0 + totalSoftness * 2.0) - totalSoftness;\n\n float threshold = fbm(uv, uTime);\n\n float edgeProximity = 1.0 - abs(threshold - progress) / (totalSoftness + 0.001);\n edgeProximity = clamp(edgeProximity, 0.0, 1.0);\n\n float displace = uDisplacementStrength * (1.0 + uAdaptiveSoftness * 3.0);\n\n vec2 displacement = vec2(\n snoise(uv * uNoiseScale * 3.0 + vec2(5.2 + uTime * uNoiseSpeed, 1.3)),\n snoise(uv * uNoiseScale * 3.0 + vec2(9.7, 4.1 + uTime * uNoiseSpeed))\n ) * edgeProximity * displace;\n\n vec2 displacedUv = uv + displacement;\n float displacedThreshold = fbm(displacedUv, uTime);\n\n float alpha = 1.0 - smoothstep(\n progress - totalSoftness,\n progress + totalSoftness,\n displacedThreshold\n );\n\n gl_FragColor = vec4(uColor, alpha);\n}\n`;\n\nfunction colorToVec3(color: Color): Vector3 {\n const rgb = color.toFormat('rgb');\n const r = rgb.getChannelValue('red');\n const g = rgb.getChannelValue('green');\n const b = rgb.getChannelValue('blue');\n\n return new Vector3(r / 255, g / 255, b / 255);\n}\n\ninterface Properties {\n dissolve: boolean;\n color?: Color;\n duration?: number;\n easing?: string;\n noiseScale?: number;\n edgeSoftness?: number;\n displacementStrength?: number;\n noiseSpeed?: number;\n onFinish?: () => void;\n className?: string;\n}\n\nexport function DissolveOverlay(properties: Properties) {\n const {\n dissolve,\n color = parseColor('#000000'),\n duration = 1.2,\n easing = 'power2.out',\n noiseScale = 4.0,\n edgeSoftness = 0.1,\n displacementStrength = 0.03,\n noiseSpeed = 1.0,\n onFinish,\n className,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const progressRef = useRef({ value: 1 });\n const tweenRef = useRef<gsap.core.Tween | null>(null);\n const uniformsRef = useRef<Record<string, { value: unknown; }> | null>(null);\n const isTransitioningRef = useRef(false);\n const onFinishRef = useRef(onFinish);\n\n onFinishRef.current = onFinish;\n\n const adaptiveSoftness = Math.min(0.3 / duration, 0.3);\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const scene = new Scene();\n const camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\n camera.position.z = 1;\n\n const renderer = new WebGLRenderer({ alpha: true, premultipliedAlpha: false });\n renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));\n renderer.setClearColor(0x000000, 0);\n renderer.domElement.style.width = '100%';\n renderer.domElement.style.height = '100%';\n containerRef.current.appendChild(renderer.domElement);\n\n const uniforms = {\n uProgress: { value: 1.0 },\n uColor: { value: colorToVec3(color) },\n uNoiseScale: { value: noiseScale },\n uEdgeSoftness: { value: edgeSoftness },\n uAdaptiveSoftness: { value: adaptiveSoftness },\n uDisplacementStrength: { value: displacementStrength },\n uNoiseSpeed: { value: noiseSpeed },\n uTime: { value: 0.0 },\n uResolution: { value: new Vector2(1, 1) },\n };\n\n uniformsRef.current = uniforms;\n\n const material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n depthWrite: false,\n });\n\n const geometry = new PlaneGeometry(2, 2);\n const mesh = new Mesh(geometry, material);\n\n scene.add(mesh);\n\n const setSize = () => {\n const el = containerRef.current!;\n const width = el.clientWidth || 1;\n const height = el.clientHeight || 1;\n\n renderer.setSize(width, height, false);\n\n const canvasWidth = renderer.domElement.width;\n const canvasHeight = renderer.domElement.height;\n uniforms.uResolution.value.set(canvasWidth, canvasHeight);\n };\n\n setSize();\n\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(setSize) : null;\n\n if (ro && containerRef.current) {\n ro.observe(containerRef.current);\n }\n\n let rafId: number;\n let lastTime: number = performance.now();\n\n const renderLoop = () => {\n const now = performance.now();\n const delta = (now - lastTime) / 1000;\n lastTime = now;\n\n if (isTransitioningRef.current) {\n uniforms.uTime.value += delta;\n }\n\n uniforms.uProgress.value = progressRef.current.value;\n renderer.render(scene, camera);\n rafId = requestAnimationFrame(renderLoop);\n };\n\n rafId = requestAnimationFrame(renderLoop);\n\n return () => {\n cancelAnimationFrame(rafId);\n ro?.disconnect();\n geometry.dispose();\n material.dispose();\n renderer.dispose();\n if (containerRef.current) {\n containerRef.current.removeChild(renderer.domElement);\n }\n };\n }, []);\n\n useEffect(() => {\n if (!uniformsRef.current) return;\n\n (uniformsRef.current.uColor.value as Vector3).copy(colorToVec3(color));\n\n uniformsRef.current.uNoiseScale.value = noiseScale;\n uniformsRef.current.uEdgeSoftness.value = edgeSoftness;\n uniformsRef.current.uAdaptiveSoftness.value = adaptiveSoftness;\n uniformsRef.current.uDisplacementStrength.value = displacementStrength;\n uniformsRef.current.uNoiseSpeed.value = noiseSpeed;\n }, [color, noiseScale, edgeSoftness, adaptiveSoftness, displacementStrength, noiseSpeed]);\n\n useEffect(() => {\n if (tweenRef.current) {\n tweenRef.current.kill();\n tweenRef.current = null;\n }\n\n isTransitioningRef.current = true;\n\n tweenRef.current = gsap.to(progressRef.current, {\n value: dissolve ? 0 : 1,\n duration,\n ease: easing,\n onComplete: () => {\n isTransitioningRef.current = false;\n onFinishRef.current?.();\n },\n });\n\n return () => {\n if (tweenRef.current) {\n tweenRef.current.kill();\n tweenRef.current = null;\n }\n };\n }, [dissolve, duration, easing]);\n\n return (\n <div\n ref={containerRef}\n className={cn('pointer-events-none absolute inset-0', className)}\n />\n );\n}\n","import { cn, CommonHelpers } from '@digo-labs/common';\n\nimport { useRef, useEffect, useCallback, useMemo, CSSProperties } from 'react';\n\nimport { gsap } from 'gsap';\nimport { InertiaPlugin } from 'gsap/InertiaPlugin';\n\ngsap.registerPlugin(InertiaPlugin);\n\nconst throttle = (func: (...args: any[]) => void, limit: number) => {\n let lastCall = 0;\n return function (this: any, ...args: any[]) {\n const now = performance.now();\n if (now - lastCall >= limit) {\n lastCall = now;\n func.apply(this, args);\n }\n };\n};\n\ninterface Dot {\n cx: number;\n cy: number;\n xOffset: number;\n yOffset: number;\n _inertiaApplied: boolean;\n}\n\nexport interface DotGridProperties {\n dotSize?: number;\n gap?: number;\n baseColor?: string;\n activeColor?: string;\n proximity?: number;\n speedTrigger?: number;\n shockRadius?: number;\n shockStrength?: number;\n maxSpeed?: number;\n resistance?: number;\n returnDuration?: number;\n className?: string;\n style?: CSSProperties;\n onClick?: (x: number, y: number) => void;\n onMove?: (x: number, y: number) => void;\n}\n\nexport function DotGrid(properties: DotGridProperties) {\n const {\n dotSize = 16,\n gap = 32,\n baseColor = '#5227FF',\n activeColor = '#5227FF',\n proximity = 150,\n speedTrigger = 100,\n shockRadius = 250,\n shockStrength = 5,\n maxSpeed = 5000,\n resistance = 750,\n returnDuration = 1.5,\n className = '',\n style,\n onClick,\n onMove,\n } = properties;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const dotsRef = useRef<Dot[]>([]);\n const pointerRef = useRef({\n x: 0,\n y: 0,\n vx: 0,\n vy: 0,\n speed: 0,\n lastTime: 0,\n lastX: 0,\n lastY: 0,\n });\n\n const baseRgb = useMemo(() => CommonHelpers.hexToRgb(baseColor), [baseColor]);\n const activeRgb = useMemo(() => CommonHelpers.hexToRgb(activeColor), [activeColor]);\n\n const circlePath = useMemo(() => {\n if (typeof window === 'undefined' || !window.Path2D) return null;\n\n const p = new Path2D();\n p.arc(0, 0, dotSize / 2, 0, Math.PI * 2);\n return p;\n }, [dotSize]);\n\n const buildGrid = useCallback(() => {\n const wrap = wrapperRef.current;\n const canvas = canvasRef.current;\n if (!wrap || !canvas) return;\n\n const { width, height } = wrap.getBoundingClientRect();\n const dpr = window.devicePixelRatio || 1;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n const ctx = canvas.getContext('2d');\n if (ctx) ctx.scale(dpr, dpr);\n\n const cols = Math.floor((width + gap) / (dotSize + gap));\n const rows = Math.floor((height + gap) / (dotSize + gap));\n const cell = dotSize + gap;\n\n const gridW = cell * cols - gap;\n const gridH = cell * rows - gap;\n\n const extraX = width - gridW;\n const extraY = height - gridH;\n\n const startX = extraX / 2 + dotSize / 2;\n const startY = extraY / 2 + dotSize / 2;\n\n const dots: Dot[] = [];\n for (let y = 0; y < rows; y++) {\n for (let x = 0; x < cols; x++) {\n const cx = startX + x * cell;\n const cy = startY + y * cell;\n dots.push({ cx, cy, xOffset: 0, yOffset: 0, _inertiaApplied: false });\n }\n }\n dotsRef.current = dots;\n }, [dotSize, gap]);\n\n useEffect(() => {\n if (!circlePath) return;\n\n let rafId: number;\n const proxSq = proximity * proximity;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n const { x: px, y: py } = pointerRef.current;\n\n for (const dot of dotsRef.current) {\n const ox = dot.cx + dot.xOffset;\n const oy = dot.cy + dot.yOffset;\n const dx = dot.cx - px;\n const dy = dot.cy - py;\n const dsq = dx * dx + dy * dy;\n\n let style = baseColor;\n if (dsq <= proxSq) {\n const dist = Math.sqrt(dsq);\n const t = 1 - dist / proximity;\n const r = Math.round(baseRgb.r + (activeRgb.r - baseRgb.r) * t);\n const g = Math.round(baseRgb.g + (activeRgb.g - baseRgb.g) * t);\n const b = Math.round(baseRgb.b + (activeRgb.b - baseRgb.b) * t);\n style = `rgb(${r},${g},${b})`;\n }\n\n ctx.save();\n ctx.translate(ox, oy);\n ctx.fillStyle = style;\n ctx.fill(circlePath);\n ctx.restore();\n }\n\n rafId = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(rafId);\n }, [proximity, baseColor, activeRgb, baseRgb, circlePath]);\n\n useEffect(() => {\n buildGrid();\n let ro: ResizeObserver | null = null;\n if ('ResizeObserver' in window) {\n ro = new ResizeObserver(buildGrid);\n if (wrapperRef.current) {\n ro.observe(wrapperRef.current);\n }\n } else {\n (window as Window).addEventListener('resize', buildGrid);\n }\n return () => {\n if (ro) ro.disconnect();\n else window.removeEventListener('resize', buildGrid);\n };\n }, [buildGrid]);\n\n useEffect(() => {\n const throttledMove = throttle(onMoveHandler, 50);\n\n window.addEventListener('mousemove', throttledMove, { passive: true });\n window.addEventListener('click', onClickHandler);\n\n return () => {\n window.removeEventListener('mousemove', throttledMove);\n window.removeEventListener('click', onClickHandler);\n };\n }, [maxSpeed, speedTrigger, proximity, resistance, returnDuration, shockRadius, shockStrength]);\n\n function onMoveHandler(e: MouseEvent) {\n const now = performance.now();\n const pr = pointerRef.current;\n const dt = pr.lastTime ? now - pr.lastTime : 16;\n const dx = e.clientX - pr.lastX;\n const dy = e.clientY - pr.lastY;\n let vx = (dx / dt) * 1000;\n let vy = (dy / dt) * 1000;\n let speed = Math.hypot(vx, vy);\n if (speed > maxSpeed) {\n const scale = maxSpeed / speed;\n vx *= scale;\n vy *= scale;\n speed = maxSpeed;\n }\n pr.lastTime = now;\n pr.lastX = e.clientX;\n pr.lastY = e.clientY;\n pr.vx = vx;\n pr.vy = vy;\n pr.speed = speed;\n\n const rect = canvasRef.current!.getBoundingClientRect();\n pr.x = e.clientX - rect.left;\n pr.y = e.clientY - rect.top;\n\n if (onMove) {\n const normalizedX = pr.x / rect.width;\n const normalizedY = pr.y / rect.height;\n\n onMove(normalizedX, normalizedY);\n }\n\n for (const dot of dotsRef.current) {\n const dist = Math.hypot(dot.cx - pr.x, dot.cy - pr.y);\n if (speed > speedTrigger && dist < proximity && !dot._inertiaApplied) {\n dot._inertiaApplied = true;\n gsap.killTweensOf(dot);\n const pushX = dot.cx - pr.x + vx * 0.005;\n const pushY = dot.cy - pr.y + vy * 0.005;\n gsap.to(dot, {\n inertia: { xOffset: pushX, yOffset: pushY, resistance },\n onComplete: () => {\n gsap.to(dot, {\n xOffset: 0,\n yOffset: 0,\n duration: returnDuration,\n ease: 'elastic.out(1,0.75)',\n });\n dot._inertiaApplied = false;\n },\n });\n }\n }\n };\n\n function onClickHandler(e: MouseEvent) {\n const rect = canvasRef.current!.getBoundingClientRect();\n const cx = e.clientX - rect.left;\n const cy = e.clientY - rect.top;\n\n if (onClick) {\n const normalizedX = cx / rect.width;\n const normalizedY = cy / rect.height;\n\n onClick(normalizedX, normalizedY);\n }\n\n for (const dot of dotsRef.current) {\n const dist = Math.hypot(dot.cx - cx, dot.cy - cy);\n if (dist < shockRadius && !dot._inertiaApplied) {\n dot._inertiaApplied = true;\n gsap.killTweensOf(dot);\n const falloff = Math.max(0, 1 - dist / shockRadius);\n const pushX = (dot.cx - cx) * shockStrength * falloff;\n const pushY = (dot.cy - cy) * shockStrength * falloff;\n gsap.to(dot, {\n inertia: { xOffset: pushX, yOffset: pushY, resistance },\n onComplete: () => {\n gsap.to(dot, {\n xOffset: 0,\n yOffset: 0,\n duration: returnDuration,\n ease: 'elastic.out(1,0.75)',\n });\n dot._inertiaApplied = false;\n },\n });\n }\n }\n };\n\n return (\n <section className={cn('relative flex h-full w-full items-center justify-center p-4', className)} style={style}>\n <div ref={wrapperRef} className=\"relative h-full w-full\">\n <canvas ref={canvasRef} className=\"pointer-events-none absolute inset-0 h-full w-full\" />\n </div>\n </section>\n );\n};\n","import { CSSProperties, ReactNode } from 'react';\n\nimport { motion } from 'motion/react';\n\nimport { cn } from '@digo-labs/common';\n\ninterface Properties {\n children: ReactNode;\n className?: string;\n contentClasses?: string;\n cursor?: boolean;\n style?: CSSProperties;\n}\n\nexport function DraggableContainer(properties: Properties) {\n const {\n children,\n className,\n contentClasses,\n style,\n cursor = false,\n } = properties;\n\n return (\n\n <motion.div\n className={cn('relative grid outline-none', cursor && 'cursor-grab active:cursor-grabbing', className)}\n whileDrag={{ scale: 1.0 }}\n whileHover={{ scale: 1.0 }}\n whileTap={{ scale: 1.0 }}\n drag={true}\n dragTransition={{\n bounceStiffness: 300,\n bounceDamping: 10,\n power: 0.3,\n }}\n dragElastic={0.3}\n dragConstraints={{ left: 0, right: 0, top: 0, bottom: 0 }}\n >\n\n <div className={cn('relative z-30 grid', contentClasses)} style={style}>\n {children}\n </div>\n </motion.div>\n\n );\n};\n","import { cn } from '@digo-labs/common';\nimport { Renderer, Program, Mesh, Color as OGLColor, Triangle } from 'ogl';\nimport { type Color, parseColor } from '..';\nimport React, { useEffect, useRef, useMemo, useCallback } from 'react';\n\ntype Vec2 = [number, number];\n\ninterface FaultyTerminalProperties extends React.HTMLAttributes<HTMLDivElement> {\n scale?: number;\n gridMul?: Vec2;\n digitSize?: number;\n timeScale?: number;\n pause?: boolean;\n scanlineIntensity?: number;\n glitchAmount?: number;\n flickerAmount?: number;\n noiseAmp?: number;\n chromaticAberration?: number;\n dither?: number | boolean;\n curvature?: number;\n tint?: Color;\n mouseReact?: boolean;\n mouseStrength?: number;\n dpr?: number;\n pageLoadAnimation?: boolean;\n brightness?: number;\n}\n\nconst vertexShader = `\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = vec4(position, 0.0, 1.0);\n}\n`;\n\nconst fragmentShader = `\nprecision mediump float;\n\nvarying vec2 vUv;\n\nuniform float iTime;\nuniform vec3 iResolution;\nuniform float uScale;\n\nuniform vec2 uGridMul;\nuniform float uDigitSize;\nuniform float uScanlineIntensity;\nuniform float uGlitchAmount;\nuniform float uFlickerAmount;\nuniform float uNoiseAmp;\nuniform float uChromaticAberration;\nuniform float uDither;\nuniform float uCurvature;\nuniform vec3 uTint;\nuniform vec2 uMouse;\nuniform float uMouseStrength;\nuniform float uUseMouse;\nuniform float uPageLoadProgress;\nuniform float uUsePageLoadAnimation;\nuniform float uBrightness;\n\nfloat time;\n\nfloat hash21(vec2 p){\n p = fract(p * 234.56);\n p += dot(p, p + 34.56);\n return fract(p.x * p.y);\n}\n\nfloat noise(vec2 p)\n{\n return sin(p.x * 10.0) * sin(p.y * (3.0 + sin(time * 0.090909))) + 0.2; \n}\n\nmat2 rotate(float angle)\n{\n float c = cos(angle);\n float s = sin(angle);\n return mat2(c, -s, s, c);\n}\n\nfloat fbm(vec2 p)\n{\n p *= 1.1;\n float f = 0.0;\n float amp = 0.5 * uNoiseAmp;\n \n mat2 modify0 = rotate(time * 0.02);\n f += amp * noise(p);\n p = modify0 * p * 2.0;\n amp *= 0.454545;\n \n mat2 modify1 = rotate(time * 0.02);\n f += amp * noise(p);\n p = modify1 * p * 2.0;\n amp *= 0.454545;\n \n mat2 modify2 = rotate(time * 0.08);\n f += amp * noise(p);\n \n return f;\n}\n\nfloat pattern(vec2 p, out vec2 q, out vec2 r) {\n vec2 offset1 = vec2(1.0);\n vec2 offset0 = vec2(0.0);\n mat2 rot01 = rotate(0.1 * time);\n mat2 rot1 = rotate(0.1);\n \n q = vec2(fbm(p + offset1), fbm(rot01 * p + offset1));\n r = vec2(fbm(rot1 * q + offset0), fbm(q + offset0));\n return fbm(p + r);\n}\n\nfloat digit(vec2 p){\n vec2 grid = uGridMul * 15.0;\n vec2 s = floor(p * grid) / grid;\n p = p * grid;\n vec2 q, r;\n float intensity = pattern(s * 0.1, q, r) * 1.3 - 0.03;\n \n if(uUseMouse > 0.5){\n vec2 mouseWorld = uMouse * uScale;\n float distToMouse = distance(s, mouseWorld);\n float mouseInfluence = exp(-distToMouse * 8.0) * uMouseStrength * 10.0;\n intensity += mouseInfluence;\n \n float ripple = sin(distToMouse * 20.0 - iTime * 5.0) * 0.1 * mouseInfluence;\n intensity += ripple;\n }\n \n if(uUsePageLoadAnimation > 0.5){\n float cellRandom = fract(sin(dot(s, vec2(12.9898, 78.233))) * 43758.5453);\n float cellDelay = cellRandom * 0.8;\n float cellProgress = clamp((uPageLoadProgress - cellDelay) / 0.2, 0.0, 1.0);\n \n float fadeAlpha = smoothstep(0.0, 1.0, cellProgress);\n intensity *= fadeAlpha;\n }\n \n p = fract(p);\n p *= uDigitSize;\n \n float px5 = p.x * 5.0;\n float py5 = (1.0 - p.y) * 5.0;\n float x = fract(px5);\n float y = fract(py5);\n \n float i = floor(py5) - 2.0;\n float j = floor(px5) - 2.0;\n float n = i * i + j * j;\n float f = n * 0.0625;\n \n float isOn = step(0.1, intensity - f);\n float brightness = isOn * (0.2 + y * 0.8) * (0.75 + x * 0.25);\n \n return step(0.0, p.x) * step(p.x, 1.0) * step(0.0, p.y) * step(p.y, 1.0) * brightness;\n}\n\nfloat onOff(float a, float b, float c)\n{\n return step(c, sin(iTime + a * cos(iTime * b))) * uFlickerAmount;\n}\n\nfloat displace(vec2 look)\n{\n float y = look.y - mod(iTime * 0.25, 1.0);\n float window = 1.0 / (1.0 + 50.0 * y * y);\n return sin(look.y * 20.0 + iTime) * 0.0125 * onOff(4.0, 2.0, 0.8) * (1.0 + cos(iTime * 60.0)) * window;\n}\n\nvec3 getColor(vec2 p){\n \n float bar = step(mod(p.y + time * 20.0, 1.0), 0.2) * 0.4 + 1.0;\n bar *= uScanlineIntensity;\n \n float displacement = displace(p);\n p.x += displacement;\n\n if (uGlitchAmount != 1.0) {\n float extra = displacement * (uGlitchAmount - 1.0);\n p.x += extra;\n }\n\n float middle = digit(p);\n \n const float off = 0.002;\n float sum = digit(p + vec2(-off, -off)) + digit(p + vec2(0.0, -off)) + digit(p + vec2(off, -off)) +\n digit(p + vec2(-off, 0.0)) + digit(p + vec2(0.0, 0.0)) + digit(p + vec2(off, 0.0)) +\n digit(p + vec2(-off, off)) + digit(p + vec2(0.0, off)) + digit(p + vec2(off, off));\n \n vec3 baseColor = vec3(0.9) * middle + sum * 0.1 * vec3(1.0) * bar;\n return baseColor;\n}\n\nvec2 barrel(vec2 uv){\n vec2 c = uv * 2.0 - 1.0;\n float r2 = dot(c, c);\n c *= 1.0 + uCurvature * r2;\n return c * 0.5 + 0.5;\n}\n\nvoid main() {\n time = iTime * 0.333333;\n vec2 uv = vUv;\n\n if(uCurvature != 0.0){\n uv = barrel(uv);\n }\n \n vec2 p = uv * uScale;\n vec3 col = getColor(p);\n\n if(uChromaticAberration != 0.0){\n vec2 ca = vec2(uChromaticAberration) / iResolution.xy;\n col.r = getColor(p + ca).r;\n col.b = getColor(p - ca).b;\n }\n\n col *= uTint;\n col *= uBrightness;\n\n if(uDither > 0.0){\n float rnd = hash21(gl_FragCoord.xy);\n col += (rnd - 0.5) * (uDither * 0.003922);\n }\n\n gl_FragColor = vec4(col, 1.0);\n}\n`;\n\nfunction colorToRgb(color: Color): [number, number, number] {\n const rgb = color.toFormat('rgb');\n return [\n rgb.getChannelValue('red') / 255,\n rgb.getChannelValue('green') / 255,\n rgb.getChannelValue('blue') / 255,\n ];\n}\n\nexport function FaultyTerminal(properties: FaultyTerminalProperties) {\n const {\n scale = 1,\n gridMul = [2, 1],\n digitSize = 1.5,\n timeScale = 0.3,\n pause = false,\n scanlineIntensity = 0.3,\n glitchAmount = 1,\n flickerAmount = 1,\n noiseAmp = 1,\n chromaticAberration = 0,\n dither = 0,\n curvature = 0.2,\n tint = parseColor('#ffffff'),\n mouseReact = true,\n mouseStrength = 0.2,\n dpr = Math.min(window.devicePixelRatio || 1, 2),\n pageLoadAnimation = true,\n brightness = 1,\n className,\n style,\n ...rest\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const programRef = useRef<Program>(null);\n const rendererRef = useRef<Renderer>(null);\n const mouseRef = useRef({ x: 0.5, y: 0.5 });\n const smoothMouseRef = useRef({ x: 0.5, y: 0.5 });\n const frozenTimeRef = useRef(0);\n const rafRef = useRef<number>(0);\n const loadAnimationStartRef = useRef<number>(0);\n const timeOffsetRef = useRef<number>(Math.random() * 100);\n const pauseRef = useRef(pause);\n const timeScaleRef = useRef(timeScale);\n const mouseReactRef = useRef(mouseReact);\n const pageLoadAnimationRef = useRef(pageLoadAnimation);\n\n pauseRef.current = pause;\n timeScaleRef.current = timeScale;\n mouseReactRef.current = mouseReact;\n pageLoadAnimationRef.current = pageLoadAnimation;\n\n const tintVec = useMemo(() => colorToRgb(tint), [tint]);\n\n const ditherValue = useMemo(() => (typeof dither === 'boolean' ? (dither ? 1 : 0) : dither), [dither]);\n\n const handleMouseMove = useCallback((e: MouseEvent) => {\n const ctn = containerRef.current;\n if (!ctn) return;\n const rect = ctn.getBoundingClientRect();\n const x = (e.clientX - rect.left) / rect.width;\n const y = 1 - (e.clientY - rect.top) / rect.height;\n mouseRef.current = { x, y };\n }, []);\n\n useEffect(() => {\n const ctn = containerRef.current;\n if (!ctn) return;\n\n const renderer = new Renderer({ dpr });\n rendererRef.current = renderer;\n const gl = renderer.gl;\n gl.clearColor(0, 0, 0, 1);\n\n const geometry = new Triangle(gl);\n\n const program = new Program(gl, {\n vertex: vertexShader,\n fragment: fragmentShader,\n uniforms: {\n iTime: { value: 0 },\n iResolution: {\n value: new OGLColor(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height),\n },\n uScale: { value: scale },\n uGridMul: { value: new Float32Array(gridMul) },\n uDigitSize: { value: digitSize },\n uScanlineIntensity: { value: scanlineIntensity },\n uGlitchAmount: { value: glitchAmount },\n uFlickerAmount: { value: flickerAmount },\n uNoiseAmp: { value: noiseAmp },\n uChromaticAberration: { value: chromaticAberration },\n uDither: { value: ditherValue },\n uCurvature: { value: curvature },\n uTint: { value: new OGLColor(tintVec[0], tintVec[1], tintVec[2]) },\n uMouse: { value: new Float32Array([0.5, 0.5]) },\n uMouseStrength: { value: mouseStrength },\n uUseMouse: { value: mouseReact ? 1 : 0 },\n uPageLoadProgress: { value: pageLoadAnimation ? 0 : 1 },\n uUsePageLoadAnimation: { value: pageLoadAnimation ? 1 : 0 },\n uBrightness: { value: brightness },\n },\n });\n programRef.current = program;\n\n const mesh = new Mesh(gl, { geometry, program });\n\n function resize() {\n if (!ctn || !renderer) return;\n renderer.setSize(ctn.offsetWidth, ctn.offsetHeight);\n program.uniforms.iResolution.value = new OGLColor(\n gl.canvas.width,\n gl.canvas.height,\n gl.canvas.width / gl.canvas.height,\n );\n }\n\n const resizeObserver = new ResizeObserver(() => resize());\n resizeObserver.observe(ctn);\n resize();\n\n const update = (t: number) => {\n rafRef.current = requestAnimationFrame(update);\n\n if (pageLoadAnimationRef.current && loadAnimationStartRef.current === 0) {\n loadAnimationStartRef.current = t;\n }\n\n if (!pauseRef.current) {\n const elapsed = (t * 0.001 + timeOffsetRef.current) * timeScaleRef.current;\n program.uniforms.iTime.value = elapsed;\n frozenTimeRef.current = elapsed;\n } else {\n program.uniforms.iTime.value = frozenTimeRef.current;\n }\n\n if (pageLoadAnimationRef.current && loadAnimationStartRef.current > 0) {\n const animationDuration = 2000;\n const animationElapsed = t - loadAnimationStartRef.current;\n const progress = Math.min(animationElapsed / animationDuration, 1);\n program.uniforms.uPageLoadProgress.value = progress;\n }\n\n if (mouseReactRef.current) {\n const dampingFactor = 0.08;\n const smoothMouse = smoothMouseRef.current;\n const mouse = mouseRef.current;\n smoothMouse.x += (mouse.x - smoothMouse.x) * dampingFactor;\n smoothMouse.y += (mouse.y - smoothMouse.y) * dampingFactor;\n\n const mouseUniform = program.uniforms.uMouse.value as Float32Array;\n mouseUniform[0] = smoothMouse.x;\n mouseUniform[1] = smoothMouse.y;\n }\n\n renderer.render({ scene: mesh });\n };\n rafRef.current = requestAnimationFrame(update);\n ctn.appendChild(gl.canvas);\n\n ctn.addEventListener('mousemove', handleMouseMove);\n\n return () => {\n cancelAnimationFrame(rafRef.current);\n resizeObserver.disconnect();\n ctn.removeEventListener('mousemove', handleMouseMove);\n if (gl.canvas.parentElement === ctn) ctn.removeChild(gl.canvas);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n loadAnimationStartRef.current = 0;\n timeOffsetRef.current = Math.random() * 100;\n };\n }, [dpr]);\n\n useEffect(() => {\n const u = programRef.current?.uniforms;\n if (!u) return;\n\n u.uScale.value = scale;\n u.uDigitSize.value = digitSize;\n u.uScanlineIntensity.value = scanlineIntensity;\n u.uGlitchAmount.value = glitchAmount;\n u.uFlickerAmount.value = flickerAmount;\n u.uNoiseAmp.value = noiseAmp;\n u.uChromaticAberration.value = chromaticAberration;\n u.uDither.value = ditherValue;\n u.uCurvature.value = curvature;\n u.uMouseStrength.value = mouseStrength;\n u.uUseMouse.value = mouseReact ? 1 : 0;\n u.uBrightness.value = brightness;\n\n const tintUniform = u.uTint.value as OGLColor;\n tintUniform.r = tintVec[0];\n tintUniform.g = tintVec[1];\n tintUniform.b = tintVec[2];\n\n const gridUniform = u.uGridMul.value as Float32Array;\n gridUniform[0] = gridMul[0];\n gridUniform[1] = gridMul[1];\n }, [scale, gridMul, digitSize, scanlineIntensity, glitchAmount, flickerAmount, noiseAmp, chromaticAberration, ditherValue, curvature, tintVec, mouseReact, mouseStrength, brightness]);\n\n return (\n <div ref={containerRef} className={cn('relative h-full w-full overflow-hidden', className)} style={style} {...rest} />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { useEffect, useRef } from 'react';\n\nimport { Scene, OrthographicCamera, WebGLRenderer, PlaneGeometry, Mesh, ShaderMaterial, Vector3, Vector2, Clock } from 'three';\n\nconst vertexShader = `\nprecision highp float;\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragmentShader = `\nprecision highp float;\n\nuniform float iTime;\nuniform vec3 iResolution;\nuniform float animationSpeed;\n\nuniform bool enableTop;\nuniform bool enableMiddle;\nuniform bool enableBottom;\n\nuniform int topLineCount;\nuniform int middleLineCount;\nuniform int bottomLineCount;\n\nuniform float topLineDistance;\nuniform float middleLineDistance;\nuniform float bottomLineDistance;\n\nuniform vec3 topWavePosition;\nuniform vec3 middleWavePosition;\nuniform vec3 bottomWavePosition;\n\nuniform vec2 iMouse;\nuniform bool interactive;\nuniform float bendRadius;\nuniform float bendStrength;\nuniform float bendInfluence;\n\nuniform bool parallax;\nuniform float parallaxStrength;\nuniform vec2 parallaxOffset;\n\nuniform vec3 lineGradient[8];\nuniform int lineGradientCount;\n\nconst vec3 BLACK = vec3(0.0);\nconst vec3 PINK = vec3(233.0, 71.0, 245.0) / 255.0;\nconst vec3 BLUE = vec3(47.0, 75.0, 162.0) / 255.0;\n\nmat2 rotate(float r) {\n return mat2(cos(r), sin(r), -sin(r), cos(r));\n}\n\nvec3 background_color(vec2 uv) {\n vec3 col = vec3(0.0);\n\n float y = sin(uv.x - 0.2) * 0.3 - 0.1;\n float m = uv.y - y;\n\n col += mix(BLUE, BLACK, smoothstep(0.0, 1.0, abs(m)));\n col += mix(PINK, BLACK, smoothstep(0.0, 1.0, abs(m - 0.8)));\n return col * 0.5;\n}\n\nvec3 getLineColor(float t, vec3 baseColor) {\n if (lineGradientCount <= 0) {\n return baseColor;\n }\n\n vec3 gradientColor;\n \n if (lineGradientCount == 1) {\n gradientColor = lineGradient[0];\n } else {\n float clampedT = clamp(t, 0.0, 0.9999);\n float scaled = clampedT * float(lineGradientCount - 1);\n int idx = int(floor(scaled));\n float f = fract(scaled);\n int idx2 = min(idx + 1, lineGradientCount - 1);\n\n vec3 c1 = lineGradient[idx];\n vec3 c2 = lineGradient[idx2];\n \n gradientColor = mix(c1, c2, f);\n }\n \n return gradientColor * 0.5;\n}\n\n float wave(vec2 uv, float offset, vec2 screenUv, vec2 mouseUv, bool shouldBend) {\n float time = iTime * animationSpeed;\n\n float x_offset = offset;\n float x_movement = time * 0.1;\n float amp = sin(offset + time * 0.2) * 0.3;\n float y = sin(uv.x + x_offset + x_movement) * amp;\n\n if (shouldBend) {\n vec2 d = screenUv - mouseUv;\n float influence = exp(-dot(d, d) * bendRadius); // radial falloff around cursor\n float bendOffset = (mouseUv.y - screenUv.y) * influence * bendStrength * bendInfluence;\n y += bendOffset;\n }\n\n float m = uv.y - y;\n return 0.0175 / max(abs(m) + 0.01, 1e-3) + 0.01;\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 baseUv = (2.0 * fragCoord - iResolution.xy) / iResolution.y;\n baseUv.y *= -1.0;\n \n if (parallax) {\n baseUv += parallaxOffset;\n }\n\n vec3 col = vec3(0.0);\n\n vec3 b = lineGradientCount > 0 ? vec3(0.0) : background_color(baseUv);\n\n vec2 mouseUv = vec2(0.0);\n if (interactive) {\n mouseUv = (2.0 * iMouse - iResolution.xy) / iResolution.y;\n mouseUv.y *= -1.0;\n }\n \n if (enableBottom) {\n for (int i = 0; i < bottomLineCount; ++i) {\n float fi = float(i);\n float t = fi / max(float(bottomLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = bottomWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n col += lineCol * wave(\n ruv + vec2(bottomLineDistance * fi + bottomWavePosition.x, bottomWavePosition.y),\n 1.5 + 0.2 * fi,\n baseUv,\n mouseUv,\n interactive\n ) * 0.2;\n }\n }\n\n if (enableMiddle) {\n for (int i = 0; i < middleLineCount; ++i) {\n float fi = float(i);\n float t = fi / max(float(middleLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = middleWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n col += lineCol * wave(\n ruv + vec2(middleLineDistance * fi + middleWavePosition.x, middleWavePosition.y),\n 2.0 + 0.15 * fi,\n baseUv,\n mouseUv,\n interactive\n );\n }\n }\n\n if (enableTop) {\n for (int i = 0; i < topLineCount; ++i) {\n float fi = float(i);\n float t = fi / max(float(topLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = topWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n ruv.x *= -1.0;\n col += lineCol * wave(\n ruv + vec2(topLineDistance * fi + topWavePosition.x, topWavePosition.y),\n 1.0 + 0.2 * fi,\n baseUv,\n mouseUv,\n interactive\n ) * 0.1;\n }\n }\n\n fragColor = vec4(col, 1.0);\n}\n\nvoid main() {\n vec4 color = vec4(0.0);\n mainImage(color, gl_FragCoord.xy);\n gl_FragColor = color;\n}\n`;\n\nconst MAX_GRADIENT_STOPS = 8;\n\ntype WavePosition = {\n x: number;\n y: number;\n rotate: number;\n};\n\ntype Properties = {\n linesGradient?: string[];\n enabledWaves?: Array<'top' | 'middle' | 'bottom'>;\n lineCount?: number | number[];\n lineDistance?: number | number[];\n topWavePosition?: WavePosition;\n middleWavePosition?: WavePosition;\n bottomWavePosition?: WavePosition;\n animationSpeed?: number;\n interactive?: boolean;\n bendRadius?: number;\n bendStrength?: number;\n mouseDamping?: number;\n parallax?: boolean;\n parallaxStrength?: number;\n mixBlendMode?: React.CSSProperties['mixBlendMode'];\n className?: string;\n};\n\nexport function FloatingLines(properties: Properties) {\n const {\n linesGradient,\n enabledWaves = ['top', 'middle', 'bottom'],\n lineCount = [6],\n lineDistance = [5],\n topWavePosition,\n middleWavePosition,\n bottomWavePosition = { x: 2.0, y: -0.7, rotate: -1 },\n animationSpeed = 1,\n interactive = true,\n bendRadius = 5.0,\n bendStrength = -0.5,\n mouseDamping = 0.05,\n parallax = true,\n parallaxStrength = 0.2,\n mixBlendMode = 'screen',\n className,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n const targetMouseRef = useRef<Vector2>(new Vector2(-1000, -1000));\n const currentMouseRef = useRef<Vector2>(new Vector2(-1000, -1000));\n const targetInfluenceRef = useRef<number>(0);\n const currentInfluenceRef = useRef<number>(0);\n const targetParallaxRef = useRef<Vector2>(new Vector2(0, 0));\n const currentParallaxRef = useRef<Vector2>(new Vector2(0, 0));\n\n const topLineCount = enabledWaves.includes('top') ? getLineCount('top') : 0;\n const middleLineCount = enabledWaves.includes('middle') ? getLineCount('middle') : 0;\n const bottomLineCount = enabledWaves.includes('bottom') ? getLineCount('bottom') : 0;\n\n const topLineDistance = enabledWaves.includes('top') ? getLineDistance('top') * 0.01 : 0.01;\n const middleLineDistance = enabledWaves.includes('middle') ? getLineDistance('middle') * 0.01 : 0.01;\n const bottomLineDistance = enabledWaves.includes('bottom') ? getLineDistance('bottom') * 0.01 : 0.01;\n\n function getLineCount(waveType: 'top' | 'middle' | 'bottom'): number {\n if (typeof lineCount === 'number') return lineCount;\n if (!enabledWaves.includes(waveType)) return 0;\n const index = enabledWaves.indexOf(waveType);\n return lineCount[index] ?? 6;\n };\n\n function getLineDistance(waveType: 'top' | 'middle' | 'bottom'): number {\n if (typeof lineDistance === 'number') return lineDistance;\n if (!enabledWaves.includes(waveType)) return 0.1;\n const index = enabledWaves.indexOf(waveType);\n return lineDistance[index] ?? 0.1;\n };\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const scene = new Scene();\n\n const camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\n camera.position.z = 1;\n\n const renderer = new WebGLRenderer({ antialias: true, alpha: false });\n renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));\n renderer.domElement.style.width = '100%';\n renderer.domElement.style.height = '100%';\n containerRef.current.appendChild(renderer.domElement);\n\n const uniforms = {\n iTime: { value: 0 },\n iResolution: { value: new Vector3(1, 1, 1) },\n animationSpeed: { value: animationSpeed },\n\n enableTop: { value: enabledWaves.includes('top') },\n enableMiddle: { value: enabledWaves.includes('middle') },\n enableBottom: { value: enabledWaves.includes('bottom') },\n\n topLineCount: { value: topLineCount },\n middleLineCount: { value: middleLineCount },\n bottomLineCount: { value: bottomLineCount },\n\n topLineDistance: { value: topLineDistance },\n middleLineDistance: { value: middleLineDistance },\n bottomLineDistance: { value: bottomLineDistance },\n\n topWavePosition: {\n value: new Vector3(topWavePosition?.x ?? 10.0, topWavePosition?.y ?? 0.5, topWavePosition?.rotate ?? -0.4),\n },\n middleWavePosition: {\n value: new Vector3(\n middleWavePosition?.x ?? 5.0,\n middleWavePosition?.y ?? 0.0,\n middleWavePosition?.rotate ?? 0.2,\n ),\n },\n bottomWavePosition: {\n value: new Vector3(\n bottomWavePosition?.x ?? 2.0,\n bottomWavePosition?.y ?? -0.7,\n bottomWavePosition?.rotate ?? 0.4,\n ),\n },\n\n iMouse: { value: new Vector2(-1000, -1000) },\n interactive: { value: interactive },\n bendRadius: { value: bendRadius },\n bendStrength: { value: bendStrength },\n bendInfluence: { value: 0 },\n\n parallax: { value: parallax },\n parallaxStrength: { value: parallaxStrength },\n parallaxOffset: { value: new Vector2(0, 0) },\n\n lineGradient: {\n value: Array.from({ length: MAX_GRADIENT_STOPS }, () => new Vector3(1, 1, 1)),\n },\n lineGradientCount: { value: 0 },\n };\n\n if (linesGradient && linesGradient.length > 0) {\n const stops = linesGradient.slice(0, MAX_GRADIENT_STOPS);\n uniforms.lineGradientCount.value = stops.length;\n\n stops.forEach((hex, i) => {\n const color = hexToVec3(hex);\n uniforms.lineGradient.value[i].set(color.x, color.y, color.z);\n });\n }\n\n const material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n });\n\n const geometry = new PlaneGeometry(2, 2);\n const mesh = new Mesh(geometry, material);\n scene.add(mesh);\n\n const clock = new Clock();\n\n const setSize = () => {\n const el = containerRef.current!;\n const width = el.clientWidth || 1;\n const height = el.clientHeight || 1;\n\n renderer.setSize(width, height, false);\n\n const canvasWidth = renderer.domElement.width;\n const canvasHeight = renderer.domElement.height;\n uniforms.iResolution.value.set(canvasWidth, canvasHeight, 1);\n };\n\n setSize();\n\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(setSize) : null;\n\n if (ro && containerRef.current) {\n ro.observe(containerRef.current);\n }\n\n const handlePointerMove = (event: PointerEvent) => {\n const rect = renderer.domElement.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n const dpr = renderer.getPixelRatio();\n\n targetMouseRef.current.set(x * dpr, (rect.height - y) * dpr);\n targetInfluenceRef.current = 1.0;\n\n if (parallax) {\n const centerX = rect.width / 2;\n const centerY = rect.height / 2;\n const offsetX = (x - centerX) / rect.width;\n const offsetY = -(y - centerY) / rect.height;\n targetParallaxRef.current.set(offsetX * parallaxStrength, offsetY * parallaxStrength);\n }\n };\n\n const handlePointerLeave = () => {\n targetInfluenceRef.current = 0.0;\n };\n\n if (interactive) {\n renderer.domElement.addEventListener('pointermove', handlePointerMove);\n renderer.domElement.addEventListener('pointerleave', handlePointerLeave);\n }\n\n let raf = 0;\n const renderLoop = () => {\n uniforms.iTime.value = clock.getElapsedTime();\n\n if (interactive) {\n currentMouseRef.current.lerp(targetMouseRef.current, mouseDamping);\n uniforms.iMouse.value.copy(currentMouseRef.current);\n\n currentInfluenceRef.current += (targetInfluenceRef.current - currentInfluenceRef.current) * mouseDamping;\n uniforms.bendInfluence.value = currentInfluenceRef.current;\n }\n\n if (parallax) {\n currentParallaxRef.current.lerp(targetParallaxRef.current, mouseDamping);\n uniforms.parallaxOffset.value.copy(currentParallaxRef.current);\n }\n\n renderer.render(scene, camera);\n raf = requestAnimationFrame(renderLoop);\n };\n renderLoop();\n\n return () => {\n cancelAnimationFrame(raf);\n if (ro && containerRef.current) {\n ro.disconnect();\n }\n\n if (interactive) {\n renderer.domElement.removeEventListener('pointermove', handlePointerMove);\n renderer.domElement.removeEventListener('pointerleave', handlePointerLeave);\n }\n\n geometry.dispose();\n material.dispose();\n renderer.dispose();\n if (renderer.domElement.parentElement) {\n renderer.domElement.parentElement.removeChild(renderer.domElement);\n }\n };\n }, [\n linesGradient,\n enabledWaves,\n lineCount,\n lineDistance,\n topWavePosition,\n middleWavePosition,\n bottomWavePosition,\n animationSpeed,\n interactive,\n bendRadius,\n bendStrength,\n mouseDamping,\n parallax,\n parallaxStrength,\n ]);\n\n return (\n <div\n ref={containerRef}\n className={cn('floating-lines-container relative h-full w-full overflow-hidden', className)}\n style={{\n mixBlendMode: mixBlendMode,\n }}\n />\n );\n}\n\nfunction hexToVec3(hex: string): Vector3 {\n let value = hex.trim();\n\n if (value.startsWith('#')) {\n value = value.slice(1);\n }\n\n let r = 255;\n let g = 255;\n let b = 255;\n\n if (value.length === 3) {\n r = parseInt(value[0] + value[0], 16);\n g = parseInt(value[1] + value[1], 16);\n b = parseInt(value[2] + value[2], 16);\n } else if (value.length === 6) {\n r = parseInt(value.slice(0, 2), 16);\n g = parseInt(value.slice(2, 4), 16);\n b = parseInt(value.slice(4, 6), 16);\n }\n\n return new Vector3(r / 255, g / 255, b / 255);\n}\n","import { ReactNode } from 'react';\n\nimport { cn } from '@digo-labs/common';\n\ninterface Properties {\n borderRadiusPx?: number;\n blurIntensity?: 'sm' | 'md' | 'lg' | 'xl';\n glowIntensity?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n shadowIntensity?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n contentClasses?: string;\n className?: string;\n children: ReactNode;\n onClick?: () => void;\n}\n\nexport function GlassContainer(properties: Properties) {\n const {\n children,\n className,\n contentClasses,\n borderRadiusPx = 32,\n blurIntensity = 'xl',\n glowIntensity = 'sm',\n shadowIntensity = 'md',\n onClick,\n } = properties;\n\n const borderRadius = `${borderRadiusPx}px`;\n\n return (\n <>\n {/* Hidden SVG Filter */}\n <svg className=\"hidden\">\n <defs>\n <filter\n id=\"glass-blur\"\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n filterUnits=\"objectBoundingBox\"\n >\n <feTurbulence\n type=\"fractalNoise\"\n baseFrequency=\"0.003 0.007\"\n numOctaves=\"1\"\n result=\"turbulence\"\n />\n\n <feDisplacementMap\n in=\"SourceGraphic\"\n in2=\"turbulence\"\n scale=\"200\"\n xChannelSelector=\"R\"\n yChannelSelector=\"G\"\n />\n </filter>\n </defs>\n </svg>\n\n <div className={cn('relative size-full grid outline-none', className)} style={{ borderRadius }}>\n\n {/* Bend Layer (Backdrop blur with distortion) */}\n <div className={cn('absolute inset-0 z-0', blurClasses[blurIntensity])} style={{ borderRadius, filter: 'url(#glass-blur)' }} />\n\n {/* Face Layer (Main shadow and glow) */}\n <div className=\"absolute inset-0 z-10\" style={{ borderRadius, boxShadow: glowStyles[glowIntensity] }} />\n\n {/* Edge Layer (Inner highlights) */}\n <div className=\"absolute inset-0 z-20\" style={{ borderRadius, boxShadow: shadowStyles[shadowIntensity] }} />\n\n <div className={cn('relative z-30 grid', contentClasses)}onClick={onClick}>\n {children}\n </div>\n\n </div>\n </>\n );\n};\n\nconst blurClasses = {\n sm: 'backdrop-blur-sm',\n md: 'backdrop-blur-md',\n lg: 'backdrop-blur-lg',\n xl: 'backdrop-blur-xl',\n};\n\nconst shadowStyles = {\n 'none': 'inset 0 0 0 0 rgba(255, 255, 255, 0)',\n 'xs': 'inset 1px 1px 1px 0 rgba(255, 255, 255, 0.3), inset -1px -1px 1px 0 rgba(255, 255, 255, 0.3)',\n 'sm': 'inset 2px 2px 2px 0 rgba(255, 255, 255, 0.35), inset -2px -2px 2px 0 rgba(255, 255, 255, 0.35)',\n 'md': 'inset 3px 3px 3px 0 rgba(255, 255, 255, 0.45), inset -3px -3px 3px 0 rgba(255, 255, 255, 0.45)',\n 'lg': 'inset 4px 4px 4px 0 rgba(255, 255, 255, 0.5), inset -4px -4px 4px 0 rgba(255, 255, 255, 0.5)',\n 'xl': 'inset 6px 6px 6px 0 rgba(255, 255, 255, 0.55), inset -6px -6px 6px 0 rgba(255, 255, 255, 0.55)',\n '2xl': 'inset 8px 8px 8px 0 rgba(255, 255, 255, 0.6), inset -8px -8px 8px 0 rgba(255, 255, 255, 0.6)',\n};\n\nconst glowStyles = {\n 'none': '0 4px 4px rgba(0, 0, 0, 0.05), 0 0 12px rgba(0, 0, 0, 0.05)',\n 'xs': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 16px rgba(255, 255, 255, 0.05)',\n 'sm': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 24px rgba(255, 255, 255, 0.1)',\n 'md': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 32px rgba(255, 255, 255, 0.15)',\n 'lg': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 40px rgba(255, 255, 255, 0.2)',\n 'xl': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 48px rgba(255, 255, 255, 0.25)',\n '2xl': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 60px rgba(255, 255, 255, 0.3)',\n};\n","import { cn } from '@digo-labs/common';\nimport { type Color, parseColor } from '..';\n\nimport { useEffect, useRef } from 'react';\nimport { Renderer, Program, Mesh, Triangle } from 'ogl';\n\nfunction colorToRgb(color: Color): [number, number, number] {\n const rgb = color.toFormat('rgb');\n return [\n rgb.getChannelValue('red') / 255,\n rgb.getChannelValue('green') / 255,\n rgb.getChannelValue('blue') / 255,\n ];\n}\n\nconst vertex = `#version 300 es\nin vec2 position;\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}\n`;\n\nconst fragment = `#version 300 es\nprecision highp float;\nuniform vec2 iResolution;\nuniform float iTime;\nuniform float uTimeSpeed;\nuniform float uColorBalance;\nuniform float uWarpStrength;\nuniform float uWarpFrequency;\nuniform float uWarpSpeed;\nuniform float uWarpAmplitude;\nuniform float uBlendAngle;\nuniform float uBlendSoftness;\nuniform float uRotationAmount;\nuniform float uNoiseScale;\nuniform float uGrainAmount;\nuniform float uGrainScale;\nuniform float uGrainAnimated;\nuniform float uContrast;\nuniform float uGamma;\nuniform float uSaturation;\nuniform vec2 uCenterOffset;\nuniform float uZoom;\nuniform vec3 uColor1;\nuniform vec3 uColor2;\nuniform vec3 uColor3;\nout vec4 fragColor;\n#define S(a,b,t) smoothstep(a,b,t)\nmat2 Rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);} \nvec2 hash(vec2 p){p=vec2(dot(p,vec2(2127.1,81.17)),dot(p,vec2(1269.5,283.37)));return fract(sin(p)*43758.5453);} \nfloat noise(vec2 p){vec2 i=floor(p),f=fract(p),u=f*f*(3.0-2.0*f);float n=mix(mix(dot(-1.0+2.0*hash(i+vec2(0.0,0.0)),f-vec2(0.0,0.0)),dot(-1.0+2.0*hash(i+vec2(1.0,0.0)),f-vec2(1.0,0.0)),u.x),mix(dot(-1.0+2.0*hash(i+vec2(0.0,1.0)),f-vec2(0.0,1.0)),dot(-1.0+2.0*hash(i+vec2(1.0,1.0)),f-vec2(1.0,1.0)),u.x),u.y);return 0.5+0.5*n;}\nvoid mainImage(out vec4 o, vec2 C){\n float t=iTime*uTimeSpeed;\n vec2 uv=C/iResolution.xy;\n float ratio=iResolution.x/iResolution.y;\n vec2 tuv=uv-0.5+uCenterOffset;\n tuv/=max(uZoom,0.001);\n\n float degree=noise(vec2(t*0.1,tuv.x*tuv.y)*uNoiseScale);\n tuv.y*=1.0/ratio;\n tuv*=Rot(radians((degree-0.5)*uRotationAmount+180.0));\n tuv.y*=ratio;\n\n float frequency=uWarpFrequency;\n float ws=max(uWarpStrength,0.001);\n float amplitude=uWarpAmplitude/ws;\n float warpTime=t*uWarpSpeed;\n tuv.x+=sin(tuv.y*frequency+warpTime)/amplitude;\n tuv.y+=sin(tuv.x*(frequency*1.5)+warpTime)/(amplitude*0.5);\n\n vec3 colLav=uColor1;\n vec3 colOrg=uColor2;\n vec3 colDark=uColor3;\n float b=uColorBalance;\n float s=max(uBlendSoftness,0.0);\n mat2 blendRot=Rot(radians(uBlendAngle));\n float blendX=(tuv*blendRot).x;\n float edge0=-0.3-b-s;\n float edge1=0.2-b+s;\n float v0=0.5-b+s;\n float v1=-0.3-b-s;\n vec3 layer1=mix(colDark,colOrg,S(edge0,edge1,blendX));\n vec3 layer2=mix(colOrg,colLav,S(edge0,edge1,blendX));\n vec3 col=mix(layer1,layer2,S(v0,v1,tuv.y));\n\n vec2 grainUv=uv*max(uGrainScale,0.001);\n if(uGrainAnimated>0.5){grainUv+=vec2(iTime*0.05);} \n float grain=fract(sin(dot(grainUv,vec2(12.9898,78.233)))*43758.5453);\n col+=(grain-0.5)*uGrainAmount;\n\n col=(col-0.5)*uContrast+0.5;\n float luma=dot(col,vec3(0.2126,0.7152,0.0722));\n col=mix(vec3(luma),col,uSaturation);\n col=pow(max(col,0.0),vec3(1.0/max(uGamma,0.001)));\n col=clamp(col,0.0,1.0);\n\n o=vec4(col,1.0);\n}\nvoid main(){\n vec4 o=vec4(0.0);\n mainImage(o,gl_FragCoord.xy);\n fragColor=o;\n}\n`;\n\ninterface Properties {\n timeSpeed?: number;\n colorBalance?: number;\n warpStrength?: number;\n warpFrequency?: number;\n warpSpeed?: number;\n warpAmplitude?: number;\n blendAngle?: number;\n blendSoftness?: number;\n rotationAmount?: number;\n noiseScale?: number;\n grainAmount?: number;\n grainScale?: number;\n grainAnimated?: boolean;\n contrast?: number;\n gamma?: number;\n saturation?: number;\n centerX?: number;\n centerY?: number;\n zoom?: number;\n color1?: Color;\n color2?: Color;\n color3?: Color;\n className?: string;\n}\n\nexport function Grainient(properties: Properties) {\n const {\n timeSpeed = 0.25,\n colorBalance = 0.0,\n warpStrength = 1.0,\n warpFrequency = 5.0,\n warpSpeed = 2.0,\n warpAmplitude = 50.0,\n blendAngle = 0.0,\n blendSoftness = 0.05,\n rotationAmount = 500.0,\n noiseScale = 2.0,\n grainAmount = 0.1,\n grainScale = 2.0,\n grainAnimated = false,\n contrast = 1.5,\n gamma = 1.0,\n saturation = 1.0,\n centerX = 0.0,\n centerY = 0.0,\n zoom = 0.9,\n color1 = parseColor('#FF9FFC'),\n color2 = parseColor('#5227FF'),\n color3 = parseColor('#B19EEF'),\n className = '',\n } = properties;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const renderer = new Renderer({\n webgl: 2,\n alpha: true,\n antialias: false,\n dpr: Math.min(window.devicePixelRatio || 1, 2),\n });\n\n const gl = renderer.gl;\n const canvas = gl.canvas as HTMLCanvasElement;\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n canvas.style.display = 'block';\n\n const container = containerRef.current;\n container.appendChild(canvas);\n\n const geometry = new Triangle(gl);\n const program = new Program(gl, {\n vertex,\n fragment,\n uniforms: {\n iTime: { value: 0 },\n iResolution: { value: new Float32Array([1, 1]) },\n uTimeSpeed: { value: timeSpeed },\n uColorBalance: { value: colorBalance },\n uWarpStrength: { value: warpStrength },\n uWarpFrequency: { value: warpFrequency },\n uWarpSpeed: { value: warpSpeed },\n uWarpAmplitude: { value: warpAmplitude },\n uBlendAngle: { value: blendAngle },\n uBlendSoftness: { value: blendSoftness },\n uRotationAmount: { value: rotationAmount },\n uNoiseScale: { value: noiseScale },\n uGrainAmount: { value: grainAmount },\n uGrainScale: { value: grainScale },\n uGrainAnimated: { value: grainAnimated ? 1.0 : 0.0 },\n uContrast: { value: contrast },\n uGamma: { value: gamma },\n uSaturation: { value: saturation },\n uCenterOffset: { value: new Float32Array([centerX, centerY]) },\n uZoom: { value: zoom },\n uColor1: { value: new Float32Array(colorToRgb(color1)) },\n uColor2: { value: new Float32Array(colorToRgb(color2)) },\n uColor3: { value: new Float32Array(colorToRgb(color3)) },\n },\n });\n\n const mesh = new Mesh(gl, { geometry, program });\n\n function setSize() {\n const width = Math.max(1, container.offsetWidth);\n const height = Math.max(1, container.offsetHeight);\n renderer.setSize(width, height);\n const res = (program.uniforms.iResolution as { value: Float32Array; }).value;\n res[0] = gl.drawingBufferWidth;\n res[1] = gl.drawingBufferHeight;\n };\n\n const ro = new ResizeObserver(setSize);\n ro.observe(container);\n\n setSize();\n\n let raf = 0;\n const t0 = performance.now();\n const loop = (t: number) => {\n (program.uniforms.iTime as { value: number; }).value = (t - t0) * 0.001;\n renderer.render({ scene: mesh });\n raf = requestAnimationFrame(loop);\n };\n raf = requestAnimationFrame(loop);\n\n return () => {\n cancelAnimationFrame(raf);\n ro.disconnect();\n try {\n container.removeChild(canvas);\n } catch {\n // Ignore\n }\n };\n }, [\n timeSpeed,\n colorBalance,\n warpStrength,\n warpFrequency,\n warpSpeed,\n warpAmplitude,\n blendAngle,\n blendSoftness,\n rotationAmount,\n noiseScale,\n grainAmount,\n grainScale,\n grainAnimated,\n contrast,\n gamma,\n saturation,\n centerX,\n centerY,\n zoom,\n color1,\n color2,\n color3,\n ]);\n\n return <div ref={containerRef} className={cn('pointer-events-none absolute inset-0 overflow-hidden', className)} />;\n};\n","import gsap from 'gsap';\n\nimport { ImageTransitionType } from '..';\n\nexport type ImageTransitionEffect = (\n current: HTMLDivElement,\n currentInner: HTMLDivElement,\n next: HTMLDivElement,\n nextInner: HTMLDivElement\n) => gsap.core.Timeline;\n\nexport const animationEffects: Record<ImageTransitionType, ImageTransitionEffect> = {\n A: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.5,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { yPercent: -direction * 100 }, 'start')\n .to(currentInner, { yPercent: direction * 30 }, 'start')\n .fromTo(next, { yPercent: direction * 100 }, { yPercent: 0 }, 'start')\n .fromTo(nextInner, { yPercent: -direction * 30 }, { yPercent: 0 }, 'start');\n },\n\n B: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.5,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { yPercent: -direction * 100 }, 'start')\n .to(\n currentInner,\n {\n yPercent: direction * 30,\n transformOrigin: '0% 100%',\n rotation: -direction * 10,\n scaleY: 2.5,\n },\n 'start',\n )\n .fromTo(next, { yPercent: direction * 100 }, { yPercent: 0 }, 'start')\n .fromTo(\n nextInner,\n {\n transformOrigin: '0% 0%',\n yPercent: -direction * 30,\n scaleY: 2.5,\n rotation: -direction * 10,\n },\n { yPercent: 0, scaleY: 1, rotation: 0 },\n 'start',\n );\n },\n\n C: (current, currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1.1,\n ease: 'power2.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { scale: 0.4 }, 'start')\n .to(currentInner, { scale: 1.5 }, 'start')\n .addLabel('middle', 'start+=0.65')\n .fromTo(\n next,\n { yPercent: direction * 100, scale: 1 },\n { duration: 1, ease: 'expo', yPercent: 0 },\n 'middle',\n )\n .fromTo(\n nextInner,\n { scale: 1.5, yPercent: -direction * 30 },\n { duration: 1.1, ease: 'expo', scale: 1, yPercent: 0 },\n 'middle',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n // Fade and slide with scale\n D: (current, _currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1.25,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n duration: 0.4,\n ease: 'sine',\n scale: 0.9,\n autoAlpha: 0.2,\n },\n 'start',\n )\n .to(\n current,\n {\n yPercent: -direction * 20,\n autoAlpha: 0,\n },\n 'start+=0.1',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n scale: 1,\n yPercent: direction * 100,\n },\n { yPercent: 0 },\n 'start+=0.1',\n )\n .fromTo(\n nextInner,\n { yPercent: -direction * 50 },\n { yPercent: 0 },\n 'start+=0.1',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n // Scale and rotate transition\n E: (current, _currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.1,\n ease: 'power2.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n scale: 0.6,\n yPercent: -direction * 90,\n rotation: direction * 20,\n autoAlpha: 0,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n scale: 0.8,\n yPercent: direction * 100,\n rotation: 0,\n autoAlpha: 1,\n },\n { scale: 1, yPercent: 0 },\n 'start+=0.1',\n )\n .fromTo(nextInner, { scale: 1.1 }, { scale: 1 }, 'start+=0.1');\n },\n\n // Horizontal slide with scale\n F: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.6,\n ease: 'power3.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { xPercent: -direction * 100 }, 'start')\n .to(\n currentInner,\n {\n transformOrigin: '100% 50%',\n scaleX: 4,\n },\n 'start',\n )\n .fromTo(next, { xPercent: direction * 100 }, { xPercent: 0 }, 'start')\n .fromTo(\n nextInner,\n {\n transformOrigin: '0% 50%',\n xPercent: -direction * 100,\n scaleX: 4,\n },\n { xPercent: 0, scaleX: 1 },\n 'start',\n );\n },\n\n // Scale from zero with brightness\n G: (current, _currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1.2,\n ease: 'expo',\n },\n })\n .addLabel('start', 0)\n .to(current, { ease: 'power2', autoAlpha: 0 }, 'start')\n .fromTo(\n next,\n {\n autoAlpha: 1,\n scale: 0,\n yPercent: direction * 100,\n },\n { scale: 1, yPercent: 0 },\n 'start',\n )\n .fromTo(\n nextInner,\n {\n scale: 2,\n filter: 'brightness(600%)',\n },\n { scale: 1, filter: 'brightness(100%)' },\n 'start',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n H: (current, currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline()\n .addLabel('start', 0)\n .fromTo(\n next,\n {\n autoAlpha: 1,\n scale: 0.1,\n xPercent: direction * 100,\n },\n {\n duration: 0.7,\n ease: 'expo',\n scale: 0.4,\n xPercent: 0,\n },\n 'start',\n )\n .fromTo(\n nextInner,\n {\n filter: 'contrast(100%) saturate(100%)',\n transformOrigin: '100% 50%',\n scaleX: 4,\n },\n {\n duration: 0.7,\n ease: 'expo',\n scaleX: 1,\n },\n 'start',\n )\n .fromTo(\n currentInner,\n { filter: 'contrast(100%) saturate(100%)' },\n {\n duration: 0.7,\n ease: 'expo',\n filter: 'contrast(120%) saturate(140%)',\n },\n 'start',\n )\n .addLabel('middle', 'start+=0.6')\n .to(\n next,\n {\n duration: 1,\n ease: 'power4.inOut',\n scale: 1,\n },\n 'middle',\n )\n .to(\n current,\n {\n duration: 1,\n ease: 'power4.inOut',\n scale: 0.98,\n autoAlpha: 0,\n },\n 'middle',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n I: (current, _currentInner, next, _nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1,\n ease: 'power3.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n xPercent: -direction * 15,\n yPercent: -direction * 15,\n autoAlpha: 0,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n xPercent: direction * 100,\n yPercent: direction * 100,\n },\n {\n xPercent: 0,\n yPercent: 0,\n },\n 'start',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n J: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.3,\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n duration: 0.4,\n ease: 'power2.in',\n yPercent: -direction * 100,\n },\n 'start',\n )\n .to(\n currentInner,\n {\n duration: 0.4,\n ease: 'power2.in',\n yPercent: direction * 75,\n rotation: -direction * 2,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n yPercent: direction * 100,\n },\n {\n ease: 'expo',\n yPercent: 0,\n },\n 'start+=0.5',\n )\n .fromTo(\n nextInner,\n {\n yPercent: -direction * 75,\n rotation: direction * 2,\n },\n {\n ease: 'expo',\n yPercent: 0,\n rotation: 0,\n },\n 'start+=0.5',\n );\n },\n\n K: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.2,\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n duration: 0.4,\n ease: 'power2.in',\n xPercent: -direction * 100,\n },\n 'start',\n )\n .to(\n currentInner,\n {\n duration: 0.4,\n ease: 'power2.in',\n xPercent: direction * 75,\n rotation: -direction * 6,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n xPercent: direction * 100,\n },\n {\n ease: 'power4',\n xPercent: 0,\n },\n 'start+=0.4',\n )\n .fromTo(\n nextInner,\n {\n xPercent: -direction * 75,\n rotation: direction * 6,\n },\n {\n ease: 'power4',\n xPercent: 0,\n rotation: 0,\n },\n 'start+=0.4',\n );\n },\n\n // Horizontal scale squeeze\n M: (current, _currentInner, next, _nextInner) => {\n return gsap\n .timeline({\n defaults: {\n duration: 1.2,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n transformOrigin: '0% 50%',\n scaleX: 0,\n autoAlpha: 0,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n transformOrigin: '100% 50%',\n autoAlpha: 0,\n scaleX: 0,\n },\n {\n autoAlpha: 1,\n scaleX: 1,\n },\n 'start',\n );\n },\n\n N: (current, _currentInner, next, _nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 0.8,\n ease: 'power3.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n scale: 1.1,\n rotation: direction * 2,\n },\n 'start',\n )\n .addLabel('middle', '>')\n .fromTo(\n next,\n {\n scale: 1.1,\n rotation: direction * 2,\n },\n {\n duration: 1.1,\n ease: 'expo',\n scale: 1,\n rotation: 0,\n },\n 'middle',\n );\n },\n\n};\n","import { cn } from '@digo-labs/common';\n\nimport { useEffect, useRef, useState, CSSProperties } from 'react';\n\nimport gsap from 'gsap';\n\nimport { animationEffects } from '../other/image-transition-effects';\n\nexport enum ImageTransitionType {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E',\n F = 'F',\n G = 'G',\n H = 'H',\n I = 'I',\n J = 'J',\n K = 'K',\n M = 'M',\n N = 'N',\n}\n\ninterface Properties {\n src: string;\n effect?: ImageTransitionType;\n style?: CSSProperties;\n className?: string;\n}\n\nexport function ImageTransition(properties: Properties) {\n const {\n src,\n effect = ImageTransitionType.A,\n style = {},\n className = '',\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const currentImageRef = useRef<HTMLDivElement>(null);\n const nextImageRef = useRef<HTMLDivElement>(null);\n const currentInnerRef = useRef<HTMLDivElement>(null);\n const nextInnerRef = useRef<HTMLDivElement>(null);\n const isAnimatingRef = useRef<boolean>(false);\n\n const [currentSrc, setCurrentSrc] = useState<string>(src);\n const [nextSrc, setNextSrc] = useState<string | null>(null);\n\n useEffect(() => {\n if (src === currentSrc || isAnimatingRef.current) return;\n\n isAnimatingRef.current = true;\n\n setNextSrc(src);\n }, [src, currentSrc]);\n\n useEffect(() => {\n if (!nextSrc || !currentImageRef.current || !nextImageRef.current) return;\n\n const current = currentImageRef.current;\n const currentInner = currentInnerRef.current;\n const next = nextImageRef.current;\n const nextInner = nextInnerRef.current;\n\n if (!currentInner || !nextInner) return;\n\n const animation = animationEffects[effect] || animationEffects[ImageTransitionType.A];\n\n const timeline = animation(current, currentInner, next, nextInner);\n\n timeline.eventCallback('onComplete', () => {\n setCurrentSrc(nextSrc);\n\n gsap.set([current, currentInner], { clearProps: 'all' });\n\n setNextSrc(null);\n\n isAnimatingRef.current = false;\n });\n }, [nextSrc, effect]);\n\n return (\n <div\n ref={containerRef}\n className={cn('relative size-full overflow-hidden', className)}\n style={style}\n >\n\n <div ref={currentImageRef} className=\"absolute inset-0 overflow-hidden\">\n\n <div\n ref={currentInnerRef}\n className=\"size-full bg-cover bg-center\"\n style={{\n backgroundImage: `url(${currentSrc})`,\n }}\n role=\"img\"\n />\n\n </div>\n\n {nextSrc && (\n <div ref={nextImageRef} className=\"pointer-events-none absolute inset-0 overflow-hidden\">\n\n <div\n ref={nextInnerRef}\n className=\"size-full bg-cover bg-center\"\n style={{\n backgroundImage: `url(${nextSrc})`,\n }}\n role=\"img\"\n />\n\n </div>\n )}\n </div>\n );\n};\n","import { useRef, useState, useEffect, MutableRefObject } from 'react';\n\nimport { mat4, quat, vec2, vec3 } from 'gl-matrix';\nimport { cn } from '@digo-labs/common';\n\nconst discVertShaderSource = `#version 300 es\n\nuniform mat4 uWorldMatrix;\nuniform mat4 uViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform vec3 uCameraPosition;\nuniform vec4 uRotationAxisVelocity;\n\nin vec3 aModelPosition;\nin vec3 aModelNormal;\nin vec2 aModelUvs;\nin mat4 aInstanceMatrix;\n\nout vec2 vUvs;\nout float vAlpha;\nflat out int vInstanceId;\n\n#define PI 3.141593\n\nvoid main() {\n vec4 worldPosition = uWorldMatrix * aInstanceMatrix * vec4(aModelPosition, 1.);\n\n vec3 centerPos = (uWorldMatrix * aInstanceMatrix * vec4(0., 0., 0., 1.)).xyz;\n float radius = length(centerPos.xyz);\n\n if (gl_VertexID > 0) {\n vec3 rotationAxis = uRotationAxisVelocity.xyz;\n float rotationVelocity = min(.15, uRotationAxisVelocity.w * 15.);\n vec3 stretchDir = normalize(cross(centerPos, rotationAxis));\n vec3 relativeVertexPos = normalize(worldPosition.xyz - centerPos);\n float strength = dot(stretchDir, relativeVertexPos);\n float invAbsStrength = min(0., abs(strength) - 1.);\n strength = rotationVelocity * sign(strength) * abs(invAbsStrength * invAbsStrength * invAbsStrength + 1.);\n worldPosition.xyz += stretchDir * strength;\n }\n\n worldPosition.xyz = radius * normalize(worldPosition.xyz);\n\n gl_Position = uProjectionMatrix * uViewMatrix * worldPosition;\n\n vAlpha = smoothstep(0.5, 1., normalize(worldPosition.xyz).z) * .9 + .1;\n vUvs = aModelUvs;\n vInstanceId = gl_InstanceID;\n}\n`;\n\nconst discFragShaderSource = `#version 300 es\nprecision highp float;\n\nuniform sampler2D uTex;\nuniform int uItemCount;\nuniform int uAtlasSize;\n\nout vec4 outColor;\n\nin vec2 vUvs;\nin float vAlpha;\nflat in int vInstanceId;\n\nvoid main() {\n int itemIndex = vInstanceId % uItemCount;\n int cellsPerRow = uAtlasSize;\n int cellX = itemIndex % cellsPerRow;\n int cellY = itemIndex / cellsPerRow;\n vec2 cellSize = vec2(1.0) / vec2(float(cellsPerRow));\n vec2 cellOffset = vec2(float(cellX), float(cellY)) * cellSize;\n\n ivec2 texSize = textureSize(uTex, 0);\n float imageAspect = float(texSize.x) / float(texSize.y);\n float containerAspect = 1.0;\n \n float scale = max(imageAspect / containerAspect, \n containerAspect / imageAspect);\n \n vec2 st = vec2(vUvs.x, 1.0 - vUvs.y);\n st = (st - 0.5) * scale + 0.5;\n \n st = clamp(st, 0.0, 1.0);\n st = st * cellSize + cellOffset;\n \n outColor = texture(uTex, st);\n outColor.a *= vAlpha;\n}\n`;\n\nclass Face {\n public a: number;\n public b: number;\n public c: number;\n\n constructor(a: number, b: number, c: number) {\n this.a = a;\n this.b = b;\n this.c = c;\n }\n}\n\nclass Vertex {\n public position: vec3;\n public normal: vec3;\n public uv: vec2;\n\n constructor(x: number, y: number, z: number) {\n this.position = vec3.fromValues(x, y, z);\n this.normal = vec3.create();\n this.uv = vec2.create();\n }\n}\n\nclass Geometry {\n public vertices: Vertex[];\n public faces: Face[];\n\n constructor() {\n this.vertices = [];\n this.faces = [];\n }\n\n public addVertex(...args: number[]): this {\n for (let i = 0; i < args.length; i += 3) {\n this.vertices.push(new Vertex(args[i], args[i + 1], args[i + 2]));\n }\n return this;\n }\n\n public addFace(...args: number[]): this {\n for (let i = 0; i < args.length; i += 3) {\n this.faces.push(new Face(args[i], args[i + 1], args[i + 2]));\n }\n return this;\n }\n\n public get lastVertex(): Vertex {\n return this.vertices[this.vertices.length - 1];\n }\n\n public subdivide(divisions = 1): this {\n const midPointCache: Record<string, number> = {};\n let f = this.faces;\n\n for (let div = 0; div < divisions; ++div) {\n const newFaces = new Array<Face>(f.length * 4);\n\n f.forEach((face, ndx) => {\n const mAB = this.getMidPoint(face.a, face.b, midPointCache);\n const mBC = this.getMidPoint(face.b, face.c, midPointCache);\n const mCA = this.getMidPoint(face.c, face.a, midPointCache);\n\n const i = ndx * 4;\n newFaces[i + 0] = new Face(face.a, mAB, mCA);\n newFaces[i + 1] = new Face(face.b, mBC, mAB);\n newFaces[i + 2] = new Face(face.c, mCA, mBC);\n newFaces[i + 3] = new Face(mAB, mBC, mCA);\n });\n\n f = newFaces;\n }\n\n this.faces = f;\n return this;\n }\n\n public spherize(radius = 1): this {\n this.vertices.forEach((vertex) => {\n vec3.normalize(vertex.normal, vertex.position);\n vec3.scale(vertex.position, vertex.normal, radius);\n });\n return this;\n }\n\n public get data(): {\n vertices: Float32Array;\n indices: Uint16Array;\n normals: Float32Array;\n uvs: Float32Array;\n } {\n return {\n vertices: this.vertexData,\n indices: this.indexData,\n normals: this.normalData,\n uvs: this.uvData,\n };\n }\n\n public get vertexData(): Float32Array {\n return new Float32Array(this.vertices.flatMap(v => Array.from(v.position)));\n }\n\n public get normalData(): Float32Array {\n return new Float32Array(this.vertices.flatMap(v => Array.from(v.normal)));\n }\n\n public get uvData(): Float32Array {\n return new Float32Array(this.vertices.flatMap(v => Array.from(v.uv)));\n }\n\n public get indexData(): Uint16Array {\n return new Uint16Array(this.faces.flatMap(f => [f.a, f.b, f.c]));\n }\n\n public getMidPoint(ndxA: number, ndxB: number, cache: Record<string, number>): number {\n const cacheKey = ndxA < ndxB ? `k_${ndxB}_${ndxA}` : `k_${ndxA}_${ndxB}`;\n if (Object.prototype.hasOwnProperty.call(cache, cacheKey)) {\n return cache[cacheKey];\n }\n const a = this.vertices[ndxA].position;\n const b = this.vertices[ndxB].position;\n const ndx = this.vertices.length;\n cache[cacheKey] = ndx;\n this.addVertex((a[0] + b[0]) * 0.5, (a[1] + b[1]) * 0.5, (a[2] + b[2]) * 0.5);\n return ndx;\n }\n}\n\nclass IcosahedronGeometry extends Geometry {\n constructor() {\n super();\n const t = Math.sqrt(5) * 0.5 + 0.5;\n this.addVertex(\n -1,\n t,\n 0,\n 1,\n t,\n 0,\n -1,\n -t,\n 0,\n 1,\n -t,\n 0,\n 0,\n -1,\n t,\n 0,\n 1,\n t,\n 0,\n -1,\n -t,\n 0,\n 1,\n -t,\n t,\n 0,\n -1,\n t,\n 0,\n 1,\n -t,\n 0,\n -1,\n -t,\n 0,\n 1,\n ).addFace(\n 0,\n 11,\n 5,\n 0,\n 5,\n 1,\n 0,\n 1,\n 7,\n 0,\n 7,\n 10,\n 0,\n 10,\n 11,\n 1,\n 5,\n 9,\n 5,\n 11,\n 4,\n 11,\n 10,\n 2,\n 10,\n 7,\n 6,\n 7,\n 1,\n 8,\n 3,\n 9,\n 4,\n 3,\n 4,\n 2,\n 3,\n 2,\n 6,\n 3,\n 6,\n 8,\n 3,\n 8,\n 9,\n 4,\n 9,\n 5,\n 2,\n 4,\n 11,\n 6,\n 2,\n 10,\n 8,\n 6,\n 7,\n 9,\n 8,\n 1,\n );\n }\n}\n\nclass DiscGeometry extends Geometry {\n constructor(steps = 4, radius = 1) {\n super();\n const safeSteps = Math.max(4, steps);\n const alpha = (2 * Math.PI) / safeSteps;\n\n this.addVertex(0, 0, 0);\n this.lastVertex.uv[0] = 0.5;\n this.lastVertex.uv[1] = 0.5;\n\n for (let i = 0; i < safeSteps; ++i) {\n const x = Math.cos(alpha * i);\n const y = Math.sin(alpha * i);\n this.addVertex(radius * x, radius * y, 0);\n this.lastVertex.uv[0] = x * 0.5 + 0.5;\n this.lastVertex.uv[1] = y * 0.5 + 0.5;\n\n if (i > 0) {\n this.addFace(0, i, i + 1);\n }\n }\n this.addFace(0, safeSteps, 1);\n }\n}\n\nfunction createShader(gl: WebGL2RenderingContext, type: number, source: string): WebGLShader | null {\n const shader = gl.createShader(type);\n if (!shader) return null;\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const success = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (success) {\n return shader;\n }\n\n console.error(gl.getShaderInfoLog(shader));\n gl.deleteShader(shader);\n return null;\n}\n\nfunction createProgram(\n gl: WebGL2RenderingContext,\n shaderSources: [string, string],\n transformFeedbackVaryings?: string[] | null,\n attribLocations?: Record<string, number>,\n): WebGLProgram | null {\n const program = gl.createProgram();\n if (!program) return null;\n\n [gl.VERTEX_SHADER, gl.FRAGMENT_SHADER].forEach((type, ndx) => {\n const shader = createShader(gl, type, shaderSources[ndx]);\n if (shader) {\n gl.attachShader(program, shader);\n }\n });\n\n if (transformFeedbackVaryings) {\n gl.transformFeedbackVaryings(program, transformFeedbackVaryings, gl.SEPARATE_ATTRIBS);\n }\n\n if (attribLocations) {\n for (const attrib in attribLocations) {\n if (Object.prototype.hasOwnProperty.call(attribLocations, attrib)) {\n gl.bindAttribLocation(program, attribLocations[attrib], attrib);\n }\n }\n }\n\n gl.linkProgram(program);\n const success = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (success) {\n return program;\n }\n\n console.error(gl.getProgramInfoLog(program));\n gl.deleteProgram(program);\n return null;\n}\n\nfunction makeVertexArray(\n gl: WebGL2RenderingContext,\n bufLocNumElmPairs: Array<[WebGLBuffer, number, number]>,\n indices?: Uint16Array,\n): WebGLVertexArrayObject | null {\n const va = gl.createVertexArray();\n if (!va) return null;\n\n gl.bindVertexArray(va);\n\n for (const [buffer, loc, numElem] of bufLocNumElmPairs) {\n if (loc === -1) continue;\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.enableVertexAttribArray(loc);\n gl.vertexAttribPointer(loc, numElem, gl.FLOAT, false, 0, 0);\n }\n\n if (indices) {\n const indexBuffer = gl.createBuffer();\n if (indexBuffer) {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);\n gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);\n }\n }\n\n gl.bindVertexArray(null);\n return va;\n}\n\nfunction resizeCanvasToDisplaySize(canvas: HTMLCanvasElement): boolean {\n const dpr = Math.min(2, window.devicePixelRatio || 1);\n const displayWidth = Math.round(canvas.clientWidth * dpr);\n const displayHeight = Math.round(canvas.clientHeight * dpr);\n const needResize = canvas.width !== displayWidth || canvas.height !== displayHeight;\n if (needResize) {\n canvas.width = displayWidth;\n canvas.height = displayHeight;\n }\n return needResize;\n}\n\nfunction makeBuffer(gl: WebGL2RenderingContext, sizeOrData: number | ArrayBufferView, usage: number): WebGLBuffer {\n const buf = gl.createBuffer();\n if (!buf) {\n throw new Error('Failed to create WebGL buffer.');\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n\n if (typeof sizeOrData === 'number') {\n gl.bufferData(gl.ARRAY_BUFFER, sizeOrData, usage);\n } else {\n gl.bufferData(gl.ARRAY_BUFFER, sizeOrData, usage);\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n return buf;\n}\n\nfunction createAndSetupTexture(\n gl: WebGL2RenderingContext,\n minFilter: number,\n magFilter: number,\n wrapS: number,\n wrapT: number,\n): WebGLTexture {\n const texture = gl.createTexture();\n if (!texture) {\n throw new Error('Failed to create WebGL texture.');\n }\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, wrapS);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, wrapT);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter);\n return texture;\n}\n\ntype UpdateCallback = (deltaTime: number) => void;\n\nclass ArcballControl {\n private canvas: HTMLCanvasElement;\n private updateCallback: UpdateCallback;\n\n public isPointerDown = false;\n public orientation = quat.create();\n public pointerRotation = quat.create();\n public rotationVelocity = 0;\n public rotationAxis = vec3.fromValues(1, 0, 0);\n\n public snapDirection = vec3.fromValues(0, 0, -1);\n public snapTargetDirection: vec3 | null = null;\n\n private pointerPos = vec2.create();\n private previousPointerPos = vec2.create();\n private _rotationVelocity = 0;\n private _combinedQuat = quat.create();\n\n private readonly EPSILON = 0.1;\n private readonly IDENTITY_QUAT = quat.create();\n\n public snapStrength = 0.2;\n\n constructor(canvas: HTMLCanvasElement, updateCallback?: UpdateCallback) {\n this.canvas = canvas;\n this.updateCallback = updateCallback || (() => undefined);\n\n canvas.addEventListener('pointerdown', (e: PointerEvent) => {\n vec2.set(this.pointerPos, e.clientX, e.clientY);\n vec2.copy(this.previousPointerPos, this.pointerPos);\n this.isPointerDown = true;\n });\n canvas.addEventListener('pointerup', () => {\n this.isPointerDown = false;\n });\n canvas.addEventListener('pointerleave', () => {\n this.isPointerDown = false;\n });\n canvas.addEventListener('pointermove', (e: PointerEvent) => {\n if (this.isPointerDown) {\n vec2.set(this.pointerPos, e.clientX, e.clientY);\n }\n });\n canvas.style.touchAction = 'none';\n }\n\n public update(deltaTime: number, targetFrameDuration = 16): void {\n const timeScale = deltaTime / targetFrameDuration + 0.00001;\n let angleFactor = timeScale;\n const snapRotation = quat.create();\n\n if (this.isPointerDown) {\n const INTENSITY = 0.3 * timeScale;\n const ANGLE_AMPLIFICATION = 5 / timeScale;\n const midPointerPos = vec2.sub(vec2.create(), this.pointerPos, this.previousPointerPos);\n vec2.scale(midPointerPos, midPointerPos, INTENSITY);\n\n if (vec2.sqrLen(midPointerPos) > this.EPSILON) {\n vec2.add(midPointerPos, this.previousPointerPos, midPointerPos);\n\n const p = this.project(midPointerPos);\n const q = this.project(this.previousPointerPos);\n const a = vec3.normalize(vec3.create(), p);\n const b = vec3.normalize(vec3.create(), q);\n\n vec2.copy(this.previousPointerPos, midPointerPos);\n\n angleFactor *= ANGLE_AMPLIFICATION;\n\n this.quatFromVectors(a, b, this.pointerRotation, angleFactor);\n } else {\n quat.slerp(this.pointerRotation, this.pointerRotation, this.IDENTITY_QUAT, INTENSITY);\n }\n } else {\n const INTENSITY = 0.1 * timeScale;\n quat.slerp(this.pointerRotation, this.pointerRotation, this.IDENTITY_QUAT, INTENSITY);\n\n if (this.snapTargetDirection) {\n const SNAPPING_INTENSITY = this.snapStrength;\n const a = this.snapTargetDirection;\n const b = this.snapDirection;\n const sqrDist = vec3.squaredDistance(a, b);\n const distanceFactor = Math.max(0.1, 1 - sqrDist * 10);\n angleFactor *= SNAPPING_INTENSITY * distanceFactor;\n this.quatFromVectors(a, b, snapRotation, angleFactor);\n }\n }\n\n const combinedQuat = quat.multiply(quat.create(), snapRotation, this.pointerRotation);\n this.orientation = quat.multiply(quat.create(), combinedQuat, this.orientation);\n quat.normalize(this.orientation, this.orientation);\n\n const RA_INTENSITY = 0.8 * timeScale;\n quat.slerp(this._combinedQuat, this._combinedQuat, combinedQuat, RA_INTENSITY);\n quat.normalize(this._combinedQuat, this._combinedQuat);\n\n const rad = Math.acos(this._combinedQuat[3]) * 2.0;\n const s = Math.sin(rad / 2.0);\n let rv = 0;\n if (s > 0.000001) {\n rv = rad / (2 * Math.PI);\n this.rotationAxis[0] = this._combinedQuat[0] / s;\n this.rotationAxis[1] = this._combinedQuat[1] / s;\n this.rotationAxis[2] = this._combinedQuat[2] / s;\n }\n\n const RV_INTENSITY = 0.5 * timeScale;\n this._rotationVelocity += (rv - this._rotationVelocity) * RV_INTENSITY;\n this.rotationVelocity = this._rotationVelocity / timeScale;\n\n this.updateCallback(deltaTime);\n }\n\n private quatFromVectors(a: vec3, b: vec3, out: quat, angleFactor = 1): { q: quat; axis: vec3; angle: number; } {\n const axis = vec3.cross(vec3.create(), a, b);\n vec3.normalize(axis, axis);\n const d = Math.max(-1, Math.min(1, vec3.dot(a, b)));\n const angle = Math.acos(d) * angleFactor;\n quat.setAxisAngle(out, axis, angle);\n return { q: out, axis, angle };\n }\n\n private project(pos: vec2): vec3 {\n const r = 2;\n const w = this.canvas.clientWidth;\n const h = this.canvas.clientHeight;\n const s = Math.max(w, h) - 1;\n\n const x = (2 * pos[0] - w - 1) / s;\n const y = (2 * pos[1] - h - 1) / s;\n let z = 0;\n const xySq = x * x + y * y;\n const rSq = r * r;\n\n if (xySq <= rSq / 2.0) {\n z = Math.sqrt(rSq - xySq);\n } else {\n z = rSq / Math.sqrt(xySq);\n }\n return vec3.fromValues(-x, y, z);\n }\n}\n\nexport interface InfiniteMenuItem {\n id: string;\n imageUrl: string;\n}\n\ntype ActiveItemCallback = (index: number) => void;\ntype MovementChangeCallback = (isMoving: boolean) => void;\ntype InitCallback = (instance: InfiniteGridMenu) => void;\n\nexport interface InfiniteMenuOptions {\n discSize?: number;\n damping?: number;\n snapStrength?: number;\n cameraDistance?: number;\n sphereRadius?: number;\n}\n\ninterface Camera {\n matrix: mat4;\n near: number;\n far: number;\n fov: number;\n aspect: number;\n position: vec3;\n up: vec3;\n matrices: {\n view: mat4;\n projection: mat4;\n inversProjection: mat4;\n };\n}\n\nclass InfiniteGridMenu {\n private gl: WebGL2RenderingContext | null = null;\n private discProgram: WebGLProgram | null = null;\n private discVAO: WebGLVertexArrayObject | null = null;\n private discBuffers!: {\n vertices: Float32Array;\n indices: Uint16Array;\n normals: Float32Array;\n uvs: Float32Array;\n };\n\n private icoGeo!: IcosahedronGeometry;\n private discGeo!: DiscGeometry;\n private worldMatrix = mat4.create();\n private tex: WebGLTexture | null = null;\n private control!: ArcballControl;\n\n private discLocations!: {\n aModelPosition: number;\n aModelUvs: number;\n aInstanceMatrix: number;\n uWorldMatrix: WebGLUniformLocation | null;\n uViewMatrix: WebGLUniformLocation | null;\n uProjectionMatrix: WebGLUniformLocation | null;\n uCameraPosition: WebGLUniformLocation | null;\n uScaleFactor: WebGLUniformLocation | null;\n uRotationAxisVelocity: WebGLUniformLocation | null;\n uTex: WebGLUniformLocation | null;\n uFrames: WebGLUniformLocation | null;\n uItemCount: WebGLUniformLocation | null;\n uAtlasSize: WebGLUniformLocation | null;\n };\n\n private viewportSize = vec2.create();\n private drawBufferSize = vec2.create();\n\n private discInstances!: {\n matricesArray: Float32Array;\n matrices: Float32Array[];\n buffer: WebGLBuffer | null;\n };\n\n private instancePositions: vec3[] = [];\n private DISC_INSTANCE_COUNT = 0;\n private atlasSize = 1;\n\n private _time = 0;\n private _deltaTime = 0;\n private _deltaFrames = 0;\n private _frames = 0;\n\n private movementActive = false;\n\n private TARGET_FRAME_DURATION = 1000 / 60;\n private SPHERE_RADIUS = 2;\n private discSize = 0.25;\n private damping = 5;\n private cameraDistance = 3;\n\n public camera: Camera = {\n matrix: mat4.create(),\n near: 0.1,\n far: 40,\n fov: Math.PI / 4,\n aspect: 1,\n position: vec3.fromValues(0, 0, 3),\n up: vec3.fromValues(0, 1, 0),\n matrices: {\n view: mat4.create(),\n projection: mat4.create(),\n inversProjection: mat4.create(),\n },\n };\n\n public smoothRotationVelocity = 0;\n public scaleFactor = 1.0;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private items: InfiniteMenuItem[],\n private onActiveItemChange: ActiveItemCallback,\n private onMovementChange: MovementChangeCallback,\n onInit?: InitCallback,\n options?: InfiniteMenuOptions,\n ) {\n this.SPHERE_RADIUS = options?.sphereRadius ?? 2;\n this.discSize = options?.discSize ?? 0.25;\n this.damping = options?.damping ?? 5;\n this.cameraDistance = options?.cameraDistance ?? 3;\n this.camera.position = vec3.fromValues(0, 0, this.cameraDistance);\n this.init(onInit);\n this.control.snapStrength = options?.snapStrength ?? 0.2;\n }\n\n public resize(): void {\n const needsResize = resizeCanvasToDisplaySize(this.canvas);\n if (!this.gl) return;\n if (needsResize) {\n this.gl.viewport(0, 0, this.gl.drawingBufferWidth, this.gl.drawingBufferHeight);\n }\n this.updateProjectionMatrix();\n }\n\n public run(time = 0): void {\n this._deltaTime = Math.min(32, time - this._time);\n this._time = time;\n this._deltaFrames = this._deltaTime / this.TARGET_FRAME_DURATION;\n this._frames += this._deltaFrames;\n\n this.animate(this._deltaTime);\n this.render();\n\n requestAnimationFrame(t => this.run(t));\n }\n\n private init(onInit?: InitCallback): void {\n const gl = this.canvas.getContext('webgl2', {\n antialias: true,\n alpha: true,\n });\n if (!gl) {\n throw new Error('No WebGL 2 context!');\n }\n this.gl = gl;\n\n vec2.set(this.viewportSize, this.canvas.clientWidth, this.canvas.clientHeight);\n vec2.clone(this.drawBufferSize);\n\n this.discProgram = createProgram(gl, [discVertShaderSource, discFragShaderSource], null, {\n aModelPosition: 0,\n aModelNormal: 1,\n aModelUvs: 2,\n aInstanceMatrix: 3,\n });\n\n this.discLocations = {\n aModelPosition: gl.getAttribLocation(this.discProgram!, 'aModelPosition'),\n aModelUvs: gl.getAttribLocation(this.discProgram!, 'aModelUvs'),\n aInstanceMatrix: gl.getAttribLocation(this.discProgram!, 'aInstanceMatrix'),\n uWorldMatrix: gl.getUniformLocation(this.discProgram!, 'uWorldMatrix'),\n uViewMatrix: gl.getUniformLocation(this.discProgram!, 'uViewMatrix'),\n uProjectionMatrix: gl.getUniformLocation(this.discProgram!, 'uProjectionMatrix'),\n uCameraPosition: gl.getUniformLocation(this.discProgram!, 'uCameraPosition'),\n uScaleFactor: gl.getUniformLocation(this.discProgram!, 'uScaleFactor'),\n uRotationAxisVelocity: gl.getUniformLocation(this.discProgram!, 'uRotationAxisVelocity'),\n uTex: gl.getUniformLocation(this.discProgram!, 'uTex'),\n uFrames: gl.getUniformLocation(this.discProgram!, 'uFrames'),\n uItemCount: gl.getUniformLocation(this.discProgram!, 'uItemCount'),\n uAtlasSize: gl.getUniformLocation(this.discProgram!, 'uAtlasSize'),\n };\n\n this.discGeo = new DiscGeometry(56, 1);\n this.discBuffers = this.discGeo.data;\n this.discVAO = makeVertexArray(\n gl,\n [\n [makeBuffer(gl, this.discBuffers.vertices, gl.STATIC_DRAW), this.discLocations.aModelPosition, 3],\n [makeBuffer(gl, this.discBuffers.uvs, gl.STATIC_DRAW), this.discLocations.aModelUvs, 2],\n ],\n this.discBuffers.indices,\n );\n\n this.icoGeo = new IcosahedronGeometry();\n this.icoGeo.subdivide(1).spherize(this.SPHERE_RADIUS);\n this.instancePositions = this.icoGeo.vertices.map(v => v.position);\n this.DISC_INSTANCE_COUNT = this.icoGeo.vertices.length;\n this.initDiscInstances(this.DISC_INSTANCE_COUNT);\n this.initTexture();\n this.control = new ArcballControl(this.canvas, deltaTime => this.onControlUpdate(deltaTime));\n\n this.updateCameraMatrix();\n this.updateProjectionMatrix();\n\n this.resize();\n\n if (onInit) {\n onInit(this);\n }\n }\n\n private initTexture(): void {\n if (!this.gl) return;\n const gl = this.gl;\n this.tex = createAndSetupTexture(gl, gl.LINEAR, gl.LINEAR, gl.CLAMP_TO_EDGE, gl.CLAMP_TO_EDGE);\n\n const itemCount = Math.max(1, this.items.length);\n this.atlasSize = Math.ceil(Math.sqrt(itemCount));\n const cellSize = 512;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d')!;\n canvas.width = this.atlasSize * cellSize;\n canvas.height = this.atlasSize * cellSize;\n\n Promise.all(\n this.items.map(\n item =>\n new Promise<HTMLImageElement>((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = e => reject(new Error(`Failed to load image: ${item.imageUrl}->${e} `));\n img.src = item.imageUrl;\n }),\n ),\n ).then((images) => {\n images.forEach((img, i) => {\n const x = (i % this.atlasSize) * cellSize;\n const y = Math.floor(i / this.atlasSize) * cellSize;\n ctx.drawImage(img, x, y, cellSize, cellSize);\n });\n\n gl.bindTexture(gl.TEXTURE_2D, this.tex);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas);\n gl.generateMipmap(gl.TEXTURE_2D);\n });\n }\n\n private initDiscInstances(count: number): void {\n if (!this.gl || !this.discVAO) return;\n const gl = this.gl;\n\n const matricesArray = new Float32Array(count * 16);\n const matrices: Float32Array[] = [];\n for (let i = 0; i < count; ++i) {\n const instanceMatrixArray = new Float32Array(matricesArray.buffer, i * 16 * 4, 16);\n mat4.identity(instanceMatrixArray as unknown as mat4);\n matrices.push(instanceMatrixArray);\n }\n\n this.discInstances = {\n matricesArray,\n matrices,\n buffer: gl.createBuffer(),\n };\n\n gl.bindVertexArray(this.discVAO);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.discInstances.buffer);\n gl.bufferData(gl.ARRAY_BUFFER, this.discInstances.matricesArray.byteLength, gl.DYNAMIC_DRAW);\n\n const mat4AttribSlotCount = 4;\n const bytesPerMatrix = 16 * 4;\n for (let j = 0; j < mat4AttribSlotCount; ++j) {\n const loc = this.discLocations.aInstanceMatrix + j;\n gl.enableVertexAttribArray(loc);\n gl.vertexAttribPointer(loc, 4, gl.FLOAT, false, bytesPerMatrix, j * 4 * 4);\n gl.vertexAttribDivisor(loc, 1);\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n gl.bindVertexArray(null);\n }\n\n private animate(deltaTime: number): void {\n if (!this.gl) return;\n this.control.update(deltaTime, this.TARGET_FRAME_DURATION);\n\n const positions = this.instancePositions.map(p => vec3.transformQuat(vec3.create(), p, this.control.orientation));\n const scale = this.discSize;\n const SCALE_INTENSITY = 0.6;\n\n positions.forEach((p, ndx) => {\n const s = (Math.abs(p[2]) / this.SPHERE_RADIUS) * SCALE_INTENSITY + (1 - SCALE_INTENSITY);\n const finalScale = s * scale;\n const matrix = mat4.create();\n\n mat4.multiply(matrix, matrix, mat4.fromTranslation(mat4.create(), vec3.negate(vec3.create(), p)));\n mat4.multiply(matrix, matrix, mat4.targetTo(mat4.create(), [0, 0, 0], p, [0, 1, 0]));\n mat4.multiply(matrix, matrix, mat4.fromScaling(mat4.create(), [finalScale, finalScale, finalScale]));\n mat4.multiply(matrix, matrix, mat4.fromTranslation(mat4.create(), [0, 0, -this.SPHERE_RADIUS]));\n\n mat4.copy(this.discInstances.matrices[ndx], matrix);\n });\n\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.discInstances.buffer);\n this.gl.bufferSubData(this.gl.ARRAY_BUFFER, 0, this.discInstances.matricesArray);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);\n\n this.smoothRotationVelocity = this.control.rotationVelocity;\n }\n\n private render(): void {\n if (!this.gl || !this.discProgram) return;\n const gl = this.gl;\n\n gl.useProgram(this.discProgram);\n gl.enable(gl.CULL_FACE);\n gl.enable(gl.DEPTH_TEST);\n\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n\n gl.uniformMatrix4fv(this.discLocations.uWorldMatrix, false, this.worldMatrix);\n gl.uniformMatrix4fv(this.discLocations.uViewMatrix, false, this.camera.matrices.view);\n gl.uniformMatrix4fv(this.discLocations.uProjectionMatrix, false, this.camera.matrices.projection);\n gl.uniform3f(\n this.discLocations.uCameraPosition,\n this.camera.position[0],\n this.camera.position[1],\n this.camera.position[2],\n );\n gl.uniform4f(\n this.discLocations.uRotationAxisVelocity,\n this.control.rotationAxis[0],\n this.control.rotationAxis[1],\n this.control.rotationAxis[2],\n this.smoothRotationVelocity * 1.1,\n );\n\n gl.uniform1i(this.discLocations.uItemCount, this.items.length);\n gl.uniform1i(this.discLocations.uAtlasSize, this.atlasSize);\n\n gl.uniform1f(this.discLocations.uFrames, this._frames);\n gl.uniform1f(this.discLocations.uScaleFactor, this.scaleFactor);\n\n gl.uniform1i(this.discLocations.uTex, 0);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, this.tex);\n\n gl.bindVertexArray(this.discVAO);\n gl.drawElementsInstanced(\n gl.TRIANGLES,\n this.discBuffers.indices.length,\n gl.UNSIGNED_SHORT,\n 0,\n this.DISC_INSTANCE_COUNT,\n );\n gl.bindVertexArray(null);\n }\n\n private updateCameraMatrix(): void {\n mat4.targetTo(this.camera.matrix, this.camera.position, [0, 0, 0], this.camera.up);\n mat4.invert(this.camera.matrices.view, this.camera.matrix);\n }\n\n private updateProjectionMatrix(): void {\n if (!this.gl) return;\n const canvasEl = this.gl.canvas as HTMLCanvasElement;\n this.camera.aspect = canvasEl.clientWidth / canvasEl.clientHeight;\n const height = this.SPHERE_RADIUS * 0.35;\n const distance = this.camera.position[2];\n if (this.camera.aspect > 1) {\n this.camera.fov = 2 * Math.atan(height / distance);\n } else {\n this.camera.fov = 2 * Math.atan(height / this.camera.aspect / distance);\n }\n mat4.perspective(\n this.camera.matrices.projection,\n this.camera.fov,\n this.camera.aspect,\n this.camera.near,\n this.camera.far,\n );\n mat4.invert(this.camera.matrices.inversProjection, this.camera.matrices.projection);\n }\n\n private onControlUpdate(deltaTime: number): void {\n const timeScale = deltaTime / this.TARGET_FRAME_DURATION + 0.0001;\n let damping = this.damping / timeScale;\n let cameraTargetZ = this.cameraDistance;\n\n const isMoving = this.control.isPointerDown || Math.abs(this.smoothRotationVelocity) > 0.01;\n\n if (isMoving !== this.movementActive) {\n this.movementActive = isMoving;\n this.onMovementChange(isMoving);\n }\n\n if (!this.control.isPointerDown) {\n const nearestVertexIndex = this.findNearestVertexIndex();\n const itemIndex = nearestVertexIndex % Math.max(1, this.items.length);\n this.onActiveItemChange(itemIndex);\n const snapDirection = vec3.normalize(vec3.create(), this.getVertexWorldPosition(nearestVertexIndex));\n this.control.snapTargetDirection = snapDirection;\n } else {\n cameraTargetZ += this.control.rotationVelocity * 80 + 2.5;\n damping = (this.damping + 2) / timeScale;\n }\n\n this.camera.position[2] += (cameraTargetZ - this.camera.position[2]) / damping;\n this.updateCameraMatrix();\n }\n\n private findNearestVertexIndex(): number {\n const n = this.control.snapDirection;\n const inversOrientation = quat.conjugate(quat.create(), this.control.orientation);\n const nt = vec3.transformQuat(vec3.create(), n, inversOrientation);\n\n let maxD = -1;\n let nearestVertexIndex = 0;\n for (let i = 0; i < this.instancePositions.length; ++i) {\n const d = vec3.dot(nt, this.instancePositions[i]);\n if (d > maxD) {\n maxD = d;\n nearestVertexIndex = i;\n }\n }\n return nearestVertexIndex;\n }\n\n private getVertexWorldPosition(index: number): vec3 {\n const nearestVertexPos = this.instancePositions[index];\n return vec3.transformQuat(vec3.create(), nearestVertexPos, this.control.orientation);\n }\n}\n\nconst defaultItems: InfiniteMenuItem[] = [\n {\n id: 'default-id',\n imageUrl: 'https://picsum.photos/900/900?grayscale',\n },\n];\n\ninterface Properties extends InfiniteMenuOptions {\n items: InfiniteMenuItem[];\n className?: string;\n onItemSelected?: (item: InfiniteMenuItem) => void;\n onDragChange?: (drag: boolean) => void;\n}\n\nexport function InfiniteMenu(properties: Properties) {\n const { items, className, onItemSelected, onDragChange, discSize, damping, snapStrength, cameraDistance, sphereRadius } = properties;\n\n const canvasRef = useRef<HTMLCanvasElement | null>(null) as MutableRefObject<HTMLCanvasElement | null>;\n const [activeItem, setActiveItem] = useState<InfiniteMenuItem | null>(null);\n const [isMoving, setIsMoving] = useState<boolean>(false);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n let sketch: InfiniteGridMenu | null = null;\n\n const handleActiveItem = (index: number) => {\n if (!items.length) return;\n const itemIndex = index % items.length;\n setActiveItem(items[itemIndex]);\n };\n\n const options: InfiniteMenuOptions = { discSize, damping, snapStrength, cameraDistance, sphereRadius };\n\n if (canvas) {\n sketch = new InfiniteGridMenu(canvas, items?.length ? items : defaultItems, handleActiveItem, setIsMoving, sk =>\n sk.run(), options);\n }\n\n const handleResize = () => {\n if (sketch) {\n sketch.resize();\n }\n };\n\n window.addEventListener('resize', handleResize);\n handleResize();\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [items, discSize, damping, snapStrength, cameraDistance, sphereRadius]);\n\n useEffect(() => {\n if (!onItemSelected || !activeItem || isMoving) return;\n\n onItemSelected(activeItem);\n }, [activeItem, isMoving]);\n\n useEffect(() => {\n onDragChange?.(isMoving);\n }, [isMoving, onDragChange]);\n\n return (\n <div className={cn('relative h-full w-full', className)}>\n\n <canvas\n id=\"infinite-grid-menu-canvas\"\n ref={canvasRef}\n className=\"relative h-full w-full cursor-grab overflow-hidden outline-none active:cursor-grabbing\"\n />\n\n </div>\n );\n};\n","import { cn } from '@digo-labs/common';\nimport { Renderer, Program, Mesh, Color, Triangle } from 'ogl';\n\nimport { CSSProperties, useEffect, useRef } from 'react';\n\nconst vertexShader = `\nattribute vec2 uv;\nattribute vec2 position;\n\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = vec4(position, 0, 1);\n}\n`;\n\nconst fragmentShader = `\nprecision highp float;\n\nuniform float uTime;\nuniform vec3 uColor;\nuniform vec3 uResolution;\nuniform vec2 uMouse;\nuniform float uAmplitude;\nuniform float uSpeed;\nuniform float uOpacity;\n\nvarying vec2 vUv;\n\nvoid main() {\n float mr = min(uResolution.x, uResolution.y);\n vec2 uv = (vUv.xy * 2.0 - 1.0) * uResolution.xy / mr;\n\n uv += (uMouse - vec2(0.5)) * uAmplitude;\n\n float d = -uTime * 0.5 * uSpeed;\n float a = 0.0;\n for (float i = 0.0; i < 8.0; ++i) {\n a += cos(i - d - a * uv.x);\n d += sin(uv.y * i + a);\n }\n d += uTime * 0.5 * uSpeed;\n vec3 col = vec3(cos(uv * vec2(d, a)) * 0.6 + 0.4, cos(a + d) * 0.5 + 0.5);\n col = cos(col * cos(vec3(d, a, 2.5)) * 0.5 + 0.5) * uColor;\n gl_FragColor = vec4(col, uOpacity);\n\n}\n`;\n\ninterface Properties {\n color?: [number, number, number];\n speed?: number;\n opacity?: number;\n amplitude?: number;\n mouseReact?: boolean;\n className?: string;\n style?: CSSProperties;\n}\n\nexport function Iridescence(properties: Properties) {\n const {\n color = [1, 1, 1],\n speed = 1.0,\n amplitude = 0.1,\n opacity = 1,\n mouseReact = true,\n className,\n style,\n } = properties;\n\n const ctnDom = useRef<HTMLDivElement>(null);\n const mousePos = useRef({ x: 0.5, y: 0.5 });\n const programRef = useRef<Program | null>(null);\n\n useEffect(() => {\n if (!ctnDom.current) return;\n const ctn = ctnDom.current;\n const renderer = new Renderer({ alpha: true });\n const gl = renderer.gl;\n gl.clearColor(0, 0, 0, 0);\n\n // eslint-disable-next-line prefer-const\n let program: Program;\n\n function resize() {\n const scale = 1;\n renderer.setSize(ctn.offsetWidth * scale, ctn.offsetHeight * scale);\n if (program) {\n program.uniforms.uResolution.value = new Color(\n gl.canvas.width,\n gl.canvas.height,\n gl.canvas.width / gl.canvas.height,\n );\n }\n }\n window.addEventListener('resize', resize, false);\n\n resize();\n\n const geometry = new Triangle(gl);\n\n program = new Program(gl, {\n vertex: vertexShader,\n fragment: fragmentShader,\n uniforms: {\n uTime: { value: 0 },\n uColor: { value: new Color(...color) },\n uResolution: {\n value: new Color(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height),\n },\n uMouse: { value: new Float32Array([mousePos.current.x, mousePos.current.y]) },\n uAmplitude: { value: amplitude },\n uSpeed: { value: speed },\n uOpacity: { value: opacity },\n },\n });\n\n programRef.current = program;\n\n const mesh = new Mesh(gl, { geometry, program });\n let animateId: number;\n\n function update(t: number) {\n animateId = requestAnimationFrame(update);\n program.uniforms.uTime.value = t * 0.001;\n renderer.render({ scene: mesh });\n }\n\n animateId = requestAnimationFrame(update);\n\n ctn.appendChild(gl.canvas);\n\n function handleMouseMove(e: MouseEvent) {\n const rect = ctn.getBoundingClientRect();\n const x = (e.clientX - rect.left) / rect.width;\n const y = 1.0 - (e.clientY - rect.top) / rect.height;\n mousePos.current = { x, y };\n program.uniforms.uMouse.value[0] = x;\n program.uniforms.uMouse.value[1] = y;\n }\n\n if (mouseReact) {\n ctn.addEventListener('mousemove', handleMouseMove);\n }\n\n return () => {\n cancelAnimationFrame(animateId);\n window.removeEventListener('resize', resize);\n if (mouseReact) {\n ctn.removeEventListener('mousemove', handleMouseMove);\n }\n ctn.removeChild(gl.canvas);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n };\n }, [mouseReact]);\n\n useEffect(() => {\n if (programRef.current) {\n programRef.current.uniforms.uColor.value = new Color(...color);\n programRef.current.uniforms.uSpeed.value = speed;\n programRef.current.uniforms.uAmplitude.value = amplitude;\n programRef.current.uniforms.uOpacity.value = opacity;\n }\n }, [color, speed, amplitude, opacity]);\n\n return (\n <div ref={ctnDom} className={cn('h-full w-full', className)} style={style} />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { useEffect, useState } from 'react';\nimport { AnimationOptions, motion, useAnimate } from 'motion/react';\n\nconst TRANSITION: AnimationOptions = {\n duration: 2,\n ease: 'backInOut',\n};\n\nconst DELAY = 60;\n\ntype AnimationDirection = 'topToBottom' | 'bottomToTop' | 'rightToLeft' | 'leftToRight';\n\nconst DIRECTIONS: AnimationDirection[] = ['topToBottom', 'bottomToTop', 'rightToLeft', 'leftToRight'];\n\ninterface LetterSwapProperties {\n letter: string;\n className?: string;\n direction?: AnimationDirection;\n}\n\nexport function LetterSwap(properties: LetterSwapProperties) {\n const { letter, className, direction = 'leftToRight' } = properties;\n\n const [scope, animate] = useAnimate();\n const [blocked, setBlocked] = useState(false);\n const [config] = useState(() => ANIMATION_CONFIGS[getRandomDirection()]);\n\n useEffect(() => {\n if (blocked) return;\n\n const timer = window.setTimeout(animationStart, getRandomDelay());\n\n return () => clearTimeout(timer);\n }, [blocked, animationStart]);\n\n useEffect(() => {\n if (blocked) return;\n\n const timer = window.setTimeout(animationStart, getRandomDelay());\n\n return () => clearTimeout(timer);\n }, [blocked, animationStart]);\n\n function animationStart() {\n if (blocked) return;\n\n setBlocked(true);\n\n animate('.letter', config.primary.animate, TRANSITION).then(() => {\n animate('.letter', config.primary.reset, { duration: 0 }).then(() => {\n setBlocked(false);\n });\n });\n\n animate('.letter-secondary', config.secondary.animate, TRANSITION).then(() => {\n animate('.letter-secondary', config.secondary.reset, { duration: 0 });\n });\n }\n\n function getRandomDelay() {\n return Math.floor(Math.random() * DELAY * 1000);\n }\n\n function getRandomDirection() {\n const index = Math.floor(Math.random() * DIRECTIONS.length);\n return DIRECTIONS[index];\n }\n\n const containerClass = direction.includes('Left') || direction.includes('Right')\n ? 'flex-row'\n : 'flex-col';\n\n return (\n <span className={cn('flex justify-center items-center relative overflow-hidden', containerClass, className)} ref={scope}>\n <span className=\"relative flex whitespace-pre\" aria-hidden={true}>\n <motion.span\n className=\"letter relative\"\n style={config.primary.style}\n >\n {letter}\n </motion.span>\n <motion.span\n className=\"letter-secondary absolute\"\n style={config.secondary.initial}\n >\n {letter}\n </motion.span>\n </span>\n </span>\n );\n}\n\nconst ANIMATION_CONFIGS = {\n topToBottom: {\n primary: {\n initial: { y: 0 },\n animate: { y: '100%' },\n reset: { y: 0 },\n style: { top: 0 },\n },\n secondary: {\n initial: { top: '-100%' },\n animate: { top: '0%' },\n reset: { top: '-100%' },\n },\n },\n bottomToTop: {\n primary: {\n initial: { y: 0 },\n animate: { y: '-100%' },\n reset: { y: 0 },\n style: { top: 0 },\n },\n secondary: {\n initial: { top: '100%' },\n animate: { top: '0%' },\n reset: { top: '100%' },\n },\n },\n rightToLeft: {\n primary: {\n initial: { x: 0 },\n animate: { x: '-100%' },\n reset: { x: 0 },\n style: { left: 0 },\n },\n secondary: {\n initial: { left: '100%' },\n animate: { left: '0%' },\n reset: { left: '100%' },\n },\n },\n leftToRight: {\n primary: {\n initial: { x: 0 },\n animate: { x: '100%' },\n reset: { x: 0 },\n style: { left: 0 },\n },\n secondary: {\n initial: { left: '-100%' },\n animate: { left: '0%' },\n reset: { left: '-100%' },\n },\n },\n};\n","import { cn } from '@digo-labs/common';\n\nimport { Icon, Marquee, TextScramble } from '..';\n\ninterface MarqueeBarProperties {\n direction?: 'left' | 'right' | 'up' | 'down';\n className?: string;\n}\n\nexport function MarqueeBar(properties: MarqueeBarProperties) {\n const { className, direction = 'right' } = properties;\n\n function renderType(content: MarqueeBarContent, key: string | number) {\n switch (content.type) {\n case 'text':\n return (\n <TextScramble\n key={key}\n duration={1.5}\n >\n {content.content}\n </TextScramble>\n );\n case 'icon':\n return (\n <Icon key={key} icon={content.content} className=\"size-5\" />\n );\n }\n }\n\n return (\n <Marquee\n baseVelocity={-8}\n repeat={6}\n draggable={true}\n scrollSpringConfig={{ damping: 50, stiffness: 400 }}\n slowDownFactor={0.1}\n slowdownOnHover\n slowDownSpringConfig={{ damping: 60, stiffness: 300 }}\n scrollAwareDirection={true}\n useScrollVelocity={true}\n direction={direction}\n className={cn('typo-code typo-xs text-neutral bg-accent border-neutral pointer-events-auto w-full items-center gap-4 overflow-hidden p-2', className)}\n >\n <div className=\"flex flex-row items-center gap-4 \">\n {CONTENT.map((content, index) => renderType(content, index))}\n </div>\n </Marquee>\n );\n}\n\ninterface MarqueeBarContent {\n type: 'icon' | 'text';\n content: string;\n}\n\nconst CONTENT: MarqueeBarContent[] = [\n { type: 'text', content: 'Charity is overrated. Try us.' },\n { type: 'icon', content: 'code' },\n { type: 'text', content: 'Turn cash into pure nothingness' },\n { type: 'text', content: '///////////////' },\n];\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties, PointerEvent, ReactNode, RefObject, useRef } from 'react';\n\nimport { motion, SpringOptions, useAnimationFrame, useMotionValue, useScroll, useSpring, useTransform, useVelocity } from 'motion/react';\n\nfunction wrap(min: number, max: number, value: number): number {\n const range = max - min;\n return ((((value - min) % range) + range) % range) + min;\n};\n\ninterface SimpleMarqueeProperties {\n children: ReactNode;\n className?: string;\n direction?: 'left' | 'right' | 'up' | 'down';\n baseVelocity?: number;\n easing?: (value: number) => number;\n slowdownOnHover?: boolean;\n slowDownFactor?: number;\n slowDownSpringConfig?: SpringOptions;\n useScrollVelocity?: boolean;\n scrollAwareDirection?: boolean;\n scrollSpringConfig?: SpringOptions;\n scrollContainer?: RefObject<HTMLElement> | HTMLElement | null;\n repeat?: number;\n draggable?: boolean;\n dragSensitivity?: number;\n dragVelocityDecay?: number;\n dragAwareDirection?: boolean;\n dragAngle?: number;\n grabCursor?: boolean;\n style?: CSSProperties;\n}\n\nexport function Marquee(properites: SimpleMarqueeProperties) {\n const {\n children,\n className,\n direction = 'right',\n baseVelocity = 5,\n slowdownOnHover = false,\n slowDownFactor = 0.3,\n slowDownSpringConfig = { damping: 50, stiffness: 400 },\n useScrollVelocity = false,\n scrollAwareDirection = false,\n scrollSpringConfig = { damping: 50, stiffness: 400 },\n scrollContainer,\n repeat = 3,\n draggable = false,\n dragSensitivity = 0.2,\n dragVelocityDecay = 0.96,\n dragAwareDirection = false,\n dragAngle = 0,\n grabCursor = false,\n style,\n easing,\n } = properites;\n\n const innerContainer = useRef<HTMLDivElement>(null);\n const baseX = useMotionValue(0);\n const baseY = useMotionValue(0);\n\n const { scrollY } = useScroll({ container: (scrollContainer as RefObject<HTMLDivElement>) || innerContainer.current });\n\n const scrollVelocity = useVelocity(scrollY);\n const smoothVelocity = useSpring(scrollVelocity, scrollSpringConfig);\n\n const hoverFactorValue = useMotionValue(1);\n const defaultVelocity = useMotionValue(1);\n\n const isDragging = useRef(false);\n\n const dragVelocity = useRef(0);\n\n const smoothHoverFactor = useSpring(hoverFactorValue, slowDownSpringConfig);\n\n const velocityFactor = useTransform(useScrollVelocity ? smoothVelocity : defaultVelocity, [0, 1000], [0, 5], { clamp: false });\n\n const isHorizontal = direction === 'left' || direction === 'right';\n\n const actualBaseVelocity = direction === 'left' || direction === 'up' ? -baseVelocity : baseVelocity;\n\n const isHovered = useRef(false);\n\n const directionFactor = useRef(1);\n\n const x = useTransform(baseX, (v) => {\n const wrappedValue = wrap(0, -100, v);\n return `${easing ? easing(wrappedValue / -100) * -100 : wrappedValue}%`;\n });\n\n const y = useTransform(baseY, (v) => {\n const wrappedValue = wrap(0, -100, v);\n return `${easing ? easing(wrappedValue / -100) * -100 : wrappedValue}%`;\n });\n\n useAnimationFrame((_, delta) => {\n if (isDragging.current && draggable) {\n if (isHorizontal) {\n baseX.set(baseX.get() + dragVelocity.current);\n } else {\n baseY.set(baseY.get() + dragVelocity.current);\n }\n\n dragVelocity.current *= 0.9;\n\n if (Math.abs(dragVelocity.current) < 0.01) {\n dragVelocity.current = 0;\n }\n\n return;\n }\n\n if (isHovered.current) {\n hoverFactorValue.set(slowdownOnHover ? slowDownFactor : 1);\n } else {\n hoverFactorValue.set(1);\n }\n\n let moveBy = directionFactor.current * actualBaseVelocity * (delta / 1000) * smoothHoverFactor.get();\n\n if (scrollAwareDirection && !isDragging.current) {\n if (velocityFactor.get() < 0) {\n directionFactor.current = -1;\n } else if (velocityFactor.get() > 0) {\n directionFactor.current = 1;\n }\n }\n\n moveBy += directionFactor.current * moveBy * velocityFactor.get();\n\n if (draggable) {\n moveBy += dragVelocity.current;\n\n if (dragAwareDirection && Math.abs(dragVelocity.current) > 0.1) {\n directionFactor.current = Math.sign(dragVelocity.current);\n }\n\n if (!isDragging.current && Math.abs(dragVelocity.current) > 0.01) {\n dragVelocity.current *= dragVelocityDecay;\n } else if (!isDragging.current) {\n dragVelocity.current = 0;\n }\n }\n\n if (isHorizontal) {\n baseX.set(baseX.get() + moveBy);\n } else {\n baseY.set(baseY.get() + moveBy);\n }\n });\n\n const lastPointerPosition = useRef({ x: 0, y: 0 });\n\n function handlePointerDown(e: PointerEvent) {\n if (!draggable)\n return\n ;(e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n\n if (grabCursor) {\n ;(e.currentTarget as HTMLElement).style.cursor = 'grabbing';\n }\n\n isDragging.current = true;\n lastPointerPosition.current = { x: e.clientX, y: e.clientY };\n\n dragVelocity.current = 0;\n };\n\n function handlePointerMove(e: PointerEvent) {\n if (!draggable || !isDragging.current) return;\n\n const currentPosition = { x: e.clientX, y: e.clientY };\n\n const deltaX = currentPosition.x - lastPointerPosition.current.x;\n const deltaY = currentPosition.y - lastPointerPosition.current.y;\n\n const angleInRadians = (dragAngle * Math.PI) / 180;\n\n const directionX = Math.cos(angleInRadians);\n const directionY = Math.sin(angleInRadians);\n\n const projectedDelta = deltaX * directionX + deltaY * directionY;\n\n dragVelocity.current = projectedDelta * dragSensitivity;\n\n lastPointerPosition.current = currentPosition;\n };\n\n function handlePointerUp(e: PointerEvent) {\n if (!draggable) return // Release pointer capture\n ;(e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);\n\n isDragging.current = false;\n };\n\n return (\n <motion.div\n className={cn('flex', isHorizontal ? 'flex-row' : 'flex-col', className)}\n onHoverStart={() => (isHovered.current = true)}\n onHoverEnd={() => (isHovered.current = false)}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n ref={innerContainer}\n style={style}\n >\n {Array.from({ length: repeat }, (_, i) => i).map(i => (\n <motion.div\n key={i}\n className={cn(\n 'shrink-0',\n isHorizontal && 'flex',\n draggable && grabCursor && 'cursor-grab',\n )}\n style={isHorizontal ? { x } : { y }}\n aria-hidden={i > 0}\n >\n {children}\n </motion.div>\n ))}\n </motion.div>\n );\n};\n","import { cn } from '@digo-labs/common';\n\nimport { useRef, useEffect } from 'react';\n\ninterface NoiseProperties {\n patternSize?: number;\n patternScaleX?: number;\n patternScaleY?: number;\n patternRefreshInterval?: number;\n patternAlpha?: number;\n className?: string;\n}\n\nexport function Noise(properties: NoiseProperties) {\n const {\n patternSize = 250,\n patternScaleX = 1,\n patternScaleY = 1,\n patternRefreshInterval = 2,\n patternAlpha = 15,\n className,\n } = properties;\n\n const grainRef = useRef<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n const canvas = grainRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d', { alpha: true });\n if (!ctx) return;\n\n let frame = 0;\n let animationId: number;\n\n const canvasSize = 1024;\n\n const resize = () => {\n if (!canvas) return;\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n\n canvas.style.width = '100vw';\n canvas.style.height = '100vh';\n };\n\n const drawGrain = () => {\n const imageData = ctx.createImageData(canvasSize, canvasSize);\n const data = imageData.data;\n\n for (let i = 0; i < data.length; i += 4) {\n const value = Math.random() * 255;\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n data[i + 3] = patternAlpha;\n }\n\n ctx.putImageData(imageData, 0, 0);\n };\n\n const loop = () => {\n if (frame % patternRefreshInterval === 0) {\n drawGrain();\n }\n frame++;\n animationId = window.requestAnimationFrame(loop);\n };\n\n window.addEventListener('resize', resize);\n resize();\n loop();\n\n return () => {\n window.removeEventListener('resize', resize);\n window.cancelAnimationFrame(animationId);\n };\n }, [patternSize, patternScaleX, patternScaleY, patternRefreshInterval, patternAlpha]);\n\n return (\n <div className={cn('pointer-events-none absolute inset-0 grid', className)}>\n <canvas\n className=\"size-full\"\n ref={grainRef}\n style={{\n imageRendering: 'pixelated',\n }}\n />\n </div>\n );\n};\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties, useEffect, useRef } from 'react';\nimport { Renderer, Program, Mesh, Triangle, Vec3 } from 'ogl';\n\ntype ColorRGB = [number, number, number];\n\ninterface Properties {\n hue?: number;\n className?: string;\n innerRadius?: number;\n noiseScale?: number;\n rotationSpeed?: number;\n color1?: ColorRGB;\n color2?: ColorRGB;\n color3?: ColorRGB;\n style?: CSSProperties;\n}\n\nexport function Orb(properties: Properties) {\n const {\n hue = 0,\n rotationSpeed = 0,\n innerRadius = 0.6,\n noiseScale = 0.65,\n color1 = [1, 1, 1],\n color2 = [1, 0, 0],\n color3 = [0, 0, 1],\n style,\n className,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const programRef = useRef<Program | null>(null);\n\n const vert = `\n precision highp float;\n attribute vec2 position;\n attribute vec2 uv;\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `;\n\n const frag = `\n precision highp float;\n\n uniform float iTime;\n uniform float hue;\n uniform float innerRadius;\n uniform float noiseScale;\n uniform float rotationSpeed;\n uniform vec3 iResolution;\n uniform vec3 baseColor1;\n uniform vec3 baseColor2;\n uniform vec3 baseColor3;\n varying vec2 vUv;\n\n vec3 rgb2yiq(vec3 c) {\n float y = dot(c, vec3(0.299, 0.587, 0.114));\n float i = dot(c, vec3(0.596, -0.274, -0.322));\n float q = dot(c, vec3(0.211, -0.523, 0.312));\n return vec3(y, i, q);\n }\n \n vec3 yiq2rgb(vec3 c) {\n float r = c.x + 0.956 * c.y + 0.621 * c.z;\n float g = c.x - 0.272 * c.y - 0.647 * c.z;\n float b = c.x - 1.106 * c.y + 1.703 * c.z;\n return vec3(r, g, b);\n }\n \n vec3 adjustHue(vec3 color, float hueDeg) {\n float hueRad = hueDeg * 3.14159265 / 180.0;\n vec3 yiq = rgb2yiq(color);\n float cosA = cos(hueRad);\n float sinA = sin(hueRad);\n float i = yiq.y * cosA - yiq.z * sinA;\n float q = yiq.y * sinA + yiq.z * cosA;\n yiq.y = i;\n yiq.z = q;\n return yiq2rgb(yiq);\n }\n \n vec3 hash33(vec3 p3) {\n p3 = fract(p3 * vec3(0.1031, 0.11369, 0.13787));\n p3 += dot(p3, p3.yxz + 19.19);\n return -1.0 + 2.0 * fract(vec3(\n p3.x + p3.y,\n p3.x + p3.z,\n p3.y + p3.z\n ) * p3.zyx);\n }\n \n float snoise3(vec3 p) {\n const float K1 = 0.333333333;\n const float K2 = 0.166666667;\n vec3 i = floor(p + (p.x + p.y + p.z) * K1);\n vec3 d0 = p - (i - (i.x + i.y + i.z) * K2);\n vec3 e = step(vec3(0.0), d0 - d0.yzx);\n vec3 i1 = e * (1.0 - e.zxy);\n vec3 i2 = 1.0 - e.zxy * (1.0 - e);\n vec3 d1 = d0 - (i1 - K2);\n vec3 d2 = d0 - (i2 - K1);\n vec3 d3 = d0 - 0.5;\n vec4 h = max(0.6 - vec4(\n dot(d0, d0),\n dot(d1, d1),\n dot(d2, d2),\n dot(d3, d3)\n ), 0.0);\n vec4 n = h * h * h * h * vec4(\n dot(d0, hash33(i)),\n dot(d1, hash33(i + i1)),\n dot(d2, hash33(i + i2)),\n dot(d3, hash33(i + 1.0))\n );\n return dot(vec4(31.316), n);\n }\n \n vec4 extractAlpha(vec3 colorIn) {\n float a = max(max(colorIn.r, colorIn.g), colorIn.b);\n return vec4(colorIn.rgb / (a + 1e-5), a);\n }\n \n \n float light1(float intensity, float attenuation, float dist) {\n return intensity / (1.0 + dist * attenuation);\n }\n \n float light2(float intensity, float attenuation, float dist) {\n return intensity / (1.0 + dist * dist * attenuation);\n }\n \n vec4 draw(vec2 uv) {\n vec3 color1 = adjustHue(baseColor1, hue);\n vec3 color2 = adjustHue(baseColor2, hue);\n vec3 color3 = adjustHue(baseColor3, hue);\n \n float ang = atan(uv.y, uv.x);\n float len = length(uv);\n float invLen = len > 0.0 ? 1.0 / len : 0.0;\n \n float n0 = snoise3(vec3(uv * noiseScale, iTime * 0.5)) * 0.5 + 0.5;\n float r0 = mix(mix(innerRadius, 1.0, 0.4), mix(innerRadius, 1.0, 0.6), n0);\n float d0 = distance(uv, (r0 * invLen) * uv);\n float v0 = light1(1.0, 10.0, d0);\n v0 *= smoothstep(r0 * 1.05, r0, len);\n float cl = cos(ang + iTime * 2.0) * 0.5 + 0.5;\n \n float a = iTime * -1.0;\n vec2 pos = vec2(cos(a), sin(a)) * r0;\n float d = distance(uv, pos);\n float v1 = light2(1.5, 5.0, d);\n v1 *= light1(1.0, 50.0, d0);\n \n float v2 = smoothstep(1.0, mix(innerRadius, 1.0, n0 * 0.5), len);\n float v3 = smoothstep(innerRadius, mix(innerRadius, 1.0, 0.5), len);\n \n vec3 col = mix(color1, color2, cl);\n col = mix(color3, col, v0);\n col = (col + v1) * v2;\n col = clamp(col, 0.0, 1.0);\n \n return extractAlpha(col);\n }\n \n vec4 mainImage(vec2 fragCoord) {\n vec2 center = iResolution.xy * 0.5;\n float size = min(iResolution.x, iResolution.y);\n vec2 uv = (fragCoord - center) / size * 2.0;\n \n float angle = iTime * rotationSpeed;\n float s = sin(angle);\n float c = cos(angle);\n uv = vec2(c * uv.x - s * uv.y, s * uv.x + c * uv.y);\n \n return draw(uv);\n }\n \n void main() {\n vec2 fragCoord = vUv * iResolution.xy;\n vec4 col = mainImage(fragCoord);\n gl_FragColor = vec4(col.rgb * col.a, col.a);\n }\n `;\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const renderer = new Renderer({ alpha: true, premultipliedAlpha: false });\n\n const gl = renderer.gl;\n\n gl.clearColor(0, 0, 0, 0);\n\n container.appendChild(gl.canvas);\n\n const geometry = new Triangle(gl);\n\n const program = new Program(gl, {\n vertex: vert,\n fragment: frag,\n uniforms: {\n iTime: { value: 0 },\n iResolution: {\n value: new Vec3(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height),\n },\n hue: { value: hue },\n rotationSpeed: { value: rotationSpeed },\n innerRadius: { value: innerRadius },\n noiseScale: { value: noiseScale },\n baseColor1: { value: new Vec3(...color1) },\n baseColor2: { value: new Vec3(...color2) },\n baseColor3: { value: new Vec3(...color3) },\n },\n });\n\n programRef.current = program;\n\n const mesh = new Mesh(gl, { geometry, program });\n\n function resize() {\n if (!container) return;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n renderer.setSize(width * dpr, height * dpr);\n\n gl.canvas.style.width = width + 'px';\n gl.canvas.style.height = height + 'px';\n\n program.uniforms.iResolution.value.set(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height);\n }\n\n window.addEventListener('resize', resize);\n\n resize();\n\n let rafId: number;\n\n const update = (t: number) => {\n rafId = requestAnimationFrame(update);\n\n program.uniforms.iTime.value = t * 0.001;\n\n renderer.render({ scene: mesh });\n };\n rafId = requestAnimationFrame(update);\n\n return () => {\n cancelAnimationFrame(rafId);\n window.removeEventListener('resize', resize);\n container.removeChild(gl.canvas);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n };\n }, []);\n\n useEffect(() => {\n if (!programRef.current) return;\n\n programRef.current.uniforms.hue.value = hue;\n programRef.current.uniforms.rotationSpeed.value = rotationSpeed;\n programRef.current.uniforms.noiseScale.value = noiseScale;\n programRef.current.uniforms.innerRadius.value = innerRadius;\n programRef.current.uniforms.baseColor1.value.set(...color1);\n programRef.current.uniforms.baseColor2.value.set(...color2);\n programRef.current.uniforms.baseColor3.value.set(...color3);\n }, [hue, rotationSpeed, noiseScale, innerRadius, color1, color2, color3]);\n\n return (\n\n <div\n ref={containerRef}\n className={cn('h-full w-full', className)}\n style={style}\n />\n\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { AnimatePresence, motion, Transition, Variants } from 'motion/react';\n\nimport { useMemo, useId, CSSProperties } from 'react';\n\nexport interface TextMorphProperties {\n children: string;\n className?: string;\n style?: CSSProperties;\n variants?: Variants;\n transition?: Transition;\n damping?: number;\n stiffness?: number;\n mass?: number;\n onFinish?: () => void;\n};\n\nexport function TextMorph(properties: TextMorphProperties) {\n const {\n children,\n className,\n style,\n variants,\n transition,\n damping = 10,\n stiffness = 150,\n mass = 0.5,\n onFinish,\n } = properties;\n\n const uniqueId = useId();\n\n const characters = useMemo(() => {\n const charCounts: Record<string, number> = {};\n\n return children.split('').map((char) => {\n const lowerChar = char.toLowerCase();\n charCounts[lowerChar] = (charCounts[lowerChar] || 0) + 1;\n\n return {\n id: `${uniqueId}-${lowerChar}${charCounts[lowerChar]}`,\n label: char === ' ' ? '\\u00A0' : char,\n };\n });\n }, [children, uniqueId]);\n\n const defaultVariants: Variants = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n };\n\n const defaultTransition: Transition = {\n type: 'spring',\n stiffness: stiffness,\n damping: damping,\n mass: mass,\n };\n\n return (\n <p className={cn(className)} aria-label={children} style={style}>\n <AnimatePresence mode=\"popLayout\" initial={false} onExitComplete={onFinish}>\n {characters.map(character => (\n <motion.span\n key={character.id}\n layoutId={character.id}\n className=\"inline-block transform-gpu\"\n aria-hidden=\"true\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants || defaultVariants}\n transition={transition || defaultTransition}\n >\n {character.label}\n </motion.span>\n ))}\n </AnimatePresence>\n </p>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { useEffect, useRef, useState } from 'react';\n\ninterface TextPressureProps {\n text?: string;\n width?: boolean;\n weight?: boolean;\n italic?: boolean;\n alpha?: boolean;\n flex?: boolean;\n scale?: boolean;\n className?: string;\n minFontSize?: number;\n}\n\nexport function TextPressure(properties: TextPressureProps) {\n const {\n text = 'Compressa',\n width = true,\n weight = true,\n italic = true,\n alpha = false,\n scale = false,\n className = '',\n minFontSize = 24,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n const titleRef = useRef<HTMLHeadingElement | null>(null);\n const spansRef = useRef<(HTMLSpanElement | null)[]>([]);\n\n const mouseRef = useRef({ x: 0, y: 0 });\n const cursorRef = useRef({ x: 0, y: 0 });\n\n const [fontSize, setFontSize] = useState(minFontSize);\n const [scaleY, setScaleY] = useState(1);\n const [lineHeight, setLineHeight] = useState(1);\n\n const chars = text.split('');\n\n const dist = (a: { x: number; y: number; }, b: { x: number; y: number; }) => {\n const dx = b.x - a.x;\n const dy = b.y - a.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n cursorRef.current.x = e.clientX;\n cursorRef.current.y = e.clientY;\n };\n\n const handleTouchMove = (e: TouchEvent) => {\n const t = e.touches[0];\n cursorRef.current.x = t.clientX;\n cursorRef.current.y = t.clientY;\n };\n\n window.addEventListener('mousemove', handleMouseMove);\n\n window.addEventListener('touchmove', handleTouchMove, { passive: false });\n\n if (containerRef.current) {\n const { left, top, width, height } = containerRef.current.getBoundingClientRect();\n mouseRef.current.x = left + width / 2;\n mouseRef.current.y = top + height / 2;\n cursorRef.current.x = mouseRef.current.x;\n cursorRef.current.y = mouseRef.current.y;\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('touchmove', handleTouchMove);\n };\n }, []);\n\n const setSize = () => {\n if (!containerRef.current || !titleRef.current) return;\n\n const { width: containerW, height: containerH } = containerRef.current.getBoundingClientRect();\n\n let newFontSize = containerW / (chars.length / 2);\n newFontSize = Math.max(newFontSize, minFontSize);\n\n setFontSize(newFontSize);\n setScaleY(1);\n setLineHeight(1);\n\n requestAnimationFrame(() => {\n if (!titleRef.current) return;\n const textRect = titleRef.current.getBoundingClientRect();\n\n if (scale && textRect.height > 0) {\n const yRatio = containerH / textRect.height;\n setScaleY(yRatio);\n setLineHeight(yRatio);\n }\n });\n };\n\n useEffect(() => {\n setSize();\n\n window.addEventListener('resize', setSize);\n\n return () => window.removeEventListener('resize', setSize);\n }, [scale, text]);\n\n useEffect(() => {\n let rafId: number;\n const animate = () => {\n mouseRef.current.x += (cursorRef.current.x - mouseRef.current.x) / 15;\n mouseRef.current.y += (cursorRef.current.y - mouseRef.current.y) / 15;\n\n if (titleRef.current) {\n const titleRect = titleRef.current.getBoundingClientRect();\n const maxDist = titleRect.width / 2;\n\n spansRef.current.forEach((span) => {\n if (!span) return;\n\n const rect = span.getBoundingClientRect();\n const charCenter = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n\n const d = dist(mouseRef.current, charCenter);\n\n const getAttr = (distance: number, minVal: number, maxVal: number) => {\n const val = maxVal - Math.abs((maxVal * distance) / maxDist);\n return Math.max(minVal, val + minVal);\n };\n\n const wdth = width ? Math.floor(getAttr(d, 5, 200)) : 100;\n const wght = weight ? Math.floor(getAttr(d, 100, 900)) : 400;\n const italVal = italic ? getAttr(d, 0, 1).toFixed(2) : '0';\n const alphaVal = alpha ? getAttr(d, 0, 1).toFixed(2) : '1';\n\n span.style.opacity = alphaVal;\n span.style.fontVariationSettings = `'wght' ${wght}, 'wdth' ${wdth}, 'ital' ${italVal}`;\n });\n }\n\n rafId = requestAnimationFrame(animate);\n };\n\n animate();\n return () => cancelAnimationFrame(rafId);\n }, [width, weight, italic, alpha, chars.length]);\n\n return (\n <div\n ref={containerRef}\n className=\"relative size-full overflow-hidden bg-transparent\"\n >\n\n <h1\n ref={titleRef}\n className={cn('text-center typo-test uppercase text-neutral select-none flex justify-between', className)}\n style={{\n fontSize: fontSize,\n lineHeight,\n transform: `scale(1, ${scaleY})`,\n transformOrigin: 'center top',\n margin: 0,\n fontWeight: 100,\n }}\n >\n {chars.map((char, i) => (\n <span\n key={i}\n ref={(el) => { spansRef.current[i] = el; }}\n data-char={char}\n className=\"inline-block\"\n >\n {char}\n </span>\n ))}\n </h1>\n </div>\n );\n};\n","import { motion, VariantLabels, Target, TargetAndTransition, Transition } from 'motion/react';\n\ninterface Properties {\n children: string;\n duration?: number;\n getEnterDelay?: (index: number) => number;\n getExitDelay?: (index: number) => number;\n className?: string;\n transition?: Transition;\n variants?: {\n enter: {\n initial: Target | VariantLabels | boolean;\n animate: TargetAndTransition | VariantLabels;\n };\n exit: {\n initial: Target | VariantLabels | boolean;\n animate: TargetAndTransition | VariantLabels;\n };\n };\n onAnimationComplete?: () => void;\n};\n\nexport function TextRoll(properties: Properties) {\n const {\n children,\n duration = 0.5,\n getEnterDelay = i => i * 0.1,\n getExitDelay = i => i * 0.1 + 0.2,\n className,\n transition = { ease: 'easeIn' },\n variants,\n onAnimationComplete,\n } = properties;\n\n const defaultVariants = {\n enter: {\n initial: { rotateX: 0 },\n animate: { rotateX: 90 },\n },\n exit: {\n initial: { rotateX: 90 },\n animate: { rotateX: 0 },\n },\n } as const;\n\n const letters = children.split('');\n\n return (\n <span className={className}>\n {letters.map((letter, i) => {\n return (\n <span\n key={i}\n className=\"relative inline-block [width:auto] [perspective:10000px] [transform-style:preserve-3d]\"\n aria-hidden=\"true\"\n >\n <motion.span\n className=\"absolute inline-block [transform-origin:50%_25%] [backface-visibility:hidden]\"\n initial={\n variants?.enter?.initial ?? defaultVariants.enter.initial\n }\n animate={\n variants?.enter?.animate ?? defaultVariants.enter.animate\n }\n transition={{\n ...transition,\n duration,\n delay: getEnterDelay(i),\n }}\n >\n {letter === ' ' ? '\\u00A0' : letter}\n </motion.span>\n <motion.span\n className=\"absolute inline-block [transform-origin:50%_100%] [backface-visibility:hidden]\"\n initial={variants?.exit?.initial ?? defaultVariants.exit.initial}\n animate={variants?.exit?.animate ?? defaultVariants.exit.animate}\n transition={{\n ...transition,\n duration,\n delay: getExitDelay(i),\n }}\n onAnimationComplete={\n letters.length === i + 1 ? onAnimationComplete : undefined\n }\n >\n {letter === ' ' ? '\\u00A0' : letter}\n </motion.span>\n <span className=\"invisible\">\n {letter === ' ' ? '\\u00A0' : letter}\n </span>\n </span>\n );\n })}\n <span className=\"sr-only\">{children}</span>\n </span>\n );\n}\n","import { CSSProperties, type JSX, useEffect, useState } from 'react';\nimport { motion, MotionProps } from 'motion/react';\n\ninterface Properties extends MotionProps {\n children: string;\n duration?: number;\n delay?: number;\n characterSet?: 'default' | 'binary';\n as?: React.ElementType;\n className?: string;\n style?: CSSProperties;\n trigger?: boolean;\n triggerOnMouse?: boolean;\n onScrambleComplete?: () => void;\n}\n\nconst DEFAULT_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nconst BINARY_CHARACTERS = '01';\n\nexport function TextScramble(properties: Properties) {\n const {\n children,\n duration = 0.8,\n delay = 0.04,\n characterSet = 'default',\n className,\n as: Component = 'p',\n trigger = true,\n onScrambleComplete,\n triggerOnMouse = false,\n style,\n ...props\n } = properties;\n\n const MotionComponent = motion.create(Component as keyof JSX.IntrinsicElements);\n const [displayText, setDisplayText] = useState(children);\n const [isAnimating, setIsAnimating] = useState(false);\n const [isTrigger, setIsTrigger] = useState(trigger);\n\n useEffect(() => {\n setIsTrigger(trigger);\n }, [trigger]);\n\n useEffect(() => {\n setDisplayText(children);\n\n if (isAnimating) return;\n\n setIsTrigger(true);\n }, [children]);\n\n useEffect(() => {\n if (!isTrigger) return;\n\n setIsTrigger(false);\n\n scramble();\n }, [isTrigger]);\n\n async function scramble() {\n if (isAnimating) return;\n\n setIsAnimating(true);\n\n const steps = duration / delay;\n let step = 0;\n\n const characters = characterSet === 'binary' ? BINARY_CHARACTERS : DEFAULT_CHARACTERS;\n\n const interval = setInterval(() => {\n let scrambled = '';\n const progress = step / steps;\n\n for (let i = 0; i < children.length; i++) {\n if (children[i] === ' ') {\n scrambled += ' ';\n continue;\n }\n\n if (progress * children.length > i) {\n scrambled += children[i];\n } else {\n scrambled += characters[Math.floor(Math.random() * characters.length)];\n }\n }\n\n setDisplayText(scrambled);\n step++;\n\n if (step > steps) {\n clearInterval(interval);\n setDisplayText(children);\n setIsAnimating(false);\n setIsTrigger(false);\n onScrambleComplete?.();\n }\n }, delay * 1000);\n };\n\n return (\n <div onMouseEnter={() => !isAnimating && triggerOnMouse && setIsTrigger(true)}>\n <MotionComponent className={className} style={style} {...props}>\n {displayText}\n </MotionComponent>\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties, ElementType, useMemo, type JSX } from 'react';\nimport { motion } from 'motion/react';\n\nimport { ComponentStylesProps, createComponentStyles } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('textShimmer');\n\ntype Properties = RootProperties & ComponentStylesProps<'textShimmer'>;\n\nexport function TextShimmer(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TextShimmerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n children: string;\n as?: ElementType;\n className?: string;\n duration?: number;\n spread?: number;\n highlightColor?: string;\n}\n\nfunction TextShimmerRoot(properties: RootProperties) {\n const {\n children,\n as: Component = 'p',\n className,\n duration = 2,\n spread = 2,\n highlightColor = '#000',\n } = properties;\n\n const styles = useComponentStyles();\n const MotionComponent = motion.create(Component as keyof JSX.IntrinsicElements);\n const dynamicSpread = useMemo(() => children.length * spread, [children, spread]);\n\n return (\n <MotionComponent\n data-slot=\"text-shimmer\"\n className={cn(styles.root, className)}\n initial={{ backgroundPosition: '100% center' }}\n animate={{ backgroundPosition: '0% center' }}\n transition={{\n repeat: Infinity,\n duration: duration,\n ease: 'linear',\n }}\n style={{\n backgroundImage: `linear-gradient(90deg, currentColor calc(50% - ${dynamicSpread}px), ${highlightColor} 50%, currentColor calc(50% + ${dynamicSpread}px))`,\n backgroundSize: '250% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundRepeat: 'no-repeat',\n } as CSSProperties}\n >\n {children}\n </MotionComponent>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { type JSX } from 'react';\nimport { motion, Transition } from 'motion/react';\n\ninterface Properties {\n children: string;\n as?: React.ElementType;\n className?: string;\n duration?: number;\n zDistance?: number;\n xDistance?: number;\n yDistance?: number;\n spread?: number;\n scaleDistance?: number;\n rotateYDistance?: number;\n transition?: Transition;\n};\n\nexport function TextShimmerWave(properties: Properties) {\n const {\n children,\n as: Component = 'p',\n className,\n duration = 1,\n zDistance = 10,\n xDistance = 2,\n yDistance = -2,\n spread = 1,\n scaleDistance = 1.1,\n rotateYDistance = 10,\n transition,\n } = properties;\n\n const MotionComponent = motion.create(\n Component as keyof JSX.IntrinsicElements,\n );\n\n return (\n <MotionComponent\n className={cn(\n 'relative inline-block perspective-normal',\n '[--base-color:#a1a1aa] [--base-gradient-color:#000]',\n className,\n )}\n style={{ color: 'var(--base-color)' }}\n >\n {children.split('').map((char, i) => {\n const delay = (i * duration * (1 / spread)) / children.length;\n\n return (\n <motion.span\n key={i}\n className={cn(\n 'inline-block whitespace-pre transform-3d',\n )}\n initial={{\n translateZ: 0,\n scale: 1,\n rotateY: 0,\n color: 'var(--base-color)',\n }}\n animate={{\n translateZ: [0, zDistance, 0],\n translateX: [0, xDistance, 0],\n translateY: [0, yDistance, 0],\n scale: [1, scaleDistance, 1],\n rotateY: [0, rotateYDistance, 0],\n color: [\n 'var(--base-color)',\n 'var(--base-gradient-color)',\n 'var(--base-color)',\n ],\n }}\n transition={{\n duration: duration,\n repeat: Infinity,\n repeatDelay: (children.length * 0.05) / spread,\n delay,\n ease: 'easeInOut',\n ...transition,\n }}\n >\n {char}\n </motion.span>\n );\n })}\n </MotionComponent>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { LetterSwap } from '..';\n\ninterface TextSwapLetterProperties {\n word: string;\n className?: string;\n}\n\nexport function TextSwapLetter(properties: TextSwapLetterProperties) {\n const { word, className } = properties;\n\n return (\n <div className={cn('typo-header gap-4 overflow-hidden ', className)}>\n <div className=\"mb-[-2vw] flex items-center text-[20vw] leading-[16vw]\">\n {word.split('').map((letter, index) => (\n <LetterSwap\n key={index}\n letter={letter}\n />\n ))}\n </div>\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ElementType, useEffect, useRef, useState, createElement, useMemo, HTMLAttributes, ReactNode } from 'react';\n\nimport { gsap } from 'gsap';\n\ninterface Properties extends HTMLAttributes<HTMLElement> {\n className?: string;\n showCursor?: boolean;\n hideCursorWhileTyping?: boolean;\n hideCursorOnComplete?: boolean;\n cursorCharacter?: '|' | '█' | '▮' | '▌' | '_' | ReactNode;\n cursorBlinkDuration?: number;\n cursorClassName?: string;\n text: string | string[];\n as?: ElementType;\n typingSpeed?: number;\n initialDelay?: number;\n pauseDuration?: number;\n deletingSpeed?: number;\n loop?: boolean;\n textColors?: string[];\n variableSpeed?: { min: number; max: number; };\n onSentenceComplete?: (sentence: string, index: number) => void;\n startOnVisible?: boolean;\n reverseMode?: boolean;\n}\n\nexport function TextType(properties: Properties) {\n const {\n text,\n as: Component = 'div',\n typingSpeed = 50,\n initialDelay = 100,\n pauseDuration = 500,\n deletingSpeed = 20,\n loop = true,\n className = '',\n showCursor = true,\n hideCursorWhileTyping = false,\n hideCursorOnComplete = false,\n cursorCharacter = '▌',\n cursorClassName = '',\n cursorBlinkDuration = 0.5,\n textColors = [],\n variableSpeed,\n onSentenceComplete,\n startOnVisible = true,\n reverseMode = false,\n ...props\n } = properties;\n\n const [displayedText, setDisplayedText] = useState('');\n const [currentCharIndex, setCurrentCharIndex] = useState(0);\n const [isDeleting, setIsDeleting] = useState(false);\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\n const [isVisible, setIsVisible] = useState(!startOnVisible);\n const [previousText, setPreviousText] = useState(text);\n const cursorRef = useRef<HTMLSpanElement>(null);\n const containerRef = useRef<HTMLElement>(null);\n\n const textArray = useMemo(() => (Array.isArray(text) ? text : [text]), [text]);\n\n useEffect(() => {\n if (previousText !== text && displayedText !== '') {\n setIsDeleting(true);\n setPreviousText(text);\n }\n }, [text, previousText, displayedText]);\n\n function getRandomSpeed() {\n if (!variableSpeed) return typingSpeed;\n\n const { min, max } = variableSpeed;\n\n return Math.random() * (max - min) + min;\n }\n\n function getCurrentTextColor() {\n if (textColors.length === 0) return;\n\n return textColors[currentTextIndex % textColors.length];\n };\n\n useEffect(() => {\n if (!startOnVisible || !containerRef.current) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n }\n });\n },\n { threshold: 0.1 },\n );\n\n observer.observe(containerRef.current);\n return () => observer.disconnect();\n }, [startOnVisible]);\n\n useEffect(() => {\n if (showCursor && cursorRef.current) {\n gsap.set(cursorRef.current, { opacity: 1 });\n gsap.to(cursorRef.current, {\n opacity: 0,\n duration: cursorBlinkDuration,\n repeat: -1,\n yoyo: true,\n ease: 'power2.inOut',\n });\n }\n }, [showCursor, cursorBlinkDuration]);\n\n useEffect(() => {\n if (!isVisible) return;\n\n let timeout: NodeJS.Timeout;\n\n const currentText = textArray[currentTextIndex];\n const processedText = reverseMode ? currentText.split('').reverse().join('') : currentText;\n\n const executeTypingAnimation = () => {\n if (isDeleting) {\n if (displayedText === '') {\n setIsDeleting(false);\n\n setCurrentCharIndex(0);\n\n if (Array.isArray(text)) {\n if (currentTextIndex === textArray.length - 1 && !loop) {\n return;\n }\n\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n\n setCurrentTextIndex(prev => (prev + 1) % textArray.length);\n }\n\n timeout = setTimeout(() => {}, pauseDuration);\n } else {\n timeout = setTimeout(() => {\n setDisplayedText(prev => prev.slice(0, -1));\n }, deletingSpeed);\n }\n } else {\n if (currentCharIndex < processedText.length) {\n timeout = setTimeout(\n () => {\n setDisplayedText(prev => prev + processedText[currentCharIndex]);\n setCurrentCharIndex(prev => prev + 1);\n },\n variableSpeed ? getRandomSpeed() : typingSpeed,\n );\n } else {\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n\n if (Array.isArray(text) && textArray.length > 1) {\n timeout = setTimeout(() => {\n setIsDeleting(true);\n }, pauseDuration);\n }\n }\n }\n };\n\n if (currentCharIndex === 0 && !isDeleting && displayedText === '') {\n timeout = setTimeout(executeTypingAnimation, initialDelay);\n } else {\n executeTypingAnimation();\n }\n\n return () => clearTimeout(timeout);\n }, [\n currentCharIndex,\n displayedText,\n isDeleting,\n typingSpeed,\n deletingSpeed,\n pauseDuration,\n textArray,\n currentTextIndex,\n loop,\n initialDelay,\n isVisible,\n reverseMode,\n variableSpeed,\n onSentenceComplete,\n text,\n ]);\n\n const isComplete = currentCharIndex >= textArray[currentTextIndex].length && !isDeleting;\n\n const hideOnComplete = hideCursorOnComplete && isComplete;\n\n const shouldHideCursor = hideCursorWhileTyping && (currentCharIndex < textArray[currentTextIndex].length || isDeleting);\n\n return createElement(\n Component,\n {\n ref: containerRef,\n className: cn('typo-10 typo-header inline-block tracking-tight whitespace-pre-wrap ', className),\n ...props,\n },\n <span className=\"inline\" style={{ color: getCurrentTextColor() || 'inherit' }}>\n {displayedText}\n </span>,\n !hideOnComplete && showCursor && (\n <span\n ref={cursorRef}\n className={cn('ml-1 inline-block opacity-100 ', shouldHideCursor && 'hidden', cursorClassName)}\n >\n {cursorCharacter}\n </span>\n ),\n );\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport function useAnimatedValue(duration: number): [number, () => void] {\n const [value, setValue] = useState(0);\n const startTimeRef = useRef(Date.now());\n const previousProgressRef = useRef(0);\n\n useEffect(() => {\n const animationId = requestAnimationFrame(animate);\n\n return () => cancelAnimationFrame(animationId);\n }, [duration]);\n\n function reset() {\n startTimeRef.current = Date.now();\n previousProgressRef.current = 0;\n setValue(0);\n };\n\n function animate() {\n const elapsed = Date.now() - startTimeRef.current;\n const progress = (elapsed % duration) / duration;\n\n setValue(progress * 100);\n\n previousProgressRef.current = progress;\n\n if (progress < 1) {\n requestAnimationFrame(animate);\n }\n };\n\n return [value, reset];\n};\n","import { Size } from '@digo-labs/common';\n\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nexport function useElementSize<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [size, setSize] = useState<Size>({ width: 0, height: 0 });\n\n useLayoutEffect(() => {\n const element = ref.current;\n\n if (!element) return;\n\n update(element);\n\n const resizeObserver = new ResizeObserver(() => update(element));\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n function update(element: T) {\n setSize({ width: element.clientWidth, height: element.clientHeight });\n };\n\n return { ref, ...size };\n}\n","import { useEffect, useState } from 'react';\n\nexport function useFocusSize(isFocused: boolean, duration: number = 1000) {\n const [size, setSize] = useState(0);\n\n useEffect(() => {\n let start: number | null = null;\n let animationFrameId: number;\n\n const animate = (timestamp: number) => {\n if (!start) start = timestamp;\n const elapsed = timestamp - start;\n const progress = Math.min(elapsed / duration, 1);\n const newSize = isFocused ? progress * 100 : (1 - progress) * 100;\n setSize(newSize);\n if (elapsed < duration) {\n animationFrameId = requestAnimationFrame(animate);\n }\n };\n\n animationFrameId = requestAnimationFrame(animate);\n\n return () => cancelAnimationFrame(animationFrameId);\n }, [isFocused, duration]);\n\n return size;\n};\n","import { useEffect, useState } from 'react';\n\nexport function usePreloadedImage(src: string): string {\n const [loadedSrc, setLoadedSrc] = useState(src);\n\n useEffect(() => {\n const image = new Image();\n image.src = src;\n\n image.onload = () => {\n setLoadedSrc(src);\n };\n }, [src]);\n\n return loadedSrc;\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface Stopwatch {\n start: () => void;\n stop: () => void;\n}\n\ninterface StopwatchOutput extends Stopwatch {\n seconds: number;\n}\n\nexport function useStopwatch(): StopwatchOutput {\n const intervalRef = useRef<NodeJS.Timeout>(undefined);\n\n const [seconds, setSeconds] = useState(0);\n\n useEffect(() => {\n return () => stop();\n }, []);\n\n function start() {\n if (intervalRef.current) return;\n\n setSeconds(0);\n\n intervalRef.current = setInterval(() => {\n setSeconds(prev => parseFloat((prev + 0.1).toFixed(1)));\n }, 100);\n };\n\n function stop() {\n if (!intervalRef.current) return;\n\n clearInterval(intervalRef.current);\n\n intervalRef.current = undefined;\n };\n\n return { start, stop, seconds };\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface Timer {\n start: (seconds: number) => void;\n pause: () => void;\n resume: (currentSecons?: number) => void;\n reset: () => void;\n}\n\ninterface UseTimerProperties {\n initialSeconds: number;\n onComplete?: () => void;\n}\ninterface TimerOutput extends Timer {\n seconds: number;\n}\n\nexport function useTimer(properties: UseTimerProperties): TimerOutput {\n const {\n initialSeconds,\n onComplete,\n } = properties;\n\n const [seconds, setSeconds] = useState(initialSeconds);\n const [isRunning, setIsRunning] = useState(false);\n\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n const onCompleteRef = useRef(onComplete);\n\n useEffect(() => {\n return () => {\n if (timerRef.current) clearInterval(timerRef.current);\n };\n }, []);\n\n useEffect(() => {\n onCompleteRef.current = onComplete;\n }, [onComplete]);\n\n function startInterval() {\n if (timerRef.current) return;\n\n setIsRunning(true);\n\n timerRef.current = setInterval(() => {\n setSeconds((prevSeconds) => {\n if (prevSeconds <= 1) {\n clearInterval(timerRef.current!);\n\n timerRef.current = null;\n\n setIsRunning(false);\n\n if (onCompleteRef.current) onCompleteRef.current();\n\n return 0;\n }\n\n return prevSeconds - 1;\n });\n }, 1000);\n }\n\n function start(seconds: number) {\n stop();\n\n setSeconds(seconds);\n\n setTimeout(() => startInterval(), 0);\n }\n\n function stop() {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n timerRef.current = null;\n }\n setIsRunning(false);\n }\n\n function pause() {\n if (!timerRef.current) return;\n\n clearInterval(timerRef.current);\n\n timerRef.current = null;\n\n setIsRunning(false);\n }\n\n function resume(currentSeconds?: number) {\n if (isRunning) return;\n\n if (currentSeconds !== undefined) {\n setSeconds(currentSeconds);\n }\n\n if (currentSeconds === undefined && seconds <= 0) return;\n\n startInterval();\n }\n\n function reset() {\n stop();\n setSeconds(initialSeconds);\n }\n\n return { seconds, start, pause, resume, reset };\n}\n","import { createContext, ReactNode, useContext } from 'react';\n\ninterface CommandContextType {\n open: () => void;\n}\n\nconst CommandContext = createContext<CommandContextType | undefined>(undefined);\n\ninterface CommandProviderProperties {\n children: ReactNode;\n open: () => void;\n}\n\nexport function CommandProvider(properties: CommandProviderProperties) {\n const { open, children } = properties;\n\n return (\n <CommandContext.Provider value={{ open }}>\n {children}\n </CommandContext.Provider>\n );\n}\n\nexport function useCommand(): CommandContextType {\n const context = useContext(CommandContext);\n\n if (!context) {\n throw new Error('useCommand must be used within a CommandProvider');\n }\n\n return context;\n}\n","import { styles } from 'src/utils/styles';\n\nexport const accordion = styles({\n slots: {\n root: 'rounded-md max-w-[calc(100vw-8rem)] flex flex-col justify-center border border-neutral-6 overflow-hidden',\n item: 'border-b last:border-none typo-3 border-neutral-6 text-left',\n header: 'flex',\n trigger: 'group bg-neutral-4 relative flex w-full items-center justify-between gap-4 px-3 py-2 text-left hover:bg-neutral-5 cs-focus cs-transition cs-disabled',\n triggerIcon: 'typo-3 flex-col-center',\n panel: 'overflow-hidden',\n content: 'p-3 text-neutral-11 border-t border-neutral-6',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const alert = styles({\n slots: {\n root: 'rounded-md relative grid w-full items-start gap-4 border p-4 has-data-[slot=alert-action]:grid-cols-[1fr_auto] has-data-[slot=alert-icon]:grid-cols-[auto_1fr] has-data-[slot=alert-icon]:has-data-[slot=alert-action]:grid-cols-[auto_1fr_auto]',\n content: 'flex flex-col gap-2',\n title: 'typo-header typo-3',\n description: 'typo-body typo-3',\n action: 'flex',\n icon: 'flex typo-5',\n },\n variants: {\n variant: {\n default: {\n root: 'bg-neutralA-2 border-neutral-6',\n title: 'text-neutral-12',\n description: 'text-neutral-10',\n icon: 'text-neutral-12',\n },\n destructive: {\n root: 'bg-error-2 border-error-6',\n title: 'text-error-11',\n description: 'text-error-9',\n icon: 'text-error-11',\n },\n success: {\n root: 'bg-success-2 border-success-6',\n title: 'text-success-11',\n description: 'text-success-9',\n icon: 'text-success-11',\n },\n warning: {\n root: 'bg-warning-2 border-warning-6',\n title: 'text-warning-11',\n description: 'text-warning-9',\n icon: 'text-warning-11',\n },\n info: {\n root: 'bg-info-2 border-info-6',\n title: 'text-info-11',\n description: 'text-info-9',\n icon: 'text-info-11',\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const autocomplete = styles({\n slots: {\n positioner: 'z-50 select-none',\n popup: [\n 'rounded-md border border-neutral-6 bg-neutral-2 shadow-l mt-0.5',\n 'relative flex max-h-full max-w-(--available-width) min-w-(--anchor-width) origin-(--transform-origin)',\n 'before:pointer-events-none before:absolute before:inset-0',\n ],\n popupInner: 'flex h-[min(var(--available-height),23rem)] max-h-fit flex-col overflow-hidden',\n input: 'p-0',\n item: [\n 'flex rounded-sm typo-2 text-neutralA-11 items-center gap-2 px-2.5 py-1.5 outline-none cursor-default select-none',\n 'data-highlighted:bg-neutralA-4 data-highlighted:text-neutralA-12',\n 'cs-disabled',\n ],\n separator: 'my-2 bg-neutral-4',\n group: '[[role=group]+&]:mt-1.5',\n groupLabel: 'px-2.5 py-1.5 typo-2 text-neutral-9 typo-label',\n empty: 'text-center text-neutralA-9 typo-2 typo-label not-empty:p-4',\n list: 'not-empty:scroll-py-1 not-empty:p-1 in-data-has-overflow-y:pe-3',\n clear: 'flex items-center justify-center text-neutral-8 hover:text-neutralA-11',\n status: 'px-2.5 py-1.5 typo-2 typo-label text-neutral-8 empty:m-0 empty:p-0',\n trigger: 'flex items-center justify-center text-neutral-11 hover:text-neutralA-12 active:scale-80 cs-transition',\n statusLoading: 'flex items-center justify-between gap-2',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const button = styles({\n slots: {\n root: [\n 'cursor-default select-none flex-row-center group/button',\n 'rounded-md typo-body typo-3 gap-2 px-2.5 py-2 border border-transparent whitespace-nowrap',\n 'cs-focus cs-transition cs-disabled',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'border-neutral-6 text-neutral-11 bg-neutral-3',\n 'hover:border-neutral-8 hover:bg-neutral-5 hover:text-neutral-12',\n ],\n },\n accent: {\n root: [\n 'border-accent-6 text-accent-1 bg-accent-11',\n 'hover:border-accent-8 hover:bg-accent-12 hover:text-accent-1',\n ],\n },\n primary: {\n root: [\n 'border-neutral-6 text-neutral-1 bg-neutral-12',\n 'hover:border-neutral-12 hover:bg-neutral-12 hover:text-neutral-1',\n ],\n },\n secondary: {\n root: [\n 'border-neutral-6 text-neutral-11 bg-neutral-4',\n 'hover:border-neutral-8 hover:bg-neutral-6 hover:text-neutral-12',\n ],\n },\n destructive: {\n root: [\n 'border-error-6 text-error-11 bg-error-3',\n 'hover:border-error-8 hover:bg-error-5 hover:text-error-12 ',\n ],\n },\n outline: {\n root: [\n 'border-neutral-12 text-neutral-12',\n 'hover:border-neutral-9 hover:text-neutral-12 hover:bg-neutral-2',\n ],\n },\n ghost: {\n root: [\n 'text-neutral-11',\n 'hover:text-neutral-12 hover:bg-neutralA-2',\n ],\n },\n icon: {\n root: [\n 'text-neutral-11',\n 'hover:text-neutral-12',\n 'active:scale-110',\n ],\n },\n close: {\n root: [\n 'p-1 typo-1 rounded-lg shadow-md',\n 'border-neutral-10 bg-neutral-12 text-neutral-1',\n 'hover:border-neutral-12 hover:text-neutral-2 hover:bg-neutral-12',\n 'active:scale-110',\n ],\n },\n link: { root: 'text-accent-9 underline-offset-4 hover:underline' },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const slider = styles({\n slots: {\n root: 'flex gap-2',\n control: 'flex touch-none select-none cs-disabled',\n track: 'relative flex grow items-center select-none bg-neutralA-6 rounded-md',\n indicator: 'bg-neutral-12 rounded-md',\n thumb: 'size-3 rounded-md border border-neutral-12 bg-neutral-2 shadow-l cs-focus cs-transition transition-[scale] hover:scale-110 data-dragging:scale-125',\n value: 'typo-2 typo-label flex justify-end',\n ticksContainer: 'flex items-center justify-between gap-2 typo-1 typo-label font-code',\n tick: 'gap-2',\n tickLine: 'bg-neutralA-6 rounded-full',\n tickLabel: 'text-neutralA-11 data-[major=false]:opacity-0',\n },\n variants: {\n orientation: {\n horizontal: {\n root: 'flex-col w-full',\n control: '',\n track: 'flex-row h-1',\n ticksContainer: 'flex-row mx-1',\n tick: 'flex-col-center w-0',\n tickLine: 'h-1 w-px data-[major=false]:h-0.5',\n },\n vertical: {\n root: 'flex-row h-full',\n control: 'flex-col',\n track: 'flex-col w-1',\n ticksContainer: 'flex-col my-1',\n tick: 'flex-row-center h-0',\n tickLine: 'h-px w-1 data-[major=false]:w-0.5',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const card = styles({\n slots: {\n root: [\n 'rounded-lg group/card select-none flex flex-col border overflow-hidden',\n 'bg-neutral-1 text-neutral-11 border-neutralA-3',\n 'hover:text-neutral-12 hover:bg-neutralA-2 hover:border-neutralA-6 hover:shadow-md',\n 'active:bg-neutralA-3',\n 'cs-focus cs-transition',\n ],\n content: 'overflow-hidden grid p-4 gap-2',\n feedback: 'bg-neutral-12 border-neutralA-6 border-t typo-1 typo-header font-code uppercase text-neutral-1 w-full px-4 py-3 overflow-hidden',\n feedbackWrapper: 'flex w-full flex-col justify-start overflow-hidden rounded-b-lg',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const chatThread = styles({\n slots: {\n root: 'flex flex-col gap-3 overflow-y-auto p-4',\n message: 'max-w-[75%] rounded-lg px-3 py-2 typo-3 flex flex-col gap-1',\n userMessage: 'self-end bg-neutral-3 text-neutral-12',\n assistantMessage: 'self-start text-neutral-12',\n errorMessage: 'self-start bg-error-2 text-error-11 border border-error-6',\n errorTag: 'self-start rounded-sm bg-error-3 text-error-11 typo-label typo-1 px-1.5 py-0.5',\n messageContent: 'whitespace-pre-wrap wrap-break-word',\n contentImages: 'flex flex-row flex-wrap gap-1 mt-1',\n contentImage: 'rounded-sm border size-20 border-neutralA-3',\n cursor: 'inline-block w-0.5 h-4 bg-current animate-pulse ml-0.5 align-text-bottom',\n stopReason: 'typo-1 typo-label text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const chart = styles({\n slots: {\n root: [\n 'flex aspect-video justify-center typo-2',\n '[&_.recharts-cartesian-axis-tick_text]:fill-neutral-11',\n '[&_.recharts-cartesian-grid_line[stroke=\"#ccc\"]]:stroke-neutral-6/50',\n '[&_.recharts-curve.recharts-tooltip-cursor]:stroke-neutral-6',\n '[&_.recharts-polar-grid_[stroke=\"#ccc\"]]:stroke-neutral-6',\n '[&_.recharts-radial-bar-background-sector]:fill-neutral-3',\n '[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-3',\n '[&_.recharts-reference-line_[stroke=\"#ccc\"]]:stroke-neutral-6',\n '[&_.recharts-dot[stroke=\"#fff\"]]:stroke-transparent',\n '[&_.recharts-layer]:outline-hidden',\n '[&_.recharts-sector]:outline-hidden',\n '[&_.recharts-sector[stroke=\"#fff\"]]:stroke-transparent',\n '[&_.recharts-surface]:outline-hidden',\n ],\n tooltip: 'grid min-w-32 items-start gap-2 rounded-md border border-neutralA-6 bg-neutral-2 p-2 shadow-xl',\n tooltipItem: 'flex items-center gap-2 typo-2',\n tooltipIndicator: 'self-stretch w-2.5 rounded-xxs',\n tooltipLabel: 'text-neutral-10',\n tooltipValue: 'text-neutral-12 font-mono font-medium tabular-nums',\n legend: 'flex items-center justify-center gap-4 pt-3',\n legendItem: 'flex items-center gap-1.5',\n legendIndicator: 'size-3 shrink-0 rounded-xxs',\n legendLabel: 'text-neutral-10 typo-label typo-code',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const checkbox = styles({\n slots: {\n root: [\n 'cursor-default select-none inline-flex items-center justify-center',\n 'rounded-[min(var(--radius-sm),0.375rem)] size-4 shrink-0 border',\n 'border-neutral-6 bg-neutralA-2 text-neutral-11',\n 'hover:border-neutral-9 hover:bg-neutral-5',\n 'data-checked:border-accent-9 data-checked:bg-accent-9 data-checked:text-neutral-1',\n 'data-indeterminate:border-accent-9 data-indeterminate:bg-accent-9 data-indeterminate:text-neutral-1',\n 'cs-focus cs-transition cs-disabled',\n ],\n indicator: ['flex-col-center size-4'],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const codeBlock = styles({\n slots: {\n root: 'relative group/code overflow-hidden bg-neutral-2 border border-neutral-6 rounded-lg',\n header: 'flex-row-center justify-between pl-3 pr-1 py-1 border-b bg-neutral-3 border-neutral-6 select-none',\n title: 'flex-row-center gap-2 typo-2 font-code typo-weight-600 text-neutral-11',\n actions: 'flex-row-center gap-2',\n code: [\n 'relative overflow-x-auto typo-2 font-code typo-weight-500 w-full py-4 leading-0.5',\n '[&_.line]:block [&_.line]:w-full [&_.line]:px-4 [&_.line]:py-2',\n '[&_.line-number]:inline-block [&_.line-number]:w-[3ch] [&_.line-number]:mr-4 [&_.line-number]:text-right [&_.line-number]:text-neutralA-9 [&_.line-number]:select-none',\n '[&_.line[data-highlighted]]:bg-accent-3 [&_.line[data-highlighted]]:border-l-2 [&_.line[data-highlighted]]:border-accent-11 [&_.line[data-highlighted]]:-ml-px',\n '[&_pre.shiki]:bg-transparent!',\n ],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const collapsible = styles({\n slots: {\n root: 'rounded-md relative group/collapsible border cs-disabled border-neutral-6 overflow-hidden',\n trigger: 'typo-2 typo-label text-neutral-12 flex w-full items-center justify-between px-3 py-2 cursor-pointer cs-focus',\n panel: 'overflow-hidden',\n panelContent: 'relative p-3 typo-2 text-neutral-11 flex flex-col gap-1 border-t border-neutral-6',\n icon: 'flex-col-center cursor-pointer text-neutral-12 opacity-100 hover:text-neutral-12 active:scale-110 cs-focus',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorArea = styles({\n slots: {\n root: 'size-full min-h-40 rounded-sm border border-neutral-3',\n thumb: 'size-3 rounded-sm origin-center border border-neutral-12 shadow-md top-1/2 active:size-6 active:shadow-lg data-dragging:size-5 data-dragging:shadow-lg cs-transition transition-[width,height]',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorField = styles({\n slots: {\n root: 'w-full',\n input: [\n 'relative inline-flex bg-transparent w-full min-w-0 outline-none',\n 'typo-3 gap-2 px-2.5 py-1.5',\n 'rounded-sm border border-neutralA-6 text-neutralA-11 bg-neutralA-2',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutralA-12',\n 'typo-code uppercase',\n 'cs-focus cs-transition cs-disabled cs-invalid',\n ],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorInput = styles({\n slots: {\n root: 'grid grid-flow-col grid-cols-[auto_auto_1fr] items-stretch gap-1 w-full',\n trigger: 'w-6 h-full rounded-sm',\n swatch: 'size-full rounded-sm border-neutral-6',\n select: 'overflow-hidden min-w-0 w-20',\n fields: 'flex flex-row gap-0 flex-1',\n hexInput: '',\n channelInput: 'rounded-none in-data-[slot=0]:rounded-l-sm in-data-[slot=1]:border-x-0 in-data-[slot=2]:rounded-r-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorPicker = styles({\n slots: {\n root: '',\n trigger: 'grid cs-focus size-5 rounded-md',\n swatch: 'cursor-pointer size-full active:scale-110 cs-transition shadow-md',\n popup: 'bg-neutral-2 border-neutral-3 overflow-hidden w-60',\n content: 'flex flex-col gap-3 p-2 overflow-visible',\n channelsContainer: 'flex flex-col gap-2',\n select: 'w-full',\n channels: 'grid grid-cols-3 gap-1',\n inputs: 'rounded-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorSlider = styles({\n slots: {\n root: '',\n track: 'rounded-xs cs-transition border border-neutral-6',\n thumb: 'size-4 rounded-sm origin-center border border-neutral-12 shadow-md top-1/2 active:size-6 active:shadow-lg data-dragging:size-6 data-dragging:shadow-lg cs-transition transition-[width,height]',\n transparentBackground: '-z-1 rounded-xs overflow-hidden',\n },\n variants: {\n orientation: {\n horizontal: {\n track: 'h-3 w-full',\n },\n vertical: {\n track: 'w-3 h-full',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorSwatch = styles({\n slots: {\n root: 'relative overflow-hidden size-4 rounded-md border border-neutralA-6 shadow-xs',\n transparentBackground: 'absolute inset-0',\n color: 'relative size-full ',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorSwatchPicker = styles({\n slots: {\n root: 'flex w-full justify-between gap-1.5',\n item: 'relative cs-focus rounded-md cs-transition',\n swatchContainer: [\n 'relative overflow-hidden rounded-md size-5',\n 'outline-2 outline-offset-0.5 outline-transparent',\n 'in-data-selected:scale-115 in-data-selected:outline in-data-selected:outline-accent-11 in-data-selected:p-0.5',\n 'cs-transition',\n ],\n swatch: 'size-full',\n indicator: 'absolute inset-0 p-1 flex-row-center text-neutral-1 cs-transition opacity-0 in-data-selected:opacity-80',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const combobox = styles({\n slots: {\n root: 'cs-disabled grid w-full',\n positioner: 'z-50 select-none max-w-(--anchor-width)! overflow-hidden',\n popup: [\n 'cs-backdrop-panel text-neutral-11',\n 'cs-popup-animation relative flex max-h-full max-w-(--available-width) min-w-(--anchor-width) flex-col',\n ],\n popupInner: 'flex h-[min(var(--available-height),23rem)] max-h-fit flex-col overflow-hidden',\n input: '',\n clear: 'flex-row-center hover:opacity-80',\n trigger: 'flex-row-center hover:opacity-80',\n item: 'flex-row-center min-w-0 overflow-hidden typo-2 rounded-sm text-neutral-11 gap-2 py-1.5 px-2.5 justify-between data-highlighted:bg-neutralA-3 data-highlighted:text-neutral-12 cs-disabled',\n itemIndicator: 'flex-col-center',\n separator: 'my-2 bg-neutralA-4 last:hidden',\n group: 'mt-1.5 first:mt-0',\n groupLabel: 'text-neutral-10 typo-label px-2 py-1.5 typo-2',\n empty: 'text-neutral-10 text-center typo-2 not-empty:p-2',\n list: 'not-empty:scroll-py-1 not-empty:px-1 not-empty:py-1 in-data-has-overflow-y:pe-3',\n scrollArea: '',\n status: 'text-neutral-10 px-3 py-2 typo-label typo-2 empty:m-0 empty:p-0',\n chips: 'flex-wrap overflow-hidden gap-0.5 p-0.5 has-[>[data-align=inline-start]]:py-0.5',\n chipsAddon: 'pl-2 pr-1',\n chip: 'rounded-sm h-7 gap-2 flex-row-center justify-between px-2 bg-neutral-4 border border-neutralA-4 shadow-m text-neutral-12 typo-2 typo-label',\n chipsInput: 'h-7 min-w-12 ps-2 flex-1 typo-2 outline-none [[data-slot=combobox-chip]+&]:ps-0.5',\n chipRemove: 'flex-col-center opacity-50 hover:opacity-100 cursor-pointer',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const commandButton = styles({\n slots: {\n root: 'text-neutral-11 p-1 pl-2 typo-3 hover:bg-neutral-2',\n placeholder: 'flex flex-1 items-center',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const command = styles({\n slots: {\n backdrop: 'fixed inset-0 z-50 bg-black/50 cs-transition data-ending-style:opacity-0 data-starting-style:opacity-0',\n viewport: 'fixed inset-0 z-50 flex flex-col items-center px-4 py-30',\n popup: [\n 'rounded-md bg-neutral-2 text-neutral-11 border border-neutral-6 shadow-l',\n 'cs-popup-animation relative row-start-2 flex max-h-105 min-h-0 w-full max-w-xl min-w-0 flex-col outline-none will-change-transform',\n 'translate-y-[calc(-1.25rem*var(--nested-dialogs))] scale-[calc(1-0.1*var(--nested-dialogs))] opacity-[calc(1-0.1*var(--nested-dialogs))]',\n 'data-nested:data-ending-style:translate-y-8 data-nested-dialog-open:origin-top data-nested:data-starting-style:translate-y-8',\n '**:data-[slot=scroll-area-viewport]:data-has-overflow-y:pe-1',\n ],\n inputContainer: 'flex items-center gap-2 px-4 py-3',\n input: 'text-neutral-11 typo-label',\n list: 'not-empty:scroll-py-2 not-empty:p-2',\n empty: 'not-empty:p-6',\n panel: 'relative min-h-0 bg-neutralA-2 border-t border-neutral-6 not-has-[+[data-slot=command-footer]]:rounded-none',\n item: 'pr-1.5',\n separator: 'my-2',\n shortcut: 'ml-auto',\n footer: 'typo-label text-neutral-10 border-neutral-6 typo-2 flex items-center justify-between gap-2 border-t p-3',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const counter = styles({\n slots: {\n root: 'relative inline-block',\n digits: 'flex overflow-hidden',\n digit: 'typo-code text-neutral-12 typo-11 typo-weight-600 relative w-[1ch] place-self-center tabular-nums',\n number: 'absolute inset-0 flex items-center justify-center',\n overlay: 'pointer-events-none absolute inset-0',\n topGradient: 'from-neutral-1 h-10 bg-linear-to-b to-transparent',\n bottomGradient: 'from-neutral-1 absolute bottom-0 h-10 w-full bg-linear-to-t to-transparent',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const drawer = styles({\n slots: {\n backdrop: [\n 'fixed inset-0 z-50',\n 'bg-neutral-1/50',\n 'opacity-[calc(1-var(--drawer-swipe-progress,0))]',\n '[transition-duration:calc(350ms*var(--drawer-swipe-strength,1))]',\n 'data-ending-style:opacity-0 data-starting-style:opacity-0',\n 'data-swiping:[transition-duration:0s]',\n 'cs-transition',\n ],\n viewport: 'fixed inset-0 z-50 flex p-2 data-no-backdrop:pointer-events-none',\n popup: [\n 'group/popup relative flex flex-col will-change-transform outline-none in-data-no-backdrop:pointer-events-auto',\n 'border border-neutralA-4 rounded-xl shadow-l bg-neutral-1 text-neutral-11',\n '[transition-duration:calc(350ms*var(--drawer-swipe-strength,1))]',\n 'data-swiping:[transition-duration:0s]',\n 'cs-transition',\n ],\n content: 'overflow-hidden flex flex-1 flex-col gap-3 typo-2 typo-neutral-10',\n header: 'flex flex-col gap-2 p-4 select-none border-b border-neutralA-4',\n title: 'typo-3 typo-header text-neutral-12',\n description: 'typo-2 text-neutral-11',\n footer: 'flex flex-col gap-2 p-4 border-t border-neutralA-4',\n handle: 'absolute shrink-0 group-data-nested-drawer-open/popup:opacity-0 rounded-full bg-neutralA-6 hover:bg-neutral-12 active:scale-x-110 cs-transition',\n },\n variants: {\n side: {\n top: {\n viewport: 'items-start justify-center',\n popup: 'w-full origin-top max-h-[calc(100dvh+var(--drawer-snap-point-offset,0px))] overflow-hidden scale-x-[calc(1-var(--nested-drawers,0)*0.02)] data-nested-drawer-open:h-(--drawer-frontmost-height) data-nested-drawer-open:overflow-hidden [translate:0_calc(var(--nested-drawers,0)*-16px+var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y,0px))] data-starting-style:[translate:0_-100%] data-ending-style:[translate:0_-100%]',\n handle: 'bottom-2 left-1/2 -translate-x-1/2 h-1 w-12',\n },\n right: {\n viewport: 'items-stretch justify-end',\n popup: 'h-full origin-right max-w-[calc(100dvw-var(--drawer-snap-point-offset,0px))] overflow-hidden scale-y-[calc(1-var(--nested-drawers,0)*0.02)] [translate:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-x,0px))_0] data-starting-style:[translate:100%_0] data-ending-style:[translate:100%_0]',\n handle: 'top-1/2 -translate-y-1/2 left-2 h-12 w-1',\n },\n bottom: {\n viewport: 'items-end justify-center',\n popup: 'flex max-h-[calc(100dvh-var(--drawer-snap-point-offset,0px))] w-full flex-col origin-bottom overflow-hidden scale-x-[calc(1-var(--nested-drawers,0)*0.02)] data-nested-drawer-open:h-(--drawer-frontmost-height) data-nested-drawer-open:overflow-hidden [translate:0_calc(var(--nested-drawers,0)*-16px+var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y,0px))] data-starting-style:[translate:0_100%] data-ending-style:[translate:0_100%]',\n handle: 'top-2 left-1/2 -translate-x-1/2 h-1 w-12',\n },\n left: {\n viewport: 'items-stretch justify-start',\n popup: 'h-full origin-left max-w-[calc(100dvw+var(--drawer-snap-point-offset,0px))] overflow-hidden scale-y-[calc(1-var(--nested-drawers,0)*0.02)] [translate:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-x,0px))_0] data-starting-style:[translate:-100%_0] data-ending-style:[translate:-100%_0]',\n handle: 'top-1/2 -translate-y-1/2 right-2 h-12 w-1',\n },\n },\n },\n defaultVariants: {\n side: 'right',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const dropzone = styles({\n slots: {\n root: 'select-none w-full',\n area: 'rounded-lg border cs-disabled border-dashed border-neutralA-6 bg-neutralA-2 p-2 gap-2 flex flex-col data-drag-over:border-accent-11 data-drag-over:bg-accent-2 overflow-hidden',\n cta: 'rounded-sm border flex-row-center typo-2 typo-label font-code gap-3 text-neutral-11 p-3 cs-focus border-neutralA-6 hover:bg-neutralA-2 hover:text-neutral-12 cs-transition',\n fileList: 'grid grid-flow-row',\n fileItem: 'rounded-sm grid grid-flow-col select-none items-center grid-cols-[auto_1fr] auto-cols-auto border border-neutralA-3 bg-neutral-3 shadow-m p-2 gap-3 mb-2 last:mb-0 data-dragging:bg-neutral-4',\n thumbnailContainer: 'rounded-sm size-12 border border-neutralA-3 shadow-m flex-col-center',\n thumbnail: 'size-full object-cover',\n info: 'flex flex-col gap-1 overflow-hidden',\n name: 'typo-label typo-2 text-neutral-12 self-start truncate hover:text-accent-11 cursor-pointer',\n type: 'typo-1 text-neutral-10 truncate',\n remove: 'self-stretch',\n grab: 'text-neutral-12 opacity-50 size-3 cursor-grab rotate-90',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const image = styles({\n slots: {\n root: 'relative overflow-hidden cs-transition',\n image: 'size-full object-cover cs-transition',\n placeholder: 'size-full',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const imageDropzone = styles({\n slots: {\n root: 'select-none',\n area: 'rounded-lg group/area w-full h-auto relative border-solid border-neutral-8 overflow-hidden cs-transition p-0 cs-gutter grid data-drag-over:p-2 shadow-md hover:p-2',\n image: 'object-contain outline outline-neutral-6 rounded-lg',\n placeholder: 'rounded-lg border border-transparent flex-col-center min-h-30 text-neutral-11 typo-2 gap-3 typo-label font-code bg-neutralA-2 outline outline-neutral-6 group-hover/area:bg-neutralA-4 group-hover/area:text-neutral-12 group-hover/area:border-neutral-3',\n placeholderIcon: 'typo-6 opacity-75',\n loader: 'absolute inset-0 bg-neutral-1/85 pointer-events-auto typo-4 flex-col-center text-neutral-12 ',\n loaderIcon: 'animate-spin',\n deleteButton: 'absolute top-1 right-1 z-10 p-1',\n cta: 'absolute inset-0 opacity-0 cursor-pointer',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const empty = styles({\n slots: {\n root: 'flex-col-center min-w-0 gap-4 text-balance p-6 text-center',\n header: 'flex-col-center max-w-sm gap-2',\n title: 'typo-header typo-4 text-neutral-12',\n description: 'typo-3 text-neutral-10',\n media: 'relative flex-col-center shrink-0 border size-20 overflow-hidden rounded-full border-neutral-6 mb-4',\n iconWrapper: 'flex-col-center relative shrink-0',\n iconShadow: 'rounded-md typo-8 flex-col-center border border-neutral-6 text-neutral-12 bg-neutral-2 p-4 mb-4 pointer-events-none absolute bottom-0 origin-bottom scale-90 shadow-none',\n icon: 'rounded-md typo-8 flex-col-center border border-neutral-6 text-neutral-12 bg-neutral-2 p-4 mb-4 z-1',\n content: 'flex-col-center w-full gap-2 text-balance typo-3',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const field = styles({\n slots: {\n root: 'flex flex-col items-start gap-2',\n label: 'typo-2 text-neutralA-11 inline-flex items-center gap-2 typo-label',\n item: 'flex',\n description: 'text-neutral-9 typo-2',\n error: 'typo-2 text-error-9',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const fieldSet = styles({\n slots: {\n root: 'flex w-full max-w-64 flex-col gap-4',\n legend: 'typo-3 typo-header text-neutral-12',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const form = styles({\n slots: {\n root: 'flex flex-col gap-4',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const group = styles({\n slots: {\n root: 'rounded-md flex w-fit overflow-hidden border border-neutral-6 *:data-slot:border-transparent *:data-slot:rounded-none *:focus-visible:z-1 has-[>[data-slot=group]]:gap-2',\n separator: 'pointer-events-none relative z-2 bg-neutral-6 shrink-0',\n text: 'relative inline-flex items-center whitespace-nowrap gap-2 border border-neutralA-6 bg-neutralA-3 px-2.5 text-neutral-11 typo-3 outline-none',\n },\n variants: {\n orientation: {\n horizontal: {\n separator: 'w-px self-stretch',\n },\n vertical: {\n root: 'flex-col',\n separator: 'h-px self-stretch',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const inputGroup = styles({\n slots: {\n root: [\n 'rounded-md group/input-group relative flex w-full min-w-0 items-center outline-none gap-2 p-2 pl-3',\n 'border border-neutralA-6 bg-neutralA-2',\n 'cs-transition duration-0',\n 'cs-has-focus cs-has-disabled cs-has-invalid',\n 'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col',\n 'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col',\n 'has-[>[data-align=inline-start]]:py-1.5',\n 'has-[>[data-align=inline-end]]:py-1.5',\n 'has-[>[data-align=block-start]]:gap-3 has-[>[data-align=block-start]]:py-3',\n 'has-[>[data-align=block-end]]:gap-3 has-[>[data-align=block-end]]:py-3',\n 'has-[>textarea]:h-auto',\n ],\n addon: [\n 'text-neutralA-11 typo-3 gap-2 select-none flex-row-center cursor-text',\n 'group-data-[disabled=true]/input-group:cs-disabled',\n 'data-[align=inline-start]:order-first',\n 'data-[align=inline-end]:order-last',\n 'data-[align=block-start]:order-first data-[align=block-start]:w-full data-[align=block-start]:justify-start',\n 'data-[align=block-end]:order-last data-[align=block-end]:w-full data-[align=block-end]:justify-start',\n ],\n text: 'text-neutralA-11 typo-label gap-2 typo-3 flex-row-center',\n input: 'bg-transparent p-0',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const input = styles({\n slots: {\n root: [\n 'relative inline-flex bg-transparent w-full min-w-0 outline-none',\n 'typo-2 gap-2 px-2.5 py-2',\n 'placeholder:text-neutralA-8',\n 'before:pointer-events-none before:absolute before:inset-0',\n 'file:typo-label file:text-neutralA-11 file:inline-flex file:rounded-sm file:border file:border-neutralA-6 file:bg-neutralA-4 file:px-1.5 file:py-1 file:mr-2.5 ',\n '[&:-webkit-autofill]:[transition:background-color_9999s] [&:-webkit-autofill]:[-webkit-text-fill-color:white] [&:-webkit-autofill]:caret-[white]',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'rounded-sm border',\n 'border-neutralA-6 text-neutralA-11 bg-neutralA-2',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutralA-12',\n ],\n },\n ghost: {\n root: 'hover:text-neutralA-12',\n },\n },\n unstyled: {\n false: { root: 'cs-focus cs-transition cs-disabled cs-invalid' },\n true: { root: 'focus-visible:ring-0 focus-visible:outline-none' },\n },\n },\n defaultVariants: {\n unstyled: false,\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const masonry = styles({\n slots: {\n root: 'flex w-full items-start',\n column: 'flex min-w-0 flex-col',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const kbd = styles({\n slots: {\n root: 'rounded-md bg-neutralA-3 text-neutral-11 border border-neutralA-2 typo-label typo-body pointer-events-none inline-flex items-center justify-center select-none h-5 min-w-5 typo-2 gap-1 px-1.5 py-1 word-spacing-[4em]',\n group: 'inline-flex items-center gap-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const label = styles({\n slots: {\n root: 'typo-label typo-2 text-neutral-12',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const motionAnimatePresence = styles({\n slots: {\n root: 'relative grid size-full overflow-hidden',\n content: 'absolute inset-0 grid',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const navbar = styles({\n slots: {\n root: 'flex items-stretch justify-between border-b border-neutral-4 p-2 gap-2 select-none',\n logo: 'flex items-center rounded-md gap-2 hover:bg-neutralA-3 py-1 px-2',\n content: 'flex items-center gap-2',\n actions: 'flex items-center gap-3',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const navigationMenu = styles({\n slots: {\n root: 'group/navigation-menu relative flex-row-center items-stretch max-w-max flex-1 rounded-md',\n list: 'group flex-row-center items-stretch flex-1 list-none gap-0',\n item: 'relative',\n trigger: [\n 'group/navigation-menu-trigger px-2.5 rounded-sm py-1.5 h-full typo-2 typo-label flex-row-center gap-2 w-max group',\n 'bg-transparent text-neutral-11',\n 'hover:bg-neutralA-3',\n 'data-open:hover:bg-neutralA-3 data-open:focus:bg-neutralA-3 data-open:bg-neutralA-3/50',\n 'data-popup-open:bg-neutralA-3/50 data-popup-open:hover:bg-neutralA-3',\n 'cs-focus cs-transition cs-disabled',\n ],\n triggerIcon: 'cs-transition relative group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180',\n content: [\n 'h-full p-2 grid grid-flow-row grid-cols-2 gap-2 w-120 rounded-md',\n 'group-data-[viewport=false]/navigation-menu:bg-neutral-3 group-data-[viewport=false]/navigation-menu:text-neutral-11 group-data-[viewport=false]/navigation-menu:ring-accent-11/10 group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1',\n 'group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0',\n 'data-starting-style:data-[activation-direction=left]:[translate:-50%_0] data-starting-style:data-[activation-direction=right]:[translate:50%_0]',\n 'data-ending-style:data-[activation-direction=left]:[translate:50%_0] data-ending-style:data-[activation-direction=right]:[translate:-50%_0]',\n 'data-starting-style:opacity-0 data-ending-style:opacity-0',\n 'transition-[opacity,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:duration-300',\n '**:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none',\n ],\n positioner: [\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width)',\n 'transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-instant:transition-none',\n 'data-[side=bottom]:before:-top-2.5 data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n ],\n popup: 'cs-backdrop-panel cs-popup-animation xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) transition-[opacity,transform,width,height,scale,translate] data-ending-style:duration-150',\n viewport: 'relative size-full overflow-hidden',\n link: [\n 'flex-row-center rounded-sm gap-2 px-2.5 py-1.5 typo-2 typo-label w-max h-full',\n 'bg-transparent text-neutral-11',\n 'hover:bg-neutralA-3',\n 'data-active:focus:bg-neutralA-3 data-active:hover:bg-neutralA-3/50 data-active:bg-neutralA-3/50 data-active:border-dashed data-active:border-neutral-6',\n 'cs-focus cs-transition cs-disabled',\n ],\n linkCard: [\n 'rounded-md flex flex-col items-start justify-start gap-1 px-2.5 py-1.5 border typo-2 typo-label',\n 'bg-transparent text-neutral-11 border-transparent',\n 'hover:bg-neutralA-3/50',\n 'in-data-[slot=navigation-menu-content]:hover:border-dashed in-data-[slot=navigation-menu-content]:hover:border-neutral-6',\n 'data-active:focus:bg-neutralA-3 data-active:hover:bg-neutralA-3/50 data-active:bg-neutralA-3/50 data-active:border-dashed data-active:border-neutral-6',\n 'cs-focus cs-transition',\n ],\n indicatorWrapper: 'data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden',\n indicator: 'bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-m',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const numberField = styles({\n slots: {\n root: 'flex w-full flex-col items-start gap-2',\n group: [\n 'relative overflow-hidden flex w-full justify-between rounded-md border typo-2 shadow-xs',\n 'border-neutral-6 bg-neutralA-2 text-neutral-12',\n 'cs-has-focus cs-has-invalid cs-transition cs-has-disabled',\n ],\n button: [\n 'relative flex-col-center outline cursor-pointer px-3',\n 'text-neutral-10 outline-neutral-6',\n 'hover:bg-neutralA-3 hover:text-neutral-11',\n 'cs-transition',\n ],\n input: [\n 'px-2 py-2 w-full min-w-0 grow typo-2 typo-code text-center outline-none',\n 'bg-transparent',\n 'cs-transition',\n ],\n scrubAreaCursor: 'cursor-row-resize',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const pagination = styles({\n slots: {\n root: 'mx-auto flex w-full justify-center',\n content: 'flex flex-row items-center gap-1',\n previousNext: 'max-sm:aspect-square max-sm:p-0',\n previousNextLabel: 'max-sm:hidden',\n link: 'py-1 px-2 typo-2',\n ellipsis: 'flex min-w-7 justify-center text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const fontPicker = styles({\n slots: {\n trigger: 'w-full py-1.5 px-3 truncate rounded-md justify-between gap-2 bg-neutralA-2 hover:bg-neutralA-3 typo-body capitalize text-neutral-11',\n popup: '',\n fontPreview: 'truncate typo-header typo-4 text-neutral-12',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex-col-center overflow-hidden hover:border-neutral-6 p-4 gap-4 flex-col! border border-neutral-4 text-neutral-12 data-selected:bg-neutral-12 data-selected:text-neutral-1',\n itemPreview: 'typo-12 leading-none',\n itemlabel: 'typo-2 typo-label opacity-50 uppercase',\n itemIndicator: 'hidden',\n list: 'overflow-hidden grid grid-cols-1 gap-2',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const googleSignInButton = styles({\n slots: {\n root: 'group typo-label typo-3 text-neutral-11 gap-3 py-2 pr-4 pl-2 active:gap-3.5 active:pl-2.5',\n icon: 'cs-transition size-4 group-active:scale-110',\n label: 'flex-1',\n spinner: 'size-4',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const palettePicker = styles({\n slots: {\n trigger: 'w-full justify-between gap-1 bg-neutralA-2 hover:bg-neutralA-3 typo-label text-neutral-11 capitalize',\n popup: '',\n colorBlock: 'size-4',\n paletteContainer: 'flex-row-center gap-1',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex flex-row items-center gap-3 capitalize typo-2 px-0.5 py-0.5',\n list: '',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameter = styles({\n slots: {\n root: 'flex flex-col gap-3 select-none',\n label: 'typo-label typo-2 text-neutral-11',\n value: 'typo-code typo-2 text-neutral-11',\n measure: 'typo-code typo-2 text-neutral-9',\n separator: 'bg-neutralA-3 flex-1',\n input: 'grid select-auto',\n row: 'flex flex-row items-center justify-start gap-2 min-h-4',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterColor = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterColorSwatchPicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterCombobox = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n trigger: 'w-full justify-between gap-1 bg-neutralA-2 hover:bg-neutralA-3 typo-label text-neutral-11 capitalize',\n popup: '',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex typo-label flex-row justify-start items-center gap-3 capitalize typo-2 p-1.5 px-3',\n itemIcon: 'text-neutral-12 border border-neutralA-3 rounded-sm p-2 -ml-1.5',\n itemName: 'text-start flex-1',\n list: 'overflow-hidden',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterFontPicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterGroup = styles({\n slots: {\n root: 'rounded-sm',\n trigger: 'justify-start items-center gap-2',\n icon: '',\n collapsibleIcon: '',\n name: 'flex-1 text-start',\n panel: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterPalettePicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterPresetPicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterSlider = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n value: '',\n measure: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterSwitch = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterText = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterTextArea = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterToggle = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterToggleGroup = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: 'w-full',\n item: 'flex-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterTypographyGroup = styles({\n slots: {\n root: '',\n content: 'flex flex-col gap-6',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterFiles = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterImage = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterNumber = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n measure: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterSelect = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n trigger: '',\n popup: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterShadowGroup = styles({\n slots: {\n root: '',\n preview: 'border-neutral-6 bg-neutral-2 my-2 h-40 w-full rounded-md border mb-4',\n content: 'flex flex-col gap-6',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const placeholder = styles({\n slots: {\n root: 'size-full overflow-hidden',\n list: 'flex flex-col gap-2 p-4',\n itemWrapper: '',\n item: 'h-10 overflow-hidden bg-neutralA-3 rounded-md',\n scrollableArea: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const popover = styles({\n slots: {\n positioner: 'z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom,transform] data-instant:transition-none',\n popup: [\n 'cs-backdrop-panel text-neutral-11',\n 'cs-popup-animation relative grid h-(--popup-height,auto) w-(--popup-width,auto) transition-[width,height,scale,opacity]',\n ],\n viewport: [\n 'relative size-full max-h-(--available-height) overflow-clip not-data-transitioning:overflow-y-auto data-instant:transition-none',\n '**:data-current:w-[calc(var(--popup-width)-2px)] **:data-current:opacity-100 **:data-current:transition-opacity **:data-current:data-ending-style:opacity-0',\n '**:data-previous:w-[calc(var(--popup-width)-2px)] **:data-previous:opacity-100 **:data-previous:transition-opacity **:data-previous:data-ending-style:opacity-0',\n '**:data-current:data-starting-style:opacity-0 **:data-previous:data-starting-style:opacity-0',\n ],\n content: 'p-3 flex flex-col gap-2',\n title: 'typo-3 typo-label text-neutral-12',\n description: 'typo-2 text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const presetPicker = styles({\n slots: {\n trigger: 'w-full justify-between gap-1 bg-neutralA-2 hover:bg-neutralA-3 typo-label text-neutral-11 capitalize',\n popup: '',\n colorBlock: 'size-4',\n presetContainer: 'flex-row-center gap-1',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex flex-row items-center gap-3 capitalize typo-2 px-0.5 py-0.5',\n itemColors: 'flex-row-center gap-1',\n list: '',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const progress = styles({\n slots: {\n root: 'flex w-full flex-col gap-2',\n track: 'block h-1.5 w-full overflow-hidden rounded bg-neutralA-3 data-indeterminate:cs-stripes data-indeterminate:bg-neutralA-2 data-indeterminate:outline data-indeterminate:outline-neutralA-6',\n indicator: 'bg-neutral-12 cs-transition',\n label: 'typo-label typo-3',\n value: 'typo-body typo-3 font-code tabular-nums',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const promptInput = styles({\n slots: {\n root: 'border border-neutral-6 bg-neutral-2 rounded-md p-2 flex flex-col gap-2 shadow-lg data-drag-over:border-accent-11 data-drag-over:border-dashed data-drag-over:bg-accent-2 overflow-hidden',\n attachments: 'flex flex-row items-center flex-wrap gap-1',\n attachment: 'group relative',\n attachmentImage: 'rounded-sm border size-16 border-neutralA-3 [&_img]:pointer-events-none [&_img]:select-none',\n attachmentImageTooltip: 'p-0 overflow-hidden',\n attachmentImagePreview: 'size-60',\n attachmentFile: 'rounded-sm border size-16 border-neutralA-3 bg-neutral-3 flex-col-center',\n attachmentExtension: 'typo-1 typo-weight-600 typo-code text-neutral-11',\n removeButton: 'absolute -top-1 -right-1 hidden group-hover:flex typo-1',\n input: 'p-2 rounded-none text-neutral-11',\n toolbarRow: 'flex flex-row items-center gap-1 w-full',\n modelPicker: 'w-40 bg-neutral-3 hover:bg-neutral-4 border-none',\n attachButton: 'bg-neutral-3 hover:bg-neutral-4 border-none rounded-sm',\n submitButton: 'rounded-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const properties = styles({\n slots: {\n root: 'divide-neutral-4 border-neutral-4 grid auto-cols-fr grid-flow-col grid-cols-[auto] items-center divide-x *:h-full *:px-6 *:py-3',\n name: 'text-neutral-12 typo-2 typo-label font-code flex-row-center justify-start uppercase select-none',\n item: 'typo-1 font-code uppercase gap-6 group/property-item flex-row-center flex',\n labelWrapper: 'flex-row-center relative',\n label: 'text-neutral-12 cs-transition data-has-value:group-hover/property-item:opacity-0',\n valueWrapper: 'flex-row-center absolute right-0 gap-1 text-right opacity-0 group-hover/property-item:opacity-100',\n value: 'text-neutral-12',\n measure: 'text-neutral-10',\n separator: 'bg-neutral-4 flex-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const scrollArea = styles({\n slots: {\n root: 'relative size-full min-h-0 overflow-hidden',\n viewport: [\n 'cs-transition cs-focus h-full overscroll-contain rounded-[inherit] data-has-overflow-x:overscroll-x-contain',\n 'data-scroll-fade:scroll-py-[--fade-size] data-scroll-fade:mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] data-scroll-fade:mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] data-scroll-fade:mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] data-scroll-fade:mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] data-scroll-fade:[--fade-size:1.5rem]',\n 'data-scrollbar-gutter:data-has-overflow-x:pb-2.5 data-scrollbar-gutter:data-has-overflow-y:pe-2.5',\n ],\n scrollbar: [\n 'flex m-1 data-[orientation=vertical]:w-1 data-[orientation=horizontal]:h-1 cs-transition',\n 'opacity-0 hover:opacity-100 data-hovering:delay-0 data-hovering:duration-200 data-scrolling:opacity-100 data-scrolling:delay-0 data-scrolling:duration-200',\n 'data-[orientation=horizontal]:flex-col',\n ],\n thumb: 'relative flex-1 rounded-full bg-neutral-12/40',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const select = styles({\n slots: {\n root: 'cs-disabled w-full grid',\n positioner: 'z-50 select-none',\n popup: 'cs-popup-animation cs-backdrop-panel text-neutral-11 outline-none origin-(--transform-origin)',\n popupInner: ' relative h-full min-w-(--anchor-width)',\n trigger: [\n 'flex-row-center w-full min-w-36 justify-between gap-2 rounded-sm',\n 'typo-2 px-2.5 py-1.5 border',\n 'border-neutralA-6 text-neutral-11 bg-neutralA-2',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutral-12',\n 'cs-focus cs-transition cs-disabled',\n ],\n triggerIcon: 'opacity-60 flex-col-center',\n value: 'flex-1 text-left truncate data-placeholder:text-neutralA-8',\n item: 'grid grid-cols-[1rem_1fr] overflow-hidden typo-2 items-center rounded-sm text-neutral-11 gap-2 py-1.5 px-2.5 data-highlighted:bg-neutralA-3 data-highlighted:text-neutral-12 cs-disabled in-data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)]',\n itemText: 'col-start-2 min-w-0',\n itemIndicator: 'flex-col-center col-start-1',\n separator: 'my-2 bg-neutralA-4 last:hidden',\n group: 'mt-1.5 first:mt-0',\n groupLabel: 'text-neutral-10 typo-label px-2 py-1.5 typo-2',\n scrollArrow: 'flex-row-center z-50 h-6 w-full cursor-default',\n list: 'max-h-(--available-height) overflow-y-auto p-1',\n scrollArea: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const separator = styles({\n slots: {\n root: 'shrink-0 bg-neutralA-6 rounded-sm',\n },\n variants: {\n orientation: {\n horizontal: { root: 'h-px w-full' },\n vertical: { root: 'w-px self-stretch' },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const sidebar = styles({\n slots: {\n root: 'flex h-full flex-col border-r border-neutral-6 bg-neutral-2',\n header: 'flex flex-col gap-2 p-4',\n content: 'flex flex-1 flex-col gap-6 overflow-y-auto p-4',\n footer: 'flex flex-col gap-2 p-4',\n group: 'flex flex-col gap-2',\n groupLabel: 'flex items-center justify-between',\n groupTitle: 'typo-2 typo-label text-neutral-12 px-2 py-1',\n groupAction: 'flex items-center',\n groupContent: 'flex flex-col gap-0.5',\n item: 'typo-2 gap-2 flex flex-row items-center border border-transparent text-neutral-10 rounded-sm px-2.5 py-1.5 hover:bg-neutralA-3 hover:text-neutral-12 data-active:bg-neutralA-3 data-active:text-neutral-12 data-active:shadow-sm data-active:border-neutralA-2 active:gap-3 active:pl-3 cs-transition',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const spacer = styles({\n slots: {\n root: 'grid size-full flex-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const spinner = styles({\n slots: {\n root: 'inline-flex items-center justify-center text-current typo-5',\n },\n variants: {\n spin: {\n true: { root: 'animate-spin' },\n false: {},\n },\n },\n defaultVariants: {\n spin: true,\n },\n});\n","import { styles } from 'src/utils/styles';\n\nconst _switch = styles({\n slots: {\n root: [\n 'peer inline-flex shrink-0 cursor-default items-center p-(--switch-padding) select-none',\n 'rounded-full border shadow-xs',\n 'border-neutral-6 bg-neutral-4',\n 'data-checked:bg-neutral-12',\n 'data-unchecked:bg-neutral-4',\n '[--thumb-size:--spacing(5)] [--switch-padding:1px]',\n 'cs-focus cs-transition cs-disabled',\n ],\n thumb: [\n 'group flex-col-center pointer-events-none aspect-square rounded-(--thumb-size) will-change-transform',\n '[transition:translate_.15s,border-radius_.15s,scale_.1s_.1s,transform-origin_.15s]',\n 'in-[[role=switch]:active,[data-slot=label]:active,[data-slot=field-label]:active]:not-data-disabled:rounded-[var(--thumb-size)/calc(var(--thumb-size)*1.1)]',\n 'shadow-s',\n 'data-checked:bg-neutral-1',\n 'data-unchecked:bg-neutral-12',\n ],\n checkedIcon: [\n 'size-2.5 cs-transition absolute',\n 'group-data-checked:text-neutral-12 group-data-checked:scale-100',\n 'group-data-unchecked:text-neutral-1 group-data-unchecked:scale-0',\n ],\n uncheckedIcon: [\n 'size-2.5 cs-transition absolute',\n 'group-data-unchecked:text-neutral-1 group-data-unchecked:scale-100',\n 'group-data-checked:text-neutral-12 group-data-checked:scale-0',\n ],\n },\n variants: {\n orientation: {\n horizontal: {\n root: 'h-[calc(var(--thumb-size)+2px)] w-[calc(var(--thumb-size)*2-var(--switch-padding)*2)]',\n thumb: 'h-full origin-left in-[[role=switch]:active,[data-slot=label]:active,[data-slot=field-label]:active]:not-data-disabled:scale-x-120 data-checked:origin-[var(--thumb-size)_50%] data-checked:translate-x-[calc(var(--thumb-size)-var(--switch-padding)*4)]',\n },\n vertical: {\n root: 'h-[calc(var(--thumb-size)*2-var(--switch-padding)*2)] w-[calc(var(--thumb-size)+var(--switch-padding)*2)] flex-col',\n thumb: 'w-full origin-top in-[[role=switch]:active,[data-slot=label]:active,[data-slot=field-label]:active]:not-data-disabled:scale-y-120 data-checked:origin-[50%_var(--thumb-size)] data-checked:translate-y-[calc(var(--thumb-size)-var(--switch-padding)*4)]',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n\nexport { _switch as switch };\n","import { styles } from 'src/utils/styles';\n\nexport const tableOfContents = styles({\n slots: {\n root: 'flex flex-col gap-2',\n header: 'flex items-center gap-2 typo-3 typo-header text-neutral-11',\n items: 'relative flex flex-col',\n item: 'relative typo-2 text-neutral-10 py-2 hover:text-accent-12 data-[active=true]:text-accent-11 cs-transition',\n indicator: 'bg-accent-11 cs-transition duration-500 absolute top-(--toc-top) h-(--toc-height) w-full',\n line: 'stroke-neutral-6 absolute top-0 left-0',\n treeIndicator: 'absolute top-0 left-0',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const tabs = styles({\n slots: {\n root: 'flex flex-col-center gap-4',\n list: 'relative z-0 flex w-fit items-center justify-center',\n indicator: 'absolute bottom-0 left-0 h-(--active-tab-height) w-(--active-tab-width) translate-x-(--active-tab-left) -translate-y-(--active-tab-bottom) cs-transition',\n tab: [\n 'select-none relative flex-row-center px-2.5 py-1.5 shrink-0 gap-1.5 grow border-transparent typo-3 border-0 typo-label',\n 'text-neutral-10 hover:text-neutral-11 data-active:text-neutral-12',\n 'cs-focus cs-transition cs-disabled',\n ],\n panel: 'flex-1 outline-none typo-2 text-neutral-10 p-0',\n },\n variants: {\n variant: {\n default: {\n list: 'rounded-md bg-neutral-3 p-1 gap-0.5',\n indicator: 'bg-neutral-6 -z-1 rounded-sm',\n },\n underline: {\n list: 'text-neutral-11',\n tab: 'hover:text-neutral-12 border-neutral-6',\n indicator: 'bg-accent-11 z-10 rounded-lg',\n },\n },\n orientation: {\n horizontal: {},\n vertical: {\n root: 'flex-row',\n list: 'flex-col',\n tab: 'w-full justify-start',\n indicator: '',\n },\n },\n },\n compoundVariants: [\n {\n variant: 'underline',\n orientation: 'horizontal',\n class: {\n tab: 'border-b',\n indicator: 'h-0.5 translate-y-px',\n },\n },\n {\n variant: 'underline',\n orientation: 'vertical',\n class: {\n tab: 'border-l rounded-none rounded-r-md',\n indicator: 'w-0.5 -translate-x-px',\n },\n },\n ],\n defaultVariants: {\n variant: 'default',\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const textArea = styles({\n slots: {\n root: [\n 'relative inline-flex bg-transparent w-full min-w-0 outline-none rounded-md',\n 'typo-3 gap-1.5 px-2 py-1.5',\n 'placeholder:text-neutralA-8',\n 'before:pointer-events-none before:absolute before:inset-0',\n 'file:typo-label file:text-neutralA-11 file:inline-flex file:border file:border-neutralA-6 file:bg-neutralA-4 file:px-1 file:py-0.5 file:mr-2.5',\n '[&:-webkit-autofill]:[transition:background-color_9999s] [&:-webkit-autofill]:[-webkit-text-fill-color:white] [&:-webkit-autofill]:caret-[white]',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'border',\n 'border-neutralA-6 text-neutralA-11 bg-neutralA-2',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutralA-12',\n ],\n },\n ghost: {\n root: 'hover:text-neutralA-12',\n },\n },\n unstyled: {\n false: { root: 'cs-focus cs-transition cs-disabled cs-invalid' },\n true: { root: 'focus-visible:ring-0 focus-visible:outline-none' },\n },\n resize: {\n false: { root: 'resize-none' },\n true: {},\n },\n },\n defaultVariants: {\n unstyled: false,\n variant: 'default',\n resize: false,\n },\n});\n","import { styles } from '../utils/styles';\n\nexport const textShimmer = styles({\n slots: {\n root: 'relative inline-block typo-header text-neutral-12 typo-8 ',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const tintImage = styles({\n slots: {\n root: 'relative cs-transition',\n image: 'opacity-0',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const toast = styles({\n slots: {\n root: 'rounded-md w-full max-w-72 select-none border',\n content: 'pointer-events-auto flex items-center justify-between overflow-hidden gap-1.5 p-4 typo-2 cs-transition',\n outerContainer: 'flex gap-2',\n innerContainer: 'flex flex-col gap-2',\n title: 'typo-2 typo-header',\n description: 'typo-2 typo-body',\n icon: 'typo-2',\n action: 'rounded-md px-2 py-1 border absolute top-2 right-2 text-neutral-11',\n viewport: [\n 'fixed z-50 mx-auto flex w-[calc(100%-var(--toast-inset)*2)] [--toast-inset:--spacing(4)]',\n 'data-[position*=top]:top-(--toast-inset)',\n 'data-[position*=bottom]:bottom-(--toast-inset)',\n 'data-[position*=left]:left-(--toast-inset)',\n 'data-[position*=right]:right-(--toast-inset)',\n 'data-[position*=center]:left-1/2 data-[position*=center]:-translate-x-1/2',\n ],\n toastRoot: [\n 'absolute z-[calc(9999-var(--toast-index))] h-(--toast-calc-height) [transition:transform_.5s_cubic-bezier(.22,1,.36,1),opacity_.5s,height_.15s] before:pointer-events-none before:absolute before:inset-0',\n 'data-[position*=right]:right-0 data-[position*=right]:left-auto',\n 'data-[position*=left]:right-auto data-[position*=left]:left-0',\n 'data-[position*=center]:right-0 data-[position*=center]:left-0',\n 'data-[position*=top]:top-0 data-[position*=top]:bottom-auto data-[position*=top]:origin-top',\n 'data-[position*=bottom]:top-auto data-[position*=bottom]:bottom-0 data-[position*=bottom]:origin-bottom',\n 'after:absolute after:left-0 after:h-[calc(var(--toast-gap)+1px)] after:w-full',\n 'data-[position*=top]:after:top-full',\n 'data-[position*=bottom]:after:bottom-full',\n '[--toast-calc-height:var(--toast-frontmost-height,var(--toast-height))] [--toast-gap:--spacing(2)] [--toast-peek:--spacing(3)] [--toast-scale:calc(max(0,1-(var(--toast-index)*.1)))] [--toast-shrink:calc(1-var(--toast-scale))]',\n 'data-[position*=top]:[--toast-calc-offset-y:calc(var(--toast-offset-y)+var(--toast-index)*var(--toast-gap)+var(--toast-swipe-movement-y))]',\n 'data-[position*=bottom]:[--toast-calc-offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--toast-gap)*-1+var(--toast-swipe-movement-y))]',\n 'data-[position*=top]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek))+(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]',\n 'data-[position*=bottom]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--toast-peek))-(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]',\n 'data-limited:opacity-0',\n 'data-expanded:h-(--toast-height)',\n 'data-position:data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-calc-offset-y))]',\n 'data-[position*=top]:data-starting-style:transform-[translateY(calc(-100%-var(--toast-inset)))]',\n 'data-[position*=bottom]:data-starting-style:transform-[translateY(calc(100%+var(--toast-inset)))]',\n 'data-ending-style:opacity-0',\n 'data-ending-style:not-data-limited:not-data-swipe-direction:transform-[translateY(calc(100%+var(--toast-inset)))]',\n 'data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]',\n 'data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]',\n ],\n toastContent: 'data-behind:opacity-0 data-behind:not-data-expanded:pointer-events-none data-expanded:opacity-100',\n },\n variants: {\n variant: {\n default: {\n root: 'bg-neutral-2 border-neutral-4',\n icon: 'text-neutral-11',\n title: 'text-neutral-12',\n description: 'text-neutral-10',\n action: 'bg-neutral-3 border-neutral-6 hover:border-neutral-9 hover:bg-neutral-4',\n },\n success: {\n root: 'bg-success-2 border-success-4',\n icon: 'text-success-11',\n title: 'text-success-12',\n description: 'text-success-10',\n action: 'bg-success-3 border-success-6 hover:border-success-9 hover:bg-success-4',\n },\n error: {\n root: 'bg-error-2 border-error-4',\n icon: 'text-error-11',\n title: 'text-error-12',\n description: 'text-error-10',\n action: 'bg-error-3 border-error-6 hover:border-error-9 hover:bg-error-4',\n },\n warning: {\n root: 'bg-warning-2 border-warning-4',\n icon: 'text-warning-11',\n title: 'text-warning-12',\n description: 'text-warning-10',\n action: 'bg-warning-3 border-warning-6 hover:border-warning-9 hover:bg-warning-4',\n },\n info: {\n root: 'bg-info-2 border-info-4',\n icon: 'text-info-11',\n title: 'text-info-12',\n description: 'text-info-10',\n action: 'bg-info-3 border-info-6 hover:border-info-9 hover:bg-info-4',\n },\n loading: {\n root: 'bg-neutral-2 border-neutral-4',\n icon: 'text-neutral-12 animate-spin',\n title: 'text-neutral-12',\n description: 'text-neutral-10',\n action: 'bg-neutral-3 border-neutral-6 hover:border-neutral-9 hover:bg-neutral-4',\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const toggleGroup = styles({\n slots: {\n root: 'flex w-fit *:focus-visible:z-1 overflow-hidden',\n separator: 'pointer-events-none shrink-0 bg-neutral-6 relative before:absolute before:inset-0 before:cs-transition',\n },\n variants: {\n variant: {\n default: {\n root: 'gap-1',\n },\n outline: {\n root: 'rounded-md border border-neutral-6 *:data-[slot=toggle]:border-transparent *:data-[slot=toggle]:rounded-none',\n },\n },\n orientation: {\n horizontal: {\n separator: 'w-px self-stretch',\n },\n vertical: {\n root: 'flex-col',\n separator: 'h-px self-stretch',\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const toggle = styles({\n slots: {\n root: [\n 'group/toggle cursor-default select-none inline-flex items-center justify-center',\n 'rounded-sm typo-label typo-2 gap-2 px-2.5 py-2 border',\n 'cs-focus cs-transition cs-disabled',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'border-neutralA-3 bg-neutralA-2 text-neutral-11',\n 'hover:bg-neutralA-3 hover:text-neutral-12 hover:border-neutralA-6',\n 'data-pressed:bg-neutralA-4 data-pressed:text-neutral-12 data-pressed:border-neutralA-6',\n ],\n },\n outline: {\n root: [\n 'border-neutralA-6 bg-transparent text-neutral-11',\n 'hover:border-neutral-11 hover:text-neutral-12',\n 'data-pressed:border-neutral-12 data-pressed:bg-neutral-12 data-pressed:text-neutral-1',\n ],\n },\n ghost: {\n root: [\n 'bg-transparent text-neutral-10 border-none',\n 'hover:text-accent-12',\n 'data-pressed:text-neutral-12 p-0',\n ],\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const tooltip = styles({\n slots: {\n positioner: [\n 'z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width)',\n 'transition-[top,left,right,bottom,transform] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-instant:transition-none',\n ],\n popup: [\n 'cs-popup-animation relative h-(--popup-height,auto) w-(--popup-width,auto) text-balance',\n 'transition-[width,height,scale,opacity]',\n 'typo-label rounded-md border border-neutral-6 bg-neutral-2 text-neutral-12 typo-2 shadow-l py-1.5 select-none',\n ],\n arrow: [\n 'size-4',\n 'fill-neutral-2 stroke-neutral-6 stroke-1',\n 'data-[side=top]:-bottom-3 data-[side=top]:rotate-180',\n 'data-[side=bottom]:-top-3 data-[side=bottom]:rotate-0',\n 'data-[side=left]:-right-3 data-[side=left]:rotate-90',\n 'data-[side=right]:-left-3 data-[side=right]:-rotate-90',\n 'transition-[left] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-instant:transition-none',\n ],\n viewport: [\n 'px-(--viewport-inline-padding)',\n '[--viewport-inline-padding:0.5rem]',\n 'relative h-full w-full overflow-clip',\n '**:data-current:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding))]',\n '**:data-current:translate-x-0',\n '**:data-current:opacity-100',\n '**:data-current:transition-[translate,opacity]',\n '**:data-current:duration-[350ms,175ms]',\n '**:data-current:ease-[cubic-bezier(0.22,1,0.36,1)]',\n '**:data-previous:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding))]',\n '**:data-previous:translate-x-0',\n '**:data-previous:opacity-100',\n '**:data-previous:transition-[translate,opacity]',\n '**:data-previous:duration-[350ms,175ms]',\n '**:data-previous:ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-[activation-direction~=left]:[&_[data-current][data-starting-style]]:-translate-x-1/2',\n 'data-[activation-direction~=left]:[&_[data-current][data-starting-style]]:opacity-0',\n 'data-[activation-direction~=right]:[&_[data-current][data-starting-style]]:translate-x-1/2',\n 'data-[activation-direction~=right]:[&_[data-current][data-starting-style]]:opacity-0',\n 'data-[activation-direction~=left]:[&_[data-previous][data-ending-style]]:translate-x-1/2',\n 'data-[activation-direction~=left]:[&_[data-previous][data-ending-style]]:opacity-0',\n 'data-[activation-direction~=right]:[&_[data-previous][data-ending-style]]:-translate-x-1/2',\n 'data-[activation-direction~=right]:[&_[data-previous][data-ending-style]]:opacity-0',\n '[[data-instant]_&_[data-previous]]:transition-none',\n '[[data-instant]_&_[data-current]]:transition-none',\n ],\n },\n});\n","import type { BundledLanguage, HighlighterGeneric, LanguageInput } from 'shiki';\nimport { createHighlighter } from 'shiki';\nimport { Mode } from 'src/presets';\n\nlet highlighterInstance: HighlighterGeneric<BundledLanguage, any> | null = null;\n\nconst THEMES = [\n 'github-dark',\n 'github-light',\n 'nord',\n 'one-dark-pro',\n 'dracula',\n 'monokai',\n 'material-theme-darker',\n 'tokyo-night',\n 'catppuccin-mocha',\n 'solarized-dark',\n 'solarized-light',\n 'min-dark',\n 'min-light',\n];\n\nconst LANGUAJES = ['typescript', 'javascript', 'tsx', 'jsx', 'python', 'bash', 'json', 'css', 'html', 'text'];\n\nexport async function getHighlighter() {\n if (highlighterInstance) {\n return highlighterInstance;\n }\n\n highlighterInstance = await createHighlighter({\n themes: THEMES,\n langs: LANGUAJES,\n });\n\n return highlighterInstance;\n}\n\ninterface HighlightOptions {\n highlightLines?: number[];\n showLineNumbers?: boolean;\n mode?: Mode;\n}\n\nexport async function highlightCode(code: string, lang: string = 'text', options: HighlightOptions = {}): Promise<string> {\n const highlighter = await getHighlighter();\n\n const { highlightLines = [], showLineNumbers = false, mode = 'dark' } = options;\n\n const loadedLanguages = highlighter.getLoadedLanguages();\n\n if (!loadedLanguages.includes(lang as BundledLanguage)) {\n try {\n await highlighter.loadLanguage(lang as unknown as LanguageInput);\n } catch (_error) {\n console.warn(`Language \"${lang}\" not found, falling back to plaintext`);\n lang = 'text';\n }\n }\n\n const html = highlighter.codeToHtml(code, {\n lang,\n theme: mode === 'light' ? 'min-light' : 'tokyo-night',\n transformers: [\n {\n pre(node) {\n node.properties.tabindex = '-1';\n },\n line(node, line) {\n node.properties['data-line'] = String(line);\n\n if (highlightLines.includes(line)) {\n node.properties['data-highlighted'] = '';\n }\n\n // Add line number as first child when enabled\n if (showLineNumbers) {\n node.children.unshift({\n type: 'element',\n tagName: 'span',\n properties: { class: 'line-number' },\n children: [{ type: 'text', value: String(line) }],\n });\n }\n },\n },\n ],\n });\n\n return html;\n}\n","export interface CodeMeta {\n title?: string;\n highlightLines?: number[];\n showLineNumbers?: boolean;\n}\n\nexport function parseCodeMeta(meta: string = ''): CodeMeta {\n const result: CodeMeta = {};\n\n const titleMatch = meta.match(/title=\"([^\"]+)\"/);\n\n if (titleMatch) {\n result.title = titleMatch[1];\n }\n\n const highlightMatch = meta.match(/\\{([0-9,-]+)\\}/);\n\n if (highlightMatch) {\n result.highlightLines = parseLineNumbers(highlightMatch[1]);\n }\n\n result.showLineNumbers = meta.includes('showLineNumbers');\n\n return result;\n}\n\nfunction parseLineNumbers(input: string): number[] {\n const lines: number[] = [];\n const parts = input.split(',');\n\n for (const part of parts) {\n if (part.includes('-')) {\n const [start, end] = part.split('-').map(Number);\n for (let i = start; i <= end; i++) {\n lines.push(i);\n }\n } else {\n lines.push(Number(part));\n }\n }\n\n return lines;\n}\n","import { CommonHelpers } from '@digo-labs/common';\nimport { parseColor, Color } from '..';\n\nexport function cssColor(varName: string): Color {\n let cached: Color | null = null;\n const resolve = () => cached ??= parseColor(CommonHelpers.getCssVariable(varName));\n\n return new Proxy({} as Color, {\n get(_target, prop) {\n const real = resolve() as unknown as Record<string | symbol, unknown>;\n const value = real[prop as string];\n return typeof value === 'function' ? (value as (...args: unknown[]) => unknown).bind(real) : value;\n },\n });\n}\n","import { cn } from '@digo-labs/common';\nimport { Tint } from '..';\n\nimport { ComponentPropsWithoutRef } from 'react';\nimport LottieUI from 'lottie-react';\n\ninterface LottieProperties extends ComponentPropsWithoutRef<typeof LottieUI> {\n tint?: string;\n containerClasses?: string;\n}\n\nexport function Lottie(properties: LottieProperties) {\n const {\n className,\n tint,\n containerClasses,\n ...props\n } = properties;\n\n return (\n <div className={cn('relative', containerClasses)}>\n <LottieUI\n className={cn('', className)}\n {...props}\n />\n\n <Tint color={tint ? tint : 'transparent'} />\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport QR from 'qrcode';\n\nimport { ComponentPropsWithoutRef, useEffect, useState } from 'react';\n\nexport interface QRCodeProperties extends ComponentPropsWithoutRef<'div'> {\n data: string;\n foreground?: string;\n background?: string;\n robustness?: 'L' | 'M' | 'Q' | 'H';\n};\n\nexport function QRCode(properties: QRCodeProperties) {\n const {\n data,\n foreground,\n background,\n robustness = 'M',\n className,\n ...props\n } = properties;\n\n const [svg, setSVG] = useState<string | null>(null);\n\n useEffect(() => {\n generateQR();\n }, [data, foreground, background, robustness]);\n\n if (!svg) return undefined;\n\n async function generateQR() {\n try {\n const newSvg = await QR.toString(data, {\n type: 'svg',\n color: {\n dark: foreground,\n light: background,\n },\n width: 200,\n errorCorrectionLevel: robustness,\n margin: 0,\n });\n\n setSVG(newSvg);\n } catch (err) {\n console.error(err);\n }\n };\n\n return (\n <div\n className={cn('size-full', '[&_svg]:size-full', className)}\n dangerouslySetInnerHTML={{ __html: svg }}\n {...props}\n />\n );\n};\n","export default \"data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='100'%20height='100'%20fill='inherit'%20stroke='inherit'%20stroke-width='inherit'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='50'%20cy='50'%20r='40'%20fill='inherit'%20stroke='inherit'%20stroke-width='inherit'%20paint-order='stroke%20fill'/%3e%3c/svg%3e\"","import { ComponentType } from 'react';\n\nimport Square from '../shapes/square.svg?react';\nimport Circle from '../shapes/circle.svg?react';\n\nexport type ShapeType = 'triangle' | 'square' | 'circle' | 'star';\n\ninterface Properties {\n type: ShapeType;\n fill?: string;\n stroke?: string;\n strokeWidthPercent?: number;\n width?: number;\n height?: number;\n}\n\nexport function Shape(properties: Properties) {\n const { type, fill, width, height, stroke, strokeWidthPercent } = properties;\n\n const SvgComponent = getShape();\n\n function getShape(): ComponentType<any> {\n switch (type) {\n case 'square':\n return Square;\n case 'circle':\n return Circle;\n default:\n return Square;\n }\n }\n\n const radius = strokeWidthPercent ? 50 - strokeWidthPercent / 2 : 50;\n\n return (\n <SvgComponent\n width={width}\n height={height}\n fill={fill}\n stroke={stroke}\n strokeWidth={strokeWidthPercent}\n style={{ display: 'block' }}\n r={radius}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\ninterface Properties {\n color: string;\n className?: string;\n}\n\nexport function Tint(properties: Properties) {\n const {\n color,\n className,\n } = properties;\n\n return (\n <div\n className={cn('pointer-events-none absolute inset-0 mix-blend-darken', className)}\n style={{ backgroundColor: color }}\n />\n );\n};\n"],"names":["PALETTES","SHADOW_STEPS","COLOR_ROLES","TYPOGRAPHY_ROLES","PresetHelpers","preset","mode","vars","role","palette","solid","alpha","alphaKey","i","step","config","LOCAL_STORAGE_KEY","DesignSystemContext","createContext","StylesContext","baseStyles","DesignSystemProvider","properties","children","defaultMode","overrides","setMode","useState","currentPreset","setCurrentPreset","previousVarsRef","useRef","useEffect","savedMode","LocalStorage","useLayoutEffect","root","prevVars","key","value","toggleMode","current","updatePreset","partial","prev","setRolePalette","updateTypography","updateShadow","updateComponentOverrides","component","componentOverrides","styles","useMemo","presetOverrides","contextValue","jsx","useDesignSystem","context","useContext","useStyles","createComponentStyles","styleKey","Context","ComponentStylesProvider","props","classNames","variants","styleFn","variantKey","classNamesKey","slots","name","base","cn","useComponentStyles","useComponentVariants","createTV","defineOverrides","motionTransitionPresets","motionComponentPresets","motionPresencePresets","MotionAnimatePresence","MotionAnimatePresenceRoot","activeIndex","transition","className","resolved","finalVariants","finalTransition","AnimatePresence","motion","ANIMATIONS","AuthGuard","loginPath","fallback","isAuthenticated","isLoading","useAuth","location","useLocation","Outlet","Navigate","DEFAULT_HOVERED","DEFAULT_TAPPED","Card","onClick","delay","showFeedback","setShowFeedback","timeoutRef","indexRef","handleClick","getNextIndex","CardRoot","e","CardContent","CardItem","hovered","tapped","index","CardFeedback","label","ChatThread","ChatThreadRoot","messages","streamingText","bottomRef","jsxs","message","ChatThreadBubble","ChatThreadStreamingBubble","variantSlot","showStopReason","ChatThreadMessageContent","text","content","textParts","part","imageParts","joinedText","Fragment","Image","Icon","icon","iconClass","IconHelpers","Kbd","KbdRoot","KbdGroup","KbdGroupRoot","CommandButton","CommandButtonRoot","placeholder","Button","variant","ButtonRoot","ButtonPrimitive","CopyPasteButton","onCopy","timeout","copied","setCopied","handleCopy","CommonHelpers","FieldControl","FieldPrimitive","FieldValidity","Field","FieldRoot","FieldLabel","FieldItem","FieldDescription","FieldError","Dropzone","files","onChange","multiple","accept","maxSize","disabled","onDropRejected","id","required","getRootProps","getInputProps","inputRef","isDragActive","open","useDropzone","acceptedFiles","next","handleRemove","file","f","DropzoneRoot","DropzoneArea","DropzoneCTA","DropzoneFileList","dataTransfer","event","onReorder","ReorderList","DropzoneFileItem","onDeleteFile","onRemove","handleDelete","previewUrl","fonts","FONT_FACES","FontPicker","FontPickerRoot","onValueChange","triggerRef","Combobox","font","ComboboxTrigger","ComboboxValue","ComboboxPopup","ComboboxInput","ComboboxEmpty","ComboboxList","ComboboxItem","ImageDropzone","ImageDropzoneRoot","dropzoneProps","setIsLoading","handleChange","nextFiles","image","error","ImageDropzonePlaceHolder","ImageDropzoneLoader","Navbar","NavbarRoot","ref","element","resizeObserver","NavbarLogo","NavbarContent","NavbarActions","paletteNames","palettes","PalettePicker","PalettePickerRoot","ColorSwatch","ParameterText","ParameterTextRoot","Parameter","ParameterRow","ParameterLabel","ParameterSeparator","ParameterInput","Input","ParameterPalettePicker","ParameterPalettePickerRoot","ParameterTextArea","ParameterTextAreaRoot","TextArea","ParameterSlider","measure","ParameterSliderRoot","ParameterValue","ParameterMeasure","Slider","ParameterToggleGroup","items","ParameterToggleGroupRoot","itemVariant","inline","toggleInput","ToggleGroup","item","ToggleGroupItem","ParameterSwitch","ParameterSwitchRoot","Switch","ParameterToggle","ParameterToggleRoot","Toggle","ParameterColor","ParameterColorRoot","pickerProps","ColorInput","ParameterColorSwatchPicker","ParameterColorSwatchPickerRoot","ColorSwatchPicker","ParameterCombobox","ParameterComboboxRoot","ParameterFiles","ParameterFilesRoot","ParameterFontPicker","ParameterFontPickerRoot","ParameterImage","ParameterImageRoot","ParameterNumber","ParameterNumberRoot","NumberField","NumberFieldGroup","NumberFieldDecrement","NumberFieldInput","NumberFieldIncrement","ParameterPresetPicker","ParameterPresetPickerRoot","PresetPicker","ParameterSelect","ParameterSelectRoot","Select","SelectTrigger","SelectValue","SelectPopup","SelectItem","ParameterGroup","ParameterGroupRoot","collapsible","Collapsible","CollapsibleTrigger","CollapsibleIcon","CollapsiblePanel","ParameterTypographyGroup","ParameterTypographyGroupRoot","groupProps","weight","tracking","leading","ParameterShadowGroup","ParameterShadowGroupRoot","colorHex","color","Placeholder","PlaceholderRoot","PlaceholderList","count","_","PlaceholderItem","PlaceholderScrollableArea","ScrollArea","defaultPreset","oceanPreset","retroFuturisticPreset","PRESETS","curated","presets","PresetPickerRoot","PromptInputContext","usePromptInputContext","PromptInput","PromptInputRoot","attachments","onAttachmentsChange","maxAttachments","model","onModelChange","models","isSubmitting","isStreaming","onSubmit","onAbort","openFilePicker","toastManager","payloads","payload","PromptInputDefault","PromptInputAttachments","PromptInputInput","PromptInputToolbarRow","PromptInputAttachButton","PromptInputModelPicker","Separator","PromptInputSubmit","base64","a","attachment","isImagePayload","Tooltip","getFileExtensionLabel","onKeyDown","minRows","maxRows","handleKeyDown","submitAndClear","handleValueChange","nextId","entry","found","atLimit","idleDisabled","isBusy","subtype","GoogleSignInButton","GoogleSignInButtonRoot","isSigningIn","setIsSigningIn","from","_b","_a","handleSignIn","client","AuthHelper","tryCatch","Spinner","SwitchTheme","ToggleTheme","pressed","setPressed","setHovered","TransparentBackground","cols","rows","Accordion","AccordionRoot","AccordionPrimitive","AccordionItem","AccordionTrigger","state","AccordionContent","Alert","AlertRoot","AlertContent","AlertTitle","AlertDescription","AlertAction","AlertIcon","Autocomplete","AutocompletePrimitive","AutocompleteInput","AutocompletePopup","anchor","side","sideOffset","align","alignOffset","AutocompleteItem","AutocompleteSeparator","AutocompleteGroup","AutocompleteGroupLabel","AutocompleteEmpty","AutocompleteRow","AutocompleteValue","AutocompleteList","AutocompleteClear","AutocompleteStatus","loading","AutocompleteCollection","AutocompleteTrigger","useAutocompleteFilter","INITIAL_DIMENSION","ChartContext","useChart","ChartItemContext","useChartItem","ChartContainer","ChartContainerRoot","initialDimension","style","cssVars","ResponsiveContainer","ChartTooltip","ChartTooltipRoot","active","ChartTooltipItem","ChartTooltipIndicator","ChartTooltipLabel","ChartTooltipValue","itemConfig","getPayloadConfigFromPayload","ChartLegend","Legend","ChartLegendRoot","ChartLegendItem","ChartLegendIndicator","ChartLegendLabel","nestedPayload","nestedKey","Checkbox","CheckboxRoot","indeterminate","CheckboxPrimitive","CodeBlock","code","language","showLineNumbers","highlightLines","CodeBlockRoot","CodeBlockCode","CodeBlockHeader","CodeBlockTitle","languageMetadata","LANGUAGE_MAP","CodeBlockActions","CodeBlockCopyButton","highlightedCode","setHighlightedCode","_isLoading","cancelled","highlight","html","highlightCode","CollapsibleRoot","CollapsiblePrimitive","openAnimation","closeAnimation","renderProps","ColorArea","ColorAreaRoot","ColorAreaPrimitive","ColorThumb","ColorField","ColorFieldRoot","CHANNEL_PLACEHOLDERS","channel","ColorFieldPrimitive","colorModeItems","ColorInputRoot","controlledValue","defaultValue","showAlpha","isControlled","internalColor","setInternalColor","colorMode","setColorMode","newColor","ColorPicker","getColorChannels","colorSpaces","ColorPickerRoot","showChannels","swatches","colorSpace","setColorSpace","ColorPickerPrimitive","Popover","PopoverTrigger","PopoverPopup","ColorSlider","orientation","ColorSliderRoot","ColorSliderPrimitive","SliderTrack","ColorSwatchRoot","ColorSwatchPrimitive","ColorSwatchPickerRoot","colors","ColorSwatchPickerPrimitive","ColorSwatchPickerItemPrimitive","anchorRef","ComboboxRoot","ComboboxPrimitive","showTrigger","showClear","startAddon","triggerProps","clearProps","InputGroup","InputGroupAddon","InputGroupInput","ComboboxClear","anchorProp","ComboboxSeparator","ComboboxGroup","ComboboxGroupLabel","ComboboxRow","ComboboxStatus","ComboboxCollection","ComboboxMultipleInput","getLabel","getKey","useComboboxFilter","CommandDialogRoot","CommandDialogPrimitive","CommandDialogPortal","CommandCreateHandle","CommandDialog","CommandDialogTrigger","CommandDialogPopup","Command","autoHighlight","keepHighlight","CommandInput","CommandList","CommandEmpty","CommandPanel","CommandGroup","CommandGroupLabel","CommandCollection","CommandItem","CommandSeparator","CommandShortcut","CommandFooter","Counter","CounterRoot","places","containerHeight","spring","placesArray","place","CounterDigit","height","valueRoundedToPlace","animatedValue","useSpring","CounterNumber","mv","number","y","useTransform","latest","placeValue","offset","memo","sideToSwipe","Drawer","swipeDirection","DrawerPrimitive","DrawerCreateHandle","DrawerTrigger","DrawerHandle","DrawerClose","DrawerPopup","backdrop","container","DrawerContent","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription","Empty","EmptyRoot","EmptyHeader","EmptyMedia","EmptyIcon","rotate","EmptyTitle","EmptyDescription","EmptyContent","Fieldset","FieldsetRoot","FieldsetPrimitive","FieldsetLegend","Form","FormRoot","FormPrimitive","Group","GroupRoot","GroupSeparator","GroupText","ImageRoot","src","resolvedSrc","InputGroupRoot","parent","InputGroupTextarea","InputGroupText","unstyled","InputRoot","InputPrimitive","Label","LabelRoot","Masonry","MasonryRoot","columns","Children","measureRef","distributed","setDistributed","distribute","useCallback","nodes","heights","node","shortest","columnItems","NavigationMenu","NavigationMenuRoot","NavigationMenuPrimitive","NavigationMenuPositioner","NavigationMenuList","NavigationMenuItem","NavigationMenuTrigger","NavigationMenuContent","NavigationMenuLink","NavigationMenuLinkCard","NavigationMenuIndicator","NumberFieldRoot","generatedId","useId","fieldId","NumberFieldPrimitive","body","original","Pagination","PaginationRoot","PaginationContent","PaginationItem","PaginationLink","isActive","render","PaginationPrevious","PaginationNext","PaginationEllipsis","ParameterRoot","PopoverCreateHandle","PopoverPrimitive","PopoverPopupRoot","PopoverClose","PopoverTitle","PopoverDescription","Progress","ProgressRoot","ProgressPrimitive","ProgressTrack","ProgressIndicator","ProgressLabel","ProgressValue","ScrollAreaRoot","scrollFade","scrollbarGutter","ScrollAreaPrimitive","ScrollBar","SelectRoot","SelectPrimitive","alignItemWithTrigger","SelectSeparator","SelectGroup","SelectGroupLabel","SeparatorRoot","SeparatorPrimitive","Sidebar","defaultOpen","setOpen","toggle","SidebarRoot","SidebarHeader","SidebarContent","SidebarFooter","SidebarGroup","SidebarGroupLabel","SidebarGroupTitle","SidebarGroupAction","SidebarGroupContent","SidebarItem","itemClassName","isValidElement","cloneElement","Spacer","SpacerRoot","SliderRoot","min","max","bottomContent","_values","SliderPrimitive","SliderTicks","skipInterval","renderLabel","ticks","isMajor","SliderValue","icons","spin","SpinnerRoot","SwitchRoot","checkedIcon","uncheckedIcon","SwitchPrimitive","loaders","Ring","Ring2","Tailspin","LineSpinner","Squircle","Square","Reuleaux","TailChase","DotSpinner","Spiral","Bouncy","Treadmill","BouncyArc","Waveform","Hatch","Hourglass","Zoomies","LineWobble","InfinityLoader","Trefoil","Cardio","Helix","Grid","Quantum","Wobble","Orbit","ChaoticOrbit","Superballs","Trio","Momentum","DotWave","Leapfrog","NewtonsCradle","DotStream","DotPulse","Metronome","Jelly","JellyTriangle","Mirage","Ping","Pulsar","Ripples","Miyagi","Pinwheel","Loader","type","size","speed","stroke","strokeLength","bgOpacity","Component","Tabs","TabsRoot","TabsPrimitive","TabsList","TabsTab","TabsPanel","ToggleRoot","TogglePrimitive","ToggleGroupRoot","ToggleGroupPrimitive","ToggleGroupSeparator","useTocHeadings","pathname","setItems","updateHeadings","headings","toc","h","heading","observer","TableOfContents","TableOfContentsRoot","TableOfContentsHeader","TableOfContentsItem","target","top","TableOfContentsThumb","containerRef","activeItems","thumbRef","calc","upper","lower","slug","computed","update","TableOfContentsItems","activeSlugs","itemOffsets","lineOffsets","lineWidth","svg","setSvg","onResize","w","d","bottom","resize","TextAreaRoot","TextareaAutosize","TintImage","TintImageRoot","Toast","TOAST_ICONS","ToastProvider","position","Toasts","toasts","getSwipeDirection","isTop","toast","ToastItem","TooltipProvider","handle","TooltipPrimitive","TooltipPopup","CursorContainer","showNativeCursor","dimensions","setActive","x","useMotionValue","handleMove","rect","useCursorTracking","springX","springY","CursorClipping","radius","width","entered","setEntered","outerLeft","v","outerTop","innerLeft","innerTop","diameter","SNAP_SPRING","CursorBracket","lineLength","borderWidth","sentinelRef","wasSnapped","rawLeft","rawTop","rawWidth","rawHeight","boxLeft","boxTop","boxWidth","boxHeight","cornerW","cornerH","requestAnimationFrameId","sentinel","containerRect","cursorX","cursorY","clientX","clientY","targetRect","buildBoxShadow","glowColor","intensity","hsl","s","l","blur","spread","inset","easeOutCubic","easeInCubic","animateValue","start","end","duration","ease","onUpdate","onEnd","t0","tick","elapsed","t","GRADIENT_POSITIONS","COLOR_MAP","buildMeshGradients","gradients","c","BorderGlow","edgeSensitivity","parseColor","backgroundColor","borderRadius","glowRadius","glowIntensity","coneSpread","animated","fillOpacity","cardRef","isHovered","setIsHovered","cursorAngle","setCursorAngle","edgeProximity","setEdgeProximity","sweepActive","setSweepActive","getCenterOfElement","el","getEdgeProximity","cx","cy","dx","dy","kx","ky","getCursorAngle","degrees","handlePointerMove","card","angleStart","angleEnd","colorSensitivity","isVisible","borderOpacity","glowOpacity","meshGradients","borderBg","g","fillBg","angleDeg","backgroundCss","BorderTrail","onAnimationComplete","defaultTransition","vertex","fragment","DarkVeil","hueShift","noiseIntensity","scanlineIntensity","scanlineFrequency","warpAmount","resolutionScale","canvas","renderer","Renderer","gl","geometry","Triangle","program","Program","Vec2","mesh","Mesh","frame","loop","vertexShader","fragmentShader","colorToVec3","rgb","r","b","Vector3","DissolveOverlay","dissolve","easing","noiseScale","edgeSoftness","displacementStrength","noiseSpeed","onFinish","progressRef","tweenRef","uniformsRef","isTransitioningRef","onFinishRef","adaptiveSoftness","scene","Scene","camera","OrthographicCamera","WebGLRenderer","uniforms","Vector2","material","ShaderMaterial","PlaneGeometry","setSize","canvasWidth","canvasHeight","ro","rafId","lastTime","renderLoop","now","delta","gsap","InertiaPlugin","throttle","func","limit","lastCall","args","DotGrid","dotSize","gap","baseColor","activeColor","proximity","speedTrigger","shockRadius","shockStrength","maxSpeed","resistance","returnDuration","onMove","wrapperRef","canvasRef","dotsRef","pointerRef","baseRgb","activeRgb","circlePath","p","buildGrid","wrap","dpr","ctx","cell","gridW","gridH","extraX","extraY","startX","startY","dots","proxSq","draw","px","py","dot","ox","oy","dsq","throttledMove","onMoveHandler","onClickHandler","pr","dt","vx","vy","scale","normalizedX","normalizedY","dist","pushX","pushY","falloff","DraggableContainer","contentClasses","cursor","colorToRgb","FaultyTerminal","gridMul","digitSize","timeScale","pause","glitchAmount","flickerAmount","noiseAmp","chromaticAberration","dither","curvature","tint","mouseReact","mouseStrength","pageLoadAnimation","brightness","rest","programRef","rendererRef","mouseRef","smoothMouseRef","frozenTimeRef","rafRef","loadAnimationStartRef","timeOffsetRef","pauseRef","timeScaleRef","mouseReactRef","pageLoadAnimationRef","tintVec","ditherValue","handleMouseMove","ctn","OGLColor","animationElapsed","progress","smoothMouse","mouse","mouseUniform","u","tintUniform","gridUniform","MAX_GRADIENT_STOPS","FloatingLines","linesGradient","enabledWaves","lineCount","lineDistance","topWavePosition","middleWavePosition","bottomWavePosition","animationSpeed","interactive","bendRadius","bendStrength","mouseDamping","parallax","parallaxStrength","mixBlendMode","targetMouseRef","currentMouseRef","targetInfluenceRef","currentInfluenceRef","targetParallaxRef","currentParallaxRef","topLineCount","getLineCount","middleLineCount","bottomLineCount","topLineDistance","getLineDistance","middleLineDistance","bottomLineDistance","waveType","stops","hex","hexToVec3","clock","Clock","centerX","centerY","offsetX","offsetY","handlePointerLeave","raf","GlassContainer","borderRadiusPx","blurIntensity","shadowIntensity","blurClasses","glowStyles","shadowStyles","Grainient","timeSpeed","colorBalance","warpStrength","warpFrequency","warpSpeed","warpAmplitude","blendAngle","blendSoftness","rotationAmount","grainAmount","grainScale","grainAnimated","contrast","gamma","saturation","zoom","color1","color2","color3","res","animationEffects","currentInner","nextInner","tl","_currentInner","_nextInner","ImageTransitionType","ImageTransition","effect","currentImageRef","nextImageRef","currentInnerRef","nextInnerRef","isAnimatingRef","currentSrc","setCurrentSrc","nextSrc","setNextSrc","discVertShaderSource","discFragShaderSource","Face","__publicField","Vertex","z","vec3","vec2","Geometry","divisions","midPointCache","div","newFaces","face","ndx","mAB","mBC","mCA","ndxA","ndxB","cache","cacheKey","IcosahedronGeometry","DiscGeometry","steps","safeSteps","createShader","source","shader","createProgram","shaderSources","transformFeedbackVaryings","attribLocations","attrib","makeVertexArray","bufLocNumElmPairs","indices","va","buffer","loc","numElem","indexBuffer","resizeCanvasToDisplaySize","displayWidth","displayHeight","needResize","makeBuffer","sizeOrData","usage","buf","createAndSetupTexture","minFilter","magFilter","wrapS","wrapT","texture","ArcballControl","updateCallback","quat","deltaTime","targetFrameDuration","angleFactor","snapRotation","INTENSITY","ANGLE_AMPLIFICATION","midPointerPos","q","SNAPPING_INTENSITY","sqrDist","distanceFactor","combinedQuat","RA_INTENSITY","rad","rv","RV_INTENSITY","out","axis","angle","pos","xySq","rSq","InfiniteGridMenu","onActiveItemChange","onMovementChange","onInit","options","mat4","needsResize","time","itemCount","cellSize","resolve","reject","img","images","matricesArray","matrices","instanceMatrixArray","mat4AttribSlotCount","bytesPerMatrix","j","positions","SCALE_INTENSITY","finalScale","matrix","canvasEl","distance","damping","cameraTargetZ","isMoving","nearestVertexIndex","itemIndex","snapDirection","n","inversOrientation","nt","maxD","nearestVertexPos","defaultItems","InfiniteMenu","onItemSelected","onDragChange","discSize","snapStrength","cameraDistance","sphereRadius","activeItem","setActiveItem","setIsMoving","sketch","handleActiveItem","sk","handleResize","Iridescence","amplitude","opacity","ctnDom","mousePos","Color","animateId","TRANSITION","DELAY","DIRECTIONS","LetterSwap","letter","direction","scope","animate","useAnimate","blocked","setBlocked","ANIMATION_CONFIGS","getRandomDirection","timer","animationStart","getRandomDelay","containerClass","MarqueeBar","renderType","TextScramble","Marquee","CONTENT","range","properites","baseVelocity","slowdownOnHover","slowDownFactor","slowDownSpringConfig","useScrollVelocity","scrollAwareDirection","scrollSpringConfig","scrollContainer","repeat","draggable","dragSensitivity","dragVelocityDecay","dragAwareDirection","dragAngle","grabCursor","innerContainer","baseX","baseY","scrollY","useScroll","scrollVelocity","useVelocity","smoothVelocity","hoverFactorValue","defaultVelocity","isDragging","dragVelocity","smoothHoverFactor","velocityFactor","isHorizontal","actualBaseVelocity","directionFactor","wrappedValue","useAnimationFrame","moveBy","lastPointerPosition","handlePointerDown","currentPosition","deltaX","deltaY","angleInRadians","directionX","directionY","projectedDelta","handlePointerUp","Noise","patternSize","patternScaleX","patternScaleY","patternRefreshInterval","patternAlpha","grainRef","animationId","canvasSize","drawGrain","imageData","data","Orb","hue","rotationSpeed","innerRadius","vert","frag","Vec3","TextMorph","stiffness","mass","uniqueId","characters","charCounts","char","lowerChar","defaultVariants","character","TextPressure","italic","minFontSize","titleRef","spansRef","cursorRef","fontSize","setFontSize","scaleY","setScaleY","lineHeight","setLineHeight","chars","handleTouchMove","left","containerW","containerH","newFontSize","textRect","yRatio","maxDist","span","charCenter","getAttr","minVal","maxVal","val","wdth","wght","italVal","alphaVal","TextRoll","getEnterDelay","getExitDelay","letters","_c","_d","DEFAULT_CHARACTERS","BINARY_CHARACTERS","characterSet","trigger","onScrambleComplete","triggerOnMouse","MotionComponent","displayText","setDisplayText","isAnimating","setIsAnimating","isTrigger","setIsTrigger","scramble","interval","scrambled","TextShimmer","TextShimmerRoot","highlightColor","dynamicSpread","TextShimmerWave","zDistance","xDistance","yDistance","scaleDistance","rotateYDistance","TextSwapLetter","word","TextType","typingSpeed","initialDelay","pauseDuration","deletingSpeed","showCursor","hideCursorWhileTyping","hideCursorOnComplete","cursorCharacter","cursorClassName","cursorBlinkDuration","textColors","variableSpeed","onSentenceComplete","startOnVisible","reverseMode","displayedText","setDisplayedText","currentCharIndex","setCurrentCharIndex","isDeleting","setIsDeleting","currentTextIndex","setCurrentTextIndex","setIsVisible","previousText","setPreviousText","textArray","getRandomSpeed","getCurrentTextColor","entries","currentText","processedText","executeTypingAnimation","isComplete","hideOnComplete","shouldHideCursor","createElement","useAnimatedValue","setValue","startTimeRef","previousProgressRef","reset","useElementSize","useFocusSize","isFocused","animationFrameId","timestamp","newSize","usePreloadedImage","loadedSrc","setLoadedSrc","useStopwatch","intervalRef","seconds","setSeconds","stop","useTimer","initialSeconds","onComplete","isRunning","setIsRunning","timerRef","onCompleteRef","startInterval","prevSeconds","resume","currentSeconds","CommandContext","CommandProvider","useCommand","accordion","alert","autocomplete","button","slider","chatThread","chart","checkbox","codeBlock","colorArea","colorField","colorInput","colorPicker","colorSlider","colorSwatch","colorSwatchPicker","combobox","commandButton","command","counter","drawer","dropzone","imageDropzone","empty","field","fieldSet","form","group","inputGroup","input","masonry","kbd","motionAnimatePresence","navbar","navigationMenu","numberField","pagination","fontPicker","googleSignInButton","palettePicker","parameter","parameterColor","parameterColorSwatchPicker","parameterCombobox","parameterFontPicker","parameterGroup","parameterPalettePicker","parameterPresetPicker","parameterSlider","parameterSwitch","parameterText","parameterTextArea","parameterToggle","parameterToggleGroup","parameterTypographyGroup","parameterFiles","parameterImage","parameterNumber","parameterSelect","parameterShadowGroup","popover","presetPicker","promptInput","scrollArea","select","separator","sidebar","spacer","spinner","_switch","tableOfContents","tabs","textArea","textShimmer","tintImage","toggleGroup","tooltip","highlighterInstance","THEMES","LANGUAJES","getHighlighter","createHighlighter","lang","highlighter","line","parseCodeMeta","meta","result","titleMatch","highlightMatch","parseLineNumbers","lines","parts","cssColor","varName","cached","_target","prop","real","Lottie","containerClasses","LottieUI","Tint","QRCode","foreground","background","robustness","setSVG","generateQR","newSvg","QR","err","Circle","Shape","fill","strokeWidthPercent","SvgComponent","getShape"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/presets/palettes.ts","../src/presets/types.ts","../src/presets/helpers.ts","../src/providers/design-system-provider.tsx","../src/providers/component-styles-provider.tsx","../src/utils/styles.ts","../src/utils/motion-presets.ts","../src/animation/motion-animate-presence.tsx","../src/other/animations.ts","../src/blocks/auth-guard.tsx","../src/blocks/card.tsx","../src/blocks/chat-thread.tsx","../src/components/icon.tsx","../src/components/kbd.tsx","../src/blocks/command-button.tsx","../src/components/button.tsx","../src/blocks/copy-paste-button.tsx","../src/components/field.tsx","../src/blocks/dropzone.tsx","../src/blocks/font-picker.tsx","../src/blocks/image-dropzone.tsx","../src/blocks/navbar.tsx","../src/blocks/palette-picker.tsx","../src/blocks/parameter-text.tsx","../src/blocks/parameter-palette-picker.tsx","../src/blocks/parameter-text-area.tsx","../src/blocks/parameter-slider.tsx","../src/blocks/parameter-toggle-group.tsx","../src/blocks/parameter-switch.tsx","../src/blocks/parameter-toggle.tsx","../src/blocks/parameter-color.tsx","../src/blocks/parameter-color-swatch-picker.tsx","../src/blocks/parameter-combobox.tsx","../src/blocks/parameter-files.tsx","../src/blocks/parameter-font-picker.tsx","../src/blocks/parameter-image.tsx","../src/blocks/parameter-number.tsx","../src/blocks/parameter-preset-picker.tsx","../src/blocks/parameter-select.tsx","../src/components/parameter-group.tsx","../src/blocks/parameter-typography-group.tsx","../src/blocks/parameter-shadow-group.tsx","../src/blocks/placeholder.tsx","../src/presets/curated/default.ts","../src/presets/curated/ocean.ts","../src/presets/curated/retro-futuristic.ts","../src/presets/curated/index.ts","../src/presets/index.ts","../src/blocks/preset-picker.tsx","../src/blocks/prompt-input.tsx","../src/blocks/google-signin-button.tsx","../src/blocks/switch-theme.tsx","../src/blocks/toggle-theme.tsx","../src/blocks/transparent-background.tsx","../src/components/accordion.tsx","../src/components/alert.tsx","../src/components/autocomplete.tsx","../src/components/chart.tsx","../src/components/checkbox.tsx","../src/components/code-block.tsx","../src/components/collapsible.tsx","../src/components/color-area.tsx","../src/components/color-field.tsx","../src/components/color-input.tsx","../src/components/color-picker.tsx","../src/components/color-slider.tsx","../src/components/color-swatch.tsx","../src/components/color-swatch-picker.tsx","../src/components/combobox.tsx","../src/components/command.tsx","../src/effects/counter.tsx","../src/components/drawer.tsx","../src/components/empty.tsx","../src/components/field-set.tsx","../src/components/form.tsx","../src/components/group.tsx","../src/components/image.tsx","../src/components/input-group.tsx","../src/components/input.tsx","../src/components/label.tsx","../src/components/masonry.tsx","../src/components/navigation-menu.tsx","../src/components/number-field.tsx","../src/components/pagination.tsx","../src/components/parameter.tsx","../src/components/popover.tsx","../src/components/progress.tsx","../src/components/scroll-area.tsx","../src/components/select.tsx","../src/components/separator.tsx","../src/components/sidebar.tsx","../src/components/spacer.tsx","../src/components/slider.tsx","../src/components/spinner.tsx","../src/components/steps.tsx","../src/components/switch.tsx","../src/components/loader.tsx","../src/components/tabs.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/table-of-contents.tsx","../src/components/text-area.tsx","../src/components/tint-image.tsx","../src/components/toast.tsx","../src/components/tooltip.tsx","../src/cursors/cursor-container.tsx","../src/cursors/cursor-clipping.tsx","../src/cursors/cursor-bracket.tsx","../src/effects/border-glow.tsx","../src/effects/border-trail.tsx","../src/effects/dark-veil.tsx","../src/effects/dissolve-overlay.tsx","../src/effects/dot-grid.tsx","../src/effects/draggable-container.tsx","../src/effects/faulty-terminal.tsx","../src/effects/floating-lines.tsx","../src/effects/glass-container.tsx","../src/effects/grainient.tsx","../src/other/image-transition-effects.ts","../src/effects/image-transition.tsx","../src/effects/infinite-menu.tsx","../src/effects/iridescence.tsx","../src/effects/letter-swap.tsx","../src/effects/marquee-bar.tsx","../src/effects/marquee.tsx","../src/effects/noise.tsx","../src/effects/orb.tsx","../src/effects/text-morph.tsx","../src/effects/text-pressure.tsx","../src/effects/text-roll.tsx","../src/effects/text-scramble.tsx","../src/effects/text-shimmer.tsx","../src/effects/text-shimmer-wave.tsx","../src/effects/text-swap-letter.tsx","../src/effects/text-type.tsx","../src/hooks/use-animated-value.tsx","../src/hooks/use-element-size.tsx","../src/hooks/use-focus-size.tsx","../src/hooks/use-preloaded-image.tsx","../src/hooks/use-stopwatch.tsx","../src/hooks/use-timer.tsx","../src/providers/command-provider.tsx","../src/styles/accordion.ts","../src/styles/alert.ts","../src/styles/autocomplete.ts","../src/styles/button.ts","../src/styles/slider.ts","../src/styles/card.ts","../src/styles/chat-thread.ts","../src/styles/chart.ts","../src/styles/checkbox.ts","../src/styles/code-block.ts","../src/styles/collapsible.ts","../src/styles/color-area.ts","../src/styles/color-field.ts","../src/styles/color-input.ts","../src/styles/color-picker.ts","../src/styles/color-slider.ts","../src/styles/color-swatch.ts","../src/styles/color-swatch-picker.ts","../src/styles/combobox.ts","../src/styles/command-button.ts","../src/styles/command.ts","../src/styles/counter.ts","../src/styles/drawer.ts","../src/styles/dropzone.ts","../src/styles/image.ts","../src/styles/image-dropzone.ts","../src/styles/empty.ts","../src/styles/field.ts","../src/styles/field-set.ts","../src/styles/form.ts","../src/styles/group.ts","../src/styles/input-group.ts","../src/styles/input.ts","../src/styles/masonry.ts","../src/styles/kbd.ts","../src/styles/label.ts","../src/styles/motion-animate-presence.ts","../src/styles/navbar.ts","../src/styles/navigation-menu.ts","../src/styles/number-field.ts","../src/styles/pagination.ts","../src/styles/font-picker.ts","../src/styles/google-signin-button.ts","../src/styles/palette-picker.ts","../src/styles/parameter.ts","../src/styles/parameter-color.ts","../src/styles/parameter-color-swatch-picker.ts","../src/styles/parameter-combobox.ts","../src/styles/parameter-font-picker.ts","../src/styles/parameter-group.ts","../src/styles/parameter-palette-picker.ts","../src/styles/parameter-preset-picker.ts","../src/styles/parameter-slider.ts","../src/styles/parameter-switch.ts","../src/styles/parameter-text.ts","../src/styles/parameter-text-area.ts","../src/styles/parameter-toggle.ts","../src/styles/parameter-toggle-group.ts","../src/styles/parameter-typography-group.ts","../src/styles/parameter-files.ts","../src/styles/parameter-image.ts","../src/styles/parameter-number.ts","../src/styles/parameter-select.ts","../src/styles/parameter-shadow-group.ts","../src/styles/placeholder.ts","../src/styles/popover.ts","../src/styles/preset-picker.ts","../src/styles/progress.ts","../src/styles/prompt-input.ts","../src/styles/properties.ts","../src/styles/scroll-area.ts","../src/styles/select.ts","../src/styles/separator.ts","../src/styles/sidebar.ts","../src/styles/spacer.ts","../src/styles/spinner.ts","../src/styles/steps.ts","../src/styles/switch.ts","../src/styles/table-of-contents.ts","../src/styles/tabs.ts","../src/styles/text-area.ts","../src/styles/text-shimmer.ts","../src/styles/tint-image.ts","../src/styles/toast.ts","../src/styles/toggle-group.ts","../src/styles/toggle.ts","../src/styles/tooltip.ts","../src/styles/index.ts","../src/utils/shiki-highlighter.ts","../src/utils/code-meta-parser.ts","../src/utils/helpers.ts","../src/outdated/lottie.tsx","../src/outdated/qr-code.tsx","../src/shapes/square.svg?react","../src/shapes/circle.svg?react","../src/outdated/shape.tsx","../src/outdated/tint.tsx"],"sourcesContent":["import type { Palettes } from './types';\n\nexport const PALETTES: Palettes = {\n amber: {\n light: {\n 1: '#fefdfb', 2: '#fefbe9', 3: '#fff7c2', 4: '#ffee9c',\n 5: '#fbe577', 6: '#f3d673', 7: '#e9c162', 8: '#e2a336',\n 9: '#ffc53d', 10: '#ffba18', 11: '#ab6400', 12: '#4f3422',\n },\n lightA: {\n 1: '#c0800004', 2: '#f4d10016', 3: '#ffde003d', 4: '#ffd40063',\n 5: '#f8cf0088', 6: '#eab5008c', 7: '#dc9b009d', 8: '#da8a00c9',\n 9: '#ffb300c2', 10: '#ffb300e7', 11: '#ab6400', 12: '#341500dd',\n },\n dark: {\n 1: '#16120c', 2: '#1d180f', 3: '#302008', 4: '#3f2700',\n 5: '#4d3000', 6: '#5c3d05', 7: '#714f19', 8: '#8f6424',\n 9: '#ffc53d', 10: '#ffd60a', 11: '#ffca16', 12: '#ffe7b3',\n },\n darkA: {\n 1: '#e63c0006', 2: '#fd9b000d', 3: '#fa820022', 4: '#fc820032',\n 5: '#fd8b0041', 6: '#fd9b0051', 7: '#ffab2567', 8: '#ffae3587',\n 9: '#ffc53d', 10: '#ffd60a', 11: '#ffca16', 12: '#ffe7b3',\n },\n },\n blue: {\n light: {\n 1: '#fbfdff', 2: '#f4faff', 3: '#e6f4fe', 4: '#d5efff',\n 5: '#c2e5ff', 6: '#acd8fc', 7: '#8ec8f6', 8: '#5eb1ef',\n 9: '#0090ff', 10: '#0588f0', 11: '#0d74ce', 12: '#113264',\n },\n lightA: {\n 1: '#0080ff04', 2: '#008cff0b', 3: '#008ff519', 4: '#009eff2a',\n 5: '#0093ff3d', 6: '#0088f653', 7: '#0083eb71', 8: '#0084e6a1',\n 9: '#0090ff', 10: '#0086f0fa', 11: '#006dcbf2', 12: '#002359ee',\n },\n dark: {\n 1: '#0d1520', 2: '#111927', 3: '#0d2847', 4: '#003362',\n 5: '#004074', 6: '#104d87', 7: '#205d9e', 8: '#2870bd',\n 9: '#0090ff', 10: '#3b9eff', 11: '#70b8ff', 12: '#c2e6ff',\n },\n darkA: {\n 1: '#004df211', 2: '#1166fb18', 3: '#0077ff3a', 4: '#0075ff57',\n 5: '#0081fd6b', 6: '#0f89fd7f', 7: '#2a91fe98', 8: '#3094feb9',\n 9: '#0090ff', 10: '#3b9eff', 11: '#70b8ff', 12: '#c2e6ff',\n },\n },\n bronze: {\n light: {\n 1: '#fdfcfc', 2: '#fdf7f5', 3: '#f6edea', 4: '#efe4df',\n 5: '#e7d9d3', 6: '#dfcdc5', 7: '#d3bcb3', 8: '#c2a499',\n 9: '#a18072', 10: '#957468', 11: '#7d5e54', 12: '#43302b',\n },\n lightA: {\n 1: '#55000003', 2: '#cc33000a', 3: '#92250015', 4: '#80280020',\n 5: '#7423002c', 6: '#7324003a', 7: '#6c1f004c', 8: '#671c0066',\n 9: '#551a008d', 10: '#4c150097', 11: '#3d0f00ab', 12: '#1d0600d4',\n },\n dark: {\n 1: '#141110', 2: '#1c1917', 3: '#262220', 4: '#302a27',\n 5: '#3b3330', 6: '#493e3a', 7: '#5a4c47', 8: '#6f5f58',\n 9: '#a18072', 10: '#ae8c7e', 11: '#d4b3a5', 12: '#ede0d9',\n },\n darkA: {\n 1: '#d1110004', 2: '#fbbc910c', 3: '#faceb817', 4: '#facdb622',\n 5: '#ffd2c12d', 6: '#ffd1c03c', 7: '#fdd0c04f', 8: '#ffd6c565',\n 9: '#fec7b09b', 10: '#fecab5a9', 11: '#ffd7c6d1', 12: '#fff1e9ec',\n },\n },\n brown: {\n light: {\n 1: '#fefdfc', 2: '#fcf9f6', 3: '#f6eee7', 4: '#f0e4d9',\n 5: '#ebdaca', 6: '#e4cdb7', 7: '#dcbc9f', 8: '#cea37e',\n 9: '#ad7f58', 10: '#a07553', 11: '#815e46', 12: '#3e332e',\n },\n lightA: {\n 1: '#aa550003', 2: '#aa550009', 3: '#a04b0018', 4: '#9b4a0026',\n 5: '#9f4d0035', 6: '#a04e0048', 7: '#a34e0060', 8: '#9f4a0081',\n 9: '#823c00a7', 10: '#723300ac', 11: '#522100b9', 12: '#140600d1',\n },\n dark: {\n 1: '#12110f', 2: '#1c1816', 3: '#28211d', 4: '#322922',\n 5: '#3e3128', 6: '#4d3c2f', 7: '#614a39', 8: '#7c5f46',\n 9: '#ad7f58', 10: '#b88c67', 11: '#dbb594', 12: '#f2e1ca',\n },\n darkA: {\n 1: '#91110002', 2: '#fba67c0c', 3: '#fcb58c19', 4: '#fbbb8a24',\n 5: '#fcb88931', 6: '#fdba8741', 7: '#ffbb8856', 8: '#ffbe8773',\n 9: '#feb87da8', 10: '#ffc18cb3', 11: '#fed1aad9', 12: '#feecd4f2',\n },\n },\n crimson: {\n light: {\n 1: '#fffcfd', 2: '#fef7f9', 3: '#ffe9f0', 4: '#fedce7',\n 5: '#facedd', 6: '#f3bed1', 7: '#eaacc3', 8: '#e093b2',\n 9: '#e93d82', 10: '#df3478', 11: '#cb1d63', 12: '#621639',\n },\n lightA: {\n 1: '#ff005503', 2: '#e0004008', 3: '#ff005216', 4: '#f8005123',\n 5: '#e5004f31', 6: '#d0004b41', 7: '#bf004753', 8: '#b6004a6c',\n 9: '#e2005bc2', 10: '#d70056cb', 11: '#c4004fe2', 12: '#530026e9',\n },\n dark: {\n 1: '#191114', 2: '#201318', 3: '#381525', 4: '#4d122f',\n 5: '#5c1839', 6: '#6d2545', 7: '#873356', 8: '#b0436e',\n 9: '#e93d82', 10: '#ee518a', 11: '#ff92ad', 12: '#fdd3e8',\n },\n darkA: {\n 1: '#f4126709', 2: '#f22f7a11', 3: '#fe2a8b2a', 4: '#fd158741',\n 5: '#fd278f51', 6: '#fe459763', 7: '#fd559b7f', 8: '#fe5b9bab',\n 9: '#fe418de8', 10: '#ff5693ed', 11: '#ff92ad', 12: '#ffd5eafd',\n },\n },\n cyan: {\n light: {\n 1: '#fafdfe', 2: '#f2fafb', 3: '#def7f9', 4: '#caf1f6',\n 5: '#b5e9f0', 6: '#9ddde7', 7: '#7dcedc', 8: '#3db9cf',\n 9: '#00a2c7', 10: '#0797b9', 11: '#107d98', 12: '#0d3c48',\n },\n lightA: {\n 1: '#0099cc05', 2: '#009db10d', 3: '#00c2d121', 4: '#00bcd435',\n 5: '#01b4cc4a', 6: '#00a7c162', 7: '#009fbb82', 8: '#00a3c0c2',\n 9: '#00a2c7', 10: '#0094b7f8', 11: '#007491ef', 12: '#00323ef2',\n },\n dark: {\n 1: '#0b161a', 2: '#101b20', 3: '#082c36', 4: '#003848',\n 5: '#004558', 6: '#045468', 7: '#12677e', 8: '#11809c',\n 9: '#00a2c7', 10: '#23afd0', 11: '#4ccce6', 12: '#b6ecf7',\n },\n darkA: {\n 1: '#0091f70a', 2: '#02a7f211', 3: '#00befd28', 4: '#00baff3b',\n 5: '#00befd4d', 6: '#00c7fd5e', 7: '#14cdff75', 8: '#11cfff95',\n 9: '#00cfffc3', 10: '#28d6ffcd', 11: '#52e1fee5', 12: '#bbf3fef7',\n },\n },\n gold: {\n light: {\n 1: '#fdfdfc', 2: '#faf9f2', 3: '#f2f0e7', 4: '#eae6db',\n 5: '#e1dccf', 6: '#d8d0bf', 7: '#cbc0aa', 8: '#b9a88d',\n 9: '#978365', 10: '#8c7a5e', 11: '#71624b', 12: '#3b352b',\n },\n lightA: {\n 1: '#55550003', 2: '#9d8a000d', 3: '#75600018', 4: '#6b4e0024',\n 5: '#60460030', 6: '#64440040', 7: '#63420055', 8: '#633d0072',\n 9: '#5332009a', 10: '#492d00a1', 11: '#362100b4', 12: '#130c00d4',\n },\n dark: {\n 1: '#121211', 2: '#1b1a17', 3: '#24231f', 4: '#2d2b26',\n 5: '#38352e', 6: '#444039', 7: '#544f46', 8: '#696256',\n 9: '#978365', 10: '#a39073', 11: '#cbb99f', 12: '#e8e2d9',\n },\n darkA: {\n 1: '#91911102', 2: '#f9e29d0b', 3: '#f8ecbb15', 4: '#ffeec41e',\n 5: '#feecc22a', 6: '#feebcb37', 7: '#ffedcd48', 8: '#fdeaca5f',\n 9: '#ffdba690', 10: '#fedfb09d', 11: '#fee7c6c8', 12: '#fef7ede7',\n },\n },\n grass: {\n light: {\n 1: '#fbfefb', 2: '#f5fbf5', 3: '#e9f6e9', 4: '#daf1db',\n 5: '#c9e8ca', 6: '#b2ddb5', 7: '#94ce9a', 8: '#65ba74',\n 9: '#46a758', 10: '#3e9b4f', 11: '#2a7e3b', 12: '#203c25',\n },\n lightA: {\n 1: '#00c00004', 2: '#0099000a', 3: '#00970016', 4: '#009f0725',\n 5: '#00930536', 6: '#008f0a4d', 7: '#018b0f6b', 8: '#008d199a',\n 9: '#008619b9', 10: '#007b17c1', 11: '#006514d5', 12: '#002006df',\n },\n dark: {\n 1: '#0e1511', 2: '#141a15', 3: '#1b2a1e', 4: '#1d3a24',\n 5: '#25482d', 6: '#2d5736', 7: '#366740', 8: '#3e7949',\n 9: '#46a758', 10: '#53b365', 11: '#71d083', 12: '#c2f0c2',\n },\n darkA: {\n 1: '#00de1205', 2: '#5ef7780a', 3: '#70fe8c1b', 4: '#57ff802c',\n 5: '#68ff8b3b', 6: '#71ff8f4b', 7: '#77fd925d', 8: '#77fd9070',\n 9: '#65ff82a1', 10: '#72ff8dae', 11: '#89ff9fcd', 12: '#ceffceef',\n },\n },\n gray: {\n light: {\n 1: '#fcfcfc', 2: '#f9f9f9', 3: '#f0f0f0', 4: '#e8e8e8',\n 5: '#e0e0e0', 6: '#d9d9d9', 7: '#cecece', 8: '#bbbbbb',\n 9: '#8d8d8d', 10: '#838383', 11: '#646464', 12: '#202020',\n },\n lightA: {\n 1: '#00000003', 2: '#00000006', 3: '#0000000f', 4: '#00000017',\n 5: '#0000001f', 6: '#00000026', 7: '#00000031', 8: '#00000044',\n 9: '#00000072', 10: '#0000007c', 11: '#0000009b', 12: '#000000df',\n },\n dark: {\n 1: '#111111', 2: '#191919', 3: '#222222', 4: '#2a2a2a',\n 5: '#313131', 6: '#3a3a3a', 7: '#484848', 8: '#606060',\n 9: '#6e6e6e', 10: '#7b7b7b', 11: '#b4b4b4', 12: '#eeeeee',\n },\n darkA: {\n 1: '#00000000', 2: '#ffffff09', 3: '#ffffff12', 4: '#ffffff1b',\n 5: '#ffffff22', 6: '#ffffff2c', 7: '#ffffff3b', 8: '#ffffff55',\n 9: '#ffffff64', 10: '#ffffff72', 11: '#ffffffaf', 12: '#ffffffed',\n },\n },\n green: {\n light: {\n 1: '#fbfefc', 2: '#f4fbf6', 3: '#e6f6eb', 4: '#d6f1df',\n 5: '#c4e8d1', 6: '#adddc0', 7: '#8eceaa', 8: '#5bb98b',\n 9: '#30a46c', 10: '#2b9a66', 11: '#218358', 12: '#193b2d',\n },\n lightA: {\n 1: '#00c04004', 2: '#00a32f0b', 3: '#00a43319', 4: '#00a83829',\n 5: '#019c393b', 6: '#00963c52', 7: '#00914071', 8: '#00924ba4',\n 9: '#008f4acf', 10: '#008647d4', 11: '#00713fde', 12: '#002616e6',\n },\n dark: {\n 1: '#0e1512', 2: '#121b17', 3: '#132d21', 4: '#113b29',\n 5: '#174933', 6: '#20573e', 7: '#28684a', 8: '#2f7c57',\n 9: '#30a46c', 10: '#33b074', 11: '#3dd68c', 12: '#b1f1cb',\n },\n darkA: {\n 1: '#00de4505', 2: '#29f99d0b', 3: '#22ff991e', 4: '#11ff992d',\n 5: '#2bffa23c', 6: '#44ffaa4b', 7: '#50fdac5e', 8: '#54ffad73',\n 9: '#44ffa49e', 10: '#43fea4ab', 11: '#46fea5d4', 12: '#bbffd7f0',\n },\n },\n indigo: {\n light: {\n 1: '#fdfdfe', 2: '#f7f9ff', 3: '#edf2fe', 4: '#e1e9ff',\n 5: '#d2deff', 6: '#c1d0ff', 7: '#abbdf9', 8: '#8da4ef',\n 9: '#3e63dd', 10: '#3358d4', 11: '#3a5bc7', 12: '#1f2d5c',\n },\n lightA: {\n 1: '#00008002', 2: '#0040ff08', 3: '#0047f112', 4: '#0044ff1e',\n 5: '#0044ff2d', 6: '#003eff3e', 7: '#0037ed54', 8: '#0034dc72',\n 9: '#0031d2c1', 10: '#002ec9cc', 11: '#002bb7c5', 12: '#001046e0',\n },\n dark: {\n 1: '#11131f', 2: '#141726', 3: '#182449', 4: '#1d2e62',\n 5: '#253974', 6: '#304384', 7: '#3a4f97', 8: '#435db1',\n 9: '#3e63dd', 10: '#5472e4', 11: '#9eb1ff', 12: '#d6e1ff',\n },\n darkA: {\n 1: '#1133ff0f', 2: '#3354fa17', 3: '#2f62ff3c', 4: '#3566ff57',\n 5: '#4171fd6b', 6: '#5178fd7c', 7: '#5a7fff90', 8: '#5b81feac',\n 9: '#4671ffdb', 10: '#5c7efee3', 11: '#9eb1ff', 12: '#d6e1ff',\n },\n },\n iris: {\n light: {\n 1: '#fdfdff', 2: '#f8f8ff', 3: '#f0f1fe', 4: '#e6e7ff',\n 5: '#dadcff', 6: '#cbcdff', 7: '#b8baf8', 8: '#9b9ef0',\n 9: '#5b5bd6', 10: '#5151cd', 11: '#5753c6', 12: '#272962',\n },\n lightA: {\n 1: '#0000ff02', 2: '#0000ff07', 3: '#0011ee0f', 4: '#000bff19',\n 5: '#000eff25', 6: '#000aff34', 7: '#0008e647', 8: '#0008d964',\n 9: '#0000c0a4', 10: '#0000b6ae', 11: '#0600abac', 12: '#000246d8',\n },\n dark: {\n 1: '#13131e', 2: '#171625', 3: '#202248', 4: '#262a65',\n 5: '#303374', 6: '#3d3e82', 7: '#4a4a95', 8: '#5958b1',\n 9: '#5b5bd6', 10: '#6e6ade', 11: '#b1a9ff', 12: '#e0dffe',\n },\n darkA: {\n 1: '#3636fe0e', 2: '#564bf916', 3: '#525bff3b', 4: '#4d58ff5a',\n 5: '#5b62fd6b', 6: '#6d6ffd7a', 7: '#7777fe8e', 8: '#7b7afeac',\n 9: '#6a6afed4', 10: '#7d79ffdc', 11: '#b1a9ff', 12: '#e1e0fffe',\n },\n },\n jade: {\n light: {\n 1: '#fbfefd', 2: '#f4fbf7', 3: '#e6f7ed', 4: '#d6f1e3',\n 5: '#c3e9d7', 6: '#acdec8', 7: '#8bceb6', 8: '#56ba9f',\n 9: '#29a383', 10: '#26997b', 11: '#208368', 12: '#1d3b31',\n },\n lightA: {\n 1: '#00c08004', 2: '#00a3460b', 3: '#00ae4819', 4: '#00a85129',\n 5: '#00a2553c', 6: '#009a5753', 7: '#00945f74', 8: '#00976ea9',\n 9: '#00916bd6', 10: '#008764d9', 11: '#007152df', 12: '#002217e2',\n },\n dark: {\n 1: '#0d1512', 2: '#121c18', 3: '#0f2e22', 4: '#0b3b2c',\n 5: '#114837', 6: '#1b5745', 7: '#246854', 8: '#2a7e68',\n 9: '#29a383', 10: '#27b08b', 11: '#1fd8a4', 12: '#adf0d4',\n },\n darkA: {\n 1: '#00de4505', 2: '#27fba60c', 3: '#02f99920', 4: '#00ffaa2d',\n 5: '#11ffb63b', 6: '#34ffc24b', 7: '#45fdc75e', 8: '#48ffcf75',\n 9: '#38feca9d', 10: '#31fec7ab', 11: '#21fec0d6', 12: '#b8ffe1ef',\n },\n },\n lime: {\n light: {\n 1: '#fcfdfa', 2: '#f8faf3', 3: '#eef6d6', 4: '#e2f0bd',\n 5: '#d3e7a6', 6: '#c2da91', 7: '#abc978', 8: '#8db654',\n 9: '#bdee63', 10: '#b0e64c', 11: '#5c7c2f', 12: '#37401c',\n },\n lightA: {\n 1: '#66990005', 2: '#6b95000c', 3: '#96c80029', 4: '#8fc60042',\n 5: '#81bb0059', 6: '#72aa006e', 7: '#61990087', 8: '#559200ab',\n 9: '#93e4009c', 10: '#8fdc00b3', 11: '#375f00d0', 12: '#1e2900e3',\n },\n dark: {\n 1: '#11130c', 2: '#151a10', 3: '#1f2917', 4: '#29371d',\n 5: '#334423', 6: '#3d522a', 7: '#496231', 8: '#577538',\n 9: '#bdee63', 10: '#d4ff70', 11: '#bde56c', 12: '#e3f7ba',\n },\n darkA: {\n 1: '#11bb0003', 2: '#78f7000a', 3: '#9bfd4c1a', 4: '#a7fe5c29',\n 5: '#affe6537', 6: '#b2fe6d46', 7: '#b6ff6f57', 8: '#b6fd6d6c',\n 9: '#caff69ed', 10: '#d4ff70', 11: '#d1fe77e4', 12: '#e9febff7',\n },\n },\n mauve: {\n light: {\n 1: '#fdfcfd', 2: '#faf9fb', 3: '#f2eff3', 4: '#eae7ec',\n 5: '#e3dfe6', 6: '#dbd8e0', 7: '#d0cdd7', 8: '#bcbac7',\n 9: '#8e8c99', 10: '#84828e', 11: '#65636d', 12: '#211f26',\n },\n lightA: {\n 1: '#55005503', 2: '#2b005506', 3: '#30004010', 4: '#20003618',\n 5: '#20003820', 6: '#14003527', 7: '#10003332', 8: '#08003145',\n 9: '#05001d73', 10: '#0500197d', 11: '#0400119c', 12: '#020008e0',\n },\n dark: {\n 1: '#121113', 2: '#1a191b', 3: '#232225', 4: '#2b292d',\n 5: '#323035', 6: '#3c393f', 7: '#49474e', 8: '#625f69',\n 9: '#6f6d78', 10: '#7c7a85', 11: '#b5b2bc', 12: '#eeeef0',\n },\n darkA: {\n 1: '#00000000', 2: '#f5f4f609', 3: '#ebeaf814', 4: '#eee5f81d',\n 5: '#efe6fe25', 6: '#f1e6fd30', 7: '#eee9ff40', 8: '#eee7ff5d',\n 9: '#eae6fd6e', 10: '#ece9fd7c', 11: '#f5f1ffb7', 12: '#fdfdffef',\n },\n },\n mint: {\n light: {\n 1: '#f9fefd', 2: '#f2fbf9', 3: '#ddf9f2', 4: '#c8f4e9',\n 5: '#b3ecde', 6: '#9ce0d0', 7: '#7ecfbd', 8: '#4cbba5',\n 9: '#86ead4', 10: '#7de0cb', 11: '#027864', 12: '#16433c',\n },\n lightA: {\n 1: '#00d5aa06', 2: '#00b18a0d', 3: '#00d29e22', 4: '#00cc9937',\n 5: '#00c0914c', 6: '#00b08663', 7: '#00a17d81', 8: '#009e7fb3',\n 9: '#00d3a579', 10: '#00c39982', 11: '#007763fd', 12: '#00312ae9',\n },\n dark: {\n 1: '#0e1515', 2: '#0f1b1b', 3: '#092c2b', 4: '#003a38',\n 5: '#004744', 6: '#105650', 7: '#1e685f', 8: '#277f70',\n 9: '#86ead4', 10: '#a8f5e5', 11: '#58d5ba', 12: '#c4f5e1',\n },\n darkA: {\n 1: '#00dede05', 2: '#00f9f90b', 3: '#00fff61d', 4: '#00fff42c',\n 5: '#00fff23a', 6: '#0effeb4a', 7: '#34fde55e', 8: '#41ffdf76',\n 9: '#92ffe7e9', 10: '#aefeedf5', 11: '#67ffded2', 12: '#cbfee9f5',\n },\n },\n olive: {\n light: {\n 1: '#fcfdfc', 2: '#f8faf8', 3: '#eff1ef', 4: '#e7e9e7',\n 5: '#dfe2df', 6: '#d7dad7', 7: '#cccfcc', 8: '#b9bcb8',\n 9: '#898e87', 10: '#7f847d', 11: '#60655f', 12: '#1d211c',\n },\n lightA: {\n 1: '#00550003', 2: '#00490007', 3: '#00200010', 4: '#00160018',\n 5: '#00180020', 6: '#00140028', 7: '#000f0033', 8: '#040f0047',\n 9: '#050f0078', 10: '#040e0082', 11: '#020a00a0', 12: '#010600e3',\n },\n dark: {\n 1: '#111210', 2: '#181917', 3: '#212220', 4: '#282a27',\n 5: '#2f312e', 6: '#383a36', 7: '#454843', 8: '#5c625b',\n 9: '#687066', 10: '#767d74', 11: '#afb5ad', 12: '#eceeec',\n },\n darkA: {\n 1: '#00000000', 2: '#f1f2f008', 3: '#f4f5f312', 4: '#f3fef21a',\n 5: '#f2fbf122', 6: '#f4faed2c', 7: '#f2fced3b', 8: '#edfdeb57',\n 9: '#ebfde766', 10: '#f0fdec74', 11: '#f6fef4b0', 12: '#fdfffded',\n },\n },\n orange: {\n light: {\n 1: '#fefcfb', 2: '#fff7ed', 3: '#ffefd6', 4: '#ffdfb5',\n 5: '#ffd19a', 6: '#ffc182', 7: '#f5ae73', 8: '#ec9455',\n 9: '#f76b15', 10: '#ef5f00', 11: '#cc4e00', 12: '#582d1d',\n },\n lightA: {\n 1: '#c0400004', 2: '#ff8e0012', 3: '#ff9c0029', 4: '#ff91014a',\n 5: '#ff8b0065', 6: '#ff81007d', 7: '#ed6c008c', 8: '#e35f00aa',\n 9: '#f65e00ea', 10: '#ef5f00', 11: '#cc4e00', 12: '#431200e2',\n },\n dark: {\n 1: '#17120e', 2: '#1e160f', 3: '#331e0b', 4: '#462100',\n 5: '#562800', 6: '#66350c', 7: '#7e451d', 8: '#a35829',\n 9: '#f76b15', 10: '#ff801f', 11: '#ffa057', 12: '#ffe0c2',\n },\n darkA: {\n 1: '#ec360007', 2: '#fe6d000e', 3: '#fb6a0025', 4: '#ff590039',\n 5: '#ff61004a', 6: '#fd75045c', 7: '#ff832c75', 8: '#fe84389d',\n 9: '#fe6d15f7', 10: '#ff801f', 11: '#ffa057', 12: '#ffe0c2',\n },\n },\n pink: {\n light: {\n 1: '#fffcfe', 2: '#fef7fb', 3: '#fee9f5', 4: '#fbdcef',\n 5: '#f6cee7', 6: '#efbfdd', 7: '#e7acd0', 8: '#dd93c2',\n 9: '#d6409f', 10: '#cf3897', 11: '#c2298a', 12: '#651249',\n },\n lightA: {\n 1: '#ff00aa03', 2: '#e0008008', 3: '#f4008c16', 4: '#e2008b23',\n 5: '#d1008331', 6: '#c0007840', 7: '#b6006f53', 8: '#af006f6c',\n 9: '#c8007fbf', 10: '#c2007ac7', 11: '#b60074d6', 12: '#59003bed',\n },\n dark: {\n 1: '#191117', 2: '#21121d', 3: '#37172f', 4: '#4b143d',\n 5: '#591c47', 6: '#692955', 7: '#833869', 8: '#a84885',\n 9: '#d6409f', 10: '#de51a8', 11: '#ff8dcc', 12: '#fdd1ea',\n },\n darkA: {\n 1: '#f412bc09', 2: '#f420bb12', 3: '#fe37cc29', 4: '#fc1ec43f',\n 5: '#fd35c24e', 6: '#fd51c75f', 7: '#fd62c87b', 8: '#ff68c8a2',\n 9: '#fe49bcd4', 10: '#ff5cc0dc', 11: '#ff8dcc', 12: '#ffd3ecfd',\n },\n },\n plum: {\n light: {\n 1: '#fefcff', 2: '#fdf7fd', 3: '#fbebfb', 4: '#f7def8',\n 5: '#f2d1f3', 6: '#e9c2ec', 7: '#deade3', 8: '#cf91d8',\n 9: '#ab4aba', 10: '#a144af', 11: '#953ea3', 12: '#53195d',\n },\n lightA: {\n 1: '#aa00ff03', 2: '#c000c008', 3: '#cc00cc14', 4: '#c200c921',\n 5: '#b700bd2e', 6: '#a400b03d', 7: '#9900a852', 8: '#9000a56e',\n 9: '#89009eb5', 10: '#7f0092bb', 11: '#730086c1', 12: '#40004be6',\n },\n dark: {\n 1: '#181118', 2: '#201320', 3: '#351a35', 4: '#451d47',\n 5: '#512454', 6: '#5e3061', 7: '#734079', 8: '#92549c',\n 9: '#ab4aba', 10: '#b658c4', 11: '#e796f3', 12: '#f4d4f4',\n },\n darkA: {\n 1: '#f112f108', 2: '#f22ff211', 3: '#fd4cfd27', 4: '#f646ff3a',\n 5: '#f455ff48', 6: '#f66dff56', 7: '#f07cfd70', 8: '#ee84ff95',\n 9: '#e961feb6', 10: '#ed70ffc0', 11: '#f19cfef3', 12: '#feddfef4',\n },\n },\n purple: {\n light: {\n 1: '#fefcfe', 2: '#fbf7fe', 3: '#f7edfe', 4: '#f2e2fc',\n 5: '#ead5f9', 6: '#e0c4f4', 7: '#d1afec', 8: '#be93e4',\n 9: '#8e4ec6', 10: '#8347b9', 11: '#8145b5', 12: '#402060',\n },\n lightA: {\n 1: '#aa00aa03', 2: '#8000e008', 3: '#8e00f112', 4: '#8d00e51d',\n 5: '#8000db2a', 6: '#7a01d03b', 7: '#6d00c350', 8: '#6600c06c',\n 9: '#5c00adb1', 10: '#53009eb8', 11: '#52009aba', 12: '#250049df',\n },\n dark: {\n 1: '#18111b', 2: '#1e1523', 3: '#301c3b', 4: '#3d224e',\n 5: '#48295c', 6: '#54346b', 7: '#664282', 8: '#8457aa',\n 9: '#8e4ec6', 10: '#9a5cd0', 11: '#d19dff', 12: '#ecd9fa',\n },\n darkA: {\n 1: '#b412f90b', 2: '#b744f714', 3: '#c150ff2d', 4: '#bb53fd42',\n 5: '#be5cfd51', 6: '#c16dfd61', 7: '#c378fd7a', 8: '#c47effa4',\n 9: '#b661ffc2', 10: '#bc6fffcd', 11: '#d19dff', 12: '#f1ddfffa',\n },\n },\n red: {\n light: {\n 1: '#fffcfc', 2: '#fff7f7', 3: '#feebec', 4: '#ffdbdc',\n 5: '#ffcdce', 6: '#fdbdbe', 7: '#f4a9aa', 8: '#eb8e90',\n 9: '#e5484d', 10: '#dc3e42', 11: '#ce2c31', 12: '#641723',\n },\n lightA: {\n 1: '#ff000003', 2: '#ff000008', 3: '#f3000d14', 4: '#ff000824',\n 5: '#ff000632', 6: '#f8000442', 7: '#df000356', 8: '#d2000571',\n 9: '#db0007b7', 10: '#d10005c1', 11: '#c40006d3', 12: '#55000de8',\n },\n dark: {\n 1: '#191111', 2: '#201314', 3: '#3b1219', 4: '#500f1c',\n 5: '#611623', 6: '#72232d', 7: '#8c333a', 8: '#b54548',\n 9: '#e5484d', 10: '#ec5d5e', 11: '#ff9592', 12: '#ffd1d9',\n },\n darkA: {\n 1: '#f4121209', 2: '#f22f3e11', 3: '#ff173f2d', 4: '#fe0a3b44',\n 5: '#ff204756', 6: '#ff3e5668', 7: '#ff536184', 8: '#ff5d61b0',\n 9: '#fe4e54e4', 10: '#ff6465eb', 11: '#ff9592', 12: '#ffd1d9',\n },\n },\n ruby: {\n light: {\n 1: '#fffcfd', 2: '#fff7f8', 3: '#feeaed', 4: '#ffdce1',\n 5: '#ffced6', 6: '#f8bfc8', 7: '#efacb8', 8: '#e592a3',\n 9: '#e54666', 10: '#dc3b5d', 11: '#ca244d', 12: '#64172b',\n },\n lightA: {\n 1: '#ff005503', 2: '#ff002008', 3: '#f3002515', 4: '#ff002523',\n 5: '#ff002a31', 6: '#e4002440', 7: '#ce002553', 8: '#c300286d',\n 9: '#db002cb9', 10: '#d2002cc4', 11: '#c10030db', 12: '#550016e8',\n },\n dark: {\n 1: '#191113', 2: '#1e1517', 3: '#3a141e', 4: '#4e1325',\n 5: '#5e1a2e', 6: '#6f2539', 7: '#883447', 8: '#b3445a',\n 9: '#e54666', 10: '#ec5a72', 11: '#ff949d', 12: '#fed2e1',\n },\n darkA: {\n 1: '#f4124a09', 2: '#fe5a7f0e', 3: '#ff235d2c', 4: '#fd195e42',\n 5: '#fe2d6b53', 6: '#ff447665', 7: '#ff577d80', 8: '#ff5c7cae',\n 9: '#fe4c70e4', 10: '#ff617beb', 11: '#ff949d', 12: '#ffd3e2fe',\n },\n },\n sage: {\n light: {\n 1: '#fbfdfc', 2: '#f7f9f8', 3: '#eef1f0', 4: '#e6e9e8',\n 5: '#dfe2e0', 6: '#d7dad9', 7: '#cbcfcd', 8: '#b8bcba',\n 9: '#868e8b', 10: '#7c8481', 11: '#5f6563', 12: '#1a211e',\n },\n lightA: {\n 1: '#00804004', 2: '#00402008', 3: '#002d1e11', 4: '#001f1519',\n 5: '#00180820', 6: '#00140d28', 7: '#00140a34', 8: '#000f0847',\n 9: '#00110b79', 10: '#00100a83', 11: '#000a07a0', 12: '#000805e5',\n },\n dark: {\n 1: '#101211', 2: '#171918', 3: '#202221', 4: '#272a29',\n 5: '#2e3130', 6: '#373b39', 7: '#444947', 8: '#5b625f',\n 9: '#63706b', 10: '#717d79', 11: '#adb5b2', 12: '#eceeed',\n },\n darkA: {\n 1: '#00000000', 2: '#f0f2f108', 3: '#f3f5f412', 4: '#f2fefd1a',\n 5: '#f1fbfa22', 6: '#edfbf42d', 7: '#edfcf73c', 8: '#ebfdf657',\n 9: '#dffdf266', 10: '#e5fdf674', 11: '#f4fefbb0', 12: '#fdfffeed',\n },\n },\n sand: {\n light: {\n 1: '#fdfdfc', 2: '#f9f9f8', 3: '#f1f0ef', 4: '#e9e8e6',\n 5: '#e2e1de', 6: '#dad9d6', 7: '#cfceca', 8: '#bcbbb5',\n 9: '#8d8d86', 10: '#82827c', 11: '#63635e', 12: '#21201c',\n },\n lightA: {\n 1: '#55550003', 2: '#25250007', 3: '#20100010', 4: '#1f150019',\n 5: '#1f180021', 6: '#19130029', 7: '#19140035', 8: '#1915014a',\n 9: '#0f0f0079', 10: '#0c0c0083', 11: '#080800a1', 12: '#060500e3',\n },\n dark: {\n 1: '#111110', 2: '#191918', 3: '#222221', 4: '#2a2a28',\n 5: '#31312e', 6: '#3b3a37', 7: '#494844', 8: '#62605b',\n 9: '#6f6d66', 10: '#7c7b74', 11: '#b5b3ad', 12: '#eeeeec',\n },\n darkA: {\n 1: '#00000000', 2: '#f4f4f309', 3: '#f6f6f513', 4: '#fefef31b',\n 5: '#fbfbeb23', 6: '#fffaed2d', 7: '#fffbed3c', 8: '#fff9eb57',\n 9: '#fffae965', 10: '#fffdee73', 11: '#fffcf4b0', 12: '#fffffded',\n },\n },\n sky: {\n light: {\n 1: '#f9feff', 2: '#f1fafd', 3: '#e1f6fd', 4: '#d1f0fa',\n 5: '#bee7f5', 6: '#a9daed', 7: '#8dcae3', 8: '#60b3d7',\n 9: '#7ce2fe', 10: '#74daf8', 11: '#00749e', 12: '#1d3e56',\n },\n lightA: {\n 1: '#00d5ff06', 2: '#00a4db0e', 3: '#00b3ee1e', 4: '#00ace42e',\n 5: '#00a1d841', 6: '#0092ca56', 7: '#0089c172', 8: '#0085bf9f',\n 9: '#00c7fe83', 10: '#00bcf38b', 11: '#00749e', 12: '#002540e2',\n },\n dark: {\n 1: '#0d141f', 2: '#111a27', 3: '#112840', 4: '#113555',\n 5: '#154467', 6: '#1b537b', 7: '#1f6692', 8: '#197cae',\n 9: '#7ce2fe', 10: '#a8eeff', 11: '#75c7f0', 12: '#c2f3ff',\n },\n darkA: {\n 1: '#0044ff0f', 2: '#1171fb18', 3: '#1184fc33', 4: '#128fff49',\n 5: '#1c9dfd5d', 6: '#28a5ff72', 7: '#2badfe8b', 8: '#1db2fea9',\n 9: '#7ce3fffe', 10: '#a8eeff', 11: '#7cd3ffef', 12: '#c2f3ff',\n },\n },\n slate: {\n light: {\n 1: '#fcfcfd', 2: '#f9f9fb', 3: '#f0f0f3', 4: '#e8e8ec',\n 5: '#e0e1e6', 6: '#d9d9e0', 7: '#cdced6', 8: '#b9bbc6',\n 9: '#8b8d98', 10: '#80838d', 11: '#60646c', 12: '#1c2024',\n },\n lightA: {\n 1: '#00005503', 2: '#00005506', 3: '#0000330f', 4: '#00002d17',\n 5: '#0009321f', 6: '#00002f26', 7: '#00062e32', 8: '#00083046',\n 9: '#00051d74', 10: '#00071b7f', 11: '#0007149f', 12: '#000509e3',\n },\n dark: {\n 1: '#111113', 2: '#18191b', 3: '#212225', 4: '#272a2d',\n 5: '#2e3135', 6: '#363a3f', 7: '#43484e', 8: '#5a6169',\n 9: '#696e77', 10: '#777b84', 11: '#b0b4ba', 12: '#edeef0',\n },\n darkA: {\n 1: '#00000000', 2: '#d8f4f609', 3: '#ddeaf814', 4: '#d3edf81d',\n 5: '#d9edfe25', 6: '#d6ebfd30', 7: '#d9edff40', 8: '#d9edff5d',\n 9: '#dfebfd6d', 10: '#e5edfd7b', 11: '#f1f7feb5', 12: '#fcfdffef',\n },\n },\n teal: {\n light: {\n 1: '#fafefd', 2: '#f3fbf9', 3: '#e0f8f3', 4: '#ccf3ea',\n 5: '#b8eae0', 6: '#a1ded2', 7: '#83cdc1', 8: '#53b9ab',\n 9: '#12a594', 10: '#0d9b8a', 11: '#008573', 12: '#0d3d38',\n },\n lightA: {\n 1: '#00cc9905', 2: '#00aa800c', 3: '#00c69d1f', 4: '#00c39633',\n 5: '#00b49047', 6: '#00a6855e', 7: '#0099807c', 8: '#009783ac',\n 9: '#009e8ced', 10: '#009684f2', 11: '#008573', 12: '#00332df2',\n },\n dark: {\n 1: '#0d1514', 2: '#111c1b', 3: '#0d2d2a', 4: '#023b37',\n 5: '#084843', 6: '#145750', 7: '#1c6961', 8: '#207e73',\n 9: '#12a594', 10: '#0eb39e', 11: '#0bd8b6', 12: '#adf0dd',\n },\n darkA: {\n 1: '#00deab05', 2: '#12fbe60c', 3: '#00ffe61e', 4: '#00ffe92d',\n 5: '#00ffea3b', 6: '#1cffe84b', 7: '#2efde85f', 8: '#32ffe775',\n 9: '#13ffe49f', 10: '#0dffe0ae', 11: '#0afed5d6', 12: '#b8ffebef',\n },\n },\n tomato: {\n light: {\n 1: '#fffcfc', 2: '#fff8f7', 3: '#feebe7', 4: '#ffdcd3',\n 5: '#ffcdc2', 6: '#fdbdaf', 7: '#f5a898', 8: '#ec8e7b',\n 9: '#e54d2e', 10: '#dd4425', 11: '#d13415', 12: '#5c271f',\n },\n lightA: {\n 1: '#ff000003', 2: '#ff200008', 3: '#f52b0018', 4: '#ff35002c',\n 5: '#ff2e003d', 6: '#f92d0050', 7: '#e7280067', 8: '#db250084',\n 9: '#df2600d1', 10: '#d72400da', 11: '#cd2200ea', 12: '#460900e0',\n },\n dark: {\n 1: '#181111', 2: '#1f1513', 3: '#391714', 4: '#4e1511',\n 5: '#5e1c16', 6: '#6e2920', 7: '#853a2d', 8: '#ac4d39',\n 9: '#e54d2e', 10: '#ec6142', 11: '#ff977d', 12: '#fbd3cb',\n },\n darkA: {\n 1: '#f1121208', 2: '#ff55330f', 3: '#ff35232b', 4: '#fd201142',\n 5: '#fe332153', 6: '#ff4f3864', 7: '#fd644a7d', 8: '#fe6d4ea7',\n 9: '#fe5431e4', 10: '#ff6847eb', 11: '#ff977d', 12: '#ffd6cefb',\n },\n },\n violet: {\n light: {\n 1: '#fdfcfe', 2: '#faf8ff', 3: '#f4f0fe', 4: '#ebe4ff',\n 5: '#e1d9ff', 6: '#d4cafe', 7: '#c2b5f5', 8: '#aa99ec',\n 9: '#6e56cf', 10: '#654dc4', 11: '#6550b9', 12: '#2f265f',\n },\n lightA: {\n 1: '#5500aa03', 2: '#4900ff07', 3: '#4400ee0f', 4: '#4300ff1b',\n 5: '#3600ff26', 6: '#3100fb35', 7: '#2d01dd4a', 8: '#2b00d066',\n 9: '#2400b7a9', 10: '#2300abb2', 11: '#1f0099af', 12: '#0b0043d9',\n },\n dark: {\n 1: '#14121f', 2: '#1b1525', 3: '#291f43', 4: '#33255b',\n 5: '#3c2e69', 6: '#473876', 7: '#56468b', 8: '#6958ad',\n 9: '#6e56cf', 10: '#7d66d9', 11: '#baa7ff', 12: '#e2ddfe',\n },\n darkA: {\n 1: '#4422ff0f', 2: '#853ff916', 3: '#8354fe36', 4: '#7d51fd50',\n 5: '#845ffd5f', 6: '#8f6cfd6d', 7: '#9879ff83', 8: '#977dfea8',\n 9: '#8668ffcc', 10: '#9176fed7', 11: '#baa7ff', 12: '#e3defffe',\n },\n },\n yellow: {\n light: {\n 1: '#fdfdf9', 2: '#fefce9', 3: '#fffab8', 4: '#fff394',\n 5: '#ffe770', 6: '#f3d768', 7: '#e4c767', 8: '#d5ae39',\n 9: '#ffe629', 10: '#ffdc00', 11: '#9e6c00', 12: '#473b1f',\n },\n lightA: {\n 1: '#aaaa0006', 2: '#f4dd0016', 3: '#ffee0047', 4: '#ffe3016b',\n 5: '#ffd5008f', 6: '#ebbc0097', 7: '#d2a10098', 8: '#c99700c6',\n 9: '#ffe100d6', 10: '#ffdc00', 11: '#9e6c00', 12: '#2e2000e0',\n },\n dark: {\n 1: '#14120b', 2: '#1b180f', 3: '#2d2305', 4: '#362b00',\n 5: '#433500', 6: '#524202', 7: '#665417', 8: '#836a21',\n 9: '#ffe629', 10: '#ffff57', 11: '#f5e147', 12: '#f6eeb4',\n },\n darkA: {\n 1: '#d1510004', 2: '#f9b4000b', 3: '#ffaa001e', 4: '#fdb70028',\n 5: '#febb0036', 6: '#fec40046', 7: '#fdcb225c', 8: '#fdca327b',\n 9: '#ffe629', 10: '#ffff57', 11: '#fee949f5', 12: '#fef6baf6',\n },\n },\n};\n","import type { PALETTES } from './palettes';\n\nimport type { Styles } from '../providers/design-system-provider';\n\nexport type Mode = 'dark' | 'light';\n\nexport type PaletteName = keyof typeof PALETTES;\n\nexport type ColorStep = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport type ColorScale = Record<ColorStep, string>;\n\nexport type ColorVariant = 'light' | 'lightA' | 'dark' | 'darkA';\n\nexport type Palette = Record<ColorVariant, ColorScale>;\n\nexport type Palettes = Record<string, Palette>;\n\nexport interface TypographyProperties {\n font: string;\n weight: string;\n tracking: string;\n leading: string;\n}\n\nexport interface ShadowProperties {\n color: PaletteName;\n offsetX: number;\n offsetY: number;\n blur: number;\n spread: number;\n opacity: number;\n}\n\nexport type ShadowStep = 'xs' | 's' | 'm' | 'l' | 'xl';\n\nexport const SHADOW_STEPS: ShadowStep[] = ['xs', 's', 'm', 'l', 'xl'];\n\nexport type ColorRole = 'neutral' | 'accent' | 'error' | 'success' | 'warning' | 'info';\n\nexport const COLOR_ROLES: ColorRole[] = ['neutral', 'accent', 'error', 'success', 'warning', 'info'];\n\nexport type TypographyRole = 'header' | 'label' | 'body' | 'code';\n\nexport const TYPOGRAPHY_ROLES: TypographyRole[] = ['header', 'label', 'body', 'code'];\n\nexport interface ThemePreset {\n name: string;\n colors: Record<ColorRole, PaletteName>;\n shadows: Record<ShadowStep, ShadowProperties>;\n typography: Record<TypographyRole, TypographyProperties>;\n radius: string;\n spacingFactor: number;\n typographyScaleFactor: number;\n custom?: Record<string, string>;\n overrides?: Partial<Styles>;\n}\n","import { PALETTES } from './palettes';\n\nimport { COLOR_ROLES, SHADOW_STEPS, type Mode, type PaletteName, type ThemePreset } from './types';\n\nexport class PresetHelpers {\n public static resolve(preset: ThemePreset, mode: Mode): Record<string, string> {\n const vars: Record<string, string> = {};\n\n for (const role of COLOR_ROLES) {\n const palette = PALETTES[preset.colors[role] as PaletteName];\n const solid = palette[mode];\n const alpha = palette[`${mode}A`];\n const alphaKey = role === 'neutral' ? 'neutralA' : `${role}A`;\n\n for (let i = 1; i <= 12; i++) {\n vars[`--color-${role}-${i}`] = solid[i as keyof typeof solid];\n vars[`--color-${alphaKey}-${i}`] = alpha[i as keyof typeof alpha];\n }\n }\n\n for (const step of SHADOW_STEPS) {\n const config = preset.shadows[step];\n\n vars[`--shadow-${step}-color`] = PALETTES[config.color as PaletteName][mode][9];\n vars[`--shadow-${step}-offsetX`] = `${config.offsetX}px`;\n vars[`--shadow-${step}-offsetY`] = `${config.offsetY}px`;\n vars[`--shadow-${step}-blur`] = `${config.blur}px`;\n vars[`--shadow-${step}-spread`] = `${config.spread}px`;\n vars[`--shadow-${step}-opacity`] = `${Math.round(config.opacity * 100)}%`;\n }\n\n for (const [role, config] of Object.entries(preset.typography)) {\n vars[`--typo-${role}-font`] = `'${config.font}', sans-serif`;\n vars[`--typo-${role}-weight`] = config.weight;\n vars[`--typo-${role}-tracking`] = config.tracking;\n vars[`--typo-${role}-leading`] = config.leading;\n }\n\n vars['--radius'] = preset.radius;\n vars['--spacing'] = `${0.25 * preset.spacingFactor}rem`;\n vars['--typo-scale-factor'] = `${preset.typographyScaleFactor}`;\n\n if (preset.custom) Object.assign(vars, preset.custom);\n\n return vars;\n }}\n","import { LocalStorage } from '@digo-labs/common';\n\nimport { baseStyles } from '..';\n\nimport { createContext, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from 'react';\n\nimport { PresetHelpers } from '../presets/helpers';\n\nimport type { ColorRole, Mode, PaletteName, ShadowProperties, ShadowStep, ThemePreset, TypographyProperties, TypographyRole } from '../presets/types';\n\nexport type Styles = typeof baseStyles;\n\ntype PartialStyles = Partial<Styles>;\n\nconst LOCAL_STORAGE_KEY = 'mode';\n\ninterface DesignSystemContextType {\n mode: Mode;\n toggleMode: () => void;\n setMode: (mode: Mode) => void;\n preset: ThemePreset;\n setPreset: (preset: ThemePreset) => void;\n updatePreset: (partial: Partial<ThemePreset>) => void;\n setRolePalette: (role: ColorRole, palette: PaletteName) => void;\n updateTypography: (role: TypographyRole, partial: Partial<TypographyProperties>) => void;\n updateShadow: (step: ShadowStep, partial: Partial<ShadowProperties>) => void;\n updateComponentOverrides: (component: string, overrides: Record<string, string>) => void;\n}\n\nconst DesignSystemContext = createContext<DesignSystemContextType | undefined>(undefined);\n\nconst StylesContext = createContext<Styles | undefined>(undefined);\n\ninterface DesignSystemProviderProps {\n children: ReactNode;\n preset: ThemePreset;\n defaultMode?: Mode;\n overrides?: PartialStyles;\n}\n\nexport function DesignSystemProvider(properties: DesignSystemProviderProps) {\n const {\n children,\n preset,\n defaultMode = 'dark',\n overrides,\n } = properties;\n\n const [mode, setMode] = useState<Mode>(defaultMode);\n const [currentPreset, setCurrentPreset] = useState<ThemePreset>(preset);\n const previousVarsRef = useRef<Record<string, string>>({});\n\n useEffect(() => {\n const savedMode = LocalStorage.loadValue<Mode>(LOCAL_STORAGE_KEY, defaultMode);\n\n setMode(savedMode);\n }, []);\n\n useEffect(() => {\n LocalStorage.setValue<Mode>(LOCAL_STORAGE_KEY, mode);\n }, [mode]);\n\n useLayoutEffect(() => {\n const root = document.documentElement;\n const vars = PresetHelpers.resolve(currentPreset, mode);\n const prevVars = previousVarsRef.current;\n\n for (const key of Object.keys(prevVars)) {\n if (!(key in vars)) root.style.removeProperty(key);\n }\n\n for (const [key, value] of Object.entries(vars)) {\n if (prevVars[key] !== value) root.style.setProperty(key, value);\n }\n\n previousVarsRef.current = vars;\n }, [mode, currentPreset]);\n\n function toggleMode(): void {\n setMode(current => current === 'light' ? 'dark' : 'light');\n }\n\n function updatePreset(partial: Partial<ThemePreset>): void {\n setCurrentPreset(prev => ({ ...prev, ...partial }));\n }\n\n function setRolePalette(role: ColorRole, palette: PaletteName): void {\n setCurrentPreset(prev => ({ ...prev, colors: { ...prev.colors, [role]: palette } }));\n }\n\n function updateTypography(role: TypographyRole, partial: Partial<TypographyProperties>): void {\n setCurrentPreset(prev => ({\n ...prev,\n typography: {\n ...prev.typography,\n [role]: { ...prev.typography[role], ...partial },\n },\n }));\n }\n\n function updateShadow(step: ShadowStep, partial: Partial<ShadowProperties>): void {\n setCurrentPreset(prev => ({\n ...prev,\n shadows: {\n ...prev.shadows,\n [step]: { ...prev.shadows[step], ...partial },\n },\n }));\n }\n\n function updateComponentOverrides(component: string, componentOverrides: Record<string, string>): void {\n setCurrentPreset(prev => ({\n ...prev,\n overrides: {\n ...(prev.overrides ?? {}),\n [component]: componentOverrides,\n } as PartialStyles,\n }));\n }\n\n const styles = useMemo(() => {\n const presetOverrides = currentPreset.overrides ?? {};\n\n return { ...baseStyles, ...presetOverrides, ...overrides } as Styles;\n }, [currentPreset, overrides]);\n\n const contextValue = useMemo(() => ({\n mode: mode,\n toggleMode: toggleMode,\n setMode: setMode,\n preset: currentPreset,\n setPreset: setCurrentPreset,\n updatePreset: updatePreset,\n setRolePalette: setRolePalette,\n updateTypography: updateTypography,\n updateShadow: updateShadow,\n updateComponentOverrides: updateComponentOverrides,\n }), [mode, currentPreset]);\n\n return (\n <DesignSystemContext.Provider value={contextValue}>\n <StylesContext.Provider value={styles}>\n {children}\n </StylesContext.Provider>\n </DesignSystemContext.Provider>\n );\n}\n\nexport function useDesignSystem(): DesignSystemContextType {\n const context = useContext(DesignSystemContext);\n\n if (!context) {\n throw new Error('useDesignSystem must be used within a DesignSystemProvider');\n }\n\n return context;\n}\n\nexport function useStyles(): Styles {\n const context = useContext(StylesContext);\n\n return context ?? baseStyles;\n}\n","import { cn } from '@digo-labs/common';\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\n\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Styles, useStyles } from './design-system-provider';\n\ntype StyleKey = keyof Styles;\n\ntype ReturnOf<T> = T extends (...args: any[]) => infer R ? R : never;\n\ntype SlotNames<T> = keyof ReturnOf<T> & string;\n\ntype ResolvedSlots<T> = Record<SlotNames<T>, string>;\n\ntype SlotsClassNames<T extends (...args: any[]) => any> = Partial<Record<SlotNames<T>, string>>;\n\nexport type ComponentStylesProps<K extends StyleKey> = VariantProps<Styles[K]> & { classNames?: SlotsClassNames<Styles[K]>; };\n\nexport function createComponentStyles<K extends StyleKey>(styleKey: K) {\n type StyleFn = Styles[K];\n type Slots = SlotNames<StyleFn>;\n type Resolved = ResolvedSlots<StyleFn>;\n type Variants = VariantProps<StyleFn>;\n\n type ContextValue = {\n styles: Resolved;\n variants: Variants;\n };\n\n const Context = createContext<ContextValue | null>(null);\n\n type ProviderProperties = Variants & {\n classNames?: Partial<Record<Slots, string>>;\n children: ReactNode;\n };\n\n function ComponentStylesProvider(props: ProviderProperties) {\n const { classNames, children, ...variants } = props;\n\n const styleFn = useStyles()[styleKey];\n const variantKey = JSON.stringify(variants);\n const classNamesKey = JSON.stringify(classNames);\n\n const value = useMemo(() => {\n const slots = (styleFn as any)(variants);\n const styles = {} as Resolved;\n\n for (const name of Object.keys(slots) as Slots[]) {\n const base = slots[name]();\n styles[name] = classNames?.[name] ? cn(base, classNames[name]) : base;\n }\n\n return { styles: styles, variants: variants as unknown as Variants };\n }, [styleFn, variantKey, classNamesKey]);\n\n return (\n <Context.Provider value={value}>\n {children}\n </Context.Provider>\n );\n }\n\n function useComponentStyles(): Resolved {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error(`useComponentStyles must be used within a ComponentStylesProvider for \"${String(styleKey)}\"`);\n }\n\n return context.styles;\n }\n\n function useComponentVariants(): Variants {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error(`useComponentVariants must be used within a ComponentStylesProvider for \"${String(styleKey)}\"`);\n }\n\n return context.variants;\n }\n\n return { ComponentStylesProvider: ComponentStylesProvider, useComponentStyles: useComponentStyles, useComponentVariants: useComponentVariants };\n}\n","import { createTV } from 'tailwind-variants';\n\nimport type * as BaseStyles from '../styles';\n\nexport const styles = createTV({\n twMergeConfig: {\n classGroups: {\n 'font-size': [{ typo: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] }],\n 'font-weight': [{ 'typo-weight': ['100', '200', '300', '400', '500', '600', '700', '800', '900'] }],\n },\n },\n});\n\nexport { createComponentStyles, type ComponentStylesProps } from '../providers/component-styles-provider';\n\nexport function defineOverrides<T extends Partial<Record<keyof typeof BaseStyles, any>>>(overrides: T) {\n return overrides as Partial<typeof BaseStyles>;\n}\n","import type { ComponentProps } from 'react';\nimport type { Inertia, motion, Spring, Tween } from 'motion/react';\n\nexport const motionTransitionPresets = {\n spring1: { type: 'spring', stiffness: 400, damping: 40 },\n spring2: { type: 'spring', stiffness: 150, damping: 20 },\n spring3: { type: 'spring', stiffness: 200, damping: 10 },\n spring4: { type: 'spring', stiffness: 200, damping: 10 },\n spring5: { type: 'spring', stiffness: 300, damping: 10 },\n spring6: { type: 'spring', stiffness: 400, damping: 10 },\n} satisfies Record<string, Spring | Tween | Inertia>;\n\ntype MotionDivProps = ComponentProps<typeof motion.div>;\n\nexport const motionComponentPresets = {\n dragSnapBack: {\n drag: true,\n dragElastic: 0.3,\n dragConstraints: { left: 0, right: 0, top: 0, bottom: 0 },\n dragTransition: { bounceStiffness: 600, bounceDamping: 10, power: 0.3 },\n transition: motionTransitionPresets.spring3,\n },\n\n} satisfies Record<string, MotionDivProps>;\n\nexport const motionPresencePresets = {\n variant1: {\n initial: { opacity: 0, y: 20 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -20 },\n transition: motionTransitionPresets.spring5,\n },\n variant2: {\n initial: { opacity: 0, scale: 0.95 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.95, height: 0, padding: 0, margin: 0, overflow: 'hidden', transition: { duration: 0.25, ease: 'easeOut' } },\n transition: motionTransitionPresets.spring1,\n },\n variant3: {\n initial: { opacity: 0, scale: 0.75 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.75, transition: { duration: 0.2, ease: 'easeOut' } },\n transition: motionTransitionPresets.spring3,\n },\n} satisfies Record<string, MotionDivProps>;\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps, ReactNode } from 'react';\nimport { Transition } from 'motion';\nimport { AnimatePresence, motion, Variants } from 'motion/react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { motionPresencePresets } from '../utils/motion-presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('motionAnimatePresence');\n\ninterface Properties extends ComponentProps<typeof AnimatePresence>, ComponentStylesProps<'motionAnimatePresence'> {\n children: ReactNode[];\n activeIndex: number;\n preset?: keyof typeof motionPresencePresets;\n transition?: Transition;\n variants?: Variants;\n className?: string;\n}\n\nexport function MotionAnimatePresence(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <MotionAnimatePresenceRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction MotionAnimatePresenceRoot(properties: Omit<Properties, 'classNames'>) {\n const {\n children,\n activeIndex,\n preset = 'variant3',\n transition,\n variants,\n mode = 'wait',\n className,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const resolved = motionPresencePresets[preset];\n\n const finalVariants: Variants = variants ?? {\n initial: resolved.initial,\n animate: resolved.animate,\n exit: resolved.exit,\n };\n\n const finalTransition = transition ?? resolved.transition;\n\n return (\n\n <div data-slot=\"motion-animate-presence\" className={cn(styles.root, className)}>\n <AnimatePresence mode={mode} {...props}>\n <motion.div\n data-slot=\"motion-animate-presence-content\"\n key={activeIndex}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={finalVariants}\n transition={finalTransition}\n className={styles.content}\n >\n {children[activeIndex]}\n </motion.div>\n </AnimatePresence>\n </div>\n\n );\n}\n","export const ANIMATIONS = {\n default: 'https://cdn.digo-labs.com/animations/default-animation.json',\n empty: 'https://cdn.digo-labs.com/animations/empty-animation.json',\n error: 'https://cdn.digo-labs.com/animations/error-animation.json',\n score: 'https://cdn.digo-labs.com/animations/score-animation.json',\n heart: 'https://cdn.digo-labs.com/animations/heart-animation.json',\n};\n","import { useAuth } from '@digo-labs/services';\n\nimport { Navigate, Outlet, useLocation } from 'react-router-dom';\n\nimport { ReactNode } from 'react';\n\ninterface Properties {\n loginPath?: string;\n fallback?: ReactNode;\n}\n\nexport function AuthGuard(properties: Properties) {\n const { loginPath = '/login', fallback } = properties;\n\n const { isAuthenticated, isLoading } = useAuth();\n const location = useLocation();\n\n if (isLoading) return fallback ?? null;\n\n if (!isAuthenticated) {\n return (\n <Navigate\n to={loginPath}\n state={{ from: location }}\n replace={true}\n />\n );\n }\n\n return <Outlet />;\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps, createContext, ReactNode, useContext, useMemo, useRef, useState } from 'react';\nimport { HTMLMotionProps, motion, TargetAndTransition } from 'motion/react';\n\nimport { motionTransitionPresets } from 'src/utils/motion-presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('card');\n\nconst DEFAULT_HOVERED: TargetAndTransition = { translateX: 6 };\nconst DEFAULT_TAPPED: TargetAndTransition = { translateX: 0 };\n\ntype ContextProperties = {\n showFeedback: boolean;\n delay: number;\n getNextIndex: () => number;\n};\n\nconst Context = createContext<ContextProperties>({\n showFeedback: false,\n delay: 0.03,\n getNextIndex: () => 0,\n});\n\ninterface Properties extends RootProperties, ComponentStylesProps<'card'> {\n children: ReactNode;\n delay?: number;\n}\n\nexport function Card(properties: Properties) {\n const { classNames, children, onClick, delay = 0.03, className, ...props } = properties;\n\n const [showFeedback, setShowFeedback] = useState(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>(null);\n const indexRef = useRef(0);\n\n indexRef.current = 0;\n\n function handleClick() {\n clearTimeout(timeoutRef.current!);\n setShowFeedback(true);\n timeoutRef.current = setTimeout(() => setShowFeedback(false), 1000);\n }\n\n function getNextIndex() {\n return indexRef.current++;\n }\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ showFeedback: showFeedback, delay: delay, getNextIndex: getNextIndex }}>\n <CardRoot\n className={className}\n onHoverEnd={() => setShowFeedback(false)}\n onClick={(e) => {\n handleClick();\n onClick?.(e);\n }}\n {...props}\n >\n {children}\n </CardRoot>\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = HTMLMotionProps<'div'>;\n\nfunction CardRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <motion.div\n data-slot=\"card\"\n className={cn(styles.root, className)}\n whileHover=\"hovered\"\n whileTap=\"tapped\"\n {...props}\n />\n );\n}\n\nexport function CardContent(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"card-content\"\n className={cn(styles.content, className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\ninterface ItemProperties extends HTMLMotionProps<'div'> {\n hovered?: TargetAndTransition | false;\n tapped?: TargetAndTransition | false;\n}\n\nexport function CardItem(properties: ItemProperties) {\n const { className, children, hovered = DEFAULT_HOVERED, tapped = DEFAULT_TAPPED, ...props } = properties;\n\n const { delay, getNextIndex } = useContext(Context);\n\n const index = useMemo(() => getNextIndex(), []);\n\n return (\n <motion.div\n data-slot=\"card-item\"\n variants={{ hovered: hovered || {}, tapped: tapped || {} }}\n transition={{ ...motionTransitionPresets.spring1, delay: index * delay }}\n className={className}\n {...props}\n >\n {children}\n </motion.div>\n );\n}\n\ninterface FeedbackProperties extends ComponentProps<'div'> {\n label?: string;\n}\n\nexport function CardFeedback(properties: FeedbackProperties) {\n const { className, label = 'Copied!', ...props } = properties;\n\n const { showFeedback } = useContext(Context);\n const styles = useComponentStyles();\n\n return (\n <motion.div\n data-slot=\"card-feedback\"\n className={styles.feedbackWrapper}\n initial={false}\n hidden={undefined}\n animate={{\n height: showFeedback ? 'auto' : 0,\n opacity: showFeedback ? 1 : 0,\n }}\n transition={motionTransitionPresets.spring1}\n >\n <div className={cn(styles.feedback, className)} {...props}>\n {label}\n </div>\n </motion.div>\n );\n}\n","import { cn, TextMessage } from '@digo-labs/common';\nimport { Image } from '..';\n\nimport { ComponentProps, useEffect, useRef } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('chatThread');\n\nexport interface ChatThreadMessage {\n role: 'user' | 'assistant' | 'error';\n content: TextMessage['content'];\n stopReason?: string;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'chatThread'>;\n\nexport function ChatThread(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ChatThreadRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'div'> {\n messages: ChatThreadMessage[];\n streamingText?: string;\n}\n\nfunction ChatThreadRoot(properties: RootProperties) {\n const { messages, streamingText, className, ...props } = properties;\n\n const styles = useComponentStyles();\n const bottomRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n // bottomRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [messages.length, streamingText]);\n\n return (\n <div\n data-slot=\"chat-thread\"\n className={cn(styles.root, className)}\n {...props}\n >\n {messages.map((message, index) => (\n <ChatThreadBubble key={index} message={message} />\n ))}\n\n {streamingText !== undefined && (\n <ChatThreadStreamingBubble text={streamingText} />\n )}\n\n <div ref={bottomRef} />\n </div>\n );\n}\n\ninterface ChatThreadBubbleProperties {\n message: ChatThreadMessage;\n}\n\nfunction ChatThreadBubble(properties: ChatThreadBubbleProperties) {\n const { message } = properties;\n\n const styles = useComponentStyles();\n\n const variantSlot = message.role === 'user'\n ? styles.userMessage\n : message.role === 'error'\n ? styles.errorMessage\n : styles.assistantMessage;\n\n const showStopReason = message.role === 'assistant' && !!message.stopReason;\n\n return (\n <div\n data-slot=\"chat-thread-message\"\n data-role={message.role}\n className={cn(styles.message, variantSlot)}\n >\n {message.role === 'error' && (\n <span data-slot=\"chat-thread-error-tag\" className={styles.errorTag}>\n Error\n </span>\n )}\n\n <ChatThreadMessageContent content={message.content} />\n\n {showStopReason && (\n <span data-slot=\"chat-thread-stop-reason\" className={styles.stopReason}>\n {message.stopReason}\n </span>\n )}\n </div>\n );\n}\n\ninterface ChatThreadStreamingBubbleProperties {\n text: string;\n}\n\nfunction ChatThreadStreamingBubble(properties: ChatThreadStreamingBubbleProperties) {\n const { text } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"chat-thread-message\"\n data-role=\"assistant\"\n data-streaming=\"true\"\n className={cn(styles.message, styles.assistantMessage)}\n >\n <span data-slot=\"chat-thread-message-content\" className={styles.messageContent}>\n {text}\n <span data-slot=\"chat-thread-cursor\" aria-hidden=\"true\" className={styles.cursor} />\n </span>\n </div>\n );\n}\n\ninterface ChatThreadMessageContentProperties {\n content: TextMessage['content'];\n}\n\nfunction ChatThreadMessageContent(properties: ChatThreadMessageContentProperties) {\n const { content } = properties;\n\n const styles = useComponentStyles();\n\n if (typeof content === 'string') {\n return (\n <span data-slot=\"chat-thread-message-content\" className={styles.messageContent}>\n {content}\n </span>\n );\n }\n\n const textParts = content.filter(part => part.type === 'text');\n const imageParts = content.filter(part => part.type === 'image');\n\n const joinedText = textParts.map(part => part.text).join('\\n');\n\n return (\n <>\n {joinedText.length > 0 && (\n <span data-slot=\"chat-thread-message-content\" className={styles.messageContent}>\n {joinedText}\n </span>\n )}\n\n {imageParts.length > 0 && (\n <div data-slot=\"chat-thread-message-images\" className={styles.contentImages}>\n {imageParts.map((part, index) => (\n <Image key={index} src={part.source} classNames={{ root: styles.contentImage }} />\n ))}\n </div>\n )}\n </>\n );\n}\n","import { ComponentPropsWithoutRef } from 'react';\n\nimport { cn, CuratedIcons, IconHelpers } from '@digo-labs/common';\n\ninterface Properties extends ComponentPropsWithoutRef<'div'> {\n icon?: CuratedIcons | (string & {}); // (string & {}) preserves autocomplete\n}\n\nexport function Icon(properties: Properties) {\n const {\n icon = 'favorite',\n className = '',\n } = properties;\n\n const iconClass = IconHelpers.getIcon(icon);\n\n return (\n <span className={cn(iconClass, className)} />\n );\n}\n\nexport { Icon as IconifyIcon } from '@iconify-icon/react';\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('kbd');\n\ntype Properties = RootProperties & ComponentStylesProps<'kbd'>;\n\nexport function Kbd(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <KbdRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'kbd'>;\n\nfunction KbdRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function KbdGroup(properties: RootProperties & ComponentStylesProps<'kbd'>) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <KbdGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction KbdGroupRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { Icon } from 'src/components/icon';\nimport { Kbd, KbdGroup } from 'src/components/kbd';\nimport { Button } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('commandButton');\n\ntype Properties = RootProperties & ComponentStylesProps<'commandButton'>;\n\nexport function CommandButton(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CommandButtonRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Button>, 'classNames'> {\n placeholder?: string;\n}\n\nfunction CommandButtonRoot(properties: RootProperties) {\n const { placeholder, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Button\n data-slot=\"command-button\"\n className={cn(styles.root, className)}\n {...props}\n >\n <Icon icon=\"search\" />\n\n {placeholder && <span data-slot=\"command-button-placeholder\" className={styles.placeholder}>{placeholder}</span>}\n\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </KbdGroup>\n </Button>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('button');\n\ntype Properties = RootProperties & ComponentStylesProps<'button'>;\n\nexport function Button(properties: Properties) {\n const { classNames, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant}>\n <ButtonRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ButtonPrimitive.Props;\n\nfunction ButtonRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { CommonHelpers } from '@digo-labs/common';\n\nimport { ComponentProps, useState } from 'react';\n\nimport { Button } from 'src/components/button';\nimport { Icon } from 'src/components/icon';\nimport { MotionAnimatePresence } from 'src/animation/motion-animate-presence';\nimport { motionTransitionPresets } from 'src/utils/motion-presets';\n\ninterface Properties extends ComponentProps<typeof Button> {\n text: string;\n onCopy?: () => void;\n timeout?: number;\n}\n\nexport function CopyPasteButton(properties: Properties) {\n const { text, children, className, onClick, variant = 'icon', onCopy, timeout = 2000, ...props } = properties;\n\n const [copied, setCopied] = useState(false);\n\n async function handleCopy() {\n CommonHelpers.copyToClipboard(text);\n\n setCopied(true);\n\n onCopy?.();\n\n setTimeout(() => setCopied(false), timeout);\n };\n return (\n\n <Button\n variant={variant}\n onClick={(e) => {\n handleCopy();\n onClick?.(e);\n }}\n disabled={!text}\n className={className}\n {...props}\n >\n <MotionAnimatePresence\n activeIndex={copied ? 1 : 0}\n className=\"relative\"\n classNames={{ content: 'static typo-2' }}\n mode=\"popLayout\"\n transition={motionTransitionPresets.spring1}\n >\n <Icon icon=\"copy\" />\n <Icon icon=\"check\" />\n </MotionAnimatePresence>\n </Button>\n\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Field as FieldPrimitive } from '@base-ui/react/field';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('field');\n\nexport const FieldControl = FieldPrimitive.Control;\nexport const FieldValidity = FieldPrimitive.Validity;\n\ntype Properties = RootProperties & ComponentStylesProps<'field'>;\n\nexport function Field(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FieldRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = FieldPrimitive.Root.Props;\n\nfunction FieldRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Root\n data-slot=\"field\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function FieldLabel(properties: FieldPrimitive.Label.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Label\n data-slot=\"field-label\"\n className={cn(styles.label, className)}\n {...props}\n />\n );\n}\n\nexport function FieldItem(properties: FieldPrimitive.Item.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Item\n data-slot=\"field-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function FieldDescription(properties: FieldPrimitive.Description.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Description\n data-slot=\"field-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n\nexport function FieldError(properties: FieldPrimitive.Error.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldPrimitive.Error\n data-slot=\"field-error\"\n className={cn(styles.error, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ReorderList } from '..';\n\nimport { ComponentProps, createContext, ReactNode, useContext, useEffect, useMemo } from 'react';\nimport { AnimatePresence } from 'motion/react';\nimport { useDropzone, DropzoneOptions, FileRejection } from 'react-dropzone';\n\nimport { FieldControl } from 'src/components/field';\nimport { Button } from 'src/components/button';\nimport { Icon } from 'src/components/icon';\nimport { motionPresencePresets } from 'src/utils/motion-presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('dropzone');\n\nexport type { FileRejection };\n\ninterface ContextProperties extends\n Pick<Properties, 'id' | 'name' | 'required' | 'multiple' | 'disabled'>,\n Pick<ReturnType<typeof useDropzone>, 'isDragActive' | 'getRootProps' | 'getInputProps' | 'inputRef' | 'open'> {\n files: File[];\n onRemove: (file: File) => void;\n onReorder: (files: File[]) => void;\n}\n\nconst Context = createContext<ContextProperties | undefined>(undefined);\n\ninterface Properties extends DropzoneOptions, ComponentStylesProps<'dropzone'> {\n value: File[];\n onChange: (files: File[]) => void;\n className?: string;\n children?: ReactNode;\n id?: string;\n name?: string;\n required?: boolean;\n}\n\nexport function Dropzone(properties: Properties) {\n const {\n classNames,\n value: files,\n onChange,\n multiple = true,\n accept,\n maxSize,\n disabled = false,\n onDropRejected,\n children,\n id,\n name,\n required,\n className,\n } = properties;\n\n const { getRootProps, getInputProps, inputRef, isDragActive, open } = useDropzone({\n accept: accept,\n maxSize: maxSize,\n multiple: multiple,\n disabled: disabled,\n noClick: true,\n noKeyboard: true,\n onDropRejected: onDropRejected,\n onDropAccepted: (acceptedFiles) => {\n const next = multiple === false ? acceptedFiles.slice(0, 1) : [...files, ...acceptedFiles];\n onChange(next);\n },\n });\n\n function handleRemove(file: File) {\n onChange(files.filter(f => f !== file));\n }\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ files: files, multiple: multiple, isDragActive: isDragActive, disabled: disabled, onRemove: handleRemove, onReorder: onChange, getRootProps: getRootProps, getInputProps: getInputProps, inputRef: inputRef, open: open, id: id, name: name, required: required }}>\n <DropzoneRoot className={className}>\n {children ?? (\n <DropzoneArea>\n <DropzoneCTA>\n <p className=\"truncate\">Upload File</p>\n <Icon icon=\"upload\" />\n </DropzoneCTA>\n <DropzoneFileList />\n </DropzoneArea>\n )}\n </DropzoneRoot>\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction DropzoneRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"dropzone\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function DropzoneArea(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const { getRootProps, getInputProps, inputRef, isDragActive, disabled, id, name, required, files } = useContext(Context)!;\n\n useEffect(() => {\n if (!inputRef.current) return;\n\n const dataTransfer = new DataTransfer();\n\n files.forEach(file => dataTransfer.items.add(file));\n\n inputRef.current.files = dataTransfer.files;\n\n inputRef.current.required = !!required && files.length === 0;\n }, [files, required]);\n\n const styles = useComponentStyles();\n\n return (\n <div\n {...getRootProps({\n ...props,\n 'className': cn(styles.area, className),\n 'data-slot': 'dropzone-area',\n 'data-drag-over': isDragActive || undefined,\n 'data-disabled': disabled || undefined,\n })}\n >\n <FieldControl\n render={<input />}\n {...getInputProps({ id: id, name: name })}\n />\n {children}\n </div>\n );\n}\n\nexport function DropzoneCTA(properties: ComponentProps<'button'>) {\n const { className, children, ...props } = properties;\n\n const { open, disabled } = useContext(Context)!;\n\n const styles = useComponentStyles();\n\n return (\n <button\n type=\"button\"\n data-slot=\"dropzone-cta\"\n disabled={disabled}\n className={cn(styles.cta, className)}\n onClick={(event) => {\n event.stopPropagation();\n open();\n }}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function DropzoneFileList(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const { files, onReorder } = useContext(Context)!;\n\n const styles = useComponentStyles();\n\n if (files.length === 0) return null;\n\n return (\n <ReorderList.Group\n axis=\"y\"\n values={files}\n onReorder={onReorder}\n data-slot=\"dropzone-file-list\"\n className={cn(styles.fileList, className)}\n {...props}\n >\n <AnimatePresence>\n {children ?? files.map(file => (\n <DropzoneFileItem\n key={`${file.name}-${file.size}-${file.lastModified}`}\n file={file}\n />\n ))}\n </AnimatePresence>\n </ReorderList.Group>\n );\n}\n\ninterface FileItemProperties extends Omit<ComponentProps<typeof ReorderList.Item>, 'value'> {\n file: File;\n onDeleteFile?: (file: File) => void;\n}\n\nexport function DropzoneFileItem(properties: FileItemProperties) {\n const { file, onDeleteFile, className, ...props } = properties;\n\n const { onRemove, files } = useContext(Context)!;\n\n const styles = useComponentStyles();\n\n const handleDelete = onDeleteFile ?? onRemove;\n\n const previewUrl = useMemo(\n () => file.type.startsWith('image/') ? URL.createObjectURL(file) : undefined,\n [file],\n );\n\n useEffect(() => {\n return () => {\n if (previewUrl) URL.revokeObjectURL(previewUrl);\n };\n }, [previewUrl]);\n\n return (\n <ReorderList.Item\n value={file}\n data-slot=\"dropzone-file-item\"\n className={cn(styles.fileItem, className)}\n {...motionPresencePresets.variant2}\n layout\n {...props}\n >\n\n <div data-slot=\"dropzone-thumbnail\" className={styles.thumbnailContainer}>\n { previewUrl\n ? <img src={previewUrl} alt={file.name} className={styles.thumbnail} />\n : <Icon icon=\"file\" className=\"size-7\" />}\n </div>\n\n <div data-slot=\"dropzone-info\" className={styles.info}>\n <span data-slot=\"dropzone-name\" className={styles.name}>{file.name}</span>\n <span data-slot=\"dropzone-type\" className={styles.type}>{file.type}</span>\n </div>\n\n {files.length > 1 && <Icon icon=\"dragHandle\" className={styles.grab} />}\n\n <Button\n data-slot=\"dropzone-remove\"\n variant=\"default\"\n className={styles.remove}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n handleDelete(file);\n }}\n >\n <Icon icon=\"delete\" className=\"size-3\" />\n </Button>\n\n </ReorderList.Item>\n );\n}\n","import { useRef } from 'react';\n\nimport { FONT_FACES } from '@digo-labs/common';\n\nimport { Button, Combobox, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxTrigger, ComboboxValue, Icon } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('fontPicker');\n\ninterface Font {\n label: string;\n value: string;\n}\n\nconst fonts: Font[] = FONT_FACES.map(f => ({ label: f.family, value: f.family }));\n\ntype Properties = RootProperties & ComponentStylesProps<'fontPicker'>;\n\nexport function FontPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FontPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: string;\n onValueChange: (font: string) => void;\n}\n\nfunction FontPickerRoot(properties: RootProperties) {\n const { value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Combobox\n items={fonts}\n value={fonts.find(font => font.value === value) ?? fonts[0]}\n onValueChange={font => font && onValueChange(font.value)}\n classNames={{\n itemIndicator: styles.itemIndicator,\n }}\n >\n <ComboboxTrigger\n className={styles.trigger}\n ref={triggerRef}\n render={<Button variant=\"default\" />}\n >\n <ComboboxValue placeholder=\"Select a font…\" />\n <span className={styles.fontPreview} style={{ fontFamily: `'${value}', sans-serif` }}>\n Aa\n </span>\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput\n className={styles.input}\n placeholder=\"Search font...\"\n showTrigger={false}\n startAddon={<Icon icon=\"search\" />}\n />\n </div>\n\n <ComboboxEmpty className={styles.empty}>\n No fonts found.\n </ComboboxEmpty>\n\n <ComboboxList className={styles.list}>\n {(font: Font) => (\n <ComboboxItem\n key={font.value}\n value={font}\n className={styles.item}\n >\n <span\n style={{ fontFamily: `'${font.value}', sans-serif` }}\n className={styles.itemPreview}\n >\n Aa\n </span>\n\n <div className={styles.itemlabel}>\n {font.label}\n </div>\n\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n );\n}\n","import { cn, CommonHelpers, ImagePayload } from '@digo-labs/common';\nimport { Icon, Image, Button, Dropzone, DropzoneArea, DropzoneCTA, MotionAnimatePresence } from '..';\n\nimport { ComponentProps, useMemo, useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('imageDropzone');\n\ntype Properties = RootProperties & ComponentStylesProps<'imageDropzone'>;\n\nexport function ImageDropzone(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ImageDropzoneRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Dropzone>, 'value' | 'onChange' | 'children' | 'multiple'> {\n value: ImagePayload | undefined;\n onChange: (image: ImagePayload | undefined) => void;\n}\n\nfunction ImageDropzoneRoot(properties: RootProperties) {\n const {\n value,\n onChange,\n accept = { 'image/*': [] },\n className,\n ...dropzoneProps\n } = properties;\n\n const styles = useComponentStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n\n const files = useMemo(() => (value ? [CommonHelpers.getFileFromImagePayload(value)] : []), [value]);\n\n async function handleChange(nextFiles: File[]) {\n const file = nextFiles[0];\n\n if (!file) return onChange(undefined);\n\n setIsLoading(true);\n\n const [image, error] = await CommonHelpers.getImagePayloadFromFile(file);\n\n setIsLoading(false);\n\n if (error) return;\n\n onChange(image);\n }\n\n return (\n <Dropzone\n {...dropzoneProps}\n value={files}\n onChange={handleChange}\n multiple={false}\n accept={accept}\n className={cn(styles.root, className)}\n >\n <DropzoneArea\n data-has-image={!!value || undefined}\n className={styles.area}\n >\n\n <MotionAnimatePresence\n activeIndex={value ? 1 : 0}\n classNames={{ root: 'h-auto', content: 'relative' }}\n >\n <ImageDropzonePlaceHolder />\n <Image src={value!} classNames={{ root: styles.image }} />\n </MotionAnimatePresence>\n\n {isLoading && <ImageDropzoneLoader />}\n\n {value && (\n <Button variant=\"default\" className={styles.deleteButton} onClick={() => onChange(undefined)}>\n <Icon icon=\"trash\" />\n </Button>\n )}\n\n <DropzoneCTA className={styles.cta} />\n </DropzoneArea>\n </Dropzone>\n );\n}\n\nfunction ImageDropzoneLoader() {\n const styles = useComponentStyles();\n\n return (\n <div className={styles.loader}>\n <Icon icon=\"loading\" className={styles.loaderIcon} />\n </div>\n );\n}\n\nfunction ImageDropzonePlaceHolder() {\n const styles = useComponentStyles();\n\n return (\n <div className={styles.placeholder}>\n <Icon icon=\"upload\" className={styles.placeholderIcon} />\n <span>\n Upload Image\n </span>\n </div>\n );\n}\n","import { cn, CommonHelpers } from '@digo-labs/common';\n\nimport { ComponentProps, useLayoutEffect, useRef } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('navbar');\n\ntype Properties = RootProperties & ComponentStylesProps<'navbar'>;\n\nexport function Navbar(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <NavbarRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'nav'>;\n\nfunction NavbarRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n const ref = useRef<HTMLElement>(null);\n\n useLayoutEffect(() => {\n const element = ref.current;\n\n if (!element) return;\n\n CommonHelpers.setCssVariable('--navbar-h', element);\n\n const resizeObserver = new ResizeObserver(() => CommonHelpers.setCssVariable('--navbar-h', element));\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n return (\n <nav\n ref={ref}\n data-slot=\"navbar\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function NavbarLogo(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"navbar-logo\"\n className={cn(styles.logo, className)}\n {...props}\n />\n );\n}\n\nexport function NavbarContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"navbar-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function NavbarActions(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"navbar-actions\"\n className={cn(styles.actions, className)}\n {...props}\n />\n );\n}\n","import { useRef } from 'react';\n\nimport { Button, ColorSwatch, Combobox, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxTrigger, ComboboxValue, Icon, PaletteName, PALETTES, useDesignSystem } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('palettePicker');\n\ninterface Palette {\n label: string;\n value: PaletteName;\n}\n\nconst paletteNames: PaletteName[] = Object.keys(PALETTES);\n\nconst palettes: Palette[] = paletteNames.map(name => ({ label: name, value: name }));\n\ntype Properties = RootProperties & ComponentStylesProps<'palettePicker'>;\n\nexport function PalettePicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PalettePickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: PaletteName;\n onValueChange: (palette: PaletteName) => void;\n}\n\nfunction PalettePickerRoot(properties: RootProperties) {\n const { value, onValueChange } = properties;\n\n const { mode } = useDesignSystem();\n const styles = useComponentStyles();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Combobox\n items={palettes}\n value={palettes.find(palette => palette.value === value) ?? palettes[0]}\n onValueChange={palette => palette && onValueChange(palette.value)}\n >\n <ComboboxTrigger\n className={styles.trigger}\n ref={triggerRef}\n render={<Button variant=\"default\" />}\n >\n <ComboboxValue placeholder=\"Select a palette…\" />\n <div className={styles.paletteContainer}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][1]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][3]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][5]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][7]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][9]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value][mode][11]} />\n </div>\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput\n className={styles.input}\n placeholder=\"Search palette...\"\n showTrigger={false}\n startAddon={<Icon icon=\"search\" />}\n />\n </div>\n\n <ComboboxEmpty className={styles.empty}>\n No palettes found.\n </ComboboxEmpty>\n\n <ComboboxList className={styles.list}>\n {(palette: Palette) => (\n <ComboboxItem\n key={palette.value}\n value={palette}\n >\n <div className={styles.item}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[palette.value][mode][9]} />\n <span>\n {palette.label}\n </span>\n </div>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n );\n}\n","import { Parameter, Input, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterTextProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterText');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterText'>;\n\nexport function ParameterText(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterTextRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Input> {\n label: string;\n}\n\nfunction ParameterTextRoot(properties: RootProperties) {\n const { label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-text\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <Input {...props} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, PalettePicker, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nimport type { PaletteName } from 'src/presets';\n\nexport type { Properties as ParameterPalettePickerProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterPalettePicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterPalettePicker'>;\n\nexport function ParameterPalettePicker(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterPalettePickerRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n value: PaletteName;\n onValueChange: (palette: PaletteName) => void;\n}\n\nfunction ParameterPalettePickerRoot(properties: RootProperties) {\n const { label, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-palette-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <PalettePicker value={value} onValueChange={onValueChange} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, TextArea } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nimport { ComponentProps } from 'react';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterTextArea');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterTextArea'>;\n\nexport function ParameterTextArea(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterTextAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof TextArea> {\n label: string;\n}\n\nfunction ParameterTextAreaRoot(properties: RootProperties) {\n const { label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-text-area\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <TextArea {...props} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, Slider, ParameterLabel, ParameterMeasure, ParameterRow, ParameterSeparator, ParameterValue } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterSliderProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterSlider');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterSlider'>;\n\nexport function ParameterSlider(properties: Properties) {\n const { classNames, label, measure, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterSliderRoot label={label} measure={measure} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Slider> {\n label: string;\n measure?: string;\n}\n\nfunction ParameterSliderRoot(properties: RootProperties) {\n const { label, measure, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-slider\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n {props.value && <ParameterValue value={props.value.toString()} className={styles.value} />}\n\n {measure && <ParameterMeasure measure={measure} className={styles.measure} />}\n </ParameterRow>\n <Slider {...props} />\n </Parameter>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon, ToggleGroup, ToggleGroupItem, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterToggleGroup');\n\nexport type { Properties as ParameterToggleGroupProperties };\n\nexport interface ToggleGroupItemData {\n value: string;\n label: string;\n icon?: CuratedIcons;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterToggleGroup'>;\n\nexport function ParameterToggleGroup(properties: Properties) {\n const { classNames, label, items, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterToggleGroupRoot label={label} items={items} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ToggleGroup> {\n label: string;\n items: ToggleGroupItemData[];\n inline?: boolean;\n itemVariant?: ComponentProps<typeof ToggleGroupItem>['variant'];\n}\n\nfunction ParameterToggleGroupRoot(properties: RootProperties) {\n const { label, items, itemVariant, inline = false, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const toggleInput = (\n <ParameterInput>\n <ToggleGroup className={styles.input} {...props}>\n {items.map(item => (\n <ToggleGroupItem variant={itemVariant} key={item.value} value={item.value} className={styles.item}>\n {item.icon && <Icon icon={item.icon} />}\n {item.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n </ParameterInput>\n );\n\n return (\n <Parameter data-slot=\"parameter-toggle-group\" className={cn(styles.root, className)}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n {inline && toggleInput }\n\n </ParameterRow>\n\n {!inline && toggleInput}\n </Parameter>\n );\n}\n","import { Parameter, Switch, ParameterLabel, ParameterInput, ParameterSeparator, ParameterRow } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterSwitchProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterSwitch');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterSwitch'>;\n\nexport function ParameterSwitch(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterSwitchRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Switch> {\n label: string;\n}\n\nfunction ParameterSwitchRoot(properties: RootProperties) {\n const { label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-switch\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n <ParameterInput className={styles.input}>\n <Switch {...props} />\n </ParameterInput>\n </ParameterRow>\n </Parameter>\n );\n}\n","import { Toggle, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { CuratedIcons } from '@digo-labs/common';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterToggle');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterToggle'>;\n\nexport function ParameterToggle(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterToggleRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Toggle> {\n label: string;\n icon?: CuratedIcons;\n}\n\nfunction ParameterToggleRoot(properties: RootProperties) {\n const { label, icon, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-toggle\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n <ParameterInput>\n <Toggle {...props} className={styles.input}>\n {icon && <Icon icon={icon} />}\n {children}\n </Toggle>\n </ParameterInput>\n </ParameterRow>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, ColorInput } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { ComponentProps } from 'react';\nimport { cn } from '@digo-labs/common';\n\nexport type { Properties as ParameterColorProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterColor');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterColor'>;\n\nexport function ParameterColor(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterColorRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ColorInput>, 'classNames'> {\n label: string;\n className?: string;\n}\n\nfunction ParameterColorRoot(properties: RootProperties) {\n const { label, className, ...pickerProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-color\" className={cn(styles.root, className)}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <ColorInput {...pickerProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, ColorSwatchPicker } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterColorSwatchPickerProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterColorSwatchPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterColorSwatchPicker'>;\n\nexport function ParameterColorSwatchPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterColorSwatchPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ColorSwatchPicker>, 'classNames'> {\n label: string;\n}\n\nfunction ParameterColorSwatchPickerRoot(properties: RootProperties) {\n const { label, ...pickerProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-color-swatch-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <ColorSwatchPicker {...pickerProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { CuratedIcons } from '@digo-labs/common';\nimport { Combobox, ComboboxTrigger, ComboboxValue, ComboboxPopup, ComboboxInput, ComboboxList, ComboboxItem, ComboboxEmpty, Button, Icon, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { useRef } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterComboboxProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterCombobox');\n\nexport interface ComboboxItemData {\n label: string;\n value: string;\n icon?: CuratedIcons;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterCombobox'>;\n\nexport function ParameterCombobox(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterComboboxRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n placeholder?: string;\n items: ComboboxItemData[];\n value: ComboboxItemData | ComboboxItemData[] | null;\n onValueChange: (value: any) => void;\n multiple?: boolean;\n}\n\nfunction ParameterComboboxRoot(properties: RootProperties) {\n const { label, placeholder = 'Select...', items, value, onValueChange, multiple } = properties;\n\n const styles = useComponentStyles();\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Parameter data-slot=\"parameter-combobox\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput>\n <Combobox items={items} value={value} onValueChange={onValueChange} multiple={multiple}>\n <ComboboxTrigger className={styles.trigger} ref={triggerRef} render={<Button variant=\"default\" />}>\n <ComboboxValue placeholder={placeholder} />\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput className={styles.input} placeholder=\"Search...\" showTrigger={false} startAddon={<Icon icon=\"search\" />} />\n </div>\n <ComboboxEmpty className={styles.empty}>No results found.</ComboboxEmpty>\n <ComboboxList className={styles.list}>\n {(item: ComboboxItemData) => (\n <ComboboxItem key={item.value} value={item} className={styles.item}>\n {item.icon &&\n <div className={styles.itemIcon}>\n <Icon icon={item.icon} />\n </div>}\n <div className={styles.itemName}>\n {item.label}\n </div>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, Dropzone } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterFilesProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterFiles');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterFiles'>;\n\nexport function ParameterFiles(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterFilesRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Dropzone>, 'classNames'> {\n label: string;\n}\n\nfunction ParameterFilesRoot(properties: RootProperties) {\n const { label, ...dropzoneProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-files\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <Dropzone {...dropzoneProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, FontPicker } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterFontPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterFontPicker'>;\n\nexport function ParameterFontPicker(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterFontPickerRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n value: string;\n onValueChange: (font: string) => void;\n}\n\nfunction ParameterFontPickerRoot(properties: RootProperties) {\n const { label, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-font-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <FontPicker value={value} onValueChange={onValueChange} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, ImageDropzone } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterImageProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterImage');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterImage'>;\n\nexport function ParameterImage(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterImageRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ImageDropzone>, 'classNames'> {\n label: string;\n}\n\nfunction ParameterImageRoot(properties: RootProperties) {\n const { label, ...dropzoneProps } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-image\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <ImageDropzone {...dropzoneProps} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, Parameter, ParameterLabel, ParameterMeasure, ParameterRow, ParameterSeparator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterNumberProperties };\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterNumber');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterNumber'>;\n\nexport function ParameterNumber(properties: Properties) {\n const { classNames, label, measure, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterNumberRoot label={label} measure={measure} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof NumberField> {\n label: string;\n measure?: string;\n}\n\nfunction ParameterNumberRoot(properties: RootProperties) {\n const { label, measure, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-number\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n {measure && <ParameterMeasure measure={measure} className={styles.measure} />}\n </ParameterRow>\n <NumberField {...props}>\n <NumberFieldGroup>\n <NumberFieldDecrement />\n <NumberFieldInput />\n <NumberFieldIncrement />\n </NumberFieldGroup>\n </NumberField>\n </Parameter>\n );\n}\n","import { Parameter, PresetPicker, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nimport type { ThemePreset } from 'src/presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterPresetPicker');\n\ninterface RootProperties {\n label: string;\n value: ThemePreset;\n onValueChange: (preset: ThemePreset) => void;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterPresetPicker'>;\n\nexport function ParameterPresetPicker(properties: Properties) {\n const { classNames, label, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterPresetPickerRoot label={label} {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction ParameterPresetPickerRoot(properties: RootProperties) {\n const { label, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-preset-picker\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <PresetPicker value={value} onValueChange={onValueChange} />\n </ParameterInput>\n </Parameter>\n );\n}\n","import { CuratedIcons } from '@digo-labs/common';\n\nimport { Icon, Parameter, ParameterLabel, ParameterInput, ParameterRow, ParameterSeparator, Select, SelectTrigger, SelectValue, SelectPopup, SelectItem } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport type { Properties as ParameterSelectProperties };\n\nexport interface SelectItemData {\n label: string;\n value: string;\n icon?: CuratedIcons;\n}\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterSelect');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterSelect'>;\n\nexport function ParameterSelect(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterSelectRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n label: string;\n placeholder?: string;\n items: SelectItemData[];\n value: string;\n onValueChange: (value: string) => void;\n}\n\nfunction ParameterSelectRoot(properties: RootProperties) {\n const { label, placeholder = 'Select...', items, value, onValueChange } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Parameter data-slot=\"parameter-select\" className={styles.root}>\n <ParameterRow className={styles.row}>\n <ParameterLabel label={label} className={styles.label} />\n <ParameterSeparator className={styles.separator} />\n </ParameterRow>\n <ParameterInput className={styles.input}>\n <Select value={value} onValueChange={value => value != null && onValueChange(value)}>\n <SelectTrigger className={styles.trigger}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectPopup>\n {items.map(item => (\n <SelectItem key={item.value} value={item.value}>\n {item.icon && <Icon icon={item.icon} />}\n {item.label}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n </ParameterInput>\n </Parameter>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon, Collapsible, CollapsibleIcon, CollapsiblePanel, CollapsibleTrigger } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterGroup'>;\n\nexport function ParameterGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof Collapsible> {\n name: string;\n icon?: CuratedIcons;\n collapsible?: boolean;\n}\n\nfunction ParameterGroupRoot(properties: RootProperties) {\n const { className, collapsible = true, name, icon, children, open, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n collapsible ?\n\n <Collapsible\n open={open}\n data-slot=\"parameter-group\"\n className={cn(styles.root, className)}\n {...props}\n >\n <CollapsibleTrigger className={styles.trigger}>\n\n {icon &&\n <div className={styles.icon}>\n <Icon icon={icon} />\n </div>}\n\n <div className={styles.name}>\n {name}\n </div>\n\n <div className={styles.collapsibleIcon}>\n <CollapsibleIcon open={open} />\n </div>\n\n </CollapsibleTrigger>\n\n <CollapsiblePanel className={styles.panel}>\n {children}\n </CollapsiblePanel>\n\n </Collapsible>\n\n : <div className={styles.root}>\n {children}\n </div>\n\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { ParameterGroup } from '../components/parameter-group';\nimport { ParameterSlider } from './parameter-slider';\nimport { ParameterFontPicker } from './parameter-font-picker';\n\nimport { ComponentProps } from 'react';\n\nimport type { TypographyProperties } from 'src/presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterTypographyGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterTypographyGroup'>;\n\nexport function ParameterTypographyGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterTypographyGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ParameterGroup> {\n name: string;\n icon?: CuratedIcons;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n value: TypographyProperties;\n onValueChange: (partial: Partial<TypographyProperties>) => void;\n}\n\nfunction ParameterTypographyGroupRoot(properties: RootProperties) {\n const { value, onValueChange, className, ...groupProps } = properties;\n\n const styles = useComponentStyles();\n\n const weight = parseInt(value.weight);\n const tracking = Math.round(parseFloat(value.tracking) * 1000);\n const leading = Math.round(parseFloat(value.leading) * 100);\n\n return (\n <ParameterGroup\n data-slot=\"parameter-typography-group\"\n {...groupProps}\n className={cn(styles.root, className)}\n >\n <div className={styles.content}>\n\n <ParameterFontPicker\n label=\"Font\"\n value={value.font}\n onValueChange={font => onValueChange({ font: font })}\n />\n\n <ParameterSlider\n label=\"Weight\"\n value={weight}\n onValueChange={value => onValueChange({ weight: `${Array.isArray(value) ? value[0] : value}` })}\n min={100}\n max={900}\n step={100}\n />\n\n <ParameterSlider\n label=\"Tracking\"\n value={tracking}\n onValueChange={value => onValueChange({ tracking: `${(Array.isArray(value) ? value[0] : value) / 1000}em` })}\n min={0}\n max={100}\n step={5}\n measure=\"em\"\n />\n\n <ParameterSlider\n label=\"Leading\"\n value={leading}\n onValueChange={value => onValueChange({ leading: `${(Array.isArray(value) ? value[0] : value) / 100}` })}\n min={80}\n max={200}\n step={5}\n />\n\n </div>\n </ParameterGroup>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { useDesignSystem } from '../providers/design-system-provider';\nimport { PALETTES } from '../presets/palettes';\nimport { ParameterGroup } from '../components/parameter-group';\nimport { ParameterSlider } from './parameter-slider';\nimport { ParameterPalettePicker } from './parameter-palette-picker';\n\nimport { ComponentProps } from 'react';\n\nimport type { PaletteName, ShadowProperties } from 'src/presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameterShadowGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'parameterShadowGroup'>;\n\nexport function ParameterShadowGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterShadowGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ParameterGroup> {\n name: string;\n icon?: CuratedIcons;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n value: ShadowProperties;\n onValueChange: (partial: Partial<ShadowProperties>) => void;\n}\n\nfunction ParameterShadowGroupRoot(properties: RootProperties) {\n const { value, onValueChange, className, ...groupProps } = properties;\n\n const styles = useComponentStyles();\n const { mode } = useDesignSystem();\n\n const colorHex = PALETTES[value.color as PaletteName][mode][9];\n\n return (\n <ParameterGroup\n data-slot=\"parameter-shadow-group\"\n {...groupProps}\n className={cn(styles.root, className)}\n >\n <div\n data-slot=\"preview\"\n className={styles.preview}\n style={{ boxShadow: `${value.offsetX}px ${value.offsetY}px ${value.blur}px ${value.spread}px color-mix(in srgb, ${colorHex} ${Math.round(value.opacity * 100)}%, transparent)` }}\n />\n\n <div className={styles.content}>\n\n <ParameterPalettePicker\n label=\"Color\"\n value={value.color}\n onValueChange={color => onValueChange({ color: color })}\n />\n\n <ParameterSlider\n label=\"Blur\"\n value={value.blur}\n onValueChange={value => onValueChange({ blur: Array.isArray(value) ? value[0] : value })}\n min={0}\n max={80}\n />\n\n <ParameterSlider\n label=\"Spread\"\n value={value.spread}\n onValueChange={value => onValueChange({ spread: Array.isArray(value) ? value[0] : value })}\n min={-20}\n max={20}\n />\n\n <ParameterSlider\n label=\"Opacity\"\n value={Math.round(value.opacity * 100)}\n onValueChange={value => onValueChange({ opacity: (Array.isArray(value) ? value[0] : value) / 100 })}\n min={0}\n max={100}\n measure=\"%\"\n />\n\n <ParameterSlider\n label=\"Offset X\"\n value={value.offsetX}\n onValueChange={value => onValueChange({ offsetX: Array.isArray(value) ? value[0] : value })}\n min={-40}\n max={40}\n measure=\"px\"\n />\n\n <ParameterSlider\n label=\"Offset Y\"\n value={value.offsetY}\n onValueChange={value => onValueChange({ offsetY: Array.isArray(value) ? value[0] : value })}\n min={-40}\n max={40}\n measure=\"px\"\n />\n\n </div>\n </ParameterGroup>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ScrollArea } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('placeholder');\n\ntype Properties = RootProperties & ComponentStylesProps<'placeholder'>;\n\nexport function Placeholder(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PlaceholderRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction PlaceholderRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"placeholder\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\ninterface ListProperties extends ComponentProps<'div'> {\n count: number;\n}\n\nexport function PlaceholderList(properties: ListProperties) {\n const { children, className, count, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-slot=\"placeholder-list\" className={cn(styles.list, className)} {...props}>\n {Array.from({ length: count }, (_, index) => (\n <div key={index} className={styles.itemWrapper}>\n {children}\n </div>\n ))}\n </div>\n );\n}\n\nexport function PlaceholderItem(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"placeholder-list-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function PlaceholderScrollableArea(properties: ComponentProps<typeof ScrollArea>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollArea\n data-slot=\"placeholder-scrollable-area\"\n className={cn(styles.scrollableArea, className)}\n {...props}\n />\n );\n}\n","import type { ThemePreset } from '../types';\n\nexport const defaultPreset: ThemePreset = {\n name: 'default',\n colors: {\n neutral: 'gray',\n accent: 'green',\n error: 'crimson',\n success: 'green',\n warning: 'yellow',\n info: 'blue',\n },\n shadows: {\n xs: { color: 'gray', offsetX: 0, offsetY: 0, blur: 2, spread: 0, opacity: 0.05 },\n s: { color: 'gray', offsetX: 0, offsetY: 0, blur: 4, spread: 0, opacity: 0.1 },\n m: { color: 'gray', offsetX: 0, offsetY: 0, blur: 8, spread: -1, opacity: 0.15 },\n l: { color: 'gray', offsetX: 0, offsetY: 0, blur: 16, spread: -2, opacity: 0.2 },\n xl: { color: 'gray', offsetX: 0, offsetY: 0, blur: 40, spread: -8, opacity: 0.3 },\n },\n typography: {\n header: { font: 'geist', weight: '700', tracking: '0.025em', leading: '1' },\n label: { font: 'geist', weight: '500', tracking: '0.025em', leading: '1' },\n body: { font: 'geist', weight: '400', tracking: '0em', leading: '1.5' },\n code: { font: 'geist-mono', weight: '400', tracking: '0em', leading: '1.4' },\n },\n radius: '1rem',\n spacingFactor: 1,\n typographyScaleFactor: 1,\n};\n","import type { ThemePreset } from '../types';\n\nexport const oceanPreset: ThemePreset = {\n name: 'ocean',\n colors: {\n neutral: 'slate',\n accent: 'cyan',\n error: 'red',\n success: 'teal',\n warning: 'amber',\n info: 'indigo',\n },\n shadows: {\n xs: { color: 'slate', offsetX: 0, offsetY: 0, blur: 2, spread: 0, opacity: 0.05 },\n s: { color: 'slate', offsetX: 0, offsetY: 0, blur: 4, spread: 0, opacity: 0.1 },\n m: { color: 'slate', offsetX: 0, offsetY: 0, blur: 8, spread: -1, opacity: 0.15 },\n l: { color: 'slate', offsetX: 0, offsetY: 0, blur: 16, spread: -2, opacity: 0.2 },\n xl: { color: 'slate', offsetX: 0, offsetY: 0, blur: 40, spread: -8, opacity: 0.3 },\n },\n typography: {\n header: { font: 'clash-grotesk', weight: '700', tracking: '0.025em', leading: '1' },\n label: { font: 'geist', weight: '500', tracking: '0.025em', leading: '1' },\n body: { font: 'geist', weight: '400', tracking: '0em', leading: '1.5' },\n code: { font: 'geist-mono', weight: '400', tracking: '0em', leading: '1.4' },\n },\n radius: '0.5rem',\n spacingFactor: 1,\n typographyScaleFactor: 1,\n};\n","import type { ThemePreset } from '../types';\n\nexport const retroFuturisticPreset: ThemePreset = {\n name: 'retro-futuristic',\n colors: {\n neutral: 'indigo',\n accent: 'mint',\n error: 'crimson',\n success: 'lime',\n warning: 'yellow',\n info: 'blue',\n },\n shadows: {\n xs: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 2,\n spread: 0,\n opacity: 0.05,\n },\n s: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 4,\n spread: 0,\n opacity: 0.1,\n },\n m: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 8,\n spread: -1,\n opacity: 0.15,\n },\n l: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 16,\n spread: -2,\n opacity: 0.2,\n },\n xl: {\n color: 'gray',\n offsetX: 0,\n offsetY: 0,\n blur: 40,\n spread: -8,\n opacity: 0.3,\n },\n },\n typography: {\n header: {\n font: 'miratrix',\n weight: '800',\n tracking: '0.1em',\n leading: '1',\n },\n label: {\n font: 'nippo',\n weight: '300',\n tracking: '0.1em',\n leading: '1',\n },\n body: {\n font: 'geist-mono',\n weight: '300',\n tracking: '0em',\n leading: '1',\n },\n code: {\n font: 'geist-mono',\n weight: '400',\n tracking: '0em',\n leading: '1.4',\n },\n },\n radius: '0rem',\n spacingFactor: 1,\n typographyScaleFactor: 1,\n};\n","export * from './default';\nexport * from './ocean';\nexport * from './retro-futuristic';\n","import { ThemePreset } from './types';\nimport * as curated from './curated';\n\nexport * from './types';\nexport * from './palettes';\nexport * from './helpers';\nexport * from './curated';\n\nexport const PRESETS: ThemePreset[] = Object.values(curated) as ThemePreset[];\n","import { useRef } from 'react';\n\nimport { Button, ColorSwatch, Combobox, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxTrigger, ComboboxValue, Icon, PALETTES, useDesignSystem } from '..';\n\nimport type { ThemePreset } from '../presets/types';\nimport { PRESETS } from '../presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('presetPicker');\n\ninterface Preset {\n label: string;\n value: ThemePreset;\n}\n\nconst presets: Preset[] = PRESETS.map(preset => ({ label: preset.name, value: preset }));\n\ntype Properties = RootProperties & ComponentStylesProps<'presetPicker'>;\n\nexport function PresetPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PresetPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: ThemePreset;\n onValueChange: (preset: ThemePreset) => void;\n}\n\nfunction PresetPickerRoot(properties: RootProperties) {\n const { value, onValueChange } = properties;\n\n const { mode } = useDesignSystem();\n const styles = useComponentStyles();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Combobox\n items={presets}\n value={presets.find(preset => preset.value.name === value.name) ?? presets[0]}\n onValueChange={preset => preset && onValueChange(preset.value)}\n >\n <ComboboxTrigger\n className={styles.trigger}\n onClick={e => e.stopPropagation()}\n ref={triggerRef}\n render={<Button variant=\"default\" />}\n >\n <ComboboxValue placeholder=\"Select a preset…\" />\n <div className={styles.presetContainer}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.accent][mode][3]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.accent][mode][6]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.accent][mode][9]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.neutral][mode][3]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.neutral][mode][6]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[value.colors.neutral][mode][9]} />\n </div>\n </ComboboxTrigger>\n\n <ComboboxPopup anchor={triggerRef} className={styles.popup}>\n <div className={styles.inputContainer}>\n <ComboboxInput\n className={styles.input}\n placeholder=\"Search preset...\"\n showTrigger={false}\n startAddon={<Icon icon=\"search\" />}\n />\n </div>\n\n <ComboboxEmpty className={styles.empty}>\n No presets found.\n </ComboboxEmpty>\n\n <ComboboxList className={styles.list}>\n {(preset: Preset) => (\n <ComboboxItem\n key={preset.label}\n value={preset}\n >\n <div className={styles.item}>\n <div className={styles.itemColors}>\n <ColorSwatch className={styles.colorBlock} color={PALETTES[preset.value.colors.accent][mode][9]} />\n <ColorSwatch className={styles.colorBlock} color={PALETTES[preset.value.colors.neutral][mode][9]} />\n </div>\n\n <span>\n {preset.label}\n </span>\n </div>\n </ComboboxItem>\n )}\n </ComboboxList>\n </ComboboxPopup>\n </Combobox>\n );\n}\n","import { cn, CommonHelpers, FilePayload, ModelMetadata } from '@digo-labs/common';\n\nimport { Button, ReorderList, Icon, Image, motionPresencePresets, Select, SelectItem, SelectPopup, SelectTrigger, SelectValue, Separator, TextArea, toastManager, Tooltip } from '..';\n\nimport { AnimatePresence } from 'motion/react';\n\nimport { ComponentProps, createContext, KeyboardEvent, useContext } from 'react';\nimport { Accept, useDropzone } from 'react-dropzone';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('promptInput');\n\ninterface ContextProperties {\n value: string;\n onChange: (next: string) => void;\n attachments: FilePayload[];\n onAttachmentsChange: (next: FilePayload[]) => void;\n maxAttachments: number;\n model: ModelMetadata;\n onModelChange: (next: ModelMetadata) => void;\n models: ModelMetadata[];\n isSubmitting: boolean;\n isStreaming: boolean;\n onSubmit: () => void;\n onAbort: () => void;\n openFilePicker: () => void;\n isDragActive: boolean;\n accept?: Accept;\n}\n\nconst PromptInputContext = createContext<ContextProperties | null>(null);\n\nfunction usePromptInputContext(): ContextProperties {\n const context = useContext(PromptInputContext);\n\n if (!context) {\n throw new Error('PromptInput subcomponents must be used within a <PromptInput>');\n }\n\n return context;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'promptInput'>;\n\nexport function PromptInput(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PromptInputRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties =\n & Omit<ContextProperties, 'openFilePicker' | 'isDragActive' | 'maxAttachments'>\n & Partial<Pick<ContextProperties, 'maxAttachments'>>\n & Omit<ComponentProps<'div'>, 'onChange' | 'onSubmit'>;\n\nfunction PromptInputRoot(properties: RootProperties) {\n const {\n value,\n onChange,\n attachments,\n onAttachmentsChange,\n maxAttachments = 10,\n model,\n onModelChange,\n models,\n isSubmitting,\n isStreaming,\n onSubmit,\n onAbort,\n children,\n accept = { 'image/*': [] },\n className,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const { getRootProps, getInputProps, isDragActive, open: openFilePicker } = useDropzone({\n accept: accept,\n multiple: true,\n disabled: isSubmitting,\n noClick: true,\n noKeyboard: true,\n onDropAccepted: async (acceptedFiles) => {\n if (attachments.length + acceptedFiles.length > maxAttachments) {\n toastManager.add({\n title: 'Too many files',\n description: `You can attach up to ${maxAttachments} files.`,\n type: 'error',\n });\n return;\n }\n\n const payloads: FilePayload[] = [];\n\n for (const file of acceptedFiles) {\n const [payload, error] = await CommonHelpers.getImagePayloadFromFile(file);\n\n if (error || !payload) continue;\n\n payloads.push(payload);\n }\n\n if (payloads.length > 0) {\n onAttachmentsChange([...attachments, ...payloads]);\n }\n },\n });\n\n return (\n <PromptInputContext.Provider value={{ value: value, onChange: onChange, attachments: attachments, onAttachmentsChange: onAttachmentsChange, maxAttachments: maxAttachments, model: model, onModelChange: onModelChange, models: models, isSubmitting: isSubmitting, isStreaming: isStreaming, onSubmit: onSubmit, onAbort: onAbort, openFilePicker: openFilePicker, isDragActive: isDragActive, accept: accept }}>\n <div\n {...getRootProps({\n ...props,\n 'data-slot': 'prompt-input',\n 'data-drag-over': isDragActive || undefined,\n 'className': cn(styles.root, className),\n })}\n >\n <input {...getInputProps()} />\n {children ?? <PromptInputDefault />}\n </div>\n </PromptInputContext.Provider>\n );\n}\n\nfunction PromptInputDefault() {\n return (\n <>\n <PromptInputAttachments />\n <PromptInputInput />\n <PromptInputToolbarRow>\n <PromptInputAttachButton />\n <PromptInputModelPicker />\n <Separator className=\"flex-1\" />\n <PromptInputSubmit />\n </PromptInputToolbarRow>\n </>\n );\n}\n\ntype PromptInputAttachmentsProperties = Omit<ComponentProps<typeof ReorderList.Group>, 'values' | 'onReorder' | 'axis' | 'children'>;\n\nexport function PromptInputAttachments(properties: PromptInputAttachmentsProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n const { attachments, onAttachmentsChange } = usePromptInputContext();\n\n function handleRemove(base64: string) {\n onAttachmentsChange(attachments.filter(a => a.base64 !== base64));\n }\n\n if (attachments.length === 0) return null;\n\n return (\n <ReorderList.Group\n {...props}\n axis=\"x\"\n values={attachments}\n onReorder={onAttachmentsChange}\n data-slot=\"prompt-input-attachments\"\n className={cn(styles.attachments, className)}\n >\n <AnimatePresence mode=\"popLayout\">\n {attachments.map(attachment => (\n <ReorderList.Item\n key={attachment.base64}\n value={attachment}\n {...motionPresencePresets.variant2}\n layout={true}\n data-slot=\"prompt-input-attachment\"\n className={styles.attachment}\n >\n {isImagePayload(attachment)\n ?\n <Tooltip classNames={{ popup: styles.attachmentImageTooltip, viewport: 'px-0' }} content={<Image src={attachment} classNames={{ root: styles.attachmentImagePreview }} />}>\n <Image src={attachment} classNames={{ root: styles.attachmentImage }} />\n </Tooltip>\n :\n <div data-slot=\"prompt-input-attachment-file\" className={styles.attachmentFile}>\n <span className={styles.attachmentExtension}>{getFileExtensionLabel(attachment)}</span>\n </div>}\n <Button variant=\"close\" className={styles.removeButton} onClick={() => handleRemove(attachment.base64)}>\n <Icon icon=\"close\" />\n </Button>\n </ReorderList.Item>\n ))}\n </AnimatePresence>\n </ReorderList.Group>\n );\n}\n\ntype PromptInputInputProperties = Omit<ComponentProps<typeof TextArea>, 'value' | 'onChange' | 'disabled'>;\n\nexport function PromptInputInput(properties: PromptInputInputProperties) {\n const { className, onKeyDown, minRows = 1, maxRows = 10, ...props } = properties;\n\n const styles = useComponentStyles();\n const context = usePromptInputContext();\n\n const { value, onChange, isSubmitting, isStreaming } = context;\n\n function handleKeyDown(event: KeyboardEvent<HTMLTextAreaElement>) {\n onKeyDown?.(event);\n\n if (event.defaultPrevented) return;\n\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n\n if (isSubmitting || isStreaming) return;\n\n submitAndClear(context);\n }\n }\n\n return (\n <TextArea\n data-slot=\"prompt-input-input\"\n className={cn(styles.input, className)}\n value={value}\n onChange={event => onChange(event.target.value)}\n onKeyDown={handleKeyDown}\n disabled={isSubmitting}\n minRows={minRows}\n maxRows={maxRows}\n variant=\"ghost\"\n unstyled={true}\n {...props}\n />\n );\n}\n\nexport function PromptInputToolbarRow(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"prompt-input-toolbar-row\"\n className={cn(styles.toolbarRow, className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\ninterface PromptInputModelPickerProperties {\n className?: string;\n}\n\nexport function PromptInputModelPicker(properties: PromptInputModelPickerProperties) {\n const { className } = properties;\n\n const styles = useComponentStyles();\n const { model, onModelChange, models, isSubmitting } = usePromptInputContext();\n\n function handleValueChange(nextId: string | null) {\n if (nextId == null) return;\n\n const next = models.find(entry => entry.id === nextId);\n\n if (next) onModelChange(next);\n }\n\n return (\n <Select<string>\n value={model.id}\n onValueChange={handleValueChange}\n disabled={isSubmitting}\n >\n <Tooltip content=\"Select Model\">\n <SelectTrigger className={cn(styles.modelPicker, className)}>\n <SelectValue>\n {() => {\n const found = models.find(entry => entry.id === model.id);\n\n return found ? `${found.name} ${found.version}` : model.id;\n }}\n </SelectValue>\n </SelectTrigger>\n </Tooltip>\n <SelectPopup>\n {models.map(entry => (\n <SelectItem key={entry.id} value={entry.id}>\n {entry.name}\n {' '}\n {entry.version}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n );\n}\n\ninterface PromptInputAttachButtonProperties {\n className?: string;\n}\n\nexport function PromptInputAttachButton(properties: PromptInputAttachButtonProperties) {\n const { className } = properties;\n\n const styles = useComponentStyles();\n const { openFilePicker, isSubmitting, attachments, maxAttachments } = usePromptInputContext();\n\n const atLimit = attachments.length >= maxAttachments;\n\n return (\n <Tooltip content={atLimit ? `Max ${maxAttachments} files` : 'Attach file'}>\n <Button\n data-slot=\"prompt-input-attach-button\"\n className={cn(styles.attachButton, className)}\n onClick={openFilePicker}\n disabled={isSubmitting || atLimit}\n >\n <Icon icon=\"attach\" />\n </Button>\n </Tooltip>\n );\n}\n\ninterface PromptInputSubmitProperties {\n className?: string;\n}\n\nexport function PromptInputSubmit(properties: PromptInputSubmitProperties) {\n const { className } = properties;\n\n const styles = useComponentStyles();\n const context = usePromptInputContext();\n\n const { value, attachments, isSubmitting, isStreaming, onAbort } = context;\n\n const idleDisabled = value.trim() === '' && attachments.length === 0;\n const isBusy = isSubmitting || isStreaming;\n\n function handleClick() {\n if (isBusy) {\n onAbort();\n return;\n }\n\n submitAndClear(context);\n }\n\n const tooltip = isStreaming\n ? 'Stop'\n : isSubmitting\n ? 'Sending…'\n : 'Send';\n\n return (\n <Tooltip content={tooltip}>\n <Button\n data-slot=\"prompt-input-submit\"\n className={cn(styles.submitButton, className)}\n onClick={handleClick}\n disabled={!isBusy && idleDisabled}\n variant={isStreaming ? 'destructive' : 'primary'}\n >\n <Icon icon={isSubmitting ? 'loading' : isStreaming ? 'stop' : 'arrowUp'} />\n </Button>\n </Tooltip>\n );\n}\n\nfunction submitAndClear(context: ContextProperties) {\n context.onSubmit();\n context.onChange('');\n context.onAttachmentsChange([]);\n}\n\nfunction isImagePayload(file: FilePayload): boolean {\n return file.mediaType.startsWith('image/');\n}\n\nfunction getFileExtensionLabel(file: FilePayload): string {\n const subtype = file.mediaType.split('/')[1] ?? 'file';\n const simplified = subtype.split('.').pop() ?? subtype;\n\n return simplified.slice(0, 4).toUpperCase();\n}\n","import { cn, tryCatch } from '@digo-labs/common';\nimport { AuthHelper } from '@digo-labs/services';\nimport { Button, Icon, Spinner, toastManager } from '..';\n\nimport { ComponentProps, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('googleSignInButton');\n\ntype Properties = RootProperties & ComponentStylesProps<'googleSignInButton'>;\n\nexport function GoogleSignInButton(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <GoogleSignInButtonRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof Button>, 'classNames'> {}\n\nfunction GoogleSignInButtonRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const location = useLocation();\n const from = (location.state as any)?.from?.pathname ?? '/';\n\n const styles = useComponentStyles();\n\n async function handleSignIn() {\n const client = AuthHelper.auth;\n\n if (!client) return;\n\n setIsSigningIn(true);\n\n const [, error] = await tryCatch(\n client.signIn.social({\n provider: 'google',\n callbackURL: `${window.location.origin}${from}`,\n }),\n );\n\n if (error) {\n toastManager.add({ type: 'error', title: 'Sign in failed', description: error.message });\n setIsSigningIn(false);\n }\n }\n\n return (\n <Button\n data-slot=\"google-signin-button\"\n onClick={handleSignIn}\n className={cn(styles.root, className)}\n {...props}\n disabled={isSigningIn}\n >\n <Icon icon=\"google\" className={styles.icon} />\n <span data-slot=\"google-signin-button-label\" className={styles.label}>\n Continue with Google\n </span>\n {isSigningIn && <Spinner className={styles.spinner} />}\n </Button>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Switch, useDesignSystem } from '..';\n\nimport { ComponentProps } from 'react';\n\ninterface SwitchThemeProperties extends ComponentProps<typeof Switch> {\n className?: string;\n}\n\nexport function SwitchTheme(properties: SwitchThemeProperties) {\n const { className } = properties;\n\n const { mode, setMode } = useDesignSystem();\n return (\n <Switch\n id=\"switch-theme\"\n checkedIcon=\"lightMode\"\n uncheckedIcon=\"darkMode\"\n className={cn(className)}\n checked={mode === 'light'}\n onCheckedChange={() => setMode(mode === 'light' ? 'dark' : 'light')}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon, motionTransitionPresets, useDesignSystem } from '..';\n\nimport { ComponentProps, useState } from 'react';\nimport { motion } from 'motion/react';\n\nexport function ToggleTheme(properties: ComponentProps<typeof motion.div>) {\n const { className, ...props } = properties;\n\n const [pressed, setPressed] = useState(false);\n const [hovered, setHovered] = useState(false);\n\n const { toggleMode } = useDesignSystem();\n\n return (\n\n <motion.div\n className={cn('flex-col-center', className)}\n animate={{\n rotate: hovered ? 0 : 180,\n scale: pressed ? 1.2 : 1,\n }}\n transition={motionTransitionPresets.spring3}\n onClick={toggleMode}\n onMouseDown={() => setPressed(true)}\n onMouseUp={() => setPressed(false)}\n onHoverStart={() => setHovered(true)}\n onHoverEnd={() => setHovered(false)}\n {...props}\n >\n\n <Icon icon=\"contrast\" />\n\n </motion.div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nexport interface TransparentBackgroundProperties extends ComponentProps<'div'> {\n cols?: number;\n rows?: number;\n}\n\nexport function TransparentBackground(properties: TransparentBackgroundProperties) {\n const {\n cols = 5,\n rows = 3,\n className,\n } = properties;\n\n return (\n\n <div\n className={cn('absolute inset-0 z-0 grid', className)}\n style={{\n display: 'grid',\n gridTemplateColumns: `repeat(${cols}, 1fr)`,\n gridTemplateRows: `repeat(${rows}, 1fr)`,\n }}\n\n >\n {\n Array.from({ length: cols * rows }, (_, index) => (\n <div\n key={index}\n className={cn('size-full', (Math.floor(index / cols) + index % cols) % 2 === 0 ? 'bg-neutral-2' : 'bg-neutral-11/25')}\n />\n ))\n }\n\n </div>\n\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon, motionTransitionPresets } from '..';\n\nimport { HTMLMotionProps, motion } from 'motion/react';\nimport { Accordion as AccordionPrimitive } from '@base-ui/react/accordion';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('accordion');\n\ntype Properties = RootProperties & ComponentStylesProps<'accordion'>;\n\nexport function Accordion(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <AccordionRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = AccordionPrimitive.Root.Props;\n\nfunction AccordionRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function AccordionItem(properties: AccordionPrimitive.Item.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger(properties: AccordionPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Header data-slot=\"accordion-header\" className={styles.header}>\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(styles.trigger, className)}\n render={(props, state) => (\n <button {...props}>\n {children}\n <motion.span\n animate={{ rotate: state.open ? 45 : 0 }}\n data-slot=\"accordion-trigger-icon-wrapper\"\n className={styles.triggerIcon}\n transition={state.open ? motionTransitionPresets.spring3 : motionTransitionPresets.spring1}\n >\n <Icon icon=\"add\" />\n </motion.span>\n </button>\n )}\n {...props}\n />\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent(properties: AccordionPrimitive.Panel.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-panel\"\n className={styles.panel}\n keepMounted={true}\n render={(props, state) => (\n <motion.div\n {...props as HTMLMotionProps<'div'>}\n initial={false}\n hidden={undefined}\n animate={{\n height: state.open ? 'auto' : 0,\n opacity: state.open ? 1 : 0,\n }}\n transition={state.open ? motionTransitionPresets.spring3 : motionTransitionPresets.spring1}\n />\n )}\n {...props}\n >\n <div data-slot=\"accordion-content\" className={cn(styles.content, className)}>\n {children}\n </div>\n </AccordionPrimitive.Panel>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('alert');\n\ntype Properties = RootProperties & ComponentStylesProps<'alert'>;\n\nexport function Alert(properties: Properties) {\n const { classNames, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant}>\n <AlertRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction AlertRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function AlertContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function AlertTitle(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function AlertDescription(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n\nexport function AlertAction(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(styles.action, className)}\n {...props}\n />\n );\n}\n\nexport function AlertIcon(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"alert-icon\"\n className={cn(styles.icon, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon, Input, ScrollArea, Separator, Spinner } from '..';\n\nimport { Autocomplete as AutocompletePrimitive } from '@base-ui/react/autocomplete';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('autocomplete');\n\ntype Properties = ComponentProps<typeof AutocompletePrimitive.Root> & ComponentStylesProps<'autocomplete'>;\n\nexport function Autocomplete(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <AutocompletePrimitive.Root {...props} />\n </ComponentStylesProvider>\n );\n}\n\nexport function AutocompleteInput(properties: AutocompletePrimitive.Input.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Input\n data-slot=\"control\"\n className={cn(styles.input, className)}\n render={<Input variant=\"ghost\" unstyled />}\n {...props}\n />\n );\n}\n\ntype PopupProperties = AutocompletePrimitive.Popup.Props & {\n anchor?: AutocompletePrimitive.Positioner.Props['anchor'];\n side?: AutocompletePrimitive.Positioner.Props['side'];\n sideOffset?: AutocompletePrimitive.Positioner.Props['sideOffset'];\n align?: AutocompletePrimitive.Positioner.Props['align'];\n alignOffset?: AutocompletePrimitive.Positioner.Props['alignOffset'];\n};\n\nexport function AutocompletePopup(properties: PopupProperties) {\n const { className, children, anchor, side = 'bottom', sideOffset = 4, align = 'start', alignOffset, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Portal>\n <AutocompletePrimitive.Positioner\n data-slot=\"autocomplete-positioner\"\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={styles.positioner}\n >\n <AutocompletePrimitive.Popup\n data-slot=\"autocomplete-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <div className={styles.popupInner}>\n {children}\n </div>\n </AutocompletePrimitive.Popup>\n </AutocompletePrimitive.Positioner>\n </AutocompletePrimitive.Portal>\n );\n}\n\nexport function AutocompleteItem(properties: AutocompletePrimitive.Item.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Item\n data-slot=\"autocomplete-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteSeparator(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Separator\n data-slot=\"autocomplete-separator\"\n className={cn(styles.separator, className)}\n render={<Separator />}\n {...props}\n />\n );\n}\n\nexport function AutocompleteGroup(properties: AutocompletePrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Group\n data-slot=\"autocomplete-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteGroupLabel(properties: AutocompletePrimitive.GroupLabel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.GroupLabel\n data-slot=\"autocomplete-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteEmpty(properties: AutocompletePrimitive.Empty.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Empty\n data-slot=\"autocomplete-empty\"\n className={cn(styles.empty, className)}\n {...props}\n />\n );\n}\n\nexport function AutocompleteRow(properties: AutocompletePrimitive.Row.Props) {\n const { className, ...props } = properties;\n\n return (\n <AutocompletePrimitive.Row\n data-slot=\"autocomplete-row\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function AutocompleteValue(properties: AutocompletePrimitive.Value.Props) {\n return (\n <AutocompletePrimitive.Value\n data-slot=\"autocomplete-value\"\n {...properties}\n />\n );\n}\n\nexport function AutocompleteList(properties: AutocompletePrimitive.List.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollArea scrollbarGutter scrollFade>\n <AutocompletePrimitive.List\n data-slot=\"autocomplete-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n </ScrollArea>\n );\n}\n\nexport function AutocompleteClear(properties: AutocompletePrimitive.Clear.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Clear\n data-slot=\"autocomplete-clear\"\n className={cn(styles.clear, className)}\n {...props}\n >\n {children ?? <Icon icon=\"close\" />}\n </AutocompletePrimitive.Clear>\n );\n}\n\ntype AutocompleteStatusProperties = AutocompletePrimitive.Status.Props & {\n loading?: boolean;\n};\n\nexport function AutocompleteStatus(properties: AutocompleteStatusProperties) {\n const { className, loading, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Status\n data-slot=\"autocomplete-status\"\n className={cn(styles.status, loading && styles.statusLoading, className)}\n {...props}\n >\n {children}\n {loading && <Spinner className=\"size-4\" />}\n </AutocompletePrimitive.Status>\n );\n}\n\nexport function AutocompleteCollection(properties: AutocompletePrimitive.Collection.Props) {\n return (\n <AutocompletePrimitive.Collection\n data-slot=\"autocomplete-collection\"\n {...properties}\n />\n );\n}\n\nexport function AutocompleteTrigger(properties: AutocompletePrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompletePrimitive.Trigger\n data-slot=\"autocomplete-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n >\n {children ?? <Icon icon=\"select\" />}\n </AutocompletePrimitive.Trigger>\n );\n}\n\nexport const useAutocompleteFilter = AutocompletePrimitive.useFilter;\n","import { cn, Size } from '@digo-labs/common';\n\nimport { createContext, useContext, useMemo, type ComponentProps, type CSSProperties, type ReactNode } from 'react';\n\nimport { Legend, ResponsiveContainer, Tooltip, TooltipPayloadEntry } from 'recharts';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('chart');\n\nconst INITIAL_DIMENSION: Size = { width: 320, height: 200 };\n\ninterface ChartConfigItem {\n label?: ReactNode;\n color?: string;\n}\n\nexport type ChartConfig = Record<string, ChartConfigItem\n>;\n\ninterface ChartContextValue {\n config: ChartConfig;\n}\n\nconst ChartContext = createContext<ChartContextValue | null>(null);\n\nfunction useChart(): ChartContextValue {\n const context = useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\ntype PayloadItem = TooltipPayloadEntry<string | number, string | number>;\n\nconst ChartItemContext = createContext<PayloadItem | null>(null);\n\nfunction useChartItem(): PayloadItem {\n const context = useContext(ChartItemContext);\n\n if (!context) {\n throw new Error('useChartItem must be used within a <ChartTooltipItem /> or <ChartLegendItem />');\n }\n\n return context;\n}\n\ntype Properties = ContainerRootProperties & ComponentStylesProps<'chart'>;\n\nexport function ChartContainer(properties: Properties) {\n const { classNames, config, ...props } = properties;\n\n return (\n <ChartContext.Provider value={{ config: config }}>\n <ComponentStylesProvider classNames={classNames}>\n <ChartContainerRoot config={config} {...props} />\n </ComponentStylesProvider>\n </ChartContext.Provider>\n );\n}\n\ninterface ContainerRootProperties extends ComponentProps<'div'> {\n config: ChartConfig;\n children: ComponentProps<typeof ResponsiveContainer>['children'];\n initialDimension?: Size;\n}\n\nfunction ChartContainerRoot(properties: ContainerRootProperties) {\n const {\n config,\n className,\n children,\n initialDimension = INITIAL_DIMENSION,\n style,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const cssVars = useMemo(() => {\n const vars: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(config)) {\n if (value.color) {\n vars[`--color-${key}`] = `var(--color-${value.color})`;\n }\n }\n\n return vars;\n }, [config]);\n\n return (\n <div\n data-slot=\"chart\"\n className={cn(styles.root, className)}\n style={{ ...cssVars, ...style } as CSSProperties}\n {...props}\n >\n <ResponsiveContainer initialDimension={initialDimension}>\n {children}\n </ResponsiveContainer>\n </div>\n );\n}\n\ninterface TooltipRootProperties extends Omit<ComponentProps<typeof Tooltip>, 'children'> {\n active?: boolean;\n payload?: PayloadItem[];\n children?: (items: PayloadItem[]) => ReactNode;\n className?: string;\n}\n\nexport function ChartTooltip(properties: TooltipRootProperties) {\n const { children, ...props } = properties;\n\n return (\n <Tooltip content={<ChartTooltipRoot children={children} {...props} />} />\n );\n}\n\nfunction ChartTooltipRoot(properties: TooltipRootProperties) {\n const { active, payload, className, children } = properties;\n\n const styles = useComponentStyles();\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const items = payload.filter(item => item.type !== 'none');\n\n return (\n <div\n data-slot=\"chart-tooltip\"\n className={cn(styles.tooltip, className)}\n >\n {children\n ? children(items)\n : items.map(item => (\n <ChartTooltipItem key={String(item.dataKey ?? item.name)} item={item}>\n <ChartTooltipIndicator />\n <ChartTooltipLabel />\n <ChartTooltipValue />\n </ChartTooltipItem>\n ))}\n </div>\n );\n}\n\ninterface TooltipItemProperties extends ComponentProps<'div'> {\n item: PayloadItem;\n}\n\nexport function ChartTooltipItem(properties: TooltipItemProperties) {\n const { item, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ChartItemContext.Provider value={item}>\n <div\n data-slot=\"chart-tooltip-item\"\n className={cn(styles.tooltipItem, className)}\n {...props}\n />\n </ChartItemContext.Provider>\n );\n}\n\nexport function ChartTooltipIndicator(properties: ComponentProps<'div'>) {\n const { className, style, ...props } = properties;\n\n const item = useChartItem();\n const styles = useComponentStyles();\n const color = item.payload?.fill ?? item.color;\n\n return (\n <div\n data-slot=\"chart-tooltip-indicator\"\n className={cn(styles.tooltipIndicator, className)}\n style={{ backgroundColor: color, ...style }}\n {...props}\n />\n );\n}\n\nexport function ChartTooltipLabel(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const item = useChartItem();\n const { config } = useChart();\n const styles = useComponentStyles();\n const itemConfig = getPayloadConfigFromPayload(config, item);\n\n return (\n <span\n data-slot=\"chart-tooltip-label\"\n className={cn(styles.tooltipLabel, className)}\n {...props}\n >\n {children ?? itemConfig?.label ?? item.name}\n </span>\n );\n}\n\nexport function ChartTooltipValue(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const item = useChartItem();\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"chart-tooltip-value\"\n className={cn(styles.tooltipValue, className)}\n {...props}\n >\n {children ?? (typeof item.value === 'number' ? item.value.toLocaleString() : String(item.value))}\n </span>\n );\n}\n\ninterface LegendRootProperties extends Omit<ComponentProps<typeof Legend>, 'children'> {\n payload?: PayloadItem[];\n children?: (items: PayloadItem[]) => ReactNode;\n}\n\nexport function ChartLegend(properties: LegendRootProperties) {\n const { children, className, ...props } = properties;\n\n return (\n <Legend {...props} content={<ChartLegendRoot children={children} className={className} />} />\n );\n}\n\nfunction ChartLegendRoot(properties: LegendRootProperties) {\n const { payload, className, children } = properties;\n\n const styles = useComponentStyles();\n\n if (!payload?.length) {\n return null;\n }\n\n const items = payload.filter(item => item.type !== 'none');\n\n return (\n <div\n data-slot=\"chart-legend\"\n className={cn(styles.legend, className)}\n >\n {children\n ? children(items)\n : items.map(item => (\n <ChartLegendItem key={String(item.dataKey ?? item.name)} item={item}>\n <ChartLegendIndicator />\n <ChartLegendLabel />\n </ChartLegendItem>\n ))}\n </div>\n );\n}\n\ninterface LegendItemProperties extends ComponentProps<'div'> {\n item: PayloadItem;\n}\n\nexport function ChartLegendItem(properties: LegendItemProperties) {\n const { item, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ChartItemContext.Provider value={item}>\n <div\n data-slot=\"chart-legend-item\"\n className={cn(styles.legendItem, className)}\n {...props}\n />\n </ChartItemContext.Provider>\n );\n}\n\nexport function ChartLegendIndicator(properties: ComponentProps<'div'>) {\n const { className, style, ...props } = properties;\n\n const item = useChartItem();\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"chart-legend-indicator\"\n className={cn(styles.legendIndicator, className)}\n style={{ backgroundColor: item.color, ...style }}\n {...props}\n />\n );\n}\n\nexport function ChartLegendLabel(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const item = useChartItem();\n const { config } = useChart();\n const styles = useComponentStyles();\n const itemConfig = getPayloadConfigFromPayload(config, item);\n\n return (\n <span\n data-slot=\"chart-legend-label\"\n className={cn(styles.legendLabel, className)}\n {...props}\n >\n {children ?? itemConfig?.label ?? item.name ?? String((item as unknown as Record<string, unknown>).value ?? '')}\n </span>\n );\n}\n\nfunction getPayloadConfigFromPayload(config: ChartConfig, item: PayloadItem) {\n const key = `${item.dataKey ?? item.name ?? (item as unknown as Record<string, unknown>).value ?? 'value'}`;\n\n if (key in config) {\n return config[key];\n }\n\n const nestedPayload = item.payload;\n\n if (nestedPayload && typeof nestedPayload === 'object' && key in nestedPayload) {\n const nestedKey = nestedPayload[key as keyof typeof nestedPayload];\n\n if (typeof nestedKey === 'string' && nestedKey in config) {\n return config[nestedKey];\n }\n }\n\n return undefined;\n}\n\nexport { PieChart, Pie } from 'recharts';\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { MotionAnimatePresence } from 'src/animation/motion-animate-presence';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('checkbox');\n\ntype Properties = RootProperties & ComponentStylesProps<'checkbox'>;\n\nexport function Checkbox(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CheckboxRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = CheckboxPrimitive.Root.Props;\n\nfunction CheckboxRoot(properties: RootProperties) {\n const { className, indeterminate, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(styles.root, className)}\n indeterminate={indeterminate}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className={styles.indicator}\n >\n <MotionAnimatePresence\n activeIndex={indeterminate ? 1 : 0}\n mode=\"popLayout\"\n >\n <Icon icon=\"check\" />\n <Icon icon=\"checkIndeterminate\" />\n </MotionAnimatePresence>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n","import { cn, CodeLanguageMetadata, LANGUAGE_MAP } from '@digo-labs/common';\nimport { Icon, highlightCode } from '..';\n\nimport { ComponentProps, createContext, useContext, useEffect, useState } from 'react';\nimport { useDesignSystem } from '../providers/design-system-provider';\nimport { CopyPasteButton } from 'src/blocks/copy-paste-button';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('codeBlock');\n\ninterface ContextProperties {\n language?: string;\n showLineNumbers?: boolean;\n highlightLines?: number[];\n code: string;\n};\n\nconst Context = createContext<ContextProperties>({ code: '' });\n\ninterface Properties extends RootProperties, ComponentStylesProps<'codeBlock'> {\n code: string;\n language?: string;\n showLineNumbers?: boolean;\n highlightLines?: number[];\n}\n\nexport function CodeBlock(properties: Properties) {\n const {\n classNames,\n code,\n language = 'text',\n showLineNumbers = false,\n highlightLines = [],\n ...props\n } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ language: language, showLineNumbers: showLineNumbers, highlightLines: highlightLines, code: code }}>\n <CodeBlockRoot {...props} />\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction CodeBlockRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n const context = useContext(Context);\n\n return (\n <div\n data-slot=\"code-block\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n <CodeBlockCode language={context.language} code={context.code} highlightLines={context.highlightLines} showLineNumbers={context.showLineNumbers} />\n </div>\n );\n}\n\nexport function CodeBlockHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"code-block-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function CodeBlockTitle(properties: ComponentProps<'div'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const { language = 'text' } = useContext(Context);\n\n const languageMetadata: CodeLanguageMetadata = LANGUAGE_MAP[language.toLowerCase()] || LANGUAGE_MAP.text;\n\n return (\n <div\n data-slot=\"code-block-title\"\n className={cn(styles.title, className)}\n {...props}\n >\n {children || (\n <>\n <Icon icon={languageMetadata.icon} />\n {languageMetadata.name}\n </>\n )}\n </div>\n );\n}\n\nexport function CodeBlockActions(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"code-block-actions\"\n className={cn(styles.actions, className)}\n {...props}\n />\n );\n}\n\nexport function CodeBlockFloatingActions(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"code-block-floating-actions\"\n className={cn(styles.floatingActions, className)}\n {...props}\n />\n );\n}\n\nexport function CodeBlockCopyButton(properties: Omit<ComponentProps<typeof CopyPasteButton>, 'text'>) {\n const { code } = useContext(Context);\n\n return (\n <CopyPasteButton text={code} {...properties} />\n );\n}\n\ntype CodeProperties = ComponentProps<'div'> & ContextProperties;\n\nfunction CodeBlockCode(properties: CodeProperties) {\n const { code, highlightLines, showLineNumbers, language, className } = properties;\n\n const styles = useComponentStyles();\n const { mode } = useDesignSystem();\n\n const [highlightedCode, setHighlightedCode] = useState<string>('');\n const [_isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n let cancelled = false;\n\n highlight(cancelled);\n\n return () => {\n cancelled = true;\n };\n }, [code, language, highlightLines, showLineNumbers, mode]);\n\n async function highlight(cancelled: boolean) {\n try {\n setIsLoading(true);\n const html = await highlightCode(code, language, { highlightLines: highlightLines, showLineNumbers: showLineNumbers, mode: mode });\n\n if (!cancelled) {\n setHighlightedCode(html);\n }\n } catch (error) {\n console.error('Failed to highlight code:', error);\n\n if (!cancelled) {\n setHighlightedCode(`<pre><code>${code}</code></pre>`);\n }\n } finally {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n }\n\n return (\n <div\n data-slot=\"code-block-content\"\n className={cn(styles.code, className)}\n dangerouslySetInnerHTML={{ __html: highlightedCode }}\n tabIndex={-1}\n />\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon, motionTransitionPresets } from '..';\n\nimport { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';\nimport { HTMLMotionProps, Inertia, motion, Spring, Tween } from 'motion/react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('collapsible');\n\ntype Properties = RootProperties & ComponentStylesProps<'collapsible'>;\n\nexport function Collapsible(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CollapsibleRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = CollapsiblePrimitive.Root.Props;\n\nfunction CollapsibleRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CollapsiblePrimitive.Root\n data-slot=\"collapsible\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function CollapsibleTrigger(properties: CollapsiblePrimitive.Trigger.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n />\n );\n}\n\ninterface PanelProperties extends CollapsiblePrimitive.Panel.Props {\n openAnimation?: Spring | Tween | Inertia;\n closeAnimation?: Spring | Tween | Inertia;\n}\n\nexport function CollapsiblePanel(properties: PanelProperties) {\n const {\n className,\n children,\n openAnimation = motionTransitionPresets.spring3,\n closeAnimation = motionTransitionPresets.spring1,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-panel\"\n className={styles.panel}\n keepMounted={true}\n render={(renderProps, state) => (\n <motion.div\n initial={false}\n animate={{\n height: state.open ? 'auto' : 0,\n opacity: state.open ? 1 : 0,\n }}\n transition={state.open ? openAnimation : closeAnimation}\n {...renderProps as HTMLMotionProps<'div'>}\n hidden={undefined}\n />\n )}\n {...props}\n >\n <div className={cn(styles.panelContent, className as string)}>\n {children}\n </div>\n </CollapsiblePrimitive.Panel>\n );\n}\n\ninterface IconProperties {\n open?: boolean;\n icon?: CuratedIcons;\n className?: string;\n}\n\nexport function CollapsibleIcon(properties: IconProperties) {\n const { open = false, icon = 'chevronDown', className } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <motion.span\n data-slot=\"collapsible-icon\"\n className={cn(styles.icon, className)}\n animate={{ rotate: open ? 180 : 0 }}\n transition={open ? motionTransitionPresets.spring3 : motionTransitionPresets.spring1}\n >\n <Icon icon={icon} />\n </motion.span>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ColorArea as ColorAreaPrimitive, ColorThumb } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorArea');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorArea'>;\n\nexport function ColorArea(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof ColorAreaPrimitive>;\n\nfunction ColorAreaRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorAreaPrimitive\n data-slot=\"color-area\"\n className={cn(styles.root, className)}\n {...props}\n >\n <ColorThumb\n data-slot=\"color-area-thumb\"\n className={styles.thumb}\n />\n </ColorAreaPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ColorChannel } from '..';\n\nimport { ColorField as ColorFieldPrimitive, Input } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorField');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorField'>;\n\nexport function ColorField(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorFieldRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof ColorFieldPrimitive>;\n\nconst CHANNEL_PLACEHOLDERS: Record<ColorChannel, string> = {\n hue: '0°',\n saturation: '0%',\n brightness: '0%',\n lightness: '0%',\n red: '0',\n green: '0',\n blue: '0',\n alpha: '0%',\n};\n\nfunction ColorFieldRoot(properties: RootProperties) {\n const { className, channel, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorFieldPrimitive\n data-slot=\"color-field\"\n className={cn(styles.root, className)}\n channel={channel}\n {...props}\n >\n <Input\n data-slot=\"color-field-input\"\n placeholder={channel ? CHANNEL_PLACEHOLDERS[channel] : '#000000'}\n className={styles.input}\n />\n </ColorFieldPrimitive>\n );\n}\n","import { Color, ColorSpace, getColorChannels, ColorPicker, ColorField, Select, SelectTrigger, SelectValue, SelectPopup, SelectItem } from '..';\n\nimport { useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorInput');\n\ntype ColorMode = 'hex' | ColorSpace;\n\ntype Properties = RootProperties & ComponentStylesProps<'colorInput'>;\n\nconst colorModeItems = [\n { label: 'HEX', value: 'hex' },\n { label: 'HSB', value: 'hsb' },\n { label: 'HSL', value: 'hsl' },\n { label: 'RGB', value: 'rgb' },\n];\n\nexport function ColorInput(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorInputRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value?: Color | null;\n defaultValue?: Color | null;\n onChange?: (color: Color) => void;\n showAlpha?: boolean;\n}\n\nfunction ColorInputRoot(properties: RootProperties) {\n const { value: controlledValue, defaultValue, onChange, showAlpha = true } = properties;\n\n const styles = useComponentStyles();\n\n const isControlled = controlledValue !== undefined;\n\n const [internalColor, setInternalColor] = useState<Color | null>(defaultValue ?? null);\n\n const color = isControlled ? controlledValue : internalColor;\n\n const [colorMode, setColorMode] = useState<ColorMode>('hex');\n\n const handleChange = (newColor: Color | null) => {\n if (!newColor) return;\n if (!isControlled) setInternalColor(newColor);\n onChange?.(newColor);\n };\n\n return (\n <div data-slot=\"color-input\" className={styles.root}>\n <ColorPicker\n value={color ?? undefined}\n onChange={handleChange}\n showAlpha={showAlpha}\n classNames={{ trigger: styles.trigger }}\n className={styles.swatch}\n />\n\n <Select value={colorMode} onValueChange={value => setColorMode(value as ColorMode)} items={colorModeItems}>\n <SelectTrigger className={styles.select}>\n <SelectValue />\n </SelectTrigger>\n <SelectPopup>\n {colorModeItems.map(({ label, value }) => (\n <SelectItem key={value} value={value}>\n {label}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n\n <div data-slot=\"color-input-fields\" className={styles.fields}>\n {colorMode === 'hex'\n ? <ColorField\n value={color}\n onChange={handleChange}\n classNames={{ input: styles.hexInput }}\n />\n : getColorChannels(colorMode).map((channel, index) => (\n <ColorField\n key={channel}\n value={color}\n onChange={handleChange}\n channel={channel}\n colorSpace={colorMode}\n data-slot={index}\n classNames={{ input: styles.channelInput }}\n />\n ))}\n </div>\n </div>\n );\n}\n","import { ColorSpace, ColorSwatch, ColorArea, ColorSlider, ColorField, ColorSwatchPicker, Select, SelectTrigger, SelectValue, SelectPopup, SelectItem, Popover, PopoverTrigger, PopoverPopup, getColorChannels } from '..';\nimport { cn } from '@digo-labs/common';\n\nimport { ColorPicker as ColorPickerPrimitive } from 'react-aria-components';\n\nimport { ReactNode, useState, type ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst colorSpaces = [\n { label: 'HSB', value: 'hsb' },\n { label: 'HSL', value: 'hsl' },\n { label: 'RGB', value: 'rgb' },\n];\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorPicker'>;\n\nexport function ColorPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends Omit<ComponentProps<typeof ColorPickerPrimitive>, 'children'> {\n children?: ReactNode;\n showAlpha?: boolean;\n showChannels?: boolean;\n swatches?: string[];\n side?: ComponentProps<typeof PopoverPopup>['side'];\n sideOffset?: ComponentProps<typeof PopoverPopup>['sideOffset'];\n align?: ComponentProps<typeof PopoverPopup>['align'];\n alignOffset?: ComponentProps<typeof PopoverPopup>['alignOffset'];\n className?: string;\n}\n\nfunction ColorPickerRoot(properties: RootProperties) {\n const {\n showAlpha = true,\n showChannels = false,\n swatches,\n children,\n side = 'top',\n sideOffset = 8,\n align = 'center',\n alignOffset = 0,\n className,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const [colorSpace, setColorSpace] = useState<ColorSpace>('hsb');\n\n return (\n <ColorPickerPrimitive\n data-slot=\"color-picker\"\n {...props}\n >\n {children ??\n <Popover>\n <PopoverTrigger className={styles.trigger}>\n <ColorSwatch className={cn(styles.swatch, className)} />\n </PopoverTrigger>\n\n <PopoverPopup\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n classNames={{ popup: styles.popup, content: styles.content }}\n >\n <ColorArea colorSpace=\"hsb\" xChannel=\"saturation\" yChannel=\"brightness\" />\n <ColorSlider channel=\"hue\" colorSpace=\"hsb\" />\n {showAlpha && <ColorSlider channel=\"alpha\" />}\n <ColorField classNames={{ input: styles.inputs }} />\n {showChannels && (\n <div className={styles.channelsContainer}>\n <Select value={colorSpace} onValueChange={value => setColorSpace(value as ColorSpace)} items={colorSpaces}>\n <SelectTrigger className={styles.select}>\n <SelectValue />\n </SelectTrigger>\n <SelectPopup>\n {colorSpaces.map(({ label, value }) => (\n <SelectItem key={value} value={value}>\n {label}\n </SelectItem>\n ))}\n </SelectPopup>\n </Select>\n <div data-slot=\"color-picker-channels\" className={styles.channels}>\n {getColorChannels(colorSpace).map(channel => (\n <ColorField key={channel} channel={channel} colorSpace={colorSpace} classNames={{ input: styles.inputs }} />\n ))}\n </div>\n </div>\n )}\n {swatches && swatches.length > 0 && <ColorSwatchPicker colors={swatches} />}\n </PopoverPopup>\n </Popover>}\n\n </ColorPickerPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { TransparentBackground } from '..';\n\nimport { ColorSlider as ColorSliderPrimitive, ColorThumb, SliderTrack } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorSlider');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorSlider'>;\n\nexport function ColorSlider(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <ColorSliderRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ColorSliderPrimitive> {\n cols?: ComponentProps<typeof TransparentBackground>['cols'];\n rows?: ComponentProps<typeof TransparentBackground>['rows'];\n}\n\nfunction ColorSliderRoot(properties: RootProperties) {\n const { className, channel, cols = 80, rows = 3, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorSliderPrimitive\n data-slot=\"color-slider\"\n className={cn(styles.root, className)}\n channel={channel}\n {...props}\n >\n <SliderTrack\n data-slot=\"color-slider-track\"\n className={styles.track}\n >\n <TransparentBackground\n className={styles.transparentBackground}\n cols={cols}\n rows={rows}\n />\n <ColorThumb\n data-slot=\"color-slider-thumb\"\n className={styles.thumb}\n />\n </SliderTrack>\n </ColorSliderPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { TransparentBackground } from '..';\n\nimport { ColorSwatch as ColorSwatchPrimitive } from 'react-aria-components';\n\nimport type { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nexport { parseColor, type ColorSpace, getColorChannels, type Color } from 'react-aria-components';\n\nexport type { ColorChannel } from 'react-stately';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorSwatch');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorSwatch'>;\n\nexport function ColorSwatch(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorSwatchRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof ColorSwatchPrimitive>;\n\nfunction ColorSwatchRoot(properties: RootProperties) {\n const { className, color, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-slot=\"color-swatch\" className={cn(styles.root, className)}>\n <TransparentBackground className={styles.transparentBackground} />\n <ColorSwatchPrimitive\n className={styles.color}\n color={color}\n {...props}\n />\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { ColorSwatch } from '..';\n\nimport { Icon } from './icon';\n\nimport {\n ColorSwatchPicker as ColorSwatchPickerPrimitive,\n ColorSwatchPickerItem as ColorSwatchPickerItemPrimitive,\n} from 'react-aria-components';\n\nimport { ComponentProps, CSSProperties } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('colorSwatchPicker');\n\ntype Properties = RootProperties & ComponentStylesProps<'colorSwatchPicker'>;\n\nexport function ColorSwatchPicker(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ColorSwatchPickerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<typeof ColorSwatchPickerPrimitive> {\n colors?: string[];\n}\n\nfunction ColorSwatchPickerRoot(properties: RootProperties) {\n const { className, colors, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ColorSwatchPickerPrimitive\n data-slot=\"color-swatch-picker\"\n className={cn(styles.root, className)}\n {...props}\n >\n {colors\n ? colors.map(color => (\n <ColorSwatchPickerItemPrimitive\n key={color}\n color={color}\n data-slot=\"color-swatch-picker-item\"\n className={styles.item}\n >\n <div\n data-slot=\"color-swatch-picker-swatch\"\n style={{\n '--color': color,\n } as CSSProperties}\n className={styles.swatchContainer}\n >\n <ColorSwatch color={color} className={styles.swatch} />\n <div className={styles.indicator}>\n <Icon icon=\"check\" />\n </div>\n </div>\n </ColorSwatchPickerItemPrimitive>\n ))\n : children}\n </ColorSwatchPickerPrimitive>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Icon, InputGroup, InputGroupAddon, InputGroupInput, ScrollArea, Separator } from '..';\n\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { createContext, ReactNode, Ref, RefObject, useContext, useRef } from 'react';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { motionPresencePresets } from 'src/utils/motion-presets';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('combobox');\n\ninterface ContextProperties {\n anchorRef: RefObject<Element | null> | null;\n};\n\nconst Context = createContext<ContextProperties>({\n anchorRef: null,\n});\n\ntype Properties<Value, Multiple extends boolean | undefined = false> = RootProperties<Value, Multiple> & ComponentStylesProps<'combobox'>;\n\nexport function Combobox<Value, Multiple extends boolean | undefined = false>(properties: Properties<Value, Multiple>) {\n const {\n classNames,\n disabled = false,\n ...props\n } = properties;\n\n const anchorRef = useRef<Element | null>(null);\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ anchorRef: anchorRef }}>\n <ComboboxRoot disabled={disabled} {...props} />\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties<Value, Multiple extends boolean | undefined = false> extends ComboboxPrimitive.Root.Props<Value, Multiple> {\n disabled?: boolean;\n};\n\nfunction ComboboxRoot<Value, Multiple extends boolean | undefined = false>(properties: RootProperties<Value, Multiple>) {\n const { disabled, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-disabled={disabled || undefined} className={styles.root}>\n <ComboboxPrimitive.Root\n disabled={disabled}\n {...props}\n />\n </div>\n );\n}\n\ninterface InputProperties extends ComboboxPrimitive.Input.Props {\n showTrigger?: boolean;\n showClear?: boolean;\n startAddon?: ReactNode;\n triggerProps?: ComboboxPrimitive.Trigger.Props;\n clearProps?: ComboboxPrimitive.Clear.Props;\n}\n\nexport function ComboboxInput(properties: InputProperties) {\n const {\n className,\n showTrigger = true,\n showClear = false,\n startAddon,\n triggerProps,\n clearProps,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <InputGroup\n className={cn(styles.input, className as string)}\n ref={useContext(Context).anchorRef as Ref<HTMLDivElement> | null}\n >\n {startAddon &&\n <InputGroupAddon align=\"inline-start\">\n {startAddon}\n </InputGroupAddon>}\n\n <ComboboxPrimitive.Input\n data-slot=\"control\"\n render={<InputGroupInput />}\n {...props}\n />\n\n {(showTrigger || showClear) &&\n <InputGroupAddon align=\"inline-end\">\n\n {showTrigger &&\n <ComboboxTrigger className={cn(showClear && 'has-[~:not([hidden])]:hidden', styles.trigger)} {...triggerProps}>\n <ComboboxPrimitive.Icon data-slot=\"combobox-icon\" className=\"flex-row-center\">\n <Icon icon=\"chevronDown\" />\n </ComboboxPrimitive.Icon>\n </ComboboxTrigger>}\n\n {showClear &&\n <ComboboxClear {...clearProps} className={styles.clear}>\n <Icon icon=\"close\" />\n </ComboboxClear>}\n\n </InputGroupAddon>}\n\n </InputGroup>\n );\n}\n\nexport function ComboboxTrigger(properties: ComboboxPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={className}\n {...props}\n >\n {children}\n </ComboboxPrimitive.Trigger>\n );\n}\n\ninterface PopupProperties extends ComboboxPrimitive.Popup.Props {\n align?: ComboboxPrimitive.Positioner.Props['align'];\n sideOffset?: ComboboxPrimitive.Positioner.Props['sideOffset'];\n alignOffset?: ComboboxPrimitive.Positioner.Props['alignOffset'];\n side?: ComboboxPrimitive.Positioner.Props['side'];\n anchor?: ComboboxPrimitive.Positioner.Props['anchor'];\n}\n\nexport function ComboboxPopup(properties: PopupProperties) {\n const {\n className,\n children,\n side = 'bottom',\n sideOffset = 4,\n alignOffset,\n align = 'start',\n anchor: anchorProp,\n ...props\n } = properties;\n\n const { anchorRef } = useContext(Context);\n const anchor = anchorProp ?? anchorRef;\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n data-slot=\"combobox-positioner\"\n className={styles.positioner}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <div className={styles.popupInner}>\n {children}\n </div>\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n );\n}\n\nexport function ComboboxItem(properties: ComboboxPrimitive.Item.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(styles.item, className)}\n {...props}\n >\n {children}\n\n <ComboboxPrimitive.ItemIndicator className={styles.itemIndicator}>\n <Icon icon=\"check\" />\n </ComboboxPrimitive.ItemIndicator>\n\n </ComboboxPrimitive.Item>\n );\n}\n\nexport function ComboboxSeparator(properties: ComboboxPrimitive.Separator.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n render={<Separator />}\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxGroup(properties: ComboboxPrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxGroupLabel(properties: ComboboxPrimitive.GroupLabel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxEmpty(properties: ComboboxPrimitive.Empty.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(styles.empty, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxRow(properties: ComboboxPrimitive.Row.Props) {\n const { className, ...props } = properties;\n\n return (\n <ComboboxPrimitive.Row\n data-slot=\"combobox-row\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function ComboboxValue(properties: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...properties} />;\n}\n\nexport function ComboboxList(properties: ComboboxPrimitive.List.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollArea scrollbarGutter scrollFade className={styles.scrollArea}>\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n </ScrollArea>\n );\n}\n\nexport function ComboboxClear(properties: ComboboxPrimitive.Clear.Props) {\n const { className, ...props } = properties;\n\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function ComboboxStatus(properties: ComboboxPrimitive.Status.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ComboboxPrimitive.Status\n data-slot=\"combobox-status\"\n className={cn(styles.status, className)}\n {...props}\n />\n );\n}\n\nexport function ComboboxCollection(properties: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...properties} />\n );\n}\n\ninterface MultipleInputProperties extends ComboboxPrimitive.Input.Props {\n startAddon?: ReactNode;\n getLabel?: (item: any) => string;\n getKey?: (item: any) => string;\n}\n\nexport function ComboboxMultipleInput(properties: MultipleInputProperties) {\n const {\n className,\n placeholder,\n startAddon,\n getLabel = (item: any) => item.label,\n getKey = (item: any) => item.value,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const { anchorRef } = useContext(Context);\n\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n render={<InputGroup />}\n className={cn(styles.chips, className)}\n ref={anchorRef as Ref<HTMLDivElement> | null}\n >\n\n {startAddon &&\n <InputGroupAddon align=\"inline-start\" className={styles.chipsAddon}>\n {startAddon}\n </InputGroupAddon>}\n\n <ComboboxValue>\n {(value: any[]) => (\n <>\n <AnimatePresence>\n {value?.map(item => (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n key={getKey(item)}\n aria-label={getLabel(item)}\n className={styles.chip}\n render={<motion.div layout {...motionPresencePresets.variant3} />}\n >\n {getLabel(item)}\n\n <ComboboxPrimitive.ChipRemove\n aria-label=\"Remove\"\n data-slot=\"combobox-chip-remove\"\n className={styles.chipRemove}\n >\n <Icon icon=\"close\" />\n </ComboboxPrimitive.ChipRemove>\n </ComboboxPrimitive.Chip>\n ))}\n </AnimatePresence>\n\n <ComboboxPrimitive.Input\n data-slot=\"control\"\n className={styles.chipsInput}\n placeholder={value.length > 0 ? undefined : placeholder}\n {...props}\n />\n </>\n )}\n </ComboboxValue>\n\n </ComboboxPrimitive.Chips>\n );\n}\n\nexport const useComboboxFilter = ComboboxPrimitive.useFilter;\n","import { cn } from '@digo-labs/common';\n\nimport {\n Autocomplete,\n AutocompleteCollection,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteInput,\n AutocompleteItem,\n AutocompleteList,\n AutocompleteSeparator,\n Icon,\n Kbd,\n} from '..';\n\nimport { Dialog as CommandDialogPrimitive } from '@base-ui/react/dialog';\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('command');\n\nconst CommandDialogRoot = CommandDialogPrimitive.Root;\n\nconst CommandDialogPortal = CommandDialogPrimitive.Portal;\n\nexport const CommandCreateHandle = CommandDialogPrimitive.createHandle;\n\ntype CommandDialogProperties = ComponentProps<typeof CommandDialogRoot> & ComponentStylesProps<'command'>;\n\nexport function CommandDialog(properties: CommandDialogProperties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CommandDialogRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nexport function CommandDialogTrigger(properties: CommandDialogPrimitive.Trigger.Props) {\n return (\n <CommandDialogPrimitive.Trigger\n data-slot=\"command-dialog-trigger\"\n {...properties}\n />\n );\n}\n\nexport function CommandDialogPopup(properties: CommandDialogPrimitive.Popup.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <CommandDialogPortal>\n <CommandDialogPrimitive.Backdrop\n data-slot=\"command-dialog-backdrop\"\n className={styles.backdrop}\n />\n <CommandDialogPrimitive.Viewport\n data-slot=\"command-dialog-viewport\"\n className={styles.viewport}\n >\n <CommandDialogPrimitive.Popup\n data-slot=\"command-dialog-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n {children}\n </CommandDialogPrimitive.Popup>\n </CommandDialogPrimitive.Viewport>\n </CommandDialogPortal>\n );\n}\n\ntype CommandProperties = ComponentProps<typeof Autocomplete> & ComponentStylesProps<'command'>;\n\nexport function Command(properties: CommandProperties) {\n const { classNames, autoHighlight = 'always', keepHighlight = true, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Autocomplete\n autoHighlight={autoHighlight}\n inline\n keepHighlight={keepHighlight}\n open\n {...props}\n />\n </ComponentStylesProvider>\n );\n}\n\nexport function CommandInput(properties: ComponentProps<typeof AutocompleteInput>) {\n const { className, placeholder = undefined, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"command-input\"\n className={cn(styles.inputContainer, className)}\n >\n <Icon icon=\"search\" />\n <AutocompleteInput\n autoFocus\n className={styles.input}\n placeholder={placeholder}\n {...props}\n />\n </div>\n );\n}\n\nexport function CommandList(properties: ComponentProps<typeof AutocompleteList>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteList\n data-slot=\"command-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n );\n}\n\nexport function CommandEmpty(properties: ComponentProps<typeof AutocompleteEmpty>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteEmpty\n data-slot=\"command-empty\"\n className={cn(styles.empty, className)}\n {...props}\n />\n );\n}\n\nexport function CommandPanel(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"command-panel\"\n className={cn(styles.panel, className)}\n {...props}\n />\n );\n}\n\nexport function CommandGroup(properties: ComponentProps<typeof AutocompleteGroup>) {\n const { className, ...props } = properties;\n\n return (\n <AutocompleteGroup\n data-slot=\"command-group\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function CommandGroupLabel(properties: ComponentProps<typeof AutocompleteGroupLabel>) {\n const { className, ...props } = properties;\n\n return (\n <AutocompleteGroupLabel\n data-slot=\"command-group-label\"\n className={className}\n {...props}\n />\n );\n}\n\nexport function CommandCollection(properties: ComponentProps<typeof AutocompleteCollection>) {\n return <AutocompleteCollection data-slot=\"command-collection\" {...properties} />;\n}\n\nexport function CommandItem(properties: ComponentProps<typeof AutocompleteItem>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteItem\n data-slot=\"command-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function CommandSeparator(properties: ComponentProps<typeof AutocompleteSeparator>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <AutocompleteSeparator\n data-slot=\"command-separator\"\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n\nexport function CommandShortcut(properties: ComponentProps<typeof Kbd>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Kbd\n data-slot=\"command-shortcut\"\n className={cn(styles.shortcut, className)}\n {...props}\n />\n );\n}\n\nexport function CommandFooter(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"command-footer\"\n className={cn(styles.footer, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { type CSSProperties, useEffect, useMemo } from 'react';\n\nimport { type MotionValue, type SpringOptions, motion, useSpring, useTransform } from 'framer-motion';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\nimport { motionTransitionPresets } from '../utils/motion-presets';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('counter');\n\ntype Properties = RootProperties & ComponentStylesProps<'counter'>;\n\nexport function Counter(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <CounterRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n value: number;\n places?: number;\n className?: string;\n style?: CSSProperties;\n containerHeight?: number;\n spring?: SpringOptions;\n}\n\nfunction CounterRoot(properties: RootProperties) {\n const { value, places = 3, className, style, containerHeight = 100, spring = motionTransitionPresets.spring1 } = properties;\n\n const styles = useComponentStyles();\n const placesArray = useMemo(() => Array.from({ length: places }, (_, i) => 10 ** (places - 1 - i)), [places]);\n\n return (\n <div data-slot=\"counter\" className={cn(styles.root, className)} style={style}>\n <div data-slot=\"counter-digits\" className={styles.digits}>\n {placesArray.map(place => (\n <CounterDigit key={place} place={place} value={value} height={containerHeight} spring={spring} />\n ))}\n </div>\n <div data-slot=\"counter-overlay\" className={styles.overlay}>\n <div data-slot=\"counter-top-gradient\" className={styles.topGradient} />\n <div data-slot=\"counter-bottom-gradient\" className={styles.bottomGradient} />\n </div>\n </div>\n );\n}\n\ninterface DigitProperties {\n place: number;\n value: number;\n height: number;\n spring: SpringOptions;\n}\n\nfunction CounterDigit(properties: DigitProperties) {\n const { place, value, height, spring } = properties;\n\n const styles = useComponentStyles();\n\n const valueRoundedToPlace = Math.floor(value / place);\n const animatedValue = useSpring(valueRoundedToPlace, spring);\n\n useEffect(() => {\n animatedValue.set(valueRoundedToPlace);\n }, [animatedValue, valueRoundedToPlace]);\n\n return (\n <div data-slot=\"counter-digit\" className={styles.digit} style={{ height: height }}>\n {Array.from({ length: 10 }, (_, i) => (\n <CounterNumber key={i} mv={animatedValue} number={i} height={height} />\n ))}\n </div>\n );\n}\n\ninterface NumberProperties {\n mv: MotionValue<number>;\n number: number;\n height: number;\n}\n\nfunction CounterNumber(properties: NumberProperties) {\n const { mv, number, height } = properties;\n\n const styles = useComponentStyles();\n\n const y = useTransform(mv, (latest) => {\n const placeValue = latest % 10;\n const offset = (10 + number - placeValue) % 10;\n let memo = offset * height;\n if (offset > 5) {\n memo -= 10 * height;\n }\n return memo;\n });\n\n return (\n <motion.span data-slot=\"counter-number\" className={styles.number} style={{ y: y }}>\n {number}\n </motion.span>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('drawer');\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst sideToSwipe: Record<Side, DrawerPrimitive.Root.Props['swipeDirection']> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ninterface Properties<Payload = unknown> extends DrawerPrimitive.Root.Props<Payload>, ComponentStylesProps<'drawer'> {\n side?: Side;\n}\n\nexport function Drawer<Payload = unknown>(properties: Properties<Payload>) {\n const { classNames, side = 'right', swipeDirection, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} side={side}>\n <DrawerPrimitive.Root swipeDirection={swipeDirection ?? sideToSwipe[side]} {...props} />\n </ComponentStylesProvider>\n );\n}\n\nexport const DrawerCreateHandle = DrawerPrimitive.createHandle;\n\nexport function DrawerTrigger(properties: DrawerPrimitive.Trigger.Props) {\n return (\n <DrawerPrimitive.Trigger\n data-slot=\"drawer-trigger\"\n {...properties}\n />\n );\n}\n\nexport function DrawerHandle(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"drawer-handle\"\n className={cn(styles.handle, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerClose(properties: DrawerPrimitive.Close.Props) {\n return (\n <DrawerPrimitive.Close\n data-slot=\"drawer-close\"\n {...properties}\n />\n );\n}\n\ninterface DrawerPopupProperties extends DrawerPrimitive.Popup.Props {\n backdrop?: boolean;\n container?: DrawerPrimitive.Portal.Props['container'];\n}\n\nexport function DrawerPopup(properties: DrawerPopupProperties) {\n const { children, className, backdrop = true, container, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Portal container={container}>\n {backdrop && (\n <DrawerPrimitive.Backdrop\n data-slot=\"drawer-backdrop\"\n className={styles.backdrop}\n />\n )}\n\n <DrawerPrimitive.Viewport\n data-slot=\"drawer-viewport\"\n data-no-backdrop={!backdrop || undefined}\n className={styles.viewport}\n >\n <DrawerPrimitive.Popup\n data-slot=\"drawer-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n {children}\n </DrawerPrimitive.Popup>\n </DrawerPrimitive.Viewport>\n </DrawerPrimitive.Portal>\n );\n}\n\nexport function DrawerContent(properties: DrawerPrimitive.Content.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerFooter(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(styles.footer, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerTitle(properties: DrawerPrimitive.Title.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function DrawerDescription(properties: DrawerPrimitive.Description.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('empty');\n\ntype Properties = RootProperties & ComponentStylesProps<'empty'>;\n\nexport function Empty(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <EmptyRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction EmptyRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyMedia(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-media\"\n className={cn(styles.media, className)}\n {...props}\n />\n );\n}\n\ninterface EmptyIconProperties extends ComponentProps<'div'> {\n icon?: CuratedIcons;\n offset?: number;\n rotate?: number;\n}\n\nexport function EmptyIcon(properties: EmptyIconProperties) {\n const { className, icon = 'favorite', offset = 10, rotate = 15, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-icon\"\n className={styles.iconWrapper}\n {...props}\n >\n <div\n aria-hidden\n className={cn(styles.iconShadow, className)}\n style={{ rotate: -rotate + 'deg', translate: -offset + 'px' }}\n >\n <Icon icon={icon} />\n </div>\n\n <div\n aria-hidden\n className={cn(styles.iconShadow, className)}\n style={{ rotate: rotate + 'deg', translate: offset * 1.5 + 'px' }}\n >\n <Icon icon={icon} />\n </div>\n\n <div className={cn(styles.icon, className)}>\n <Icon icon={icon} />\n </div>\n </div>\n );\n}\n\nexport function EmptyTitle(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyDescription(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n\nexport function EmptyContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Fieldset as FieldsetPrimitive } from '@base-ui/react/fieldset';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('fieldSet');\n\ntype Properties = RootProperties & ComponentStylesProps<'fieldSet'>;\n\nexport function Fieldset(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FieldsetRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = FieldsetPrimitive.Root.Props;\n\nfunction FieldsetRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldsetPrimitive.Root\n data-slot=\"fieldset\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function FieldsetLegend(properties: FieldsetPrimitive.Legend.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldsetPrimitive.Legend\n data-slot=\"fieldset-legend\"\n className={cn(styles.legend, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Form as FormPrimitive } from '@base-ui/react/form';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('form');\n\ntype Properties = RootProperties & ComponentStylesProps<'form'>;\n\nexport function Form(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <FormRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = FormPrimitive.Props;\n\nfunction FormRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FormPrimitive\n data-slot=\"form\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Separator } from '..';\n\nimport type { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles, useComponentVariants } = createComponentStyles('group');\n\ntype Properties = RootProperties & ComponentStylesProps<'group'>;\n\nexport function Group(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <GroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction GroupRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const { orientation } = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <div\n role=\"group\"\n data-slot=\"group\"\n data-orientation={orientation}\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\ninterface SeparatorProperties extends Omit<SeparatorPrimitive.Props, 'orientation'> {\n className?: string;\n}\n\nexport function GroupSeparator(properties: SeparatorProperties) {\n const { className, ...props } = properties;\n\n const { orientation } = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <Separator\n data-slot=\"separator\"\n className={cn(styles.separator, className)}\n orientation={orientation === 'horizontal' ? 'vertical' : 'horizontal'}\n {...props}\n />\n );\n}\n\nexport function GroupText(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"group-text\"\n className={cn(styles.text, className)}\n {...props}\n />\n );\n}\n","import { cn, ImagePayload } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('image');\n\ntype Properties = RootProperties & ComponentStylesProps<'image'>;\n\nexport function Image(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ImageRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'div'> {\n src?: ImagePayload | string;\n}\n\nfunction ImageRoot(properties: RootProperties) {\n const { src, className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const resolvedSrc = typeof src === 'object' ? `data:${src.mediaType};base64,${src.base64}` : src;\n\n return (\n <div\n data-slot=\"image\"\n className={cn(styles.root, className)}\n {...props}\n >\n {resolvedSrc\n ? <img data-slot=\"image-img\" className={styles.image} src={resolvedSrc} />\n : <div data-slot=\"image-placeholder\" className={styles.placeholder} />}\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { Input, type InputProperties, TextArea, type TextAreaProperties } from '..';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('inputGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'inputGroup'>;\n\nexport function InputGroup(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <InputGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction InputGroupRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function InputGroupInput(properties: InputProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Input\n data-slot=\"control\"\n className={cn(styles.input, className)}\n variant=\"ghost\"\n unstyled={true}\n {...props}\n />\n );\n}\n\ntype Align = 'inline-start' | 'inline-end' | 'block-start' | 'block-end';\n\ninterface InputGroupAddonProperties extends ComponentProps<'div'> {\n align?: Align;\n}\n\nexport function InputGroupAddon(properties: InputGroupAddonProperties) {\n const { align = 'inline-start', className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(styles.addon, className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) return;\n const parent = e.currentTarget.parentElement;\n (parent?.querySelector('input') ?? parent?.querySelector('textarea'))?.focus();\n }}\n {...props}\n />\n );\n}\n\nexport function InputGroupTextarea(properties: TextAreaProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TextArea\n data-slot=\"control\"\n className={cn(styles.input, className)}\n variant=\"ghost\"\n unstyled={true}\n {...props}\n />\n );\n}\n\nexport function InputGroupText(properties: ComponentProps<'span'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"input-group-text\"\n className={cn(styles.text, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Input as InputPrimitive } from '@base-ui/react/input';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('input');\n\nexport interface InputProperties extends RootProperties, ComponentStylesProps<'input'> {\n unstyled?: boolean;\n}\n\nexport function Input(properties: InputProperties) {\n const { classNames, variant, unstyled, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} unstyled={unstyled}>\n <InputRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = Omit<InputPrimitive.Props, 'size'>;\n\nfunction InputRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <InputPrimitive\n data-slot=\"input\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('label');\n\ntype Properties = RootProperties & ComponentStylesProps<'label'>;\n\nexport function Label(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <LabelRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'label'>;\n\nfunction LabelRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <label\n data-slot=\"label\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Children, ComponentProps, ReactNode, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('masonry');\n\ntype Properties = RootProperties & ComponentStylesProps<'masonry'>;\n\nexport function Masonry(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <MasonryRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'div'> {\n columns?: number;\n}\n\nfunction MasonryRoot(properties: RootProperties) {\n const { columns = 3, children, className, ...props } = properties;\n\n const styles = useComponentStyles();\n const items = Children.toArray(children);\n const measureRef = useRef<HTMLDivElement>(null);\n\n const [distributed, setDistributed] = useState<ReactNode[][] | null>(null);\n\n const distribute = useCallback(() => {\n const container = measureRef.current;\n if (!container) return;\n\n const nodes = Array.from(container.children) as HTMLElement[];\n const heights = Array.from<number>({ length: columns }).fill(0);\n const cols = Array.from<ReactNode[]>({ length: columns }).map(() => [] as ReactNode[]);\n\n nodes.forEach((node, index) => {\n const shortest = heights.indexOf(Math.min(...heights));\n cols[shortest].push(items[index]);\n heights[shortest] += node.offsetHeight;\n });\n\n setDistributed(cols);\n }, [columns, items]);\n\n useLayoutEffect(() => {\n distribute();\n }, [distribute]);\n\n return (\n <>\n {!distributed && (\n <div ref={measureRef} data-slot=\"masonry-measure\" className=\"invisible absolute\">\n {items}\n </div>\n )}\n <div\n data-slot=\"masonry\"\n className={cn(styles.root, className)}\n {...props}\n >\n {(distributed ?? Array.from<ReactNode[]>({ length: columns }).map(() => [])).map((columnItems, index) => (\n <div\n key={index}\n data-slot=\"masonry-column\"\n className={styles.column}\n style={{ flexBasis: `${100 / columns}%` }}\n >\n {columnItems}\n </div>\n ))}\n </div>\n </>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('navigationMenu');\n\ntype Properties = NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align' | 'side' | 'sideOffset' | 'alignOffset'> & ComponentStylesProps<'navigationMenu'>;\n\nexport function NavigationMenu(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <NavigationMenuRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align' | 'side' | 'sideOffset' | 'alignOffset'>;\n\nfunction NavigationMenuRoot(properties: RootProperties) {\n const { align = 'start', side, sideOffset, alignOffset, className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} side={side} sideOffset={sideOffset} alignOffset={alignOffset} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\nexport function NavigationMenuList(properties: ComponentProps<typeof NavigationMenuPrimitive.List>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(styles.list, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuItem(properties: ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(styles.item, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuTrigger(properties: NavigationMenuPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n >\n {children}\n <Icon\n icon=\"chevronDown\"\n className={styles.triggerIcon}\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nexport function NavigationMenuContent(properties: NavigationMenuPrimitive.Content.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuPositioner(properties: NavigationMenuPrimitive.Positioner.Props) {\n const { className, side = 'bottom', sideOffset = 8, align = 'start', alignOffset = 0, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionAvoidance={{ side: 'none' }}\n collisionPadding={{ top: 5, bottom: 5, left: 20, right: 20 }}\n className={cn(styles.positioner, className)}\n {...props}\n >\n <NavigationMenuPrimitive.Popup data-slot=\"navigation-menu-popup\" className={styles.popup}>\n <NavigationMenuPrimitive.Viewport data-slot=\"navigation-menu-viewport\" className={styles.viewport} />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\nexport function NavigationMenuLink(properties: NavigationMenuPrimitive.Link.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(styles.link, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuLinkCard(properties: NavigationMenuPrimitive.Link.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(styles.linkCard, className)}\n {...props}\n />\n );\n}\n\nexport function NavigationMenuIndicator(properties: ComponentProps<typeof NavigationMenuPrimitive.Icon>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={styles.indicatorWrapper}\n {...props}\n >\n <div className={cn(styles.indicator, className)} />\n </NavigationMenuPrimitive.Icon>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { NumberField as NumberFieldPrimitive } from '@base-ui/react/number-field';\nimport { useId } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('numberField');\n\ntype Properties = RootProperties & ComponentStylesProps<'numberField'>;\n\nexport function NumberField(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <NumberFieldRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = NumberFieldPrimitive.Root.Props;\n\nfunction NumberFieldRoot(properties: RootProperties) {\n const { id, className, ...props } = properties;\n\n const generatedId = useId();\n const fieldId = id ?? generatedId;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Root\n id={fieldId}\n data-slot=\"number-field\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function NumberFieldGroup(properties: NumberFieldPrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Group\n data-slot=\"number-field-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function NumberFieldDecrement(properties: NumberFieldPrimitive.Decrement.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Decrement\n data-slot=\"number-field-decrement\"\n className={cn(styles.button, className)}\n {...props}\n >\n <Icon icon=\"remove\" />\n </NumberFieldPrimitive.Decrement>\n );\n}\n\nexport function NumberFieldIncrement(properties: NumberFieldPrimitive.Increment.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.Increment\n data-slot=\"number-field-increment\"\n className={cn(styles.button, className)}\n {...props}\n >\n <Icon icon=\"add\" />\n </NumberFieldPrimitive.Increment>\n );\n}\n\nexport function NumberFieldInput(properties: NumberFieldPrimitive.Input.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <NumberFieldPrimitive.ScrubArea\n direction=\"horizontal\"\n onPointerDown={() => {\n const body = document.body;\n const original = body.requestPointerLock.bind(body);\n body.requestPointerLock = () => Promise.resolve();\n\n window.addEventListener('pointerup', () => {\n body.requestPointerLock = original;\n }, { once: true, capture: true });\n }}\n >\n <NumberFieldPrimitive.Input\n data-slot=\"control\"\n className={cn(styles.input, className)}\n onPointerDown={(event) => {\n if (!event.metaKey) event.stopPropagation();\n }}\n {...props}\n />\n </NumberFieldPrimitive.ScrubArea>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Button, Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('pagination');\n\ntype Properties = RootProperties & ComponentStylesProps<'pagination'>;\n\nexport function Pagination(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PaginationRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'nav'>;\n\nfunction PaginationRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <nav\n data-slot=\"pagination\"\n className={cn(styles.root, className)}\n aria-label=\"pagination\"\n {...props}\n />\n );\n}\n\nexport function PaginationContent(properties: ComponentProps<'ul'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function PaginationItem(properties: ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"pagination-item\"\n {...properties}\n />\n );\n}\n\ninterface LinkProperties extends ComponentProps<typeof Button> {\n isActive?: boolean;\n}\n\nexport function PaginationLink(properties: LinkProperties) {\n const { className, isActive, render, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Button\n data-slot=\"pagination-link\"\n data-active={isActive}\n aria-current={isActive ? 'page' : undefined}\n variant={isActive ? 'default' : 'ghost'}\n render={render ?? <a />}\n className={cn(styles.link, className)}\n {...props}\n />\n );\n}\n\nexport function PaginationPrevious(properties: LinkProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PaginationLink\n className={cn(styles.previousNext, className)}\n aria-label=\"Go to previous page\"\n {...props}\n >\n <Icon icon=\"chevronLeft\" />\n <span data-slot=\"pagination-previous-label\" className={styles.previousNextLabel}>Previous</span>\n </PaginationLink>\n );\n}\n\nexport function PaginationNext(properties: LinkProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PaginationLink\n className={cn(styles.previousNext, className)}\n aria-label=\"Go to next page\"\n {...props}\n >\n <span data-slot=\"pagination-next-label\" className={styles.previousNextLabel}>Next</span>\n <Icon icon=\"chevronRight\" />\n </PaginationLink>\n );\n}\n\nexport function PaginationEllipsis(properties: ComponentProps<'span'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"pagination-ellipsis\"\n className={cn(styles.ellipsis, className)}\n aria-hidden\n {...props}\n >\n <Icon icon=\"moreHorizontal\" />\n </span>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Label, Separator } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('parameter');\n\ntype Properties = ComponentProps<'div'> & ComponentStylesProps<'parameter'>;\n\nexport function Parameter(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ParameterRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction ParameterRoot(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\ninterface LabelProperties extends ComponentProps<'label'> {\n label: string;\n}\n\nexport function ParameterLabel(properties: LabelProperties) {\n const { className, label, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Label\n data-slot=\"parameter-label\"\n className={cn(styles.label, className)}\n {...props}\n >\n {label}\n </Label>\n );\n}\n\ninterface ValueProperties extends ComponentProps<'div'> {\n value: string;\n}\n\nexport function ParameterValue(properties: ValueProperties) {\n const { className, value, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-value\"\n className={cn(styles.value, className)}\n {...props}\n >\n {value}\n </div>\n );\n}\n\ninterface MeasureProperties extends ComponentProps<'div'> {\n measure: string;\n}\n\nexport function ParameterMeasure(properties: MeasureProperties) {\n const { className, measure, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-measure\"\n className={cn(styles.measure, className)}\n {...props}\n >\n {measure}\n </div>\n );\n}\n\nexport function ParameterInput(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-input\"\n className={cn(styles.input, className)}\n {...props}\n />\n );\n}\n\nexport function ParameterRow(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"parameter-row\"\n className={cn(styles.row, className)}\n {...props}\n />\n );\n}\n\nexport function ParameterSeparator(properties: ComponentProps<typeof Separator>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <Separator\n data-slot=\"parameter-separator\"\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('popover');\n\nexport const PopoverCreateHandle = PopoverPrimitive.createHandle;\n\nexport const Popover = PopoverPrimitive.Root;\n\nexport function PopoverTrigger(properties: PopoverPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n return (\n <PopoverPrimitive.Trigger\n data-slot=\"popover-trigger\"\n className={className}\n {...props}\n >\n {children}\n </PopoverPrimitive.Trigger>\n );\n}\n\ntype PopupProperties = PopoverPrimitive.Popup.Props & ComponentStylesProps<'popover'> & PopoverPrimitive.Positioner.Props;\n\nexport function PopoverPopup(properties: PopupProperties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <PopoverPopupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype PopoverPopupRootProperties = PopoverPrimitive.Popup.Props & PopoverPrimitive.Positioner.Props;\n\nfunction PopoverPopupRoot(properties: PopoverPopupRootProperties) {\n const {\n children,\n className,\n side = 'bottom',\n align = 'center',\n sideOffset = 4,\n alignOffset = 0,\n anchor,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n data-slot=\"popover-positioner\"\n className={styles.positioner}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <PopoverPrimitive.Viewport\n data-slot=\"popover-viewport\"\n className={styles.viewport}\n >\n <div className={styles.content}>\n {children}\n </div>\n </PopoverPrimitive.Viewport>\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nexport function PopoverClose(properties: PopoverPrimitive.Close.Props) {\n return (\n <PopoverPrimitive.Close\n data-slot=\"popover-close\"\n {...properties}\n />\n );\n}\n\nexport function PopoverTitle(properties: PopoverPrimitive.Title.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(styles.title, className)}\n {...props}\n />\n );\n}\n\nexport function PopoverDescription(properties: PopoverPrimitive.Description.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(styles.description, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Progress as ProgressPrimitive } from '@base-ui/react/progress';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('progress');\n\ntype Properties = RootProperties & ComponentStylesProps<'progress'>;\n\nexport function Progress(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ProgressRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ProgressPrimitive.Root.Props;\n\nfunction ProgressRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n );\n}\n\nexport function ProgressTrack(properties: ProgressPrimitive.Track.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Track\n data-slot=\"progress-track\"\n className={cn(styles.track, className)}\n {...props}\n />\n );\n}\n\nexport function ProgressIndicator(properties: ProgressPrimitive.Indicator.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(styles.indicator, className)}\n {...props}\n />\n );\n}\n\nexport function ProgressLabel(properties: ProgressPrimitive.Label.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Label\n data-slot=\"progress-label\"\n className={cn(styles.label, className)}\n {...props}\n />\n );\n}\n\nexport function ProgressValue(properties: ProgressPrimitive.Value.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ProgressPrimitive.Value\n data-slot=\"progress-value\"\n className={cn(styles.value, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('scrollArea');\n\ntype Properties = RootProperties & ComponentStylesProps<'scrollArea'>;\n\nexport function ScrollArea(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <ScrollAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ScrollAreaPrimitive.Root.Props {\n scrollFade?: boolean;\n scrollbarGutter?: boolean;\n}\n\nfunction ScrollAreaRoot(properties: RootProperties) {\n const { className, children, scrollFade, scrollbarGutter, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(styles.root, className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n data-scroll-fade={scrollFade || undefined}\n data-scrollbar-gutter={scrollbarGutter || undefined}\n className={styles.viewport}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar orientation=\"vertical\" />\n <ScrollBar orientation=\"horizontal\" />\n <ScrollAreaPrimitive.Corner data-slot=\"scroll-area-corner\" />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nexport function ScrollBar(properties: ScrollAreaPrimitive.Scrollbar.Props) {\n const { className, orientation = 'vertical', ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n className={cn(styles.scrollbar, className)}\n orientation={orientation}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className={styles.thumb}\n />\n </ScrollAreaPrimitive.Scrollbar>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Icon, Separator } from '..';\n\nimport { Select as SelectPrimitive } from '@base-ui/react/select';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('select');\n\ntype Properties<Value, Multiple extends boolean | undefined = false> = RootProperties<Value, Multiple> & ComponentStylesProps<'select'>;\n\nexport function Select<Value, Multiple extends boolean | undefined = false>(properties: Properties<Value, Multiple>) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <SelectRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties<Value, Multiple extends boolean | undefined = false> extends SelectPrimitive.Root.Props<Value, Multiple> {\n disabled?: boolean;\n};\n\nfunction SelectRoot<Value, Multiple extends boolean | undefined = false>(properties: RootProperties<Value, Multiple>) {\n const { disabled = false, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div data-slot=\"select\" data-disabled={disabled || undefined} className={styles.root}>\n <SelectPrimitive.Root disabled={disabled} {...props} />\n </div>\n );\n}\n\nexport function SelectTrigger(properties: SelectPrimitive.Trigger.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(styles.trigger, className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon data-slot=\"select-icon\" className={styles.triggerIcon}>\n <Icon icon=\"chevronDown\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nexport function SelectValue(properties: SelectPrimitive.Value.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(styles.value, className)}\n {...props}\n />\n );\n}\n\ninterface PopupProperties extends SelectPrimitive.Popup.Props {\n side?: SelectPrimitive.Positioner.Props['side'];\n sideOffset?: SelectPrimitive.Positioner.Props['sideOffset'];\n align?: SelectPrimitive.Positioner.Props['align'];\n alignOffset?: SelectPrimitive.Positioner.Props['alignOffset'];\n alignItemWithTrigger?: SelectPrimitive.Positioner.Props['alignItemWithTrigger'];\n anchor?: SelectPrimitive.Positioner.Props['anchor'];\n}\n\nexport function SelectPopup(properties: PopupProperties) {\n const {\n className,\n children,\n side = 'bottom',\n sideOffset = 4,\n align = 'start',\n alignOffset = 0,\n alignItemWithTrigger = true,\n anchor,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n data-slot=\"select-positioner\"\n className={styles.positioner}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n anchor={anchor}\n >\n <SelectPrimitive.Popup\n data-slot=\"select-popup\"\n className={cn(styles.popup, className)}\n {...props}\n >\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-arrow\"\n className={styles.scrollArrow}\n >\n <Icon icon=\"chevronUp\" />\n </SelectPrimitive.ScrollUpArrow>\n <div className={styles.popupInner}>\n <SelectPrimitive.List\n data-slot=\"select-list\"\n className={styles.list}\n >\n {children}\n </SelectPrimitive.List>\n </div>\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-arrow\"\n className={styles.scrollArrow}\n >\n <Icon icon=\"chevronDown\" />\n </SelectPrimitive.ScrollDownArrow>\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nexport function SelectItem(properties: SelectPrimitive.Item.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(styles.item, className)}\n {...props}\n >\n <SelectPrimitive.ItemIndicator className={styles.itemIndicator}>\n <Icon icon=\"check\" />\n </SelectPrimitive.ItemIndicator>\n\n <SelectPrimitive.ItemText className={styles.itemText}>\n {children}\n </SelectPrimitive.ItemText>\n\n </SelectPrimitive.Item>\n );\n}\n\nexport function SelectSeparator(properties: SelectPrimitive.Separator.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n render={<Separator />}\n className={cn(styles.separator, className)}\n {...props}\n />\n );\n}\n\nexport function SelectGroup(properties: SelectPrimitive.Group.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function SelectGroupLabel(properties: SelectPrimitive.GroupLabel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('separator');\n\ntype Properties = RootProperties & ComponentStylesProps<'separator'>;\n\nexport function Separator(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <SeparatorRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = SeparatorPrimitive.Props;\n\nfunction SeparatorRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport {\n ComponentProps,\n createContext,\n ReactElement,\n useContext,\n useState,\n cloneElement,\n isValidElement,\n} from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('sidebar');\n\ninterface ContextProperties {\n open: boolean;\n setOpen: (open: boolean) => void;\n toggle: () => void;\n}\n\nconst Context = createContext<ContextProperties | undefined>(undefined);\n\ninterface Properties extends RootProperties, ComponentStylesProps<'sidebar'> {\n defaultOpen?: boolean;\n}\n\nexport function Sidebar(properties: Properties) {\n const { classNames, defaultOpen = true, ...props } = properties;\n\n const [open, setOpen] = useState(defaultOpen);\n const toggle = () => setOpen(prev => !prev);\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Context.Provider value={{ open: open, setOpen: setOpen, toggle: toggle }}>\n <SidebarRoot {...props} />\n </Context.Provider>\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'aside'>;\n\nfunction SidebarRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n const context = useContext(Context);\n\n if (!context?.open) return null;\n\n return (\n <aside\n data-slot=\"sidebar\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarHeader(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-header\"\n className={cn(styles.header, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-content\"\n className={cn(styles.content, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarFooter(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-footer\"\n className={cn(styles.footer, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroup(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group\"\n className={cn(styles.group, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupLabel(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group-label\"\n className={cn(styles.groupLabel, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupTitle(properties: ComponentProps<'span'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"sidebar-group-title\"\n className={cn(styles.groupTitle, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupAction(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group-action\"\n className={cn(styles.groupAction, className)}\n {...props}\n />\n );\n}\n\nexport function SidebarGroupContent(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"sidebar-group-content\"\n className={cn(styles.groupContent, className)}\n {...props}\n />\n );\n}\n\ninterface ItemProperties extends ComponentProps<'a'> {\n active?: boolean;\n render?: ReactElement;\n}\n\nexport function SidebarItem(properties: ItemProperties) {\n const { className, active = false, render, children, ...props } = properties;\n\n const styles = useComponentStyles();\n const itemClassName = cn(styles.item, className);\n\n if (render && isValidElement(render)) {\n const clonedElement = cloneElement(render as ReactElement<any>, {\n 'data-slot': 'sidebar-item',\n 'data-active': active || undefined,\n 'className': cn(itemClassName, (render as ReactElement<any>).props.className),\n 'children': children,\n ...props,\n });\n\n return clonedElement;\n }\n\n return (\n <a\n data-slot=\"sidebar-item\"\n data-active={active || undefined}\n className={itemClassName}\n {...props}\n >\n {children}\n </a>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('spacer');\n\ntype Properties = RootProperties & ComponentStylesProps<'spacer'>;\n\nexport function Spacer(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <SpacerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction SpacerRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"spacer\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Slider as SliderPrimitive } from '@base-ui/react/slider';\n\nimport { useMemo } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('slider');\n\ntype Properties = RootProperties & ComponentStylesProps<'slider'>;\n\nexport function Slider(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <SliderRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends SliderPrimitive.Root.Props {\n bottomContent?: boolean;\n}\n\nfunction SliderRoot(properties: RootProperties) {\n const {\n className,\n children,\n defaultValue,\n value,\n min = 0,\n max = 100,\n orientation = 'horizontal',\n bottomContent = false,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n\n const _values = useMemo(() => {\n if (value !== undefined) {\n return Array.isArray(value) ? value : [value];\n }\n if (defaultValue !== undefined) {\n return Array.isArray(defaultValue) ? defaultValue : [defaultValue];\n }\n return [min];\n }, [value, defaultValue, min]);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n className={cn(styles.root, className)}\n defaultValue={defaultValue}\n max={max}\n min={min}\n orientation={orientation}\n thumbAlignment=\"edge\"\n value={value}\n {...props}\n >\n\n {!bottomContent && children}\n\n <SliderPrimitive.Control\n data-slot=\"slider-control\"\n className={styles.control}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={styles.track}\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-indicator\"\n className={styles.indicator}\n />\n\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n className={styles.thumb}\n index={index}\n key={String(index)}\n />\n ))}\n </SliderPrimitive.Track>\n\n </SliderPrimitive.Control>\n\n {bottomContent && children}\n\n </SliderPrimitive.Root>\n );\n}\n\ntype TicksProperties = React.ComponentProps<'div'> & {\n min?: number;\n max?: number;\n step?: number;\n skipInterval?: number;\n renderLabel?: (value: number) => React.ReactNode;\n};\n\nexport function SliderTicks(properties: TicksProperties) {\n const {\n className,\n min = 0,\n max = 100,\n step = 1,\n skipInterval = 1,\n renderLabel,\n ...props\n } = properties;\n\n const styles = useComponentStyles();\n const ticks = Array.from({ length: Math.floor((max - min) / step) + 1 }, (_, i) => min + i * step);\n\n return (\n <div\n aria-hidden=\"true\"\n data-slot=\"slider-ticks\"\n className={cn(styles.ticksContainer, className)}\n {...props}\n >\n {ticks.map((value, i) => {\n const isMajor = i % skipInterval === 0;\n\n return (\n <div\n className={styles.tick}\n key={String(value)}\n >\n <div className={styles.tickLine} data-major={isMajor} />\n\n <p className={styles.tickLabel} data-major={isMajor}>\n {renderLabel ? renderLabel(value) : value}\n </p>\n\n </div>\n );\n })}\n </div>\n );\n}\n\nexport function SliderValue(properties: SliderPrimitive.Value.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SliderPrimitive.Value\n data-slot=\"slider-value\"\n className={cn(styles.value, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('spinner');\n\nconst icons = {\n default: 'spinner',\n dots: 'spinnerDots',\n} as const;\n\ntype Properties = RootProperties & ComponentStylesProps<'spinner'>;\n\nexport function Spinner(properties: Properties) {\n const { classNames, spin = true, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} spin={spin}>\n <SpinnerRoot variant={variant} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends ComponentProps<'span'> {\n variant?: keyof typeof icons;\n}\n\nfunction SpinnerRoot(properties: RootProperties) {\n const { className, variant = 'default', ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"spinner\"\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(styles.root, className)}\n {...props}\n >\n <Icon icon={icons[variant]} />\n </span>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('steps');\n\ntype Properties = RootProperties & ComponentStylesProps<'steps'>;\n\nexport function Steps(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <StepsRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'div'>;\n\nfunction StepsRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"steps\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function Step(properties: ComponentProps<'div'>) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <div\n data-slot=\"step\"\n className={cn(styles.step, className)}\n {...props}\n />\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { Switch as SwitchPrimitive } from '@base-ui/react/switch';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('switch');\n\ntype Properties = RootProperties & ComponentStylesProps<'switch'>;\n\nexport function Switch(properties: Properties) {\n const { classNames, orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} orientation={orientation}>\n <SwitchRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties extends SwitchPrimitive.Root.Props {\n checkedIcon?: CuratedIcons;\n uncheckedIcon?: CuratedIcons;\n};\n\nfunction SwitchRoot(properties: RootProperties) {\n const { className, checkedIcon, uncheckedIcon, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(styles.root, className)}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={styles.thumb}\n >\n {checkedIcon && <Icon icon={checkedIcon} className={styles.checkedIcon} />}\n {uncheckedIcon && <Icon icon={uncheckedIcon} className={styles.uncheckedIcon} />}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentType } from 'react';\n\nimport {\n Bouncy, BouncyArc, Cardio, ChaoticOrbit, DotPulse, DotSpinner, DotStream, DotWave,\n Grid, Hatch, Helix, Hourglass, Infinity as InfinityLoader, Jelly, JellyTriangle,\n Leapfrog, LineSpinner, LineWobble, Metronome, Mirage, Miyagi, Momentum,\n NewtonsCradle, Orbit, Ping, Pinwheel, Pulsar, Quantum, Reuleaux, Ring, Ring2,\n Ripples, Spiral, Square, Squircle, Superballs, TailChase, Tailspin, Treadmill,\n Trefoil, Trio, Wobble, Waveform, Zoomies,\n} from 'ldrs/react';\n\nimport 'ldrs/react/Bouncy.css';\nimport 'ldrs/react/BouncyArc.css';\nimport 'ldrs/react/Cardio.css';\nimport 'ldrs/react/ChaoticOrbit.css';\nimport 'ldrs/react/DotPulse.css';\nimport 'ldrs/react/DotSpinner.css';\nimport 'ldrs/react/DotStream.css';\nimport 'ldrs/react/DotWave.css';\nimport 'ldrs/react/Grid.css';\nimport 'ldrs/react/Hatch.css';\nimport 'ldrs/react/Helix.css';\nimport 'ldrs/react/Hourglass.css';\nimport 'ldrs/react/Infinity.css';\nimport 'ldrs/react/Jelly.css';\nimport 'ldrs/react/JellyTriangle.css';\nimport 'ldrs/react/Leapfrog.css';\nimport 'ldrs/react/LineSpinner.css';\nimport 'ldrs/react/LineWobble.css';\nimport 'ldrs/react/Metronome.css';\nimport 'ldrs/react/Mirage.css';\nimport 'ldrs/react/Miyagi.css';\nimport 'ldrs/react/Momentum.css';\nimport 'ldrs/react/NewtonsCradle.css';\nimport 'ldrs/react/Orbit.css';\nimport 'ldrs/react/Ping.css';\nimport 'ldrs/react/Pinwheel.css';\nimport 'ldrs/react/Pulsar.css';\nimport 'ldrs/react/Quantum.css';\nimport 'ldrs/react/Reuleaux.css';\nimport 'ldrs/react/Ring.css';\nimport 'ldrs/react/Ring2.css';\nimport 'ldrs/react/Ripples.css';\nimport 'ldrs/react/Spiral.css';\nimport 'ldrs/react/Square.css';\nimport 'ldrs/react/Squircle.css';\nimport 'ldrs/react/Superballs.css';\nimport 'ldrs/react/TailChase.css';\nimport 'ldrs/react/Tailspin.css';\nimport 'ldrs/react/Treadmill.css';\nimport 'ldrs/react/Trefoil.css';\nimport 'ldrs/react/Trio.css';\nimport 'ldrs/react/Wobble.css';\nimport 'ldrs/react/Waveform.css';\nimport 'ldrs/react/Zoomies.css';\n\nconst loaders: Record<string, ComponentType<any>> = {\n ring: Ring,\n ring2: Ring2,\n tailspin: Tailspin,\n lineSpinner: LineSpinner,\n squircle: Squircle,\n square: Square,\n reuleaux: Reuleaux,\n tailChase: TailChase,\n dotSpinner: DotSpinner,\n spiral: Spiral,\n bouncy: Bouncy,\n treadmill: Treadmill,\n bouncyArc: BouncyArc,\n waveform: Waveform,\n hatch: Hatch,\n hourglass: Hourglass,\n zoomies: Zoomies,\n lineWobble: LineWobble,\n infinity: InfinityLoader,\n trefoil: Trefoil,\n cardio: Cardio,\n helix: Helix,\n grid: Grid,\n quantum: Quantum,\n wobble: Wobble,\n orbit: Orbit,\n chaoticOrbit: ChaoticOrbit,\n superballs: Superballs,\n trio: Trio,\n momentum: Momentum,\n dotWave: DotWave,\n leapfrog: Leapfrog,\n newtonsCradle: NewtonsCradle,\n dotStream: DotStream,\n dotPulse: DotPulse,\n metronome: Metronome,\n jelly: Jelly,\n jellyTriangle: JellyTriangle,\n mirage: Mirage,\n ping: Ping,\n pulsar: Pulsar,\n ripples: Ripples,\n miyagi: Miyagi,\n pinwheel: Pinwheel,\n};\n\nexport type LoaderType =\n | 'ring' | 'ring2' | 'tailspin' | 'lineSpinner' | 'squircle' | 'square'\n | 'reuleaux' | 'tailChase' | 'dotSpinner' | 'spiral' | 'bouncy' | 'treadmill'\n | 'bouncyArc' | 'waveform' | 'hatch' | 'hourglass' | 'zoomies' | 'lineWobble'\n | 'infinity' | 'trefoil' | 'cardio' | 'helix' | 'grid' | 'quantum'\n | 'wobble' | 'orbit' | 'chaoticOrbit' | 'superballs' | 'trio' | 'momentum'\n | 'dotWave' | 'leapfrog' | 'newtonsCradle' | 'dotStream' | 'dotPulse' | 'metronome'\n | 'jelly' | 'jellyTriangle' | 'mirage' | 'ping' | 'pulsar' | 'ripples'\n | 'miyagi' | 'pinwheel';\n\nexport interface LoaderProperties {\n type?: LoaderType;\n size?: number;\n speed?: number;\n stroke?: number;\n strokeLength?: number;\n bgOpacity?: number;\n color?: string;\n className?: string;\n}\n\nexport function Loader(properties: LoaderProperties) {\n const {\n type = 'dotSpinner',\n size = 20,\n speed = 1,\n stroke = 2,\n strokeLength = 0.2,\n bgOpacity = 0.1,\n color = 'white',\n className,\n } = properties;\n\n const Component = loaders[type];\n\n return (\n <div className={cn('flex-col-center', className)} data-slot=\"loader\">\n <Component\n size={size}\n speed={speed}\n color={color}\n stroke={stroke}\n stroke-length={strokeLength}\n bg-opacity={bgOpacity}\n />\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Tabs as TabsPrimitive } from '@base-ui/react/tabs';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tabs');\n\ntype Properties = RootProperties & ComponentStylesProps<'tabs'>;\n\nexport function Tabs(properties: Properties) {\n const { classNames, variant = 'default', orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} orientation={orientation}>\n <TabsRoot orientation={orientation} {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = TabsPrimitive.Root.Props;\n\nfunction TabsRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n\nexport function TabsList(properties: TabsPrimitive.List.Props) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(styles.list, className)}\n {...props}\n >\n {children}\n <TabsPrimitive.Indicator\n data-slot=\"tab-indicator\"\n className={styles.indicator}\n />\n </TabsPrimitive.List>\n );\n}\n\nexport function TabsTab(properties: TabsPrimitive.Tab.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-tab\"\n className={cn(styles.tab, className)}\n {...props}\n />\n );\n}\n\nexport function TabsPanel(properties: TabsPrimitive.Panel.Props) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-panel\"\n className={cn(styles.panel, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('toggle');\n\ntype Properties = RootProperties & ComponentStylesProps<'toggle'>;\n\nexport function Toggle(properties: Properties) {\n const { classNames, variant, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant}>\n <ToggleRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = TogglePrimitive.Props;\n\nfunction ToggleRoot(properties: RootProperties) {\n const { className, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(styles.root, className)}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { Toggle, Separator } from '..';\n\nimport { ComponentProps } from 'react';\nimport { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles, useComponentVariants } = createComponentStyles('toggleGroup');\n\ntype Properties = RootProperties & ComponentStylesProps<'toggleGroup'>;\n\nexport function ToggleGroup(properties: Properties) {\n const { classNames, variant = 'default', orientation = 'horizontal', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} orientation={orientation}>\n <ToggleGroupRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ToggleGroupPrimitive.Props;\n\nfunction ToggleGroupRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const { variant } = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive>\n );\n}\n\nexport function ToggleGroupItem(properties: ComponentProps<typeof Toggle>) {\n const { variant, ...props } = properties;\n\n const variants = useComponentVariants();\n\n return (\n <Toggle\n variant={variant ?? variants.variant}\n {...props}\n />\n );\n}\n\nexport function ToggleGroupSeparator(properties: ComponentProps<typeof Separator>) {\n const { className, orientation, ...props } = properties;\n\n const variants = useComponentVariants();\n const styles = useComponentStyles();\n\n return (\n <Separator\n data-slot=\"separator\"\n className={cn(styles.separator, className)}\n orientation={orientation ?? (variants.orientation === 'horizontal' ? 'vertical' : 'horizontal')}\n {...props}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps, CSSProperties, useEffect, useRef, useState } from 'react';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tableOfContents');\n\nconst CIRCLE_RADIUS = 8;\n\nexport interface TocItemData {\n depth: 2 | 3;\n value: string;\n slug: string;\n step?: number;\n};\n\nexport function useTocHeadings(pathname: string): TocItemData[] {\n const [items, setItems] = useState<TocItemData[]>([]);\n\n useEffect(() => {\n const container = document.querySelector('main');\n\n if (!container) return;\n\n const updateHeadings = () => {\n const headings = container.querySelectorAll('h2, h3');\n\n const toc: TocItemData[] = Array.from(headings)\n .filter(h => h.id)\n .map((heading) => {\n const stepsAncestor = heading.closest('[data-slot=\"steps\"]');\n\n let step: number | undefined;\n\n if (stepsAncestor) {\n const units = Array.from(stepsAncestor.querySelectorAll('[data-slot=\"step\"], h3'))\n .filter(el => el.getAttribute('data-slot') === 'step' || !el.closest('[data-slot=\"step\"]'));\n const unit = heading.closest('[data-slot=\"step\"]') ?? heading;\n const index = units.indexOf(unit);\n\n step = index === -1 ? undefined : index + 1;\n }\n\n return {\n depth: heading.tagName === 'H2' ? 2 : 3,\n value: heading.textContent || '',\n slug: heading.id,\n step: step,\n };\n });\n\n setItems(toc);\n };\n\n const observer = new MutationObserver(updateHeadings);\n\n observer.observe(container, { childList: true, subtree: true });\n\n updateHeadings();\n\n return () => observer.disconnect();\n }, [pathname]);\n\n return items;\n}\n\ntype Properties = RootProperties & ComponentStylesProps<'tableOfContents'>;\n\nexport function TableOfContents(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TableOfContentsRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<'nav'>;\n\nfunction TableOfContentsRoot(properties: RootProperties) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <nav\n data-slot=\"toc\"\n className={cn(styles.root, className)}\n {...props}\n >\n {children}\n </nav>\n );\n}\n\nexport function TableOfContentsHeader(properties: ComponentProps<'span'>) {\n const { className, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <span\n data-slot=\"toc-header\"\n className={cn(styles.header, className)}\n {...props}\n >\n {children}\n </span>\n );\n}\n\ninterface ItemProperties extends ComponentProps<'a'> {\n active?: boolean;\n}\n\nfunction TableOfContentsItem(properties: ItemProperties) {\n const { className, active = false, onClick, children, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <a\n data-slot=\"toc-item\"\n data-active={active}\n className={cn(styles.item, className)}\n onClick={(e) => {\n e.preventDefault();\n\n const target = document.getElementById(props.href?.slice(1) ?? '');\n\n if (!target) return;\n\n let container: HTMLElement | null = target;\n\n while (container && getComputedStyle(container).overflowY !== 'auto') {\n container = container.parentElement;\n }\n\n if (!container) return;\n\n const top = target.getBoundingClientRect().top - container.getBoundingClientRect().top + container.scrollTop - 80;\n\n container.scrollTo({ top: top, behavior: 'smooth' });\n\n onClick?.(e);\n }}\n {...props}\n >\n {children}\n </a>\n );\n}\n\ninterface TocItemGeometry {\n slug: string;\n top: number;\n bottom: number;\n start: number;\n end: number;\n step?: number;\n}\n\ninterface TocSvgData {\n path: string;\n width: number;\n height: number;\n geo: TocItemGeometry[];\n circles: { slug: string; x: number; y: number; step: number; }[];\n}\n\ninterface ThumbProperties extends ComponentProps<'div'> {\n geo: TocItemGeometry[];\n activeItems: string[];\n}\n\nfunction TableOfContentsThumb(properties: ThumbProperties) {\n const { geo, activeItems, className, style, children, ...props } = properties;\n\n const directionRef = useRef<{ startIndex: number; endIndex: number; isUp: boolean; } | null>(null);\n\n let startIndex = -1;\n let endIndex = -1;\n\n for (let i = 0; i < geo.length; i++) {\n if (!activeItems.includes(geo[i].slug)) continue;\n\n if (startIndex === -1) startIndex = i;\n\n endIndex = i;\n }\n\n const vars: Record<string, string> = {\n '--toc-top': '0px',\n '--toc-bottom': '0px',\n '--toc-offset': '0px',\n '--toc-dot-opacity': '0',\n };\n\n if (startIndex !== -1) {\n let isUp = false;\n\n const previous = directionRef.current;\n\n if (previous) {\n isUp = previous.startIndex > startIndex\n || previous.endIndex > endIndex\n || (previous.startIndex === startIndex && previous.endIndex === endIndex && previous.isUp);\n }\n\n directionRef.current = { startIndex: startIndex, endIndex: endIndex, isUp: isUp };\n\n const boundary = geo[isUp ? startIndex : endIndex];\n\n vars['--toc-top'] = `${geo[startIndex].top}px`;\n vars['--toc-bottom'] = `${geo[endIndex].bottom}px`;\n vars['--toc-offset'] = `${isUp ? boundary.start : boundary.end}px`;\n vars['--toc-dot-opacity'] = boundary.step === undefined ? '1' : '0';\n }\n\n return (\n <div\n data-slot=\"toc-thumb\"\n data-hidden={startIndex === -1}\n className={className}\n style={{ ...vars, ...style } as CSSProperties}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport type TocOffsets = Record<2 | 3, number>;\n\ninterface ItemsProperties {\n items: TocItemData[];\n activeSlugs: string[];\n itemOffsets?: TocOffsets;\n lineOffsets?: TocOffsets;\n lineWidth?: number;\n}\n\nexport function TableOfContentsItems(properties: ItemsProperties) {\n const {\n items,\n activeSlugs,\n itemOffsets = { 2: 20, 3: 32 },\n lineOffsets = { 2: 8, 3: 16 },\n lineWidth = 1,\n } = properties;\n\n const styles = useComponentStyles();\n const containerRef = useRef<HTMLDivElement>(null);\n\n const [svg, setSvg] = useState<TocSvgData>();\n\n useEffect(() => {\n const container = containerRef.current;\n\n if (!container) return;\n\n function onResize() {\n if (!container || container.clientHeight === 0) return;\n\n let w = 0;\n let h = 0;\n let d = '';\n\n const geo: TocItemGeometry[] = [];\n const circles: TocSvgData['circles'] = [];\n const xs: number[] = [];\n\n for (const item of items) {\n const element = container.querySelector<HTMLElement>(`a[href=\"#${item.slug}\"]`);\n\n if (!element) continue;\n\n const computed = getComputedStyle(element);\n const x = lineOffsets[item.depth] + lineWidth / 2;\n const top = element.offsetTop + parseFloat(computed.paddingTop);\n const bottom = element.offsetTop + element.clientHeight - parseFloat(computed.paddingBottom);\n\n w = Math.max(x + CIRCLE_RADIUS, w);\n h = Math.max(h, bottom);\n\n if (geo.length === 0) {\n d += `M${x} ${top} L${x} ${bottom}`;\n } else {\n const previous = geo[geo.length - 1];\n const previousX = xs[xs.length - 1];\n\n d += ` C${previousX} ${top - 4} ${x} ${previous.bottom + 4} ${x} ${top} L${x} ${bottom}`;\n }\n\n if (item.step !== undefined) {\n circles.push({ slug: item.slug, x: x, y: (top + bottom) / 2, step: item.step });\n }\n\n geo.push({ slug: item.slug, top: top, bottom: bottom, start: 0, end: 0, step: item.step });\n xs.push(x);\n }\n\n if (geo.length === 0) {\n setSvg(undefined);\n\n return;\n }\n\n const measure = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n\n measure.setAttribute('d', d);\n\n const total = measure.getTotalLength();\n\n for (let i = 0; i < geo.length; i++) {\n let length = i > 0 ? geo[i - 1].end + (geo[i].top - geo[i - 1].bottom) : 0;\n\n while (length < total && measure.getPointAtLength(length).y < geo[i].top) length++;\n\n geo[i].start = length;\n geo[i].end = length + geo[i].bottom - geo[i].top;\n }\n\n setSvg({ path: d, width: w, height: h, geo: geo, circles: circles });\n }\n\n const observer = new ResizeObserver(onResize);\n\n onResize();\n\n observer.observe(container);\n\n return () => observer.disconnect();\n }, [items]);\n\n return (\n <div ref={containerRef} className={styles.items}>\n\n {svg && (\n <svg\n data-slot=\"toc-line\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${svg.width} ${svg.height}`}\n className={styles.line}\n style={{ width: svg.width, height: svg.height }}\n fill=\"none\"\n >\n <path d={svg.path} strokeWidth={lineWidth} className={styles.linePath} />\n {svg.circles.map(circle => (\n <g key={circle.slug} transform={`translate(${circle.x}, ${circle.y})`}>\n <circle r={CIRCLE_RADIUS} className={styles.lineCircle} />\n <text textAnchor=\"middle\" dominantBaseline=\"central\" className={styles.lineNumber}>\n {circle.step}\n </text>\n </g>\n ))}\n </svg>\n )}\n\n {svg && (\n <TableOfContentsThumb\n geo={svg.geo}\n activeItems={activeSlugs}\n className={styles.track}\n style={{ width: svg.width, height: svg.height }}\n >\n <svg\n data-slot=\"toc-indicator\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${svg.width} ${svg.height}`}\n className={styles.indicator}\n style={{\n width: svg.width,\n height: svg.height,\n clipPath: 'polygon(0 var(--toc-top,0), 100% var(--toc-top,0), 100% var(--toc-bottom,0), 0 var(--toc-bottom,0))',\n }}\n fill=\"none\"\n >\n <path d={svg.path} strokeWidth={lineWidth} className={styles.indicatorPath} />\n {svg.circles.map(circle => (\n <g key={circle.slug} transform={`translate(${circle.x}, ${circle.y})`}>\n <circle r={CIRCLE_RADIUS} className={styles.indicatorCircle} />\n <text textAnchor=\"middle\" dominantBaseline=\"central\" className={styles.indicatorNumber}>\n {circle.step}\n </text>\n </g>\n ))}\n </svg>\n\n <div\n data-slot=\"toc-dot\"\n className={styles.dot}\n style={{ offsetPath: `path(\"${svg.path}\")` }}\n />\n </TableOfContentsThumb>\n )}\n\n {items.map(item => (\n <TableOfContentsItem\n key={item.slug}\n href={`#${item.slug}`}\n active={activeSlugs.includes(item.slug)}\n style={{ paddingInlineStart: itemOffsets[item.depth] }}\n >\n {item.value}\n </TableOfContentsItem>\n ))}\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { FieldControl } from '..';\n\nimport TextareaAutosize, { TextareaAutosizeProps } from 'react-textarea-autosize';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('textArea');\n\ntype RootProperties = Omit<TextareaAutosizeProps, 'size'>;\n\nexport interface TextAreaProperties extends RootProperties, ComponentStylesProps<'textArea'> {\n unstyled?: boolean;\n resize?: boolean;\n}\n\nexport function TextArea(properties: TextAreaProperties) {\n const { classNames, variant, unstyled, resize, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames} variant={variant} unstyled={unstyled} resize={resize}>\n <TextAreaRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\nfunction TextAreaRoot(properties: RootProperties) {\n const { className, minRows = 3, ...props } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <FieldControl\n render={\n <TextareaAutosize\n data-slot=\"text-area\"\n className={cn(styles.root, className)}\n minRows={minRows}\n {...props}\n />\n }\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ComponentProps } from 'react';\n\nimport { Image } from './image';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tintImage');\n\ntype Properties = RootProperties & ComponentStylesProps<'tintImage'>;\n\nexport function TintImage(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TintImageRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ntype RootProperties = ComponentProps<typeof Image>;\n\nfunction TintImageRoot(properties: RootProperties) {\n const { src, className, style, ...props } = properties;\n\n const styles = useComponentStyles();\n\n const resolvedSrc = typeof src === 'object' ? `data:${src.mediaType};base64,${src.base64}` : src;\n\n return (\n <div\n data-slot=\"tint-image\"\n className={cn(styles.root, className)}\n style={{\n ...style,\n maskImage: resolvedSrc ? `url(${resolvedSrc})` : undefined,\n maskSize: 'contain',\n maskRepeat: 'no-repeat',\n maskPosition: 'center',\n WebkitMaskImage: resolvedSrc ? `url(${resolvedSrc})` : undefined,\n WebkitMaskSize: 'contain',\n WebkitMaskRepeat: 'no-repeat',\n WebkitMaskPosition: 'center',\n }}\n {...props}\n >\n <Image src={src} className={styles.image} />\n </div>\n );\n}\n","import { cn, CuratedIcons } from '@digo-labs/common';\nimport { Icon } from '..';\n\nimport { Toast } from '@base-ui/react/toast';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('toast');\n\nexport const toastManager = Toast.createToastManager();\n\ntype ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nconst TOAST_ICONS: Partial<Record<ToastVariant, CuratedIcons>> = {\n error: 'error',\n info: 'info',\n loading: 'spinner',\n success: 'success',\n warning: 'warning',\n};\n\ntype ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\ntype SwipeDirection = 'up' | 'down' | 'right' | 'left';\n\ninterface ProviderProperties extends Toast.Provider.Props, ComponentStylesProps<'toast'> {\n position?: ToastPosition;\n}\n\nexport function ToastProvider(properties: ProviderProperties) {\n const { children, classNames, position = 'bottom-right', ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <Toast.Provider toastManager={toastManager} {...props}>\n {children}\n <Toasts position={position} />\n </Toast.Provider>\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n position: ToastPosition;\n}\n\nfunction Toasts(properties: RootProperties) {\n const { position = 'bottom-right' } = properties;\n\n const { toasts } = Toast.useToastManager();\n const styles = useComponentStyles();\n\n function getSwipeDirection(): SwipeDirection[] {\n const isTop = position.startsWith('top');\n\n const swipeDirection: SwipeDirection[] = position.includes('center')\n ? [isTop ? 'up' : 'down']\n : position.includes('left')\n ? ['left', isTop ? 'up' : 'down']\n : ['right', isTop ? 'up' : 'down'];\n\n return swipeDirection;\n }\n\n return (\n <Toast.Portal data-slot=\"toast-portal\">\n <Toast.Viewport\n data-slot=\"toast-viewport\"\n data-position={position}\n className={styles.viewport}\n >\n {toasts.map((toast) => {\n const variant = toast.type as ToastVariant;\n\n return (\n <ComponentStylesProvider key={toast.id} variant={variant}>\n <ToastItem toast={toast} position={position} swipeDirection={getSwipeDirection()} />\n </ComponentStylesProvider>\n );\n })}\n </Toast.Viewport>\n </Toast.Portal>\n );\n}\n\ntype ToastObject = ReturnType<typeof Toast.useToastManager>['toasts'][number];\n\ninterface ToastItemProperties {\n toast: ToastObject;\n position: ToastPosition;\n swipeDirection: SwipeDirection[];\n}\n\nfunction ToastItem(properties: ToastItemProperties) {\n const { toast, position, swipeDirection } = properties;\n\n const styles = useComponentStyles();\n const variant = toast.type as ToastVariant;\n const icon = variant ? TOAST_ICONS[variant] : undefined;\n\n return (\n <Toast.Root\n data-position={position}\n swipeDirection={swipeDirection}\n className={cn(styles.root, styles.toastRoot)}\n toast={toast}\n >\n <Toast.Content className={cn(styles.toastContent, styles.content)}>\n <div className={styles.outerContainer}>\n {icon &&\n <Icon\n data-slot=\"toast-icon\"\n icon={icon}\n className={styles.icon}\n />}\n\n <div className={styles.innerContainer}>\n <Toast.Title\n data-slot=\"toast-title\"\n className={styles.title}\n />\n <Toast.Description\n data-slot=\"toast-description\"\n className={styles.description}\n />\n </div>\n </div>\n\n {\n toast.actionProps &&\n <Toast.Action\n data-slot=\"toast-action\"\n className={styles.action}\n >\n {toast.actionProps.children}\n </Toast.Action>\n }\n </Toast.Content>\n </Toast.Root>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { createContext, useContext, useMemo, type ReactElement, type ReactNode } from 'react';\n\nimport { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';\n\nimport { createComponentStyles, ComponentStylesProps } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('tooltip');\n\nconst Context = createContext<ReturnType<typeof TooltipPrimitive.createHandle> | null>(null);\n\ninterface TooltipPayload extends ComponentStylesProps<'tooltip'> {\n content: ReactNode;\n side?: TooltipPrimitive.Positioner.Props['side'];\n align?: TooltipPrimitive.Positioner.Props['align'];\n sideOffset?: TooltipPrimitive.Positioner.Props['sideOffset'];\n};\n\ninterface ProviderProperties extends ComponentStylesProps<'tooltip'> {\n delay?: number;\n closeDelay?: number;\n timeout?: number;\n children?: ReactNode;\n}\n\nexport function TooltipProvider(properties: ProviderProperties) {\n const { classNames, children, ...props } = properties;\n\n const handle = useMemo(() => TooltipPrimitive.createHandle(), []);\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TooltipPrimitive.Provider {...props}>\n <Context.Provider value={handle}>\n {children}\n <TooltipPrimitive.Root handle={handle}>\n {({ payload }) => {\n if (!payload) return null;\n\n const { content, side, align, sideOffset, classNames } = payload as TooltipPayload;\n\n return (\n <TooltipPopup side={side} align={align} sideOffset={sideOffset} classNames={classNames} content={content}>\n {content}\n </TooltipPopup>\n );\n }}\n\n </TooltipPrimitive.Root>\n </Context.Provider>\n </TooltipPrimitive.Provider>\n </ComponentStylesProvider>\n );\n}\n\ninterface TooltipProperties extends TooltipPayload {\n children: ReactElement;\n}\n\nexport function Tooltip(properties: TooltipProperties) {\n const { content, side, align, sideOffset, classNames, children } = properties;\n\n const handle = useContext(Context);\n\n if (!handle) return;\n\n return (\n <TooltipPrimitive.Trigger\n data-slot=\"tooltip-trigger\"\n handle={handle}\n payload={{ content: content, side: side, align: align, sideOffset: sideOffset, classNames: classNames } satisfies TooltipPayload}\n render={children}\n />\n );\n}\n\ninterface PopupProperties extends TooltipPayload {\n children?: ReactNode;\n}\n\nfunction TooltipPopup(properties: PopupProperties) {\n const {\n side = 'top',\n align = 'center',\n sideOffset = 10,\n classNames,\n children,\n } = properties;\n\n const styles = useComponentStyles();\n\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n data-slot=\"tooltip-positioner\"\n className={cn(styles.positioner, classNames?.positioner)}\n side={side}\n align={align}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-popup\"\n className={cn(styles.popup, classNames?.popup)}\n >\n <TooltipPrimitive.Arrow\n data-slot=\"tooltip-arrow\"\n className={cn(styles.arrow, classNames?.arrow)}\n >\n <svg viewBox=\"0 0 20 10\" className=\"size-full\">\n <path d=\"M0 10 L10 0 L20 10 Z\" className=\"stroke-none\" />\n <path d=\"M0 10 L10 0 L20 10\" className=\"fill-none\" />\n </svg>\n </TooltipPrimitive.Arrow>\n <TooltipPrimitive.Viewport\n data-slot=\"tooltip-viewport\"\n className={cn(styles.viewport, classNames?.viewport)}\n >\n {children}\n </TooltipPrimitive.Viewport>\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from 'react';\n\nimport { type MotionValue, type SpringOptions, useMotionValue, useSpring } from 'motion/react';\n\nexport type CursorSpring = SpringOptions;\n\ninterface ContextProperties {\n x: MotionValue<number>;\n y: MotionValue<number>;\n active: boolean;\n pressed: boolean;\n width: number;\n height: number;\n}\n\nconst Context = createContext<ContextProperties | undefined>(undefined);\n\ninterface Properties {\n children: ReactNode;\n className?: string;\n showNativeCursor?: boolean;\n}\n\nexport function CursorContainer(properties: Properties) {\n const { children, className, showNativeCursor = false } = properties;\n\n const ref = useRef<HTMLDivElement>(null);\n const dimensions = useRef({ width: 0, height: 0 });\n\n const [active, setActive] = useState(false);\n const [pressed, setPressed] = useState(false);\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n\n useEffect(() => {\n function handleMove(event: MouseEvent) {\n const rect = ref.current?.getBoundingClientRect();\n\n if (!rect) return;\n\n x.set(event.clientX - rect.left);\n y.set(event.clientY - rect.top);\n\n dimensions.current = { width: rect.width, height: rect.height };\n }\n\n document.addEventListener('mousemove', handleMove);\n\n return () => document.removeEventListener('mousemove', handleMove);\n }, []);\n\n return (\n <Context.Provider value={{\n x: x, y: y, active: active, pressed: pressed,\n width: dimensions.current.width,\n height: dimensions.current.height,\n }}\n >\n <div\n ref={ref}\n onMouseEnter={() => setActive(true)}\n onMouseDown={() => setPressed(true)}\n onMouseUp={() => setPressed(false)}\n onMouseLeave={() => {\n setActive(false);\n setPressed(false);\n }}\n className={cn('relative overflow-hidden', !showNativeCursor && 'cursor-none', className)}\n >\n {children}\n </div>\n </Context.Provider>\n );\n}\n\nexport function useCursorTracking(spring?: CursorSpring) {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error('useCursorTracking must be used within a CursorContainer');\n }\n\n const springX = useSpring(context.x, spring ?? {});\n const springY = useSpring(context.y, spring ?? {});\n\n return {\n x: spring ? springX : context.x,\n y: spring ? springY : context.y,\n active: context.active,\n pressed: context.pressed,\n width: context.width,\n height: context.height,\n };\n}\n","import { CursorSpring, useCursorTracking, motionTransitionPresets } from '..';\n\nimport { type ReactNode, useState } from 'react';\nimport { motion, useTransform } from 'motion/react';\n\ninterface Properties {\n children: ReactNode;\n radius?: number;\n spring?: CursorSpring;\n}\n\nexport function CursorClipping(properties: Properties) {\n const { children, radius = 60, spring } = properties;\n\n const { x, y, active, pressed, width, height } = useCursorTracking(spring);\n\n const [entered, setEntered] = useState(false);\n\n if (active && !entered) setEntered(true);\n\n const outerLeft = useTransform(x, v => v - radius);\n const outerTop = useTransform(y, v => v - radius);\n const innerLeft = useTransform(x, v => -(v - radius));\n const innerTop = useTransform(y, v => -(v - radius));\n\n const diameter = radius * 2;\n\n if (!entered) return null;\n\n return (\n <motion.div\n initial={{ scale: 0, opacity: 0 }}\n animate={{ scale: pressed ? 1.15 : 1, opacity: 1 }}\n transition={motionTransitionPresets.spring3}\n className=\"pointer-events-none absolute overflow-hidden rounded-full border border-neutral-12\"\n style={{\n left: outerLeft,\n top: outerTop,\n width: diameter,\n height: diameter,\n }}\n >\n <motion.div\n className=\"absolute\"\n style={{\n left: innerLeft,\n top: innerTop,\n width: width,\n height: height,\n }}\n >\n {children}\n </motion.div>\n </motion.div>\n );\n}\n","import { type CursorSpring, useCursorTracking } from '..';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { motion, useMotionValue, useSpring, useTransform } from 'motion/react';\nimport { CommonHelpers } from '@digo-labs/common';\n\nconst SNAP_SPRING: CursorSpring = { stiffness: 400, damping: 40 };\n\ninterface Properties {\n spring?: CursorSpring;\n size?: number;\n offset?: number;\n color?: string;\n lineLength?: number;\n borderWidth?: number;\n}\n\nexport function CursorBracket(properties: Properties) {\n const { spring, size = 12, offset = 4, color = 'currentColor', lineLength = 0.2, borderWidth = 1 } = properties;\n\n const { x, y, active } = useCursorTracking(spring);\n\n const sentinelRef = useRef<HTMLDivElement>(null);\n const wasSnapped = useRef(false);\n\n const [entered, setEntered] = useState(false);\n\n if (active && !entered) setEntered(true);\n\n const rawLeft = useMotionValue(0);\n const rawTop = useMotionValue(0);\n const rawWidth = useMotionValue(size);\n const rawHeight = useMotionValue(size);\n\n const boxLeft = useSpring(rawLeft, SNAP_SPRING);\n const boxTop = useSpring(rawTop, SNAP_SPRING);\n const boxWidth = useSpring(rawWidth, SNAP_SPRING);\n const boxHeight = useSpring(rawHeight, SNAP_SPRING);\n\n const cornerW = useTransform(boxWidth, w => CommonHelpers.clamp(w * lineLength, 6, 30));\n const cornerH = useTransform(boxHeight, h => CommonHelpers.clamp(h * lineLength, 6, 30));\n\n useEffect(() => {\n let requestAnimationFrameId: number;\n\n const update = () => {\n const sentinel = sentinelRef.current;\n\n if (sentinel) {\n const containerRect = sentinel.getBoundingClientRect();\n const cursorX = x.get();\n const cursorY = y.get();\n const clientX = containerRect.left + cursorX;\n const clientY = containerRect.top + cursorY;\n\n const element = document.elementFromPoint(clientX, clientY);\n const target = element?.closest('[data-cursor-target]') as HTMLElement | null;\n\n if (target) {\n const targetRect = target.getBoundingClientRect();\n\n rawLeft.set(targetRect.left - containerRect.left - offset);\n rawTop.set(targetRect.top - containerRect.top - offset);\n rawWidth.set(targetRect.width + offset * 2);\n rawHeight.set(targetRect.height + offset * 2);\n\n wasSnapped.current = true;\n } else if (wasSnapped.current) {\n rawLeft.set(cursorX - size / 2);\n rawTop.set(cursorY - size / 2);\n rawWidth.set(size);\n rawHeight.set(size);\n\n wasSnapped.current = false;\n } else {\n rawLeft.set(cursorX - size / 2);\n rawTop.set(cursorY - size / 2);\n rawWidth.set(size);\n rawHeight.set(size);\n }\n }\n\n requestAnimationFrameId = requestAnimationFrame(update);\n };\n\n requestAnimationFrameId = requestAnimationFrame(update);\n\n return () => cancelAnimationFrame(requestAnimationFrameId);\n }, [x, y, size, offset]);\n\n if (!entered) return null;\n\n return (\n <>\n <div ref={sentinelRef} className=\"pointer-events-none absolute inset-0\" />\n\n <motion.div\n className=\"pointer-events-none absolute\"\n initial={{ opacity: 0 }}\n animate={{ opacity: active ? 1 : 0 }}\n transition={{ duration: 0.15 }}\n style={{\n left: boxLeft,\n top: boxTop,\n width: boxWidth,\n height: boxHeight,\n }}\n >\n <motion.div\n className=\"absolute top-0 left-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderTopWidth: borderWidth, borderLeftWidth: borderWidth }}\n />\n <motion.div\n className=\"absolute top-0 right-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderTopWidth: borderWidth, borderRightWidth: borderWidth }}\n />\n <motion.div\n className=\"absolute bottom-0 left-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderBottomWidth: borderWidth, borderLeftWidth: borderWidth }}\n />\n <motion.div\n className=\"absolute right-0 bottom-0\"\n style={{ width: cornerW, height: cornerH, borderColor: color, borderBottomWidth: borderWidth, borderRightWidth: borderWidth }}\n />\n </motion.div>\n </>\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { type Color, parseColor } from '..';\nimport { useRef, useCallback, useState, useEffect, type ReactNode } from 'react';\n\nfunction buildBoxShadow(glowColor: Color, intensity: number): string {\n const hsl = glowColor.toFormat('hsl');\n const h = hsl.getChannelValue('hue');\n const s = hsl.getChannelValue('saturation');\n const l = hsl.getChannelValue('lightness');\n const base = `${h}deg ${s}% ${l}%`;\n const layers: [number, number, number, number, number, boolean][] = [\n [0, 0, 0, 1, 100, true],\n [0, 0, 1, 0, 60, true],\n [0, 0, 3, 0, 50, true],\n [0, 0, 6, 0, 40, true],\n [0, 0, 15, 0, 30, true],\n [0, 0, 25, 2, 20, true],\n [0, 0, 50, 2, 10, true],\n [0, 0, 1, 0, 60, false],\n [0, 0, 3, 0, 50, false],\n [0, 0, 6, 0, 40, false],\n [0, 0, 15, 0, 30, false],\n [0, 0, 25, 2, 20, false],\n [0, 0, 50, 2, 10, false],\n ];\n return layers.map(([x, y, blur, spread, alpha, inset]) => {\n const a = Math.min(alpha * intensity, 100);\n return `${inset ? 'inset ' : ''}${x}px ${y}px ${blur}px ${spread}px hsl(${base} / ${a}%)`;\n }).join(', ');\n}\n\nfunction easeOutCubic(x: number) {\n return 1 - Math.pow(1 - x, 3);\n}\nfunction easeInCubic(x: number) {\n return x * x * x;\n}\n\ninterface AnimateOptions {\n start?: number; end?: number; duration?: number; delay?: number;\n ease?: (t: number) => number; onUpdate: (v: number) => void; onEnd?: () => void;\n}\n\nfunction animateValue({ start = 0, end = 100, duration = 1000, delay = 0, ease = easeOutCubic, onUpdate, onEnd }: AnimateOptions) {\n const t0 = performance.now() + delay;\n function tick() {\n const elapsed = performance.now() - t0;\n const t = Math.min(elapsed / duration, 1);\n onUpdate(start + (end - start) * ease(t));\n if (t < 1) requestAnimationFrame(tick);\n else if (onEnd) onEnd();\n }\n setTimeout(() => requestAnimationFrame(tick), delay);\n}\n\nconst GRADIENT_POSITIONS = ['80% 55%', '69% 34%', '8% 6%', '41% 38%', '86% 85%', '82% 18%', '51% 4%'];\nconst COLOR_MAP = [0, 1, 2, 0, 1, 2, 1];\n\nfunction buildMeshGradients(colors: Color[]): string[] {\n const gradients: string[] = [];\n for (let i = 0; i < 7; i++) {\n const c = colors[Math.min(COLOR_MAP[i], colors.length - 1)].toString('css');\n gradients.push(`radial-gradient(at ${GRADIENT_POSITIONS[i]}, ${c} 0px, transparent 50%)`);\n }\n gradients.push(`linear-gradient(${colors[0].toString('css')} 0 100%)`);\n return gradients;\n}\n\ninterface BorderGlowClassNames {\n root?: string;\n content?: string;\n}\n\ninterface Properties {\n children?: ReactNode;\n className?: string;\n classNames?: BorderGlowClassNames;\n edgeSensitivity?: number;\n glowColor?: Color;\n backgroundColor?: string;\n borderRadius?: number;\n glowRadius?: number;\n glowIntensity?: number;\n coneSpread?: number;\n animated?: boolean;\n colors?: Color[];\n fillOpacity?: number;\n}\n\nexport function BorderGlow(properties: Properties) {\n const {\n children,\n className = '',\n classNames,\n edgeSensitivity = 30,\n glowColor = parseColor('hsl(40, 80%, 80%)'),\n backgroundColor = 'var(--color-neutral-1)',\n borderRadius = 28,\n glowRadius = 40,\n glowIntensity = 1.0,\n coneSpread = 25,\n animated = false,\n colors = [parseColor('#c084fc'), parseColor('#f472b6'), parseColor('#38bdf8')],\n fillOpacity = 0.5,\n } = properties;\n\n const cardRef = useRef<HTMLDivElement>(null);\n const [isHovered, setIsHovered] = useState(false);\n const [cursorAngle, setCursorAngle] = useState(45);\n const [edgeProximity, setEdgeProximity] = useState(0);\n const [sweepActive, setSweepActive] = useState(false);\n\n const getCenterOfElement = useCallback((el: HTMLElement) => {\n const { width, height } = el.getBoundingClientRect();\n return [width / 2, height / 2];\n }, []);\n\n const getEdgeProximity = useCallback((el: HTMLElement, x: number, y: number) => {\n const [cx, cy] = getCenterOfElement(el);\n const dx = x - cx;\n const dy = y - cy;\n let kx = Infinity;\n let ky = Infinity;\n if (dx !== 0) kx = cx / Math.abs(dx);\n if (dy !== 0) ky = cy / Math.abs(dy);\n return Math.min(Math.max(1 / Math.min(kx, ky), 0), 1);\n }, [getCenterOfElement]);\n\n const getCursorAngle = useCallback((el: HTMLElement, x: number, y: number) => {\n const [cx, cy] = getCenterOfElement(el);\n const dx = x - cx;\n const dy = y - cy;\n if (dx === 0 && dy === 0) return 0;\n const radians = Math.atan2(dy, dx);\n let degrees = radians * (180 / Math.PI) + 90;\n if (degrees < 0) degrees += 360;\n return degrees;\n }, [getCenterOfElement]);\n\n const handlePointerMove = useCallback((e: React.PointerEvent<HTMLDivElement>) => {\n const card = cardRef.current;\n if (!card) return;\n const rect = card.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n setEdgeProximity(getEdgeProximity(card, x, y));\n setCursorAngle(getCursorAngle(card, x, y));\n }, [getEdgeProximity, getCursorAngle]);\n\n useEffect(() => {\n if (!animated) return;\n const angleStart = 110;\n const angleEnd = 465;\n setSweepActive(true);\n setCursorAngle(angleStart);\n\n animateValue({ duration: 500, onUpdate: v => setEdgeProximity(v / 100) });\n animateValue({\n ease: easeInCubic, duration: 1500, end: 50, onUpdate: (v) => {\n setCursorAngle((angleEnd - angleStart) * (v / 100) + angleStart);\n },\n });\n animateValue({\n ease: easeOutCubic, delay: 1500, duration: 2250, start: 50, end: 100, onUpdate: (v) => {\n setCursorAngle((angleEnd - angleStart) * (v / 100) + angleStart);\n },\n });\n animateValue({\n ease: easeInCubic, delay: 2500, duration: 1500, start: 100, end: 0,\n onUpdate: v => setEdgeProximity(v / 100),\n onEnd: () => setSweepActive(false),\n });\n }, [animated]);\n\n const colorSensitivity = edgeSensitivity + 20;\n const isVisible = isHovered || sweepActive;\n const borderOpacity = isVisible\n ? Math.max(0, (edgeProximity * 100 - colorSensitivity) / (100 - colorSensitivity))\n : 0;\n const glowOpacity = isVisible\n ? Math.max(0, (edgeProximity * 100 - edgeSensitivity) / (100 - edgeSensitivity))\n : 0;\n\n const meshGradients = buildMeshGradients(colors);\n const borderBg = meshGradients.map(g => `${g} border-box`);\n const fillBg = meshGradients.map(g => `${g} padding-box`);\n const angleDeg = `${cursorAngle.toFixed(3)}deg`;\n const backgroundCss = backgroundColor;\n\n return (\n <div\n ref={cardRef}\n onPointerMove={handlePointerMove}\n onPointerEnter={() => setIsHovered(true)}\n onPointerLeave={() => setIsHovered(false)}\n className={cn('relative isolate grid', className, classNames?.root)}\n style={{\n background: backgroundCss,\n borderRadius: `${borderRadius}px`,\n transform: 'translate3d(0, 0, 0.01px)',\n }}\n >\n {/* mesh gradient border */}\n <div\n className=\"absolute inset-0 -z-1 rounded-[inherit]\"\n style={{\n border: '1px solid transparent',\n background: [\n `linear-gradient(${backgroundCss} 0 100%) padding-box`,\n 'linear-gradient(rgb(255 255 255 / 0%) 0% 100%) border-box',\n ...borderBg,\n ].join(', '),\n opacity: borderOpacity,\n maskImage: `conic-gradient(from ${angleDeg} at center, black ${coneSpread}%, transparent ${coneSpread + 15}%, transparent ${100 - coneSpread - 15}%, black ${100 - coneSpread}%)`,\n WebkitMaskImage: `conic-gradient(from ${angleDeg} at center, black ${coneSpread}%, transparent ${coneSpread + 15}%, transparent ${100 - coneSpread - 15}%, black ${100 - coneSpread}%)`,\n transition: isVisible ? 'opacity 0.25s ease-out' : 'opacity 0.75s ease-in-out',\n }}\n />\n\n {/* mesh gradient fill near edges */}\n <div\n className=\"absolute inset-0 -z-1 rounded-[inherit]\"\n style={{\n border: '1px solid transparent',\n background: fillBg.join(', '),\n maskImage: [\n 'linear-gradient(to bottom, black, black)',\n 'radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%)',\n 'radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%)',\n `conic-gradient(from ${angleDeg} at center, transparent 5%, black 15%, black 85%, transparent 95%)`,\n ].join(', '),\n WebkitMaskImage: [\n 'linear-gradient(to bottom, black, black)',\n 'radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%)',\n 'radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%)',\n 'radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%)',\n `conic-gradient(from ${angleDeg} at center, transparent 5%, black 15%, black 85%, transparent 95%)`,\n ].join(', '),\n maskComposite: 'subtract, add, add, add, add, add',\n WebkitMaskComposite: 'source-out, source-over, source-over, source-over, source-over, source-over',\n opacity: borderOpacity * fillOpacity,\n mixBlendMode: 'soft-light',\n transition: isVisible ? 'opacity 0.25s ease-out' : 'opacity 0.75s ease-in-out',\n } as React.CSSProperties}\n />\n\n {/* outer glow */}\n <span\n className=\"pointer-events-none absolute z-1 rounded-[inherit]\"\n style={{\n inset: `${-glowRadius}px`,\n maskImage: `conic-gradient(from ${angleDeg} at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%)`,\n WebkitMaskImage: `conic-gradient(from ${angleDeg} at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%)`,\n opacity: glowOpacity,\n mixBlendMode: 'plus-lighter',\n transition: isVisible ? 'opacity 0.25s ease-out' : 'opacity 0.75s ease-in-out',\n } as React.CSSProperties}\n >\n <span\n className=\"absolute rounded-[inherit]\"\n style={{\n inset: `${glowRadius}px`,\n boxShadow: buildBoxShadow(glowColor, glowIntensity),\n }}\n />\n </span>\n\n <div className={cn('relative z-1 flex flex-col overflow-auto', classNames?.content)}>\n {children}\n </div>\n </div>\n );\n};\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties } from 'react';\nimport { motion, Transition } from 'motion/react';\n\nexport type BorderTrailProps = {\n className?: string;\n size?: number;\n transition?: Transition;\n onAnimationComplete?: () => void;\n style?: CSSProperties;\n};\n\nexport function BorderTrail(properties: BorderTrailProps) {\n const {\n className,\n size = 60,\n transition,\n onAnimationComplete,\n style,\n } = properties;\n\n const defaultTransition: Transition = {\n repeat: Infinity,\n duration: 5,\n ease: 'linear',\n };\n\n return (\n <div className=\"pointer-events-none absolute inset-0 rounded-[inherit] border border-transparent mask-[linear-gradient(transparent,transparent),linear-gradient(#000,#000)] mask-intersect [mask-clip:padding-box,border-box]\">\n <motion.div\n className={cn('absolute aspect-square bg-zinc-500', className)}\n style={{\n width: size,\n offsetPath: `rect(0 auto auto 0 round ${size}px)`,\n ...style,\n }}\n animate={{\n offsetDistance: ['0%', '100%'],\n }}\n transition={transition || defaultTransition}\n onAnimationComplete={onAnimationComplete}\n />\n </div>\n );\n}\n","import { useRef, useEffect } from 'react';\nimport { Renderer, Program, Mesh, Triangle, Vec2 } from 'ogl';\nimport { cn } from '@digo-labs/common';\n\nconst vertex = `\nattribute vec2 position;\nvoid main(){gl_Position=vec4(position,0.0,1.0);}\n`;\n\nconst fragment = `\n#ifdef GL_ES\nprecision lowp float;\n#endif\nuniform vec2 uResolution;\nuniform float uTime;\nuniform float uHueShift;\nuniform float uNoise;\nuniform float uScan;\nuniform float uScanFreq;\nuniform float uWarp;\n#define iTime uTime\n#define iResolution uResolution\n\nvec4 buf[8];\nfloat rand(vec2 c){return fract(sin(dot(c,vec2(12.9898,78.233)))*43758.5453);}\n\nmat3 rgb2yiq=mat3(0.299,0.587,0.114,0.596,-0.274,-0.322,0.211,-0.523,0.312);\nmat3 yiq2rgb=mat3(1.0,0.956,0.621,1.0,-0.272,-0.647,1.0,-1.106,1.703);\n\nvec3 hueShiftRGB(vec3 col,float deg){\n vec3 yiq=rgb2yiq*col;\n float rad=radians(deg);\n float cosh=cos(rad),sinh=sin(rad);\n vec3 yiqShift=vec3(yiq.x,yiq.y*cosh-yiq.z*sinh,yiq.y*sinh+yiq.z*cosh);\n return clamp(yiq2rgb*yiqShift,0.0,1.0);\n}\n\nvec4 sigmoid(vec4 x){return 1./(1.+exp(-x));}\n\nvec4 cppn_fn(vec2 coordinate,float in0,float in1,float in2){\n buf[6]=vec4(coordinate.x,coordinate.y,0.3948333106474662+in0,0.36+in1);\n buf[7]=vec4(0.14+in2,sqrt(coordinate.x*coordinate.x+coordinate.y*coordinate.y),0.,0.);\n buf[0]=mat4(vec4(6.5404263,-3.6126034,0.7590882,-1.13613),vec4(2.4582713,3.1660357,1.2219609,0.06276096),vec4(-5.478085,-6.159632,1.8701609,-4.7742867),vec4(6.039214,-5.542865,-0.90925294,3.251348))*buf[6]+mat4(vec4(0.8473259,-5.722911,3.975766,1.6522468),vec4(-0.24321538,0.5839259,-1.7661959,-5.350116),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(0.21808943,1.1243913,-1.7969975,5.0294676);\n buf[1]=mat4(vec4(-3.3522482,-6.0612736,0.55641043,-4.4719114),vec4(0.8631464,1.7432913,5.643898,1.6106541),vec4(2.4941394,-3.5012043,1.7184316,6.357333),vec4(3.310376,8.209261,1.1355612,-1.165539))*buf[6]+mat4(vec4(5.24046,-13.034365,0.009859298,15.870829),vec4(2.987511,3.129433,-0.89023495,-1.6822904),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(-5.9457836,-6.573602,-0.8812491,1.5436668);\n buf[0]=sigmoid(buf[0]);buf[1]=sigmoid(buf[1]);\n buf[2]=mat4(vec4(-15.219568,8.095543,-2.429353,-1.9381982),vec4(-5.951362,4.3115187,2.6393783,1.274315),vec4(-7.3145227,6.7297835,5.2473326,5.9411426),vec4(5.0796127,8.979051,-1.7278991,-1.158976))*buf[6]+mat4(vec4(-11.967154,-11.608155,6.1486754,11.237008),vec4(2.124141,-6.263192,-1.7050359,-0.7021966),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(-4.17164,-3.2281182,-4.576417,-3.6401186);\n buf[3]=mat4(vec4(3.1832156,-13.738922,1.879223,3.233465),vec4(0.64300746,12.768129,1.9141049,0.50990224),vec4(-0.049295485,4.4807224,1.4733979,1.801449),vec4(5.0039253,13.000481,3.3991797,-4.5561905))*buf[6]+mat4(vec4(-0.1285731,7.720628,-3.1425676,4.742367),vec4(0.6393625,3.714393,-0.8108378,-0.39174938),vec4(0.,0.,0.,0.),vec4(0.,0.,0.,0.))*buf[7]+vec4(-1.1811101,-21.621881,0.7851888,1.2329718);\n buf[2]=sigmoid(buf[2]);buf[3]=sigmoid(buf[3]);\n buf[4]=mat4(vec4(5.214916,-7.183024,2.7228765,2.6592617),vec4(-5.601878,-25.3591,4.067988,0.4602802),vec4(-10.57759,24.286327,21.102104,37.546658),vec4(4.3024497,-1.9625226,2.3458803,-1.372816))*buf[0]+mat4(vec4(-17.6526,-10.507558,2.2587414,12.462782),vec4(6.265566,-502.75443,-12.642513,0.9112289),vec4(-10.983244,20.741234,-9.701768,-0.7635988),vec4(5.383626,1.4819539,-4.1911616,-4.8444734))*buf[1]+mat4(vec4(12.785233,-16.345072,-0.39901125,1.7955981),vec4(-30.48365,-1.8345358,1.4542528,-1.1118771),vec4(19.872723,-7.337935,-42.941723,-98.52709),vec4(8.337645,-2.7312303,-2.2927687,-36.142323))*buf[2]+mat4(vec4(-16.298317,3.5471997,-0.44300047,-9.444417),vec4(57.5077,-35.609753,16.163465,-4.1534753),vec4(-0.07470326,-3.8656476,-7.0901804,3.1523974),vec4(-12.559385,-7.077619,1.490437,-0.8211543))*buf[3]+vec4(-7.67914,15.927437,1.3207729,-1.6686112);\n buf[5]=mat4(vec4(-1.4109162,-0.372762,-3.770383,-21.367174),vec4(-6.2103205,-9.35908,0.92529047,8.82561),vec4(11.460242,-22.348068,13.625772,-18.693201),vec4(-0.3429052,-3.9905605,-2.4626114,-0.45033523))*buf[0]+mat4(vec4(7.3481627,-4.3661838,-6.3037653,-3.868115),vec4(1.5462853,6.5488915,1.9701879,-0.58291394),vec4(6.5858274,-2.2180402,3.7127688,-1.3730392),vec4(-5.7973905,10.134961,-2.3395722,-5.965605))*buf[1]+mat4(vec4(-2.5132585,-6.6685553,-1.4029363,-0.16285264),vec4(-0.37908727,0.53738135,4.389061,-1.3024765),vec4(-0.70647055,2.0111287,-5.1659346,-3.728635),vec4(-13.562562,10.487719,-0.9173751,-2.6487076))*buf[2]+mat4(vec4(-8.645013,6.5546675,-6.3944063,-5.5933375),vec4(-0.57783127,-1.077275,36.91025,5.736769),vec4(14.283112,3.7146652,7.1452246,-4.5958776),vec4(2.7192075,3.6021907,-4.366337,-2.3653464))*buf[3]+vec4(-5.9000807,-4.329569,1.2427121,8.59503);\n buf[4]=sigmoid(buf[4]);buf[5]=sigmoid(buf[5]);\n buf[6]=mat4(vec4(-1.61102,0.7970257,1.4675229,0.20917463),vec4(-28.793737,-7.1390953,1.5025433,4.656581),vec4(-10.94861,39.66238,0.74318546,-10.095605),vec4(-0.7229728,-1.5483948,0.7301322,2.1687684))*buf[0]+mat4(vec4(3.2547753,21.489103,-1.0194173,-3.3100595),vec4(-3.7316632,-3.3792162,-7.223193,-0.23685838),vec4(13.1804495,0.7916005,5.338587,5.687114),vec4(-4.167605,-17.798311,-6.815736,-1.6451967))*buf[1]+mat4(vec4(0.604885,-7.800309,-7.213122,-2.741014),vec4(-3.522382,-0.12359311,-0.5258442,0.43852118),vec4(9.6752825,-22.853785,2.062431,0.099892326),vec4(-4.3196306,-17.730087,2.5184598,5.30267))*buf[2]+mat4(vec4(-6.545563,-15.790176,-6.0438633,-5.415399),vec4(-43.591583,28.551912,-16.00161,18.84728),vec4(4.212382,8.394307,3.0958717,8.657522),vec4(-5.0237565,-4.450633,-4.4768,-5.5010443))*buf[3]+mat4(vec4(1.6985557,-67.05806,6.897715,1.9004834),vec4(1.8680354,2.3915145,2.5231109,4.081538),vec4(11.158006,1.7294737,2.0738268,7.386411),vec4(-4.256034,-306.24686,8.258898,-17.132736))*buf[4]+mat4(vec4(1.6889864,-4.5852966,3.8534803,-6.3482175),vec4(1.3543309,-1.2640043,9.932754,2.9079645),vec4(-5.2770967,0.07150358,-0.13962056,3.3269649),vec4(28.34703,-4.918278,6.1044083,4.085355))*buf[5]+vec4(6.6818056,12.522166,-3.7075126,-4.104386);\n buf[7]=mat4(vec4(-8.265602,-4.7027016,5.098234,0.7509808),vec4(8.6507845,-17.15949,16.51939,-8.884479),vec4(-4.036479,-2.3946867,-2.6055532,-1.9866527),vec4(-2.2167742,-1.8135649,-5.9759874,4.8846445))*buf[0]+mat4(vec4(6.7790847,3.5076547,-2.8191125,-2.7028968),vec4(-5.743024,-0.27844876,1.4958696,-5.0517144),vec4(13.122226,15.735168,-2.9397483,-4.101023),vec4(-14.375265,-5.030483,-6.2599335,2.9848232))*buf[1]+mat4(vec4(4.0950394,-0.94011575,-5.674733,4.755022),vec4(4.3809423,4.8310084,1.7425908,-3.437416),vec4(2.117492,0.16342592,-104.56341,16.949184),vec4(-5.22543,-2.994248,3.8350096,-1.9364246))*buf[2]+mat4(vec4(-5.900337,1.7946124,-13.604192,-3.8060522),vec4(6.6583457,31.911177,25.164474,91.81147),vec4(11.840538,4.1503043,-0.7314397,6.768467),vec4(-6.3967767,4.034772,6.1714606,-0.32874924))*buf[3]+mat4(vec4(3.4992442,-196.91893,-8.923708,2.8142626),vec4(3.4806502,-3.1846354,5.1725626,5.1804223),vec4(-2.4009497,15.585794,1.2863957,2.0252278),vec4(-71.25271,-62.441242,-8.138444,0.50670296))*buf[4]+mat4(vec4(-12.291733,-11.176166,-7.3474145,4.390294),vec4(10.805477,5.6337385,-0.9385842,-4.7348723),vec4(-12.869276,-7.039391,5.3029537,7.5436664),vec4(1.4593618,8.91898,3.5101583,5.840625))*buf[5]+vec4(2.2415268,-6.705987,-0.98861027,-2.117676);\n buf[6]=sigmoid(buf[6]);buf[7]=sigmoid(buf[7]);\n buf[0]=mat4(vec4(1.6794263,1.3817469,2.9625452,0.),vec4(-1.8834411,-1.4806935,-3.5924516,0.),vec4(-1.3279216,-1.0918057,-2.3124623,0.),vec4(0.2662234,0.23235129,0.44178495,0.))*buf[0]+mat4(vec4(-0.6299101,-0.5945583,-0.9125601,0.),vec4(0.17828953,0.18300213,0.18182953,0.),vec4(-2.96544,-2.5819945,-4.9001055,0.),vec4(1.4195864,1.1868085,2.5176322,0.))*buf[1]+mat4(vec4(-1.2584374,-1.0552157,-2.1688404,0.),vec4(-0.7200217,-0.52666044,-1.438251,0.),vec4(0.15345335,0.15196142,0.272854,0.),vec4(0.945728,0.8861938,1.2766753,0.))*buf[2]+mat4(vec4(-2.4218085,-1.968602,-4.35166,0.),vec4(-22.683098,-18.0544,-41.954372,0.),vec4(0.63792,0.5470648,1.1078634,0.),vec4(-1.5489894,-1.3075932,-2.6444845,0.))*buf[3]+mat4(vec4(-0.49252132,-0.39877754,-0.91366625,0.),vec4(0.95609266,0.7923952,1.640221,0.),vec4(0.30616966,0.15693925,0.8639857,0.),vec4(1.1825981,0.94504964,2.176963,0.))*buf[4]+mat4(vec4(0.35446745,0.3293795,0.59547555,0.),vec4(-0.58784515,-0.48177817,-1.0614829,0.),vec4(2.5271258,1.9991658,4.6846647,0.),vec4(0.13042648,0.08864098,0.30187556,0.))*buf[5]+mat4(vec4(-1.7718065,-1.4033192,-3.3355875,0.),vec4(3.1664357,2.638297,5.378702,0.),vec4(-3.1724713,-2.6107926,-5.549295,0.),vec4(-2.851368,-2.249092,-5.3013067,0.))*buf[6]+mat4(vec4(1.5203838,1.2212278,2.8404984,0.),vec4(1.5210563,1.2651345,2.683903,0.),vec4(2.9789467,2.4364579,5.2347264,0.),vec4(2.2270417,1.8825914,3.8028636,0.))*buf[7]+vec4(-1.5468478,-3.6171484,0.24762098,0.);\n buf[0]=sigmoid(buf[0]);\n return vec4(buf[0].x,buf[0].y,buf[0].z,1.);\n}\n\nvoid mainImage(out vec4 fragColor,in vec2 fragCoord){\n vec2 uv=fragCoord/uResolution.xy*2.-1.;\n uv.y*=-1.;\n uv+=uWarp*vec2(sin(uv.y*6.283+uTime*0.5),cos(uv.x*6.283+uTime*0.5))*0.05;\n fragColor=cppn_fn(uv,0.1*sin(0.3*uTime),0.1*sin(0.69*uTime),0.1*sin(0.44*uTime));\n}\n\nvoid main(){\n vec4 col;mainImage(col,gl_FragCoord.xy);\n col.rgb=hueShiftRGB(col.rgb,uHueShift);\n float scanline_val=sin(gl_FragCoord.y*uScanFreq)*0.5+0.5;\n col.rgb*=1.-(scanline_val*scanline_val)*uScan;\n col.rgb+=(rand(gl_FragCoord.xy+uTime)-0.5)*uNoise;\n gl_FragColor=vec4(clamp(col.rgb,0.0,1.0),1.0);\n}\n`;\n\ninterface Properties {\n hueShift?: number;\n noiseIntensity?: number;\n scanlineIntensity?: number;\n speed?: number;\n scanlineFrequency?: number;\n warpAmount?: number;\n resolutionScale?: number;\n className?: string;\n};\n\nexport function DarkVeil(properties: Properties) {\n const {\n hueShift = 0,\n noiseIntensity = 0,\n scanlineIntensity = 0,\n speed = 0.5,\n scanlineFrequency = 0,\n warpAmount = 0,\n resolutionScale = 1,\n className,\n } = properties;\n\n const ref = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = ref.current as HTMLCanvasElement;\n const parent = canvas.parentElement as HTMLElement;\n\n const renderer = new Renderer({\n dpr: Math.min(window.devicePixelRatio, 2),\n canvas: canvas,\n });\n\n const gl = renderer.gl;\n const geometry = new Triangle(gl);\n\n const program = new Program(gl, {\n vertex: vertex,\n fragment: fragment,\n uniforms: {\n uTime: { value: 0 },\n uResolution: { value: new Vec2() },\n uHueShift: { value: hueShift },\n uNoise: { value: noiseIntensity },\n uScan: { value: scanlineIntensity },\n uScanFreq: { value: scanlineFrequency },\n uWarp: { value: warpAmount },\n },\n });\n\n const mesh = new Mesh(gl, { geometry: geometry, program: program });\n\n const resize = () => {\n const w = parent.clientWidth,\n h = parent.clientHeight;\n renderer.setSize(w * resolutionScale, h * resolutionScale);\n program.uniforms.uResolution.value.set(w, h);\n };\n\n window.addEventListener('resize', resize);\n resize();\n\n const start = performance.now();\n let frame = 0;\n\n const loop = () => {\n program.uniforms.uTime.value = ((performance.now() - start) / 1000) * speed;\n program.uniforms.uHueShift.value = hueShift;\n program.uniforms.uNoise.value = noiseIntensity;\n program.uniforms.uScan.value = scanlineIntensity;\n program.uniforms.uScanFreq.value = scanlineFrequency;\n program.uniforms.uWarp.value = warpAmount;\n renderer.render({ scene: mesh });\n frame = requestAnimationFrame(loop);\n };\n\n loop();\n\n return () => {\n cancelAnimationFrame(frame);\n window.removeEventListener('resize', resize);\n };\n }, [hueShift, noiseIntensity, scanlineIntensity, speed, scanlineFrequency, warpAmount, resolutionScale]);\n return <canvas ref={ref} className={cn('block h-full w-full', className)} />;\n}\n","import { cn } from '@digo-labs/common';\nimport { type Color, parseColor } from '..';\nimport { useEffect, useRef } from 'react';\nimport gsap from 'gsap';\n\nimport {\n Scene,\n OrthographicCamera,\n WebGLRenderer,\n PlaneGeometry,\n Mesh,\n ShaderMaterial,\n Vector2,\n Vector3,\n} from 'three';\n\nconst vertexShader = `\nprecision highp float;\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragmentShader = `\nprecision highp float;\n\nuniform float uProgress;\nuniform vec3 uColor;\nuniform float uNoiseScale;\nuniform float uEdgeSoftness;\nuniform float uAdaptiveSoftness;\nuniform float uDisplacementStrength;\nuniform float uNoiseSpeed;\nuniform float uTime;\nuniform vec2 uResolution;\n\nvec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec2 mod289(vec2 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }\nvec3 permute(vec3 x) { return mod289(((x * 34.0) + 1.0) * x); }\n\nfloat snoise(vec2 v) {\n const vec4 C = vec4(\n 0.211324865405187,\n 0.366025403784439,\n -0.577350269189626,\n 0.024390243902439\n );\n\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n\n vec2 i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n\n i = mod289(i);\n vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));\n\n vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0);\n m = m * m;\n m = m * m;\n\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n\n m *= 1.79284291400159 - 0.85373472095314 * (a0 * a0 + h * h);\n\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n\n return 130.0 * dot(m, g);\n}\n\nfloat fbm(vec2 uv, float time) {\n float timeOffset = time * uNoiseSpeed;\n float value = 0.0;\n\n value += snoise(uv * uNoiseScale * 1.0 + vec2(0.0, timeOffset)) * 0.5;\n value += snoise(uv * uNoiseScale * 2.0 + vec2(17.3, 31.7 + timeOffset)) * 0.25;\n value += snoise(uv * uNoiseScale * 4.0 + vec2(43.1, 7.9 + timeOffset)) * 0.125;\n value += snoise(uv * uNoiseScale * 8.0 + vec2(91.2, 53.4 + timeOffset)) * 0.0625;\n\n return clamp((value / 0.9375) * 0.5 + 0.5, 0.0, 1.0);\n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy / uResolution;\n\n float totalSoftness = uEdgeSoftness + uAdaptiveSoftness;\n float progress = uProgress * (1.0 + totalSoftness * 2.0) - totalSoftness;\n\n float threshold = fbm(uv, uTime);\n\n float edgeProximity = 1.0 - abs(threshold - progress) / (totalSoftness + 0.001);\n edgeProximity = clamp(edgeProximity, 0.0, 1.0);\n\n float displace = uDisplacementStrength * (1.0 + uAdaptiveSoftness * 3.0);\n\n vec2 displacement = vec2(\n snoise(uv * uNoiseScale * 3.0 + vec2(5.2 + uTime * uNoiseSpeed, 1.3)),\n snoise(uv * uNoiseScale * 3.0 + vec2(9.7, 4.1 + uTime * uNoiseSpeed))\n ) * edgeProximity * displace;\n\n vec2 displacedUv = uv + displacement;\n float displacedThreshold = fbm(displacedUv, uTime);\n\n float alpha = 1.0 - smoothstep(\n progress - totalSoftness,\n progress + totalSoftness,\n displacedThreshold\n );\n\n gl_FragColor = vec4(uColor, alpha);\n}\n`;\n\nfunction colorToVec3(color: Color): Vector3 {\n const rgb = color.toFormat('rgb');\n const r = rgb.getChannelValue('red');\n const g = rgb.getChannelValue('green');\n const b = rgb.getChannelValue('blue');\n\n return new Vector3(r / 255, g / 255, b / 255);\n}\n\ninterface Properties {\n dissolve: boolean;\n color?: Color;\n duration?: number;\n easing?: string;\n noiseScale?: number;\n edgeSoftness?: number;\n displacementStrength?: number;\n noiseSpeed?: number;\n onFinish?: () => void;\n className?: string;\n}\n\nexport function DissolveOverlay(properties: Properties) {\n const {\n dissolve,\n color = parseColor('#000000'),\n duration = 1.2,\n easing = 'power2.out',\n noiseScale = 4.0,\n edgeSoftness = 0.1,\n displacementStrength = 0.03,\n noiseSpeed = 1.0,\n onFinish,\n className,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const progressRef = useRef({ value: 1 });\n const tweenRef = useRef<gsap.core.Tween | null>(null);\n const uniformsRef = useRef<Record<string, { value: unknown; }> | null>(null);\n const isTransitioningRef = useRef(false);\n const onFinishRef = useRef(onFinish);\n\n onFinishRef.current = onFinish;\n\n const adaptiveSoftness = Math.min(0.3 / duration, 0.3);\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const scene = new Scene();\n const camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\n camera.position.z = 1;\n\n const renderer = new WebGLRenderer({ alpha: true, premultipliedAlpha: false });\n renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));\n renderer.setClearColor(0x000000, 0);\n renderer.domElement.style.width = '100%';\n renderer.domElement.style.height = '100%';\n containerRef.current.appendChild(renderer.domElement);\n\n const uniforms = {\n uProgress: { value: 1.0 },\n uColor: { value: colorToVec3(color) },\n uNoiseScale: { value: noiseScale },\n uEdgeSoftness: { value: edgeSoftness },\n uAdaptiveSoftness: { value: adaptiveSoftness },\n uDisplacementStrength: { value: displacementStrength },\n uNoiseSpeed: { value: noiseSpeed },\n uTime: { value: 0.0 },\n uResolution: { value: new Vector2(1, 1) },\n };\n\n uniformsRef.current = uniforms;\n\n const material = new ShaderMaterial({\n uniforms: uniforms,\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n transparent: true,\n depthWrite: false,\n });\n\n const geometry = new PlaneGeometry(2, 2);\n const mesh = new Mesh(geometry, material);\n\n scene.add(mesh);\n\n const setSize = () => {\n const el = containerRef.current!;\n const width = el.clientWidth || 1;\n const height = el.clientHeight || 1;\n\n renderer.setSize(width, height, false);\n\n const canvasWidth = renderer.domElement.width;\n const canvasHeight = renderer.domElement.height;\n uniforms.uResolution.value.set(canvasWidth, canvasHeight);\n };\n\n setSize();\n\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(setSize) : null;\n\n if (ro && containerRef.current) {\n ro.observe(containerRef.current);\n }\n\n let rafId: number;\n let lastTime: number = performance.now();\n\n const renderLoop = () => {\n const now = performance.now();\n const delta = (now - lastTime) / 1000;\n lastTime = now;\n\n if (isTransitioningRef.current) {\n uniforms.uTime.value += delta;\n }\n\n uniforms.uProgress.value = progressRef.current.value;\n renderer.render(scene, camera);\n rafId = requestAnimationFrame(renderLoop);\n };\n\n rafId = requestAnimationFrame(renderLoop);\n\n return () => {\n cancelAnimationFrame(rafId);\n ro?.disconnect();\n geometry.dispose();\n material.dispose();\n renderer.dispose();\n if (containerRef.current) {\n containerRef.current.removeChild(renderer.domElement);\n }\n };\n }, []);\n\n useEffect(() => {\n if (!uniformsRef.current) return;\n\n (uniformsRef.current.uColor.value as Vector3).copy(colorToVec3(color));\n\n uniformsRef.current.uNoiseScale.value = noiseScale;\n uniformsRef.current.uEdgeSoftness.value = edgeSoftness;\n uniformsRef.current.uAdaptiveSoftness.value = adaptiveSoftness;\n uniformsRef.current.uDisplacementStrength.value = displacementStrength;\n uniformsRef.current.uNoiseSpeed.value = noiseSpeed;\n }, [color, noiseScale, edgeSoftness, adaptiveSoftness, displacementStrength, noiseSpeed]);\n\n useEffect(() => {\n if (tweenRef.current) {\n tweenRef.current.kill();\n tweenRef.current = null;\n }\n\n isTransitioningRef.current = true;\n\n tweenRef.current = gsap.to(progressRef.current, {\n value: dissolve ? 0 : 1,\n duration: duration,\n ease: easing,\n onComplete: () => {\n isTransitioningRef.current = false;\n onFinishRef.current?.();\n },\n });\n\n return () => {\n if (tweenRef.current) {\n tweenRef.current.kill();\n tweenRef.current = null;\n }\n };\n }, [dissolve, duration, easing]);\n\n return (\n <div\n ref={containerRef}\n className={cn('pointer-events-none absolute inset-0', className)}\n />\n );\n}\n","import { cn, CommonHelpers } from '@digo-labs/common';\n\nimport { useRef, useEffect, useCallback, useMemo, CSSProperties } from 'react';\n\nimport { gsap } from 'gsap';\nimport { InertiaPlugin } from 'gsap/InertiaPlugin';\n\ngsap.registerPlugin(InertiaPlugin);\n\nconst throttle = (func: (...args: any[]) => void, limit: number) => {\n let lastCall = 0;\n return function (this: any, ...args: any[]) {\n const now = performance.now();\n if (now - lastCall >= limit) {\n lastCall = now;\n func.apply(this, args);\n }\n };\n};\n\ninterface Dot {\n cx: number;\n cy: number;\n xOffset: number;\n yOffset: number;\n _inertiaApplied: boolean;\n}\n\nexport interface DotGridProperties {\n dotSize?: number;\n gap?: number;\n baseColor?: string;\n activeColor?: string;\n proximity?: number;\n speedTrigger?: number;\n shockRadius?: number;\n shockStrength?: number;\n maxSpeed?: number;\n resistance?: number;\n returnDuration?: number;\n className?: string;\n style?: CSSProperties;\n onClick?: (x: number, y: number) => void;\n onMove?: (x: number, y: number) => void;\n}\n\nexport function DotGrid(properties: DotGridProperties) {\n const {\n dotSize = 16,\n gap = 32,\n baseColor = '#5227FF',\n activeColor = '#5227FF',\n proximity = 150,\n speedTrigger = 100,\n shockRadius = 250,\n shockStrength = 5,\n maxSpeed = 5000,\n resistance = 750,\n returnDuration = 1.5,\n className = '',\n style,\n onClick,\n onMove,\n } = properties;\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const dotsRef = useRef<Dot[]>([]);\n const pointerRef = useRef({\n x: 0,\n y: 0,\n vx: 0,\n vy: 0,\n speed: 0,\n lastTime: 0,\n lastX: 0,\n lastY: 0,\n });\n\n const baseRgb = useMemo(() => CommonHelpers.hexToRgb(baseColor), [baseColor]);\n const activeRgb = useMemo(() => CommonHelpers.hexToRgb(activeColor), [activeColor]);\n\n const circlePath = useMemo(() => {\n if (typeof window === 'undefined' || !window.Path2D) return null;\n\n const p = new Path2D();\n p.arc(0, 0, dotSize / 2, 0, Math.PI * 2);\n return p;\n }, [dotSize]);\n\n const buildGrid = useCallback(() => {\n const wrap = wrapperRef.current;\n const canvas = canvasRef.current;\n if (!wrap || !canvas) return;\n\n const { width, height } = wrap.getBoundingClientRect();\n const dpr = window.devicePixelRatio || 1;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n const ctx = canvas.getContext('2d');\n if (ctx) ctx.scale(dpr, dpr);\n\n const cols = Math.floor((width + gap) / (dotSize + gap));\n const rows = Math.floor((height + gap) / (dotSize + gap));\n const cell = dotSize + gap;\n\n const gridW = cell * cols - gap;\n const gridH = cell * rows - gap;\n\n const extraX = width - gridW;\n const extraY = height - gridH;\n\n const startX = extraX / 2 + dotSize / 2;\n const startY = extraY / 2 + dotSize / 2;\n\n const dots: Dot[] = [];\n for (let y = 0; y < rows; y++) {\n for (let x = 0; x < cols; x++) {\n const cx = startX + x * cell;\n const cy = startY + y * cell;\n dots.push({ cx: cx, cy: cy, xOffset: 0, yOffset: 0, _inertiaApplied: false });\n }\n }\n dotsRef.current = dots;\n }, [dotSize, gap]);\n\n useEffect(() => {\n if (!circlePath) return;\n\n let rafId: number;\n const proxSq = proximity * proximity;\n\n const draw = () => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n const { x: px, y: py } = pointerRef.current;\n\n for (const dot of dotsRef.current) {\n const ox = dot.cx + dot.xOffset;\n const oy = dot.cy + dot.yOffset;\n const dx = dot.cx - px;\n const dy = dot.cy - py;\n const dsq = dx * dx + dy * dy;\n\n let style = baseColor;\n if (dsq <= proxSq) {\n const dist = Math.sqrt(dsq);\n const t = 1 - dist / proximity;\n const r = Math.round(baseRgb.r + (activeRgb.r - baseRgb.r) * t);\n const g = Math.round(baseRgb.g + (activeRgb.g - baseRgb.g) * t);\n const b = Math.round(baseRgb.b + (activeRgb.b - baseRgb.b) * t);\n style = `rgb(${r},${g},${b})`;\n }\n\n ctx.save();\n ctx.translate(ox, oy);\n ctx.fillStyle = style;\n ctx.fill(circlePath);\n ctx.restore();\n }\n\n rafId = requestAnimationFrame(draw);\n };\n\n draw();\n return () => cancelAnimationFrame(rafId);\n }, [proximity, baseColor, activeRgb, baseRgb, circlePath]);\n\n useEffect(() => {\n buildGrid();\n let ro: ResizeObserver | null = null;\n if ('ResizeObserver' in window) {\n ro = new ResizeObserver(buildGrid);\n if (wrapperRef.current) {\n ro.observe(wrapperRef.current);\n }\n } else {\n (window as Window).addEventListener('resize', buildGrid);\n }\n return () => {\n if (ro) ro.disconnect();\n else window.removeEventListener('resize', buildGrid);\n };\n }, [buildGrid]);\n\n useEffect(() => {\n const throttledMove = throttle(onMoveHandler, 50);\n\n window.addEventListener('mousemove', throttledMove, { passive: true });\n window.addEventListener('click', onClickHandler);\n\n return () => {\n window.removeEventListener('mousemove', throttledMove);\n window.removeEventListener('click', onClickHandler);\n };\n }, [maxSpeed, speedTrigger, proximity, resistance, returnDuration, shockRadius, shockStrength]);\n\n function onMoveHandler(e: MouseEvent) {\n const now = performance.now();\n const pr = pointerRef.current;\n const dt = pr.lastTime ? now - pr.lastTime : 16;\n const dx = e.clientX - pr.lastX;\n const dy = e.clientY - pr.lastY;\n let vx = (dx / dt) * 1000;\n let vy = (dy / dt) * 1000;\n let speed = Math.hypot(vx, vy);\n if (speed > maxSpeed) {\n const scale = maxSpeed / speed;\n vx *= scale;\n vy *= scale;\n speed = maxSpeed;\n }\n pr.lastTime = now;\n pr.lastX = e.clientX;\n pr.lastY = e.clientY;\n pr.vx = vx;\n pr.vy = vy;\n pr.speed = speed;\n\n const rect = canvasRef.current!.getBoundingClientRect();\n pr.x = e.clientX - rect.left;\n pr.y = e.clientY - rect.top;\n\n if (onMove) {\n const normalizedX = pr.x / rect.width;\n const normalizedY = pr.y / rect.height;\n\n onMove(normalizedX, normalizedY);\n }\n\n for (const dot of dotsRef.current) {\n const dist = Math.hypot(dot.cx - pr.x, dot.cy - pr.y);\n if (speed > speedTrigger && dist < proximity && !dot._inertiaApplied) {\n dot._inertiaApplied = true;\n gsap.killTweensOf(dot);\n const pushX = dot.cx - pr.x + vx * 0.005;\n const pushY = dot.cy - pr.y + vy * 0.005;\n gsap.to(dot, {\n inertia: { xOffset: pushX, yOffset: pushY, resistance: resistance },\n onComplete: () => {\n gsap.to(dot, {\n xOffset: 0,\n yOffset: 0,\n duration: returnDuration,\n ease: 'elastic.out(1,0.75)',\n });\n dot._inertiaApplied = false;\n },\n });\n }\n }\n };\n\n function onClickHandler(e: MouseEvent) {\n const rect = canvasRef.current!.getBoundingClientRect();\n const cx = e.clientX - rect.left;\n const cy = e.clientY - rect.top;\n\n if (onClick) {\n const normalizedX = cx / rect.width;\n const normalizedY = cy / rect.height;\n\n onClick(normalizedX, normalizedY);\n }\n\n for (const dot of dotsRef.current) {\n const dist = Math.hypot(dot.cx - cx, dot.cy - cy);\n if (dist < shockRadius && !dot._inertiaApplied) {\n dot._inertiaApplied = true;\n gsap.killTweensOf(dot);\n const falloff = Math.max(0, 1 - dist / shockRadius);\n const pushX = (dot.cx - cx) * shockStrength * falloff;\n const pushY = (dot.cy - cy) * shockStrength * falloff;\n gsap.to(dot, {\n inertia: { xOffset: pushX, yOffset: pushY, resistance: resistance },\n onComplete: () => {\n gsap.to(dot, {\n xOffset: 0,\n yOffset: 0,\n duration: returnDuration,\n ease: 'elastic.out(1,0.75)',\n });\n dot._inertiaApplied = false;\n },\n });\n }\n }\n };\n\n return (\n <section className={cn('relative flex h-full w-full items-center justify-center p-4', className)} style={style}>\n <div ref={wrapperRef} className=\"relative h-full w-full\">\n <canvas ref={canvasRef} className=\"pointer-events-none absolute inset-0 h-full w-full\" />\n </div>\n </section>\n );\n};\n","import { CSSProperties, ReactNode } from 'react';\n\nimport { motion } from 'motion/react';\n\nimport { cn } from '@digo-labs/common';\n\ninterface Properties {\n children: ReactNode;\n className?: string;\n contentClasses?: string;\n cursor?: boolean;\n style?: CSSProperties;\n}\n\nexport function DraggableContainer(properties: Properties) {\n const {\n children,\n className,\n contentClasses,\n style,\n cursor = false,\n } = properties;\n\n return (\n\n <motion.div\n className={cn('relative grid outline-none', cursor && 'cursor-grab active:cursor-grabbing', className)}\n whileDrag={{ scale: 1.0 }}\n whileHover={{ scale: 1.0 }}\n whileTap={{ scale: 1.0 }}\n drag={true}\n dragTransition={{\n bounceStiffness: 300,\n bounceDamping: 10,\n power: 0.3,\n }}\n dragElastic={0.3}\n dragConstraints={{ left: 0, right: 0, top: 0, bottom: 0 }}\n >\n\n <div className={cn('relative z-30 grid', contentClasses)} style={style}>\n {children}\n </div>\n </motion.div>\n\n );\n};\n","import { cn } from '@digo-labs/common';\nimport { Renderer, Program, Mesh, Color as OGLColor, Triangle } from 'ogl';\nimport { type Color, parseColor } from '..';\nimport React, { useEffect, useRef, useMemo, useCallback } from 'react';\n\ntype Vec2 = [number, number];\n\ninterface FaultyTerminalProperties extends React.HTMLAttributes<HTMLDivElement> {\n scale?: number;\n gridMul?: Vec2;\n digitSize?: number;\n timeScale?: number;\n pause?: boolean;\n scanlineIntensity?: number;\n glitchAmount?: number;\n flickerAmount?: number;\n noiseAmp?: number;\n chromaticAberration?: number;\n dither?: number | boolean;\n curvature?: number;\n tint?: Color;\n mouseReact?: boolean;\n mouseStrength?: number;\n dpr?: number;\n pageLoadAnimation?: boolean;\n brightness?: number;\n}\n\nconst vertexShader = `\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = vec4(position, 0.0, 1.0);\n}\n`;\n\nconst fragmentShader = `\nprecision mediump float;\n\nvarying vec2 vUv;\n\nuniform float iTime;\nuniform vec3 iResolution;\nuniform float uScale;\n\nuniform vec2 uGridMul;\nuniform float uDigitSize;\nuniform float uScanlineIntensity;\nuniform float uGlitchAmount;\nuniform float uFlickerAmount;\nuniform float uNoiseAmp;\nuniform float uChromaticAberration;\nuniform float uDither;\nuniform float uCurvature;\nuniform vec3 uTint;\nuniform vec2 uMouse;\nuniform float uMouseStrength;\nuniform float uUseMouse;\nuniform float uPageLoadProgress;\nuniform float uUsePageLoadAnimation;\nuniform float uBrightness;\n\nfloat time;\n\nfloat hash21(vec2 p){\n p = fract(p * 234.56);\n p += dot(p, p + 34.56);\n return fract(p.x * p.y);\n}\n\nfloat noise(vec2 p)\n{\n return sin(p.x * 10.0) * sin(p.y * (3.0 + sin(time * 0.090909))) + 0.2; \n}\n\nmat2 rotate(float angle)\n{\n float c = cos(angle);\n float s = sin(angle);\n return mat2(c, -s, s, c);\n}\n\nfloat fbm(vec2 p)\n{\n p *= 1.1;\n float f = 0.0;\n float amp = 0.5 * uNoiseAmp;\n \n mat2 modify0 = rotate(time * 0.02);\n f += amp * noise(p);\n p = modify0 * p * 2.0;\n amp *= 0.454545;\n \n mat2 modify1 = rotate(time * 0.02);\n f += amp * noise(p);\n p = modify1 * p * 2.0;\n amp *= 0.454545;\n \n mat2 modify2 = rotate(time * 0.08);\n f += amp * noise(p);\n \n return f;\n}\n\nfloat pattern(vec2 p, out vec2 q, out vec2 r) {\n vec2 offset1 = vec2(1.0);\n vec2 offset0 = vec2(0.0);\n mat2 rot01 = rotate(0.1 * time);\n mat2 rot1 = rotate(0.1);\n \n q = vec2(fbm(p + offset1), fbm(rot01 * p + offset1));\n r = vec2(fbm(rot1 * q + offset0), fbm(q + offset0));\n return fbm(p + r);\n}\n\nfloat digit(vec2 p){\n vec2 grid = uGridMul * 15.0;\n vec2 s = floor(p * grid) / grid;\n p = p * grid;\n vec2 q, r;\n float intensity = pattern(s * 0.1, q, r) * 1.3 - 0.03;\n \n if(uUseMouse > 0.5){\n vec2 mouseWorld = uMouse * uScale;\n float distToMouse = distance(s, mouseWorld);\n float mouseInfluence = exp(-distToMouse * 8.0) * uMouseStrength * 10.0;\n intensity += mouseInfluence;\n \n float ripple = sin(distToMouse * 20.0 - iTime * 5.0) * 0.1 * mouseInfluence;\n intensity += ripple;\n }\n \n if(uUsePageLoadAnimation > 0.5){\n float cellRandom = fract(sin(dot(s, vec2(12.9898, 78.233))) * 43758.5453);\n float cellDelay = cellRandom * 0.8;\n float cellProgress = clamp((uPageLoadProgress - cellDelay) / 0.2, 0.0, 1.0);\n \n float fadeAlpha = smoothstep(0.0, 1.0, cellProgress);\n intensity *= fadeAlpha;\n }\n \n p = fract(p);\n p *= uDigitSize;\n \n float px5 = p.x * 5.0;\n float py5 = (1.0 - p.y) * 5.0;\n float x = fract(px5);\n float y = fract(py5);\n \n float i = floor(py5) - 2.0;\n float j = floor(px5) - 2.0;\n float n = i * i + j * j;\n float f = n * 0.0625;\n \n float isOn = step(0.1, intensity - f);\n float brightness = isOn * (0.2 + y * 0.8) * (0.75 + x * 0.25);\n \n return step(0.0, p.x) * step(p.x, 1.0) * step(0.0, p.y) * step(p.y, 1.0) * brightness;\n}\n\nfloat onOff(float a, float b, float c)\n{\n return step(c, sin(iTime + a * cos(iTime * b))) * uFlickerAmount;\n}\n\nfloat displace(vec2 look)\n{\n float y = look.y - mod(iTime * 0.25, 1.0);\n float window = 1.0 / (1.0 + 50.0 * y * y);\n return sin(look.y * 20.0 + iTime) * 0.0125 * onOff(4.0, 2.0, 0.8) * (1.0 + cos(iTime * 60.0)) * window;\n}\n\nvec3 getColor(vec2 p){\n \n float bar = step(mod(p.y + time * 20.0, 1.0), 0.2) * 0.4 + 1.0;\n bar *= uScanlineIntensity;\n \n float displacement = displace(p);\n p.x += displacement;\n\n if (uGlitchAmount != 1.0) {\n float extra = displacement * (uGlitchAmount - 1.0);\n p.x += extra;\n }\n\n float middle = digit(p);\n \n const float off = 0.002;\n float sum = digit(p + vec2(-off, -off)) + digit(p + vec2(0.0, -off)) + digit(p + vec2(off, -off)) +\n digit(p + vec2(-off, 0.0)) + digit(p + vec2(0.0, 0.0)) + digit(p + vec2(off, 0.0)) +\n digit(p + vec2(-off, off)) + digit(p + vec2(0.0, off)) + digit(p + vec2(off, off));\n \n vec3 baseColor = vec3(0.9) * middle + sum * 0.1 * vec3(1.0) * bar;\n return baseColor;\n}\n\nvec2 barrel(vec2 uv){\n vec2 c = uv * 2.0 - 1.0;\n float r2 = dot(c, c);\n c *= 1.0 + uCurvature * r2;\n return c * 0.5 + 0.5;\n}\n\nvoid main() {\n time = iTime * 0.333333;\n vec2 uv = vUv;\n\n if(uCurvature != 0.0){\n uv = barrel(uv);\n }\n \n vec2 p = uv * uScale;\n vec3 col = getColor(p);\n\n if(uChromaticAberration != 0.0){\n vec2 ca = vec2(uChromaticAberration) / iResolution.xy;\n col.r = getColor(p + ca).r;\n col.b = getColor(p - ca).b;\n }\n\n col *= uTint;\n col *= uBrightness;\n\n if(uDither > 0.0){\n float rnd = hash21(gl_FragCoord.xy);\n col += (rnd - 0.5) * (uDither * 0.003922);\n }\n\n gl_FragColor = vec4(col, 1.0);\n}\n`;\n\nfunction colorToRgb(color: Color): [number, number, number] {\n const rgb = color.toFormat('rgb');\n return [\n rgb.getChannelValue('red') / 255,\n rgb.getChannelValue('green') / 255,\n rgb.getChannelValue('blue') / 255,\n ];\n}\n\nexport function FaultyTerminal(properties: FaultyTerminalProperties) {\n const {\n scale = 1,\n gridMul = [2, 1],\n digitSize = 1.5,\n timeScale = 0.3,\n pause = false,\n scanlineIntensity = 0.3,\n glitchAmount = 1,\n flickerAmount = 1,\n noiseAmp = 1,\n chromaticAberration = 0,\n dither = 0,\n curvature = 0.2,\n tint = parseColor('#ffffff'),\n mouseReact = true,\n mouseStrength = 0.2,\n dpr = Math.min(window.devicePixelRatio || 1, 2),\n pageLoadAnimation = true,\n brightness = 1,\n className,\n style,\n ...rest\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const programRef = useRef<Program>(null);\n const rendererRef = useRef<Renderer>(null);\n const mouseRef = useRef({ x: 0.5, y: 0.5 });\n const smoothMouseRef = useRef({ x: 0.5, y: 0.5 });\n const frozenTimeRef = useRef(0);\n const rafRef = useRef<number>(0);\n const loadAnimationStartRef = useRef<number>(0);\n const timeOffsetRef = useRef<number>(Math.random() * 100);\n const pauseRef = useRef(pause);\n const timeScaleRef = useRef(timeScale);\n const mouseReactRef = useRef(mouseReact);\n const pageLoadAnimationRef = useRef(pageLoadAnimation);\n\n pauseRef.current = pause;\n timeScaleRef.current = timeScale;\n mouseReactRef.current = mouseReact;\n pageLoadAnimationRef.current = pageLoadAnimation;\n\n const tintVec = useMemo(() => colorToRgb(tint), [tint]);\n\n const ditherValue = useMemo(() => (typeof dither === 'boolean' ? (dither ? 1 : 0) : dither), [dither]);\n\n const handleMouseMove = useCallback((e: MouseEvent) => {\n const ctn = containerRef.current;\n if (!ctn) return;\n const rect = ctn.getBoundingClientRect();\n const x = (e.clientX - rect.left) / rect.width;\n const y = 1 - (e.clientY - rect.top) / rect.height;\n mouseRef.current = { x: x, y: y };\n }, []);\n\n useEffect(() => {\n const ctn = containerRef.current;\n if (!ctn) return;\n\n const renderer = new Renderer({ dpr: dpr });\n rendererRef.current = renderer;\n const gl = renderer.gl;\n gl.clearColor(0, 0, 0, 1);\n\n const geometry = new Triangle(gl);\n\n const program = new Program(gl, {\n vertex: vertexShader,\n fragment: fragmentShader,\n uniforms: {\n iTime: { value: 0 },\n iResolution: {\n value: new OGLColor(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height),\n },\n uScale: { value: scale },\n uGridMul: { value: new Float32Array(gridMul) },\n uDigitSize: { value: digitSize },\n uScanlineIntensity: { value: scanlineIntensity },\n uGlitchAmount: { value: glitchAmount },\n uFlickerAmount: { value: flickerAmount },\n uNoiseAmp: { value: noiseAmp },\n uChromaticAberration: { value: chromaticAberration },\n uDither: { value: ditherValue },\n uCurvature: { value: curvature },\n uTint: { value: new OGLColor(tintVec[0], tintVec[1], tintVec[2]) },\n uMouse: { value: new Float32Array([0.5, 0.5]) },\n uMouseStrength: { value: mouseStrength },\n uUseMouse: { value: mouseReact ? 1 : 0 },\n uPageLoadProgress: { value: pageLoadAnimation ? 0 : 1 },\n uUsePageLoadAnimation: { value: pageLoadAnimation ? 1 : 0 },\n uBrightness: { value: brightness },\n },\n });\n programRef.current = program;\n\n const mesh = new Mesh(gl, { geometry: geometry, program: program });\n\n function resize() {\n if (!ctn || !renderer) return;\n renderer.setSize(ctn.offsetWidth, ctn.offsetHeight);\n program.uniforms.iResolution.value = new OGLColor(\n gl.canvas.width,\n gl.canvas.height,\n gl.canvas.width / gl.canvas.height,\n );\n }\n\n const resizeObserver = new ResizeObserver(() => resize());\n resizeObserver.observe(ctn);\n resize();\n\n const update = (t: number) => {\n rafRef.current = requestAnimationFrame(update);\n\n if (pageLoadAnimationRef.current && loadAnimationStartRef.current === 0) {\n loadAnimationStartRef.current = t;\n }\n\n if (!pauseRef.current) {\n const elapsed = (t * 0.001 + timeOffsetRef.current) * timeScaleRef.current;\n program.uniforms.iTime.value = elapsed;\n frozenTimeRef.current = elapsed;\n } else {\n program.uniforms.iTime.value = frozenTimeRef.current;\n }\n\n if (pageLoadAnimationRef.current && loadAnimationStartRef.current > 0) {\n const animationDuration = 2000;\n const animationElapsed = t - loadAnimationStartRef.current;\n const progress = Math.min(animationElapsed / animationDuration, 1);\n program.uniforms.uPageLoadProgress.value = progress;\n }\n\n if (mouseReactRef.current) {\n const dampingFactor = 0.08;\n const smoothMouse = smoothMouseRef.current;\n const mouse = mouseRef.current;\n smoothMouse.x += (mouse.x - smoothMouse.x) * dampingFactor;\n smoothMouse.y += (mouse.y - smoothMouse.y) * dampingFactor;\n\n const mouseUniform = program.uniforms.uMouse.value as Float32Array;\n mouseUniform[0] = smoothMouse.x;\n mouseUniform[1] = smoothMouse.y;\n }\n\n renderer.render({ scene: mesh });\n };\n rafRef.current = requestAnimationFrame(update);\n ctn.appendChild(gl.canvas);\n\n ctn.addEventListener('mousemove', handleMouseMove);\n\n return () => {\n cancelAnimationFrame(rafRef.current);\n resizeObserver.disconnect();\n ctn.removeEventListener('mousemove', handleMouseMove);\n if (gl.canvas.parentElement === ctn) ctn.removeChild(gl.canvas);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n loadAnimationStartRef.current = 0;\n timeOffsetRef.current = Math.random() * 100;\n };\n }, [dpr]);\n\n useEffect(() => {\n const u = programRef.current?.uniforms;\n if (!u) return;\n\n u.uScale.value = scale;\n u.uDigitSize.value = digitSize;\n u.uScanlineIntensity.value = scanlineIntensity;\n u.uGlitchAmount.value = glitchAmount;\n u.uFlickerAmount.value = flickerAmount;\n u.uNoiseAmp.value = noiseAmp;\n u.uChromaticAberration.value = chromaticAberration;\n u.uDither.value = ditherValue;\n u.uCurvature.value = curvature;\n u.uMouseStrength.value = mouseStrength;\n u.uUseMouse.value = mouseReact ? 1 : 0;\n u.uBrightness.value = brightness;\n\n const tintUniform = u.uTint.value as OGLColor;\n tintUniform.r = tintVec[0];\n tintUniform.g = tintVec[1];\n tintUniform.b = tintVec[2];\n\n const gridUniform = u.uGridMul.value as Float32Array;\n gridUniform[0] = gridMul[0];\n gridUniform[1] = gridMul[1];\n }, [scale, gridMul, digitSize, scanlineIntensity, glitchAmount, flickerAmount, noiseAmp, chromaticAberration, ditherValue, curvature, tintVec, mouseReact, mouseStrength, brightness]);\n\n return (\n <div ref={containerRef} className={cn('relative h-full w-full overflow-hidden', className)} style={style} {...rest} />\n );\n}\n","import { cn } from '@digo-labs/common';\nimport { useEffect, useRef } from 'react';\n\nimport { Scene, OrthographicCamera, WebGLRenderer, PlaneGeometry, Mesh, ShaderMaterial, Vector3, Vector2, Clock } from 'three';\n\nconst vertexShader = `\nprecision highp float;\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n`;\n\nconst fragmentShader = `\nprecision highp float;\n\nuniform float iTime;\nuniform vec3 iResolution;\nuniform float animationSpeed;\n\nuniform bool enableTop;\nuniform bool enableMiddle;\nuniform bool enableBottom;\n\nuniform int topLineCount;\nuniform int middleLineCount;\nuniform int bottomLineCount;\n\nuniform float topLineDistance;\nuniform float middleLineDistance;\nuniform float bottomLineDistance;\n\nuniform vec3 topWavePosition;\nuniform vec3 middleWavePosition;\nuniform vec3 bottomWavePosition;\n\nuniform vec2 iMouse;\nuniform bool interactive;\nuniform float bendRadius;\nuniform float bendStrength;\nuniform float bendInfluence;\n\nuniform bool parallax;\nuniform float parallaxStrength;\nuniform vec2 parallaxOffset;\n\nuniform vec3 lineGradient[8];\nuniform int lineGradientCount;\n\nconst vec3 BLACK = vec3(0.0);\nconst vec3 PINK = vec3(233.0, 71.0, 245.0) / 255.0;\nconst vec3 BLUE = vec3(47.0, 75.0, 162.0) / 255.0;\n\nmat2 rotate(float r) {\n return mat2(cos(r), sin(r), -sin(r), cos(r));\n}\n\nvec3 background_color(vec2 uv) {\n vec3 col = vec3(0.0);\n\n float y = sin(uv.x - 0.2) * 0.3 - 0.1;\n float m = uv.y - y;\n\n col += mix(BLUE, BLACK, smoothstep(0.0, 1.0, abs(m)));\n col += mix(PINK, BLACK, smoothstep(0.0, 1.0, abs(m - 0.8)));\n return col * 0.5;\n}\n\nvec3 getLineColor(float t, vec3 baseColor) {\n if (lineGradientCount <= 0) {\n return baseColor;\n }\n\n vec3 gradientColor;\n \n if (lineGradientCount == 1) {\n gradientColor = lineGradient[0];\n } else {\n float clampedT = clamp(t, 0.0, 0.9999);\n float scaled = clampedT * float(lineGradientCount - 1);\n int idx = int(floor(scaled));\n float f = fract(scaled);\n int idx2 = min(idx + 1, lineGradientCount - 1);\n\n vec3 c1 = lineGradient[idx];\n vec3 c2 = lineGradient[idx2];\n \n gradientColor = mix(c1, c2, f);\n }\n \n return gradientColor * 0.5;\n}\n\n float wave(vec2 uv, float offset, vec2 screenUv, vec2 mouseUv, bool shouldBend) {\n float time = iTime * animationSpeed;\n\n float x_offset = offset;\n float x_movement = time * 0.1;\n float amp = sin(offset + time * 0.2) * 0.3;\n float y = sin(uv.x + x_offset + x_movement) * amp;\n\n if (shouldBend) {\n vec2 d = screenUv - mouseUv;\n float influence = exp(-dot(d, d) * bendRadius); // radial falloff around cursor\n float bendOffset = (mouseUv.y - screenUv.y) * influence * bendStrength * bendInfluence;\n y += bendOffset;\n }\n\n float m = uv.y - y;\n return 0.0175 / max(abs(m) + 0.01, 1e-3) + 0.01;\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n vec2 baseUv = (2.0 * fragCoord - iResolution.xy) / iResolution.y;\n baseUv.y *= -1.0;\n \n if (parallax) {\n baseUv += parallaxOffset;\n }\n\n vec3 col = vec3(0.0);\n\n vec3 b = lineGradientCount > 0 ? vec3(0.0) : background_color(baseUv);\n\n vec2 mouseUv = vec2(0.0);\n if (interactive) {\n mouseUv = (2.0 * iMouse - iResolution.xy) / iResolution.y;\n mouseUv.y *= -1.0;\n }\n \n if (enableBottom) {\n for (int i = 0; i < bottomLineCount; ++i) {\n float fi = float(i);\n float t = fi / max(float(bottomLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = bottomWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n col += lineCol * wave(\n ruv + vec2(bottomLineDistance * fi + bottomWavePosition.x, bottomWavePosition.y),\n 1.5 + 0.2 * fi,\n baseUv,\n mouseUv,\n interactive\n ) * 0.2;\n }\n }\n\n if (enableMiddle) {\n for (int i = 0; i < middleLineCount; ++i) {\n float fi = float(i);\n float t = fi / max(float(middleLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = middleWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n col += lineCol * wave(\n ruv + vec2(middleLineDistance * fi + middleWavePosition.x, middleWavePosition.y),\n 2.0 + 0.15 * fi,\n baseUv,\n mouseUv,\n interactive\n );\n }\n }\n\n if (enableTop) {\n for (int i = 0; i < topLineCount; ++i) {\n float fi = float(i);\n float t = fi / max(float(topLineCount - 1), 1.0);\n vec3 lineCol = getLineColor(t, b);\n \n float angle = topWavePosition.z * log(length(baseUv) + 1.0);\n vec2 ruv = baseUv * rotate(angle);\n ruv.x *= -1.0;\n col += lineCol * wave(\n ruv + vec2(topLineDistance * fi + topWavePosition.x, topWavePosition.y),\n 1.0 + 0.2 * fi,\n baseUv,\n mouseUv,\n interactive\n ) * 0.1;\n }\n }\n\n fragColor = vec4(col, 1.0);\n}\n\nvoid main() {\n vec4 color = vec4(0.0);\n mainImage(color, gl_FragCoord.xy);\n gl_FragColor = color;\n}\n`;\n\nconst MAX_GRADIENT_STOPS = 8;\n\ntype WavePosition = {\n x: number;\n y: number;\n rotate: number;\n};\n\ntype Properties = {\n linesGradient?: string[];\n enabledWaves?: Array<'top' | 'middle' | 'bottom'>;\n lineCount?: number | number[];\n lineDistance?: number | number[];\n topWavePosition?: WavePosition;\n middleWavePosition?: WavePosition;\n bottomWavePosition?: WavePosition;\n animationSpeed?: number;\n interactive?: boolean;\n bendRadius?: number;\n bendStrength?: number;\n mouseDamping?: number;\n parallax?: boolean;\n parallaxStrength?: number;\n mixBlendMode?: React.CSSProperties['mixBlendMode'];\n className?: string;\n};\n\nexport function FloatingLines(properties: Properties) {\n const {\n linesGradient,\n enabledWaves = ['top', 'middle', 'bottom'],\n lineCount = [6],\n lineDistance = [5],\n topWavePosition,\n middleWavePosition,\n bottomWavePosition = { x: 2.0, y: -0.7, rotate: -1 },\n animationSpeed = 1,\n interactive = true,\n bendRadius = 5.0,\n bendStrength = -0.5,\n mouseDamping = 0.05,\n parallax = true,\n parallaxStrength = 0.2,\n mixBlendMode = 'screen',\n className,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n const targetMouseRef = useRef<Vector2>(new Vector2(-1000, -1000));\n const currentMouseRef = useRef<Vector2>(new Vector2(-1000, -1000));\n const targetInfluenceRef = useRef<number>(0);\n const currentInfluenceRef = useRef<number>(0);\n const targetParallaxRef = useRef<Vector2>(new Vector2(0, 0));\n const currentParallaxRef = useRef<Vector2>(new Vector2(0, 0));\n\n const topLineCount = enabledWaves.includes('top') ? getLineCount('top') : 0;\n const middleLineCount = enabledWaves.includes('middle') ? getLineCount('middle') : 0;\n const bottomLineCount = enabledWaves.includes('bottom') ? getLineCount('bottom') : 0;\n\n const topLineDistance = enabledWaves.includes('top') ? getLineDistance('top') * 0.01 : 0.01;\n const middleLineDistance = enabledWaves.includes('middle') ? getLineDistance('middle') * 0.01 : 0.01;\n const bottomLineDistance = enabledWaves.includes('bottom') ? getLineDistance('bottom') * 0.01 : 0.01;\n\n function getLineCount(waveType: 'top' | 'middle' | 'bottom'): number {\n if (typeof lineCount === 'number') return lineCount;\n if (!enabledWaves.includes(waveType)) return 0;\n const index = enabledWaves.indexOf(waveType);\n return lineCount[index] ?? 6;\n };\n\n function getLineDistance(waveType: 'top' | 'middle' | 'bottom'): number {\n if (typeof lineDistance === 'number') return lineDistance;\n if (!enabledWaves.includes(waveType)) return 0.1;\n const index = enabledWaves.indexOf(waveType);\n return lineDistance[index] ?? 0.1;\n };\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const scene = new Scene();\n\n const camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\n camera.position.z = 1;\n\n const renderer = new WebGLRenderer({ antialias: true, alpha: false });\n renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));\n renderer.domElement.style.width = '100%';\n renderer.domElement.style.height = '100%';\n containerRef.current.appendChild(renderer.domElement);\n\n const uniforms = {\n iTime: { value: 0 },\n iResolution: { value: new Vector3(1, 1, 1) },\n animationSpeed: { value: animationSpeed },\n\n enableTop: { value: enabledWaves.includes('top') },\n enableMiddle: { value: enabledWaves.includes('middle') },\n enableBottom: { value: enabledWaves.includes('bottom') },\n\n topLineCount: { value: topLineCount },\n middleLineCount: { value: middleLineCount },\n bottomLineCount: { value: bottomLineCount },\n\n topLineDistance: { value: topLineDistance },\n middleLineDistance: { value: middleLineDistance },\n bottomLineDistance: { value: bottomLineDistance },\n\n topWavePosition: {\n value: new Vector3(topWavePosition?.x ?? 10.0, topWavePosition?.y ?? 0.5, topWavePosition?.rotate ?? -0.4),\n },\n middleWavePosition: {\n value: new Vector3(\n middleWavePosition?.x ?? 5.0,\n middleWavePosition?.y ?? 0.0,\n middleWavePosition?.rotate ?? 0.2,\n ),\n },\n bottomWavePosition: {\n value: new Vector3(\n bottomWavePosition?.x ?? 2.0,\n bottomWavePosition?.y ?? -0.7,\n bottomWavePosition?.rotate ?? 0.4,\n ),\n },\n\n iMouse: { value: new Vector2(-1000, -1000) },\n interactive: { value: interactive },\n bendRadius: { value: bendRadius },\n bendStrength: { value: bendStrength },\n bendInfluence: { value: 0 },\n\n parallax: { value: parallax },\n parallaxStrength: { value: parallaxStrength },\n parallaxOffset: { value: new Vector2(0, 0) },\n\n lineGradient: {\n value: Array.from({ length: MAX_GRADIENT_STOPS }, () => new Vector3(1, 1, 1)),\n },\n lineGradientCount: { value: 0 },\n };\n\n if (linesGradient && linesGradient.length > 0) {\n const stops = linesGradient.slice(0, MAX_GRADIENT_STOPS);\n uniforms.lineGradientCount.value = stops.length;\n\n stops.forEach((hex, i) => {\n const color = hexToVec3(hex);\n uniforms.lineGradient.value[i].set(color.x, color.y, color.z);\n });\n }\n\n const material = new ShaderMaterial({\n uniforms: uniforms,\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n });\n\n const geometry = new PlaneGeometry(2, 2);\n const mesh = new Mesh(geometry, material);\n scene.add(mesh);\n\n const clock = new Clock();\n\n const setSize = () => {\n const el = containerRef.current!;\n const width = el.clientWidth || 1;\n const height = el.clientHeight || 1;\n\n renderer.setSize(width, height, false);\n\n const canvasWidth = renderer.domElement.width;\n const canvasHeight = renderer.domElement.height;\n uniforms.iResolution.value.set(canvasWidth, canvasHeight, 1);\n };\n\n setSize();\n\n const ro = typeof ResizeObserver !== 'undefined' ? new ResizeObserver(setSize) : null;\n\n if (ro && containerRef.current) {\n ro.observe(containerRef.current);\n }\n\n const handlePointerMove = (event: PointerEvent) => {\n const rect = renderer.domElement.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n const dpr = renderer.getPixelRatio();\n\n targetMouseRef.current.set(x * dpr, (rect.height - y) * dpr);\n targetInfluenceRef.current = 1.0;\n\n if (parallax) {\n const centerX = rect.width / 2;\n const centerY = rect.height / 2;\n const offsetX = (x - centerX) / rect.width;\n const offsetY = -(y - centerY) / rect.height;\n targetParallaxRef.current.set(offsetX * parallaxStrength, offsetY * parallaxStrength);\n }\n };\n\n const handlePointerLeave = () => {\n targetInfluenceRef.current = 0.0;\n };\n\n if (interactive) {\n renderer.domElement.addEventListener('pointermove', handlePointerMove);\n renderer.domElement.addEventListener('pointerleave', handlePointerLeave);\n }\n\n let raf = 0;\n const renderLoop = () => {\n uniforms.iTime.value = clock.getElapsedTime();\n\n if (interactive) {\n currentMouseRef.current.lerp(targetMouseRef.current, mouseDamping);\n uniforms.iMouse.value.copy(currentMouseRef.current);\n\n currentInfluenceRef.current += (targetInfluenceRef.current - currentInfluenceRef.current) * mouseDamping;\n uniforms.bendInfluence.value = currentInfluenceRef.current;\n }\n\n if (parallax) {\n currentParallaxRef.current.lerp(targetParallaxRef.current, mouseDamping);\n uniforms.parallaxOffset.value.copy(currentParallaxRef.current);\n }\n\n renderer.render(scene, camera);\n raf = requestAnimationFrame(renderLoop);\n };\n renderLoop();\n\n return () => {\n cancelAnimationFrame(raf);\n if (ro && containerRef.current) {\n ro.disconnect();\n }\n\n if (interactive) {\n renderer.domElement.removeEventListener('pointermove', handlePointerMove);\n renderer.domElement.removeEventListener('pointerleave', handlePointerLeave);\n }\n\n geometry.dispose();\n material.dispose();\n renderer.dispose();\n if (renderer.domElement.parentElement) {\n renderer.domElement.parentElement.removeChild(renderer.domElement);\n }\n };\n }, [\n linesGradient,\n enabledWaves,\n lineCount,\n lineDistance,\n topWavePosition,\n middleWavePosition,\n bottomWavePosition,\n animationSpeed,\n interactive,\n bendRadius,\n bendStrength,\n mouseDamping,\n parallax,\n parallaxStrength,\n ]);\n\n return (\n <div\n ref={containerRef}\n className={cn('floating-lines-container relative h-full w-full overflow-hidden', className)}\n style={{\n mixBlendMode: mixBlendMode,\n }}\n />\n );\n}\n\nfunction hexToVec3(hex: string): Vector3 {\n let value = hex.trim();\n\n if (value.startsWith('#')) {\n value = value.slice(1);\n }\n\n let r = 255;\n let g = 255;\n let b = 255;\n\n if (value.length === 3) {\n r = parseInt(value[0] + value[0], 16);\n g = parseInt(value[1] + value[1], 16);\n b = parseInt(value[2] + value[2], 16);\n } else if (value.length === 6) {\n r = parseInt(value.slice(0, 2), 16);\n g = parseInt(value.slice(2, 4), 16);\n b = parseInt(value.slice(4, 6), 16);\n }\n\n return new Vector3(r / 255, g / 255, b / 255);\n}\n","import { ReactNode } from 'react';\n\nimport { cn } from '@digo-labs/common';\n\ninterface Properties {\n borderRadiusPx?: number;\n blurIntensity?: 'sm' | 'md' | 'lg' | 'xl';\n glowIntensity?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n shadowIntensity?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n contentClasses?: string;\n className?: string;\n children: ReactNode;\n onClick?: () => void;\n}\n\nexport function GlassContainer(properties: Properties) {\n const {\n children,\n className,\n contentClasses,\n borderRadiusPx = 32,\n blurIntensity = 'xl',\n glowIntensity = 'sm',\n shadowIntensity = 'md',\n onClick,\n } = properties;\n\n const borderRadius = `${borderRadiusPx}px`;\n\n return (\n <>\n {/* Hidden SVG Filter */}\n <svg className=\"hidden\">\n <defs>\n <filter\n id=\"glass-blur\"\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n filterUnits=\"objectBoundingBox\"\n >\n <feTurbulence\n type=\"fractalNoise\"\n baseFrequency=\"0.003 0.007\"\n numOctaves=\"1\"\n result=\"turbulence\"\n />\n\n <feDisplacementMap\n in=\"SourceGraphic\"\n in2=\"turbulence\"\n scale=\"200\"\n xChannelSelector=\"R\"\n yChannelSelector=\"G\"\n />\n </filter>\n </defs>\n </svg>\n\n <div className={cn('relative grid size-full outline-none', className)} style={{ borderRadius: borderRadius }}>\n\n {/* Bend Layer (Backdrop blur with distortion) */}\n <div className={cn('absolute inset-0 z-0', blurClasses[blurIntensity])} style={{ borderRadius: borderRadius, filter: 'url(#glass-blur)' }} />\n\n {/* Face Layer (Main shadow and glow) */}\n <div className=\"absolute inset-0 z-10\" style={{ borderRadius: borderRadius, boxShadow: glowStyles[glowIntensity] }} />\n\n {/* Edge Layer (Inner highlights) */}\n <div className=\"absolute inset-0 z-20\" style={{ borderRadius: borderRadius, boxShadow: shadowStyles[shadowIntensity] }} />\n\n <div className={cn('relative z-30 grid', contentClasses)}onClick={onClick}>\n {children}\n </div>\n\n </div>\n </>\n );\n};\n\nconst blurClasses = {\n sm: 'backdrop-blur-sm',\n md: 'backdrop-blur-md',\n lg: 'backdrop-blur-lg',\n xl: 'backdrop-blur-xl',\n};\n\nconst shadowStyles = {\n 'none': 'inset 0 0 0 0 rgba(255, 255, 255, 0)',\n 'xs': 'inset 1px 1px 1px 0 rgba(255, 255, 255, 0.3), inset -1px -1px 1px 0 rgba(255, 255, 255, 0.3)',\n 'sm': 'inset 2px 2px 2px 0 rgba(255, 255, 255, 0.35), inset -2px -2px 2px 0 rgba(255, 255, 255, 0.35)',\n 'md': 'inset 3px 3px 3px 0 rgba(255, 255, 255, 0.45), inset -3px -3px 3px 0 rgba(255, 255, 255, 0.45)',\n 'lg': 'inset 4px 4px 4px 0 rgba(255, 255, 255, 0.5), inset -4px -4px 4px 0 rgba(255, 255, 255, 0.5)',\n 'xl': 'inset 6px 6px 6px 0 rgba(255, 255, 255, 0.55), inset -6px -6px 6px 0 rgba(255, 255, 255, 0.55)',\n '2xl': 'inset 8px 8px 8px 0 rgba(255, 255, 255, 0.6), inset -8px -8px 8px 0 rgba(255, 255, 255, 0.6)',\n};\n\nconst glowStyles = {\n 'none': '0 4px 4px rgba(0, 0, 0, 0.05), 0 0 12px rgba(0, 0, 0, 0.05)',\n 'xs': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 16px rgba(255, 255, 255, 0.05)',\n 'sm': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 24px rgba(255, 255, 255, 0.1)',\n 'md': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 32px rgba(255, 255, 255, 0.15)',\n 'lg': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 40px rgba(255, 255, 255, 0.2)',\n 'xl': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 48px rgba(255, 255, 255, 0.25)',\n '2xl': '0 4px 4px rgba(0, 0, 0, 0.15), 0 0 12px rgba(0, 0, 0, 0.08), 0 0 60px rgba(255, 255, 255, 0.3)',\n};\n","import { cn } from '@digo-labs/common';\nimport { type Color, parseColor } from '..';\n\nimport { useEffect, useRef } from 'react';\nimport { Renderer, Program, Mesh, Triangle } from 'ogl';\n\nfunction colorToRgb(color: Color): [number, number, number] {\n const rgb = color.toFormat('rgb');\n return [\n rgb.getChannelValue('red') / 255,\n rgb.getChannelValue('green') / 255,\n rgb.getChannelValue('blue') / 255,\n ];\n}\n\nconst vertex = `#version 300 es\nin vec2 position;\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}\n`;\n\nconst fragment = `#version 300 es\nprecision highp float;\nuniform vec2 iResolution;\nuniform float iTime;\nuniform float uTimeSpeed;\nuniform float uColorBalance;\nuniform float uWarpStrength;\nuniform float uWarpFrequency;\nuniform float uWarpSpeed;\nuniform float uWarpAmplitude;\nuniform float uBlendAngle;\nuniform float uBlendSoftness;\nuniform float uRotationAmount;\nuniform float uNoiseScale;\nuniform float uGrainAmount;\nuniform float uGrainScale;\nuniform float uGrainAnimated;\nuniform float uContrast;\nuniform float uGamma;\nuniform float uSaturation;\nuniform vec2 uCenterOffset;\nuniform float uZoom;\nuniform vec3 uColor1;\nuniform vec3 uColor2;\nuniform vec3 uColor3;\nout vec4 fragColor;\n#define S(a,b,t) smoothstep(a,b,t)\nmat2 Rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);} \nvec2 hash(vec2 p){p=vec2(dot(p,vec2(2127.1,81.17)),dot(p,vec2(1269.5,283.37)));return fract(sin(p)*43758.5453);} \nfloat noise(vec2 p){vec2 i=floor(p),f=fract(p),u=f*f*(3.0-2.0*f);float n=mix(mix(dot(-1.0+2.0*hash(i+vec2(0.0,0.0)),f-vec2(0.0,0.0)),dot(-1.0+2.0*hash(i+vec2(1.0,0.0)),f-vec2(1.0,0.0)),u.x),mix(dot(-1.0+2.0*hash(i+vec2(0.0,1.0)),f-vec2(0.0,1.0)),dot(-1.0+2.0*hash(i+vec2(1.0,1.0)),f-vec2(1.0,1.0)),u.x),u.y);return 0.5+0.5*n;}\nvoid mainImage(out vec4 o, vec2 C){\n float t=iTime*uTimeSpeed;\n vec2 uv=C/iResolution.xy;\n float ratio=iResolution.x/iResolution.y;\n vec2 tuv=uv-0.5+uCenterOffset;\n tuv/=max(uZoom,0.001);\n\n float degree=noise(vec2(t*0.1,tuv.x*tuv.y)*uNoiseScale);\n tuv.y*=1.0/ratio;\n tuv*=Rot(radians((degree-0.5)*uRotationAmount+180.0));\n tuv.y*=ratio;\n\n float frequency=uWarpFrequency;\n float ws=max(uWarpStrength,0.001);\n float amplitude=uWarpAmplitude/ws;\n float warpTime=t*uWarpSpeed;\n tuv.x+=sin(tuv.y*frequency+warpTime)/amplitude;\n tuv.y+=sin(tuv.x*(frequency*1.5)+warpTime)/(amplitude*0.5);\n\n vec3 colLav=uColor1;\n vec3 colOrg=uColor2;\n vec3 colDark=uColor3;\n float b=uColorBalance;\n float s=max(uBlendSoftness,0.0);\n mat2 blendRot=Rot(radians(uBlendAngle));\n float blendX=(tuv*blendRot).x;\n float edge0=-0.3-b-s;\n float edge1=0.2-b+s;\n float v0=0.5-b+s;\n float v1=-0.3-b-s;\n vec3 layer1=mix(colDark,colOrg,S(edge0,edge1,blendX));\n vec3 layer2=mix(colOrg,colLav,S(edge0,edge1,blendX));\n vec3 col=mix(layer1,layer2,S(v0,v1,tuv.y));\n\n vec2 grainUv=uv*max(uGrainScale,0.001);\n if(uGrainAnimated>0.5){grainUv+=vec2(iTime*0.05);} \n float grain=fract(sin(dot(grainUv,vec2(12.9898,78.233)))*43758.5453);\n col+=(grain-0.5)*uGrainAmount;\n\n col=(col-0.5)*uContrast+0.5;\n float luma=dot(col,vec3(0.2126,0.7152,0.0722));\n col=mix(vec3(luma),col,uSaturation);\n col=pow(max(col,0.0),vec3(1.0/max(uGamma,0.001)));\n col=clamp(col,0.0,1.0);\n\n o=vec4(col,1.0);\n}\nvoid main(){\n vec4 o=vec4(0.0);\n mainImage(o,gl_FragCoord.xy);\n fragColor=o;\n}\n`;\n\ninterface Properties {\n timeSpeed?: number;\n colorBalance?: number;\n warpStrength?: number;\n warpFrequency?: number;\n warpSpeed?: number;\n warpAmplitude?: number;\n blendAngle?: number;\n blendSoftness?: number;\n rotationAmount?: number;\n noiseScale?: number;\n grainAmount?: number;\n grainScale?: number;\n grainAnimated?: boolean;\n contrast?: number;\n gamma?: number;\n saturation?: number;\n centerX?: number;\n centerY?: number;\n zoom?: number;\n color1?: Color;\n color2?: Color;\n color3?: Color;\n className?: string;\n}\n\nexport function Grainient(properties: Properties) {\n const {\n timeSpeed = 0.25,\n colorBalance = 0.0,\n warpStrength = 1.0,\n warpFrequency = 5.0,\n warpSpeed = 2.0,\n warpAmplitude = 50.0,\n blendAngle = 0.0,\n blendSoftness = 0.05,\n rotationAmount = 500.0,\n noiseScale = 2.0,\n grainAmount = 0.1,\n grainScale = 2.0,\n grainAnimated = false,\n contrast = 1.5,\n gamma = 1.0,\n saturation = 1.0,\n centerX = 0.0,\n centerY = 0.0,\n zoom = 0.9,\n color1 = parseColor('#FF9FFC'),\n color2 = parseColor('#5227FF'),\n color3 = parseColor('#B19EEF'),\n className = '',\n } = properties;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const renderer = new Renderer({\n webgl: 2,\n alpha: true,\n antialias: false,\n dpr: Math.min(window.devicePixelRatio || 1, 2),\n });\n\n const gl = renderer.gl;\n const canvas = gl.canvas as HTMLCanvasElement;\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n canvas.style.display = 'block';\n\n const container = containerRef.current;\n container.appendChild(canvas);\n\n const geometry = new Triangle(gl);\n const program = new Program(gl, {\n vertex: vertex,\n fragment: fragment,\n uniforms: {\n iTime: { value: 0 },\n iResolution: { value: new Float32Array([1, 1]) },\n uTimeSpeed: { value: timeSpeed },\n uColorBalance: { value: colorBalance },\n uWarpStrength: { value: warpStrength },\n uWarpFrequency: { value: warpFrequency },\n uWarpSpeed: { value: warpSpeed },\n uWarpAmplitude: { value: warpAmplitude },\n uBlendAngle: { value: blendAngle },\n uBlendSoftness: { value: blendSoftness },\n uRotationAmount: { value: rotationAmount },\n uNoiseScale: { value: noiseScale },\n uGrainAmount: { value: grainAmount },\n uGrainScale: { value: grainScale },\n uGrainAnimated: { value: grainAnimated ? 1.0 : 0.0 },\n uContrast: { value: contrast },\n uGamma: { value: gamma },\n uSaturation: { value: saturation },\n uCenterOffset: { value: new Float32Array([centerX, centerY]) },\n uZoom: { value: zoom },\n uColor1: { value: new Float32Array(colorToRgb(color1)) },\n uColor2: { value: new Float32Array(colorToRgb(color2)) },\n uColor3: { value: new Float32Array(colorToRgb(color3)) },\n },\n });\n\n const mesh = new Mesh(gl, { geometry: geometry, program: program });\n\n function setSize() {\n const width = Math.max(1, container.offsetWidth);\n const height = Math.max(1, container.offsetHeight);\n renderer.setSize(width, height);\n const res = (program.uniforms.iResolution as { value: Float32Array; }).value;\n res[0] = gl.drawingBufferWidth;\n res[1] = gl.drawingBufferHeight;\n };\n\n const ro = new ResizeObserver(setSize);\n ro.observe(container);\n\n setSize();\n\n let raf = 0;\n const t0 = performance.now();\n const loop = (t: number) => {\n (program.uniforms.iTime as { value: number; }).value = (t - t0) * 0.001;\n renderer.render({ scene: mesh });\n raf = requestAnimationFrame(loop);\n };\n raf = requestAnimationFrame(loop);\n\n return () => {\n cancelAnimationFrame(raf);\n ro.disconnect();\n try {\n container.removeChild(canvas);\n } catch {\n // Ignore\n }\n };\n }, [\n timeSpeed,\n colorBalance,\n warpStrength,\n warpFrequency,\n warpSpeed,\n warpAmplitude,\n blendAngle,\n blendSoftness,\n rotationAmount,\n noiseScale,\n grainAmount,\n grainScale,\n grainAnimated,\n contrast,\n gamma,\n saturation,\n centerX,\n centerY,\n zoom,\n color1,\n color2,\n color3,\n ]);\n\n return <div ref={containerRef} className={cn('pointer-events-none absolute inset-0 overflow-hidden', className)} />;\n};\n","import gsap from 'gsap';\n\nimport { ImageTransitionType } from '..';\n\nexport type ImageTransitionEffect = (\n current: HTMLDivElement,\n currentInner: HTMLDivElement,\n next: HTMLDivElement,\n nextInner: HTMLDivElement,\n) => gsap.core.Timeline;\n\nexport const animationEffects: Record<ImageTransitionType, ImageTransitionEffect> = {\n A: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.5,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { yPercent: -direction * 100 }, 'start')\n .to(currentInner, { yPercent: direction * 30 }, 'start')\n .fromTo(next, { yPercent: direction * 100 }, { yPercent: 0 }, 'start')\n .fromTo(nextInner, { yPercent: -direction * 30 }, { yPercent: 0 }, 'start');\n },\n\n B: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.5,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { yPercent: -direction * 100 }, 'start')\n .to(\n currentInner,\n {\n yPercent: direction * 30,\n transformOrigin: '0% 100%',\n rotation: -direction * 10,\n scaleY: 2.5,\n },\n 'start',\n )\n .fromTo(next, { yPercent: direction * 100 }, { yPercent: 0 }, 'start')\n .fromTo(\n nextInner,\n {\n transformOrigin: '0% 0%',\n yPercent: -direction * 30,\n scaleY: 2.5,\n rotation: -direction * 10,\n },\n { yPercent: 0, scaleY: 1, rotation: 0 },\n 'start',\n );\n },\n\n C: (current, currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1.1,\n ease: 'power2.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { scale: 0.4 }, 'start')\n .to(currentInner, { scale: 1.5 }, 'start')\n .addLabel('middle', 'start+=0.65')\n .fromTo(\n next,\n { yPercent: direction * 100, scale: 1 },\n { duration: 1, ease: 'expo', yPercent: 0 },\n 'middle',\n )\n .fromTo(\n nextInner,\n { scale: 1.5, yPercent: -direction * 30 },\n { duration: 1.1, ease: 'expo', scale: 1, yPercent: 0 },\n 'middle',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n // Fade and slide with scale\n D: (current, _currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1.25,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n duration: 0.4,\n ease: 'sine',\n scale: 0.9,\n autoAlpha: 0.2,\n },\n 'start',\n )\n .to(\n current,\n {\n yPercent: -direction * 20,\n autoAlpha: 0,\n },\n 'start+=0.1',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n scale: 1,\n yPercent: direction * 100,\n },\n { yPercent: 0 },\n 'start+=0.1',\n )\n .fromTo(\n nextInner,\n { yPercent: -direction * 50 },\n { yPercent: 0 },\n 'start+=0.1',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n // Scale and rotate transition\n E: (current, _currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.1,\n ease: 'power2.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n scale: 0.6,\n yPercent: -direction * 90,\n rotation: direction * 20,\n autoAlpha: 0,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n scale: 0.8,\n yPercent: direction * 100,\n rotation: 0,\n autoAlpha: 1,\n },\n { scale: 1, yPercent: 0 },\n 'start+=0.1',\n )\n .fromTo(nextInner, { scale: 1.1 }, { scale: 1 }, 'start+=0.1');\n },\n\n // Horizontal slide with scale\n F: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.6,\n ease: 'power3.inOut',\n },\n })\n .addLabel('start', 0)\n .to(current, { xPercent: -direction * 100 }, 'start')\n .to(\n currentInner,\n {\n transformOrigin: '100% 50%',\n scaleX: 4,\n },\n 'start',\n )\n .fromTo(next, { xPercent: direction * 100 }, { xPercent: 0 }, 'start')\n .fromTo(\n nextInner,\n {\n transformOrigin: '0% 50%',\n xPercent: -direction * 100,\n scaleX: 4,\n },\n { xPercent: 0, scaleX: 1 },\n 'start',\n );\n },\n\n // Scale from zero with brightness\n G: (current, _currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1.2,\n ease: 'expo',\n },\n })\n .addLabel('start', 0)\n .to(current, { ease: 'power2', autoAlpha: 0 }, 'start')\n .fromTo(\n next,\n {\n autoAlpha: 1,\n scale: 0,\n yPercent: direction * 100,\n },\n { scale: 1, yPercent: 0 },\n 'start',\n )\n .fromTo(\n nextInner,\n {\n scale: 2,\n filter: 'brightness(600%)',\n },\n { scale: 1, filter: 'brightness(100%)' },\n 'start',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n H: (current, currentInner, next, nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline()\n .addLabel('start', 0)\n .fromTo(\n next,\n {\n autoAlpha: 1,\n scale: 0.1,\n xPercent: direction * 100,\n },\n {\n duration: 0.7,\n ease: 'expo',\n scale: 0.4,\n xPercent: 0,\n },\n 'start',\n )\n .fromTo(\n nextInner,\n {\n filter: 'contrast(100%) saturate(100%)',\n transformOrigin: '100% 50%',\n scaleX: 4,\n },\n {\n duration: 0.7,\n ease: 'expo',\n scaleX: 1,\n },\n 'start',\n )\n .fromTo(\n currentInner,\n { filter: 'contrast(100%) saturate(100%)' },\n {\n duration: 0.7,\n ease: 'expo',\n filter: 'contrast(120%) saturate(140%)',\n },\n 'start',\n )\n .addLabel('middle', 'start+=0.6')\n .to(\n next,\n {\n duration: 1,\n ease: 'power4.inOut',\n scale: 1,\n },\n 'middle',\n )\n .to(\n current,\n {\n duration: 1,\n ease: 'power4.inOut',\n scale: 0.98,\n autoAlpha: 0,\n },\n 'middle',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n I: (current, _currentInner, next, _nextInner) => {\n const direction = 1;\n const tl = gsap\n .timeline({\n defaults: {\n duration: 1,\n ease: 'power3.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n xPercent: -direction * 15,\n yPercent: -direction * 15,\n autoAlpha: 0,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n xPercent: direction * 100,\n yPercent: direction * 100,\n },\n {\n xPercent: 0,\n yPercent: 0,\n },\n 'start',\n );\n\n gsap.set(next, { zIndex: 99 });\n return tl;\n },\n\n J: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.3,\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n duration: 0.4,\n ease: 'power2.in',\n yPercent: -direction * 100,\n },\n 'start',\n )\n .to(\n currentInner,\n {\n duration: 0.4,\n ease: 'power2.in',\n yPercent: direction * 75,\n rotation: -direction * 2,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n yPercent: direction * 100,\n },\n {\n ease: 'expo',\n yPercent: 0,\n },\n 'start+=0.5',\n )\n .fromTo(\n nextInner,\n {\n yPercent: -direction * 75,\n rotation: direction * 2,\n },\n {\n ease: 'expo',\n yPercent: 0,\n rotation: 0,\n },\n 'start+=0.5',\n );\n },\n\n K: (current, currentInner, next, nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 1.2,\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n duration: 0.4,\n ease: 'power2.in',\n xPercent: -direction * 100,\n },\n 'start',\n )\n .to(\n currentInner,\n {\n duration: 0.4,\n ease: 'power2.in',\n xPercent: direction * 75,\n rotation: -direction * 6,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n autoAlpha: 1,\n xPercent: direction * 100,\n },\n {\n ease: 'power4',\n xPercent: 0,\n },\n 'start+=0.4',\n )\n .fromTo(\n nextInner,\n {\n xPercent: -direction * 75,\n rotation: direction * 6,\n },\n {\n ease: 'power4',\n xPercent: 0,\n rotation: 0,\n },\n 'start+=0.4',\n );\n },\n\n // Horizontal scale squeeze\n M: (current, _currentInner, next, _nextInner) => {\n return gsap\n .timeline({\n defaults: {\n duration: 1.2,\n ease: 'power4.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n transformOrigin: '0% 50%',\n scaleX: 0,\n autoAlpha: 0,\n },\n 'start',\n )\n .fromTo(\n next,\n {\n transformOrigin: '100% 50%',\n autoAlpha: 0,\n scaleX: 0,\n },\n {\n autoAlpha: 1,\n scaleX: 1,\n },\n 'start',\n );\n },\n\n N: (current, _currentInner, next, _nextInner) => {\n const direction = 1;\n return gsap\n .timeline({\n defaults: {\n duration: 0.8,\n ease: 'power3.inOut',\n },\n })\n .addLabel('start', 0)\n .to(\n current,\n {\n scale: 1.1,\n rotation: direction * 2,\n },\n 'start',\n )\n .addLabel('middle', '>')\n .fromTo(\n next,\n {\n scale: 1.1,\n rotation: direction * 2,\n },\n {\n duration: 1.1,\n ease: 'expo',\n scale: 1,\n rotation: 0,\n },\n 'middle',\n );\n },\n\n};\n","import { cn } from '@digo-labs/common';\n\nimport { useEffect, useRef, useState, CSSProperties } from 'react';\n\nimport gsap from 'gsap';\n\nimport { animationEffects } from '../other/image-transition-effects';\n\nexport enum ImageTransitionType {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E',\n F = 'F',\n G = 'G',\n H = 'H',\n I = 'I',\n J = 'J',\n K = 'K',\n M = 'M',\n N = 'N',\n}\n\ninterface Properties {\n src: string;\n effect?: ImageTransitionType;\n style?: CSSProperties;\n className?: string;\n}\n\nexport function ImageTransition(properties: Properties) {\n const {\n src,\n effect = ImageTransitionType.A,\n style = {},\n className = '',\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const currentImageRef = useRef<HTMLDivElement>(null);\n const nextImageRef = useRef<HTMLDivElement>(null);\n const currentInnerRef = useRef<HTMLDivElement>(null);\n const nextInnerRef = useRef<HTMLDivElement>(null);\n const isAnimatingRef = useRef<boolean>(false);\n\n const [currentSrc, setCurrentSrc] = useState<string>(src);\n const [nextSrc, setNextSrc] = useState<string | null>(null);\n\n useEffect(() => {\n if (src === currentSrc || isAnimatingRef.current) return;\n\n isAnimatingRef.current = true;\n\n setNextSrc(src);\n }, [src, currentSrc]);\n\n useEffect(() => {\n if (!nextSrc || !currentImageRef.current || !nextImageRef.current) return;\n\n const current = currentImageRef.current;\n const currentInner = currentInnerRef.current;\n const next = nextImageRef.current;\n const nextInner = nextInnerRef.current;\n\n if (!currentInner || !nextInner) return;\n\n const animation = animationEffects[effect] || animationEffects[ImageTransitionType.A];\n\n const timeline = animation(current, currentInner, next, nextInner);\n\n timeline.eventCallback('onComplete', () => {\n setCurrentSrc(nextSrc);\n\n gsap.set([current, currentInner], { clearProps: 'all' });\n\n setNextSrc(null);\n\n isAnimatingRef.current = false;\n });\n }, [nextSrc, effect]);\n\n return (\n <div\n ref={containerRef}\n className={cn('relative size-full overflow-hidden', className)}\n style={style}\n >\n\n <div ref={currentImageRef} className=\"absolute inset-0 overflow-hidden\">\n\n <div\n ref={currentInnerRef}\n className=\"size-full bg-cover bg-center\"\n style={{\n backgroundImage: `url(${currentSrc})`,\n }}\n role=\"img\"\n />\n\n </div>\n\n {nextSrc && (\n <div ref={nextImageRef} className=\"pointer-events-none absolute inset-0 overflow-hidden\">\n\n <div\n ref={nextInnerRef}\n className=\"size-full bg-cover bg-center\"\n style={{\n backgroundImage: `url(${nextSrc})`,\n }}\n role=\"img\"\n />\n\n </div>\n )}\n </div>\n );\n};\n","import { useRef, useState, useEffect, MutableRefObject } from 'react';\n\nimport { mat4, quat, vec2, vec3 } from 'gl-matrix';\nimport { cn } from '@digo-labs/common';\n\nconst discVertShaderSource = `#version 300 es\n\nuniform mat4 uWorldMatrix;\nuniform mat4 uViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform vec3 uCameraPosition;\nuniform vec4 uRotationAxisVelocity;\n\nin vec3 aModelPosition;\nin vec3 aModelNormal;\nin vec2 aModelUvs;\nin mat4 aInstanceMatrix;\n\nout vec2 vUvs;\nout float vAlpha;\nflat out int vInstanceId;\n\n#define PI 3.141593\n\nvoid main() {\n vec4 worldPosition = uWorldMatrix * aInstanceMatrix * vec4(aModelPosition, 1.);\n\n vec3 centerPos = (uWorldMatrix * aInstanceMatrix * vec4(0., 0., 0., 1.)).xyz;\n float radius = length(centerPos.xyz);\n\n if (gl_VertexID > 0) {\n vec3 rotationAxis = uRotationAxisVelocity.xyz;\n float rotationVelocity = min(.15, uRotationAxisVelocity.w * 15.);\n vec3 stretchDir = normalize(cross(centerPos, rotationAxis));\n vec3 relativeVertexPos = normalize(worldPosition.xyz - centerPos);\n float strength = dot(stretchDir, relativeVertexPos);\n float invAbsStrength = min(0., abs(strength) - 1.);\n strength = rotationVelocity * sign(strength) * abs(invAbsStrength * invAbsStrength * invAbsStrength + 1.);\n worldPosition.xyz += stretchDir * strength;\n }\n\n worldPosition.xyz = radius * normalize(worldPosition.xyz);\n\n gl_Position = uProjectionMatrix * uViewMatrix * worldPosition;\n\n vAlpha = smoothstep(0.5, 1., normalize(worldPosition.xyz).z) * .9 + .1;\n vUvs = aModelUvs;\n vInstanceId = gl_InstanceID;\n}\n`;\n\nconst discFragShaderSource = `#version 300 es\nprecision highp float;\n\nuniform sampler2D uTex;\nuniform int uItemCount;\nuniform int uAtlasSize;\n\nout vec4 outColor;\n\nin vec2 vUvs;\nin float vAlpha;\nflat in int vInstanceId;\n\nvoid main() {\n int itemIndex = vInstanceId % uItemCount;\n int cellsPerRow = uAtlasSize;\n int cellX = itemIndex % cellsPerRow;\n int cellY = itemIndex / cellsPerRow;\n vec2 cellSize = vec2(1.0) / vec2(float(cellsPerRow));\n vec2 cellOffset = vec2(float(cellX), float(cellY)) * cellSize;\n\n ivec2 texSize = textureSize(uTex, 0);\n float imageAspect = float(texSize.x) / float(texSize.y);\n float containerAspect = 1.0;\n \n float scale = max(imageAspect / containerAspect, \n containerAspect / imageAspect);\n \n vec2 st = vec2(vUvs.x, 1.0 - vUvs.y);\n st = (st - 0.5) * scale + 0.5;\n \n st = clamp(st, 0.0, 1.0);\n st = st * cellSize + cellOffset;\n \n outColor = texture(uTex, st);\n outColor.a *= vAlpha;\n}\n`;\n\nclass Face {\n public a: number;\n public b: number;\n public c: number;\n\n constructor(a: number, b: number, c: number) {\n this.a = a;\n this.b = b;\n this.c = c;\n }\n}\n\nclass Vertex {\n public position: vec3;\n public normal: vec3;\n public uv: vec2;\n\n constructor(x: number, y: number, z: number) {\n this.position = vec3.fromValues(x, y, z);\n this.normal = vec3.create();\n this.uv = vec2.create();\n }\n}\n\nclass Geometry {\n public vertices: Vertex[];\n public faces: Face[];\n\n constructor() {\n this.vertices = [];\n this.faces = [];\n }\n\n public addVertex(...args: number[]): this {\n for (let i = 0; i < args.length; i += 3) {\n this.vertices.push(new Vertex(args[i], args[i + 1], args[i + 2]));\n }\n return this;\n }\n\n public addFace(...args: number[]): this {\n for (let i = 0; i < args.length; i += 3) {\n this.faces.push(new Face(args[i], args[i + 1], args[i + 2]));\n }\n return this;\n }\n\n public get lastVertex(): Vertex {\n return this.vertices[this.vertices.length - 1];\n }\n\n public subdivide(divisions = 1): this {\n const midPointCache: Record<string, number> = {};\n let f = this.faces;\n\n for (let div = 0; div < divisions; ++div) {\n const newFaces = new Array<Face>(f.length * 4);\n\n f.forEach((face, ndx) => {\n const mAB = this.getMidPoint(face.a, face.b, midPointCache);\n const mBC = this.getMidPoint(face.b, face.c, midPointCache);\n const mCA = this.getMidPoint(face.c, face.a, midPointCache);\n\n const i = ndx * 4;\n newFaces[i + 0] = new Face(face.a, mAB, mCA);\n newFaces[i + 1] = new Face(face.b, mBC, mAB);\n newFaces[i + 2] = new Face(face.c, mCA, mBC);\n newFaces[i + 3] = new Face(mAB, mBC, mCA);\n });\n\n f = newFaces;\n }\n\n this.faces = f;\n return this;\n }\n\n public spherize(radius = 1): this {\n this.vertices.forEach((vertex) => {\n vec3.normalize(vertex.normal, vertex.position);\n vec3.scale(vertex.position, vertex.normal, radius);\n });\n return this;\n }\n\n public get data(): {\n vertices: Float32Array;\n indices: Uint16Array;\n normals: Float32Array;\n uvs: Float32Array;\n } {\n return {\n vertices: this.vertexData,\n indices: this.indexData,\n normals: this.normalData,\n uvs: this.uvData,\n };\n }\n\n public get vertexData(): Float32Array {\n return new Float32Array(this.vertices.flatMap(v => Array.from(v.position)));\n }\n\n public get normalData(): Float32Array {\n return new Float32Array(this.vertices.flatMap(v => Array.from(v.normal)));\n }\n\n public get uvData(): Float32Array {\n return new Float32Array(this.vertices.flatMap(v => Array.from(v.uv)));\n }\n\n public get indexData(): Uint16Array {\n return new Uint16Array(this.faces.flatMap(f => [f.a, f.b, f.c]));\n }\n\n public getMidPoint(ndxA: number, ndxB: number, cache: Record<string, number>): number {\n const cacheKey = ndxA < ndxB ? `k_${ndxB}_${ndxA}` : `k_${ndxA}_${ndxB}`;\n if (Object.prototype.hasOwnProperty.call(cache, cacheKey)) {\n return cache[cacheKey];\n }\n const a = this.vertices[ndxA].position;\n const b = this.vertices[ndxB].position;\n const ndx = this.vertices.length;\n cache[cacheKey] = ndx;\n this.addVertex((a[0] + b[0]) * 0.5, (a[1] + b[1]) * 0.5, (a[2] + b[2]) * 0.5);\n return ndx;\n }\n}\n\nclass IcosahedronGeometry extends Geometry {\n constructor() {\n super();\n const t = Math.sqrt(5) * 0.5 + 0.5;\n this.addVertex(\n -1,\n t,\n 0,\n 1,\n t,\n 0,\n -1,\n -t,\n 0,\n 1,\n -t,\n 0,\n 0,\n -1,\n t,\n 0,\n 1,\n t,\n 0,\n -1,\n -t,\n 0,\n 1,\n -t,\n t,\n 0,\n -1,\n t,\n 0,\n 1,\n -t,\n 0,\n -1,\n -t,\n 0,\n 1,\n ).addFace(\n 0,\n 11,\n 5,\n 0,\n 5,\n 1,\n 0,\n 1,\n 7,\n 0,\n 7,\n 10,\n 0,\n 10,\n 11,\n 1,\n 5,\n 9,\n 5,\n 11,\n 4,\n 11,\n 10,\n 2,\n 10,\n 7,\n 6,\n 7,\n 1,\n 8,\n 3,\n 9,\n 4,\n 3,\n 4,\n 2,\n 3,\n 2,\n 6,\n 3,\n 6,\n 8,\n 3,\n 8,\n 9,\n 4,\n 9,\n 5,\n 2,\n 4,\n 11,\n 6,\n 2,\n 10,\n 8,\n 6,\n 7,\n 9,\n 8,\n 1,\n );\n }\n}\n\nclass DiscGeometry extends Geometry {\n constructor(steps = 4, radius = 1) {\n super();\n const safeSteps = Math.max(4, steps);\n const alpha = (2 * Math.PI) / safeSteps;\n\n this.addVertex(0, 0, 0);\n this.lastVertex.uv[0] = 0.5;\n this.lastVertex.uv[1] = 0.5;\n\n for (let i = 0; i < safeSteps; ++i) {\n const x = Math.cos(alpha * i);\n const y = Math.sin(alpha * i);\n this.addVertex(radius * x, radius * y, 0);\n this.lastVertex.uv[0] = x * 0.5 + 0.5;\n this.lastVertex.uv[1] = y * 0.5 + 0.5;\n\n if (i > 0) {\n this.addFace(0, i, i + 1);\n }\n }\n this.addFace(0, safeSteps, 1);\n }\n}\n\nfunction createShader(gl: WebGL2RenderingContext, type: number, source: string): WebGLShader | null {\n const shader = gl.createShader(type);\n if (!shader) return null;\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const success = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n\n if (success) {\n return shader;\n }\n\n console.error(gl.getShaderInfoLog(shader));\n gl.deleteShader(shader);\n return null;\n}\n\nfunction createProgram(\n gl: WebGL2RenderingContext,\n shaderSources: [string, string],\n transformFeedbackVaryings?: string[] | null,\n attribLocations?: Record<string, number>,\n): WebGLProgram | null {\n const program = gl.createProgram();\n if (!program) return null;\n\n [gl.VERTEX_SHADER, gl.FRAGMENT_SHADER].forEach((type, ndx) => {\n const shader = createShader(gl, type, shaderSources[ndx]);\n if (shader) {\n gl.attachShader(program, shader);\n }\n });\n\n if (transformFeedbackVaryings) {\n gl.transformFeedbackVaryings(program, transformFeedbackVaryings, gl.SEPARATE_ATTRIBS);\n }\n\n if (attribLocations) {\n for (const attrib in attribLocations) {\n if (Object.prototype.hasOwnProperty.call(attribLocations, attrib)) {\n gl.bindAttribLocation(program, attribLocations[attrib], attrib);\n }\n }\n }\n\n gl.linkProgram(program);\n const success = gl.getProgramParameter(program, gl.LINK_STATUS);\n\n if (success) {\n return program;\n }\n\n console.error(gl.getProgramInfoLog(program));\n gl.deleteProgram(program);\n return null;\n}\n\nfunction makeVertexArray(\n gl: WebGL2RenderingContext,\n bufLocNumElmPairs: Array<[WebGLBuffer, number, number]>,\n indices?: Uint16Array,\n): WebGLVertexArrayObject | null {\n const va = gl.createVertexArray();\n if (!va) return null;\n\n gl.bindVertexArray(va);\n\n for (const [buffer, loc, numElem] of bufLocNumElmPairs) {\n if (loc === -1) continue;\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.enableVertexAttribArray(loc);\n gl.vertexAttribPointer(loc, numElem, gl.FLOAT, false, 0, 0);\n }\n\n if (indices) {\n const indexBuffer = gl.createBuffer();\n if (indexBuffer) {\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);\n gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);\n }\n }\n\n gl.bindVertexArray(null);\n return va;\n}\n\nfunction resizeCanvasToDisplaySize(canvas: HTMLCanvasElement): boolean {\n const dpr = Math.min(2, window.devicePixelRatio || 1);\n const displayWidth = Math.round(canvas.clientWidth * dpr);\n const displayHeight = Math.round(canvas.clientHeight * dpr);\n const needResize = canvas.width !== displayWidth || canvas.height !== displayHeight;\n if (needResize) {\n canvas.width = displayWidth;\n canvas.height = displayHeight;\n }\n return needResize;\n}\n\nfunction makeBuffer(gl: WebGL2RenderingContext, sizeOrData: number | ArrayBufferView, usage: number): WebGLBuffer {\n const buf = gl.createBuffer();\n if (!buf) {\n throw new Error('Failed to create WebGL buffer.');\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n\n if (typeof sizeOrData === 'number') {\n gl.bufferData(gl.ARRAY_BUFFER, sizeOrData, usage);\n } else {\n gl.bufferData(gl.ARRAY_BUFFER, sizeOrData, usage);\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n return buf;\n}\n\nfunction createAndSetupTexture(\n gl: WebGL2RenderingContext,\n minFilter: number,\n magFilter: number,\n wrapS: number,\n wrapT: number,\n): WebGLTexture {\n const texture = gl.createTexture();\n if (!texture) {\n throw new Error('Failed to create WebGL texture.');\n }\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, wrapS);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, wrapT);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter);\n return texture;\n}\n\ntype UpdateCallback = (deltaTime: number) => void;\n\nclass ArcballControl {\n private canvas: HTMLCanvasElement;\n private updateCallback: UpdateCallback;\n\n public isPointerDown = false;\n public orientation = quat.create();\n public pointerRotation = quat.create();\n public rotationVelocity = 0;\n public rotationAxis = vec3.fromValues(1, 0, 0);\n\n public snapDirection = vec3.fromValues(0, 0, -1);\n public snapTargetDirection: vec3 | null = null;\n\n private pointerPos = vec2.create();\n private previousPointerPos = vec2.create();\n private _rotationVelocity = 0;\n private _combinedQuat = quat.create();\n\n private readonly EPSILON = 0.1;\n private readonly IDENTITY_QUAT = quat.create();\n\n public snapStrength = 0.2;\n\n constructor(canvas: HTMLCanvasElement, updateCallback?: UpdateCallback) {\n this.canvas = canvas;\n this.updateCallback = updateCallback || (() => undefined);\n\n canvas.addEventListener('pointerdown', (e: PointerEvent) => {\n vec2.set(this.pointerPos, e.clientX, e.clientY);\n vec2.copy(this.previousPointerPos, this.pointerPos);\n this.isPointerDown = true;\n });\n canvas.addEventListener('pointerup', () => {\n this.isPointerDown = false;\n });\n canvas.addEventListener('pointerleave', () => {\n this.isPointerDown = false;\n });\n canvas.addEventListener('pointermove', (e: PointerEvent) => {\n if (this.isPointerDown) {\n vec2.set(this.pointerPos, e.clientX, e.clientY);\n }\n });\n canvas.style.touchAction = 'none';\n }\n\n public update(deltaTime: number, targetFrameDuration = 16): void {\n const timeScale = deltaTime / targetFrameDuration + 0.00001;\n let angleFactor = timeScale;\n const snapRotation = quat.create();\n\n if (this.isPointerDown) {\n const INTENSITY = 0.3 * timeScale;\n const ANGLE_AMPLIFICATION = 5 / timeScale;\n const midPointerPos = vec2.sub(vec2.create(), this.pointerPos, this.previousPointerPos);\n vec2.scale(midPointerPos, midPointerPos, INTENSITY);\n\n if (vec2.sqrLen(midPointerPos) > this.EPSILON) {\n vec2.add(midPointerPos, this.previousPointerPos, midPointerPos);\n\n const p = this.project(midPointerPos);\n const q = this.project(this.previousPointerPos);\n const a = vec3.normalize(vec3.create(), p);\n const b = vec3.normalize(vec3.create(), q);\n\n vec2.copy(this.previousPointerPos, midPointerPos);\n\n angleFactor *= ANGLE_AMPLIFICATION;\n\n this.quatFromVectors(a, b, this.pointerRotation, angleFactor);\n } else {\n quat.slerp(this.pointerRotation, this.pointerRotation, this.IDENTITY_QUAT, INTENSITY);\n }\n } else {\n const INTENSITY = 0.1 * timeScale;\n quat.slerp(this.pointerRotation, this.pointerRotation, this.IDENTITY_QUAT, INTENSITY);\n\n if (this.snapTargetDirection) {\n const SNAPPING_INTENSITY = this.snapStrength;\n const a = this.snapTargetDirection;\n const b = this.snapDirection;\n const sqrDist = vec3.squaredDistance(a, b);\n const distanceFactor = Math.max(0.1, 1 - sqrDist * 10);\n angleFactor *= SNAPPING_INTENSITY * distanceFactor;\n this.quatFromVectors(a, b, snapRotation, angleFactor);\n }\n }\n\n const combinedQuat = quat.multiply(quat.create(), snapRotation, this.pointerRotation);\n this.orientation = quat.multiply(quat.create(), combinedQuat, this.orientation);\n quat.normalize(this.orientation, this.orientation);\n\n const RA_INTENSITY = 0.8 * timeScale;\n quat.slerp(this._combinedQuat, this._combinedQuat, combinedQuat, RA_INTENSITY);\n quat.normalize(this._combinedQuat, this._combinedQuat);\n\n const rad = Math.acos(this._combinedQuat[3]) * 2.0;\n const s = Math.sin(rad / 2.0);\n let rv = 0;\n if (s > 0.000001) {\n rv = rad / (2 * Math.PI);\n this.rotationAxis[0] = this._combinedQuat[0] / s;\n this.rotationAxis[1] = this._combinedQuat[1] / s;\n this.rotationAxis[2] = this._combinedQuat[2] / s;\n }\n\n const RV_INTENSITY = 0.5 * timeScale;\n this._rotationVelocity += (rv - this._rotationVelocity) * RV_INTENSITY;\n this.rotationVelocity = this._rotationVelocity / timeScale;\n\n this.updateCallback(deltaTime);\n }\n\n private quatFromVectors(a: vec3, b: vec3, out: quat, angleFactor = 1): { q: quat; axis: vec3; angle: number; } {\n const axis = vec3.cross(vec3.create(), a, b);\n vec3.normalize(axis, axis);\n const d = Math.max(-1, Math.min(1, vec3.dot(a, b)));\n const angle = Math.acos(d) * angleFactor;\n quat.setAxisAngle(out, axis, angle);\n return { q: out, axis: axis, angle: angle };\n }\n\n private project(pos: vec2): vec3 {\n const r = 2;\n const w = this.canvas.clientWidth;\n const h = this.canvas.clientHeight;\n const s = Math.max(w, h) - 1;\n\n const x = (2 * pos[0] - w - 1) / s;\n const y = (2 * pos[1] - h - 1) / s;\n let z = 0;\n const xySq = x * x + y * y;\n const rSq = r * r;\n\n if (xySq <= rSq / 2.0) {\n z = Math.sqrt(rSq - xySq);\n } else {\n z = rSq / Math.sqrt(xySq);\n }\n return vec3.fromValues(-x, y, z);\n }\n}\n\nexport interface InfiniteMenuItem {\n id: string;\n imageUrl: string;\n}\n\ntype ActiveItemCallback = (index: number) => void;\ntype MovementChangeCallback = (isMoving: boolean) => void;\ntype InitCallback = (instance: InfiniteGridMenu) => void;\n\nexport interface InfiniteMenuOptions {\n discSize?: number;\n damping?: number;\n snapStrength?: number;\n cameraDistance?: number;\n sphereRadius?: number;\n}\n\ninterface Camera {\n matrix: mat4;\n near: number;\n far: number;\n fov: number;\n aspect: number;\n position: vec3;\n up: vec3;\n matrices: {\n view: mat4;\n projection: mat4;\n inversProjection: mat4;\n };\n}\n\nclass InfiniteGridMenu {\n private gl: WebGL2RenderingContext | null = null;\n private discProgram: WebGLProgram | null = null;\n private discVAO: WebGLVertexArrayObject | null = null;\n private discBuffers!: {\n vertices: Float32Array;\n indices: Uint16Array;\n normals: Float32Array;\n uvs: Float32Array;\n };\n\n private icoGeo!: IcosahedronGeometry;\n private discGeo!: DiscGeometry;\n private worldMatrix = mat4.create();\n private tex: WebGLTexture | null = null;\n private control!: ArcballControl;\n\n private discLocations!: {\n aModelPosition: number;\n aModelUvs: number;\n aInstanceMatrix: number;\n uWorldMatrix: WebGLUniformLocation | null;\n uViewMatrix: WebGLUniformLocation | null;\n uProjectionMatrix: WebGLUniformLocation | null;\n uCameraPosition: WebGLUniformLocation | null;\n uScaleFactor: WebGLUniformLocation | null;\n uRotationAxisVelocity: WebGLUniformLocation | null;\n uTex: WebGLUniformLocation | null;\n uFrames: WebGLUniformLocation | null;\n uItemCount: WebGLUniformLocation | null;\n uAtlasSize: WebGLUniformLocation | null;\n };\n\n private viewportSize = vec2.create();\n private drawBufferSize = vec2.create();\n\n private discInstances!: {\n matricesArray: Float32Array;\n matrices: Float32Array[];\n buffer: WebGLBuffer | null;\n };\n\n private instancePositions: vec3[] = [];\n private DISC_INSTANCE_COUNT = 0;\n private atlasSize = 1;\n\n private _time = 0;\n private _deltaTime = 0;\n private _deltaFrames = 0;\n private _frames = 0;\n\n private movementActive = false;\n\n private TARGET_FRAME_DURATION = 1000 / 60;\n private SPHERE_RADIUS = 2;\n private discSize = 0.25;\n private damping = 5;\n private cameraDistance = 3;\n\n public camera: Camera = {\n matrix: mat4.create(),\n near: 0.1,\n far: 40,\n fov: Math.PI / 4,\n aspect: 1,\n position: vec3.fromValues(0, 0, 3),\n up: vec3.fromValues(0, 1, 0),\n matrices: {\n view: mat4.create(),\n projection: mat4.create(),\n inversProjection: mat4.create(),\n },\n };\n\n public smoothRotationVelocity = 0;\n public scaleFactor = 1.0;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private items: InfiniteMenuItem[],\n private onActiveItemChange: ActiveItemCallback,\n private onMovementChange: MovementChangeCallback,\n onInit?: InitCallback,\n options?: InfiniteMenuOptions,\n ) {\n this.SPHERE_RADIUS = options?.sphereRadius ?? 2;\n this.discSize = options?.discSize ?? 0.25;\n this.damping = options?.damping ?? 5;\n this.cameraDistance = options?.cameraDistance ?? 3;\n this.camera.position = vec3.fromValues(0, 0, this.cameraDistance);\n this.init(onInit);\n this.control.snapStrength = options?.snapStrength ?? 0.2;\n }\n\n public resize(): void {\n const needsResize = resizeCanvasToDisplaySize(this.canvas);\n if (!this.gl) return;\n if (needsResize) {\n this.gl.viewport(0, 0, this.gl.drawingBufferWidth, this.gl.drawingBufferHeight);\n }\n this.updateProjectionMatrix();\n }\n\n public run(time = 0): void {\n this._deltaTime = Math.min(32, time - this._time);\n this._time = time;\n this._deltaFrames = this._deltaTime / this.TARGET_FRAME_DURATION;\n this._frames += this._deltaFrames;\n\n this.animate(this._deltaTime);\n this.render();\n\n requestAnimationFrame(t => this.run(t));\n }\n\n private init(onInit?: InitCallback): void {\n const gl = this.canvas.getContext('webgl2', {\n antialias: true,\n alpha: true,\n });\n if (!gl) {\n throw new Error('No WebGL 2 context!');\n }\n this.gl = gl;\n\n vec2.set(this.viewportSize, this.canvas.clientWidth, this.canvas.clientHeight);\n vec2.clone(this.drawBufferSize);\n\n this.discProgram = createProgram(gl, [discVertShaderSource, discFragShaderSource], null, {\n aModelPosition: 0,\n aModelNormal: 1,\n aModelUvs: 2,\n aInstanceMatrix: 3,\n });\n\n this.discLocations = {\n aModelPosition: gl.getAttribLocation(this.discProgram!, 'aModelPosition'),\n aModelUvs: gl.getAttribLocation(this.discProgram!, 'aModelUvs'),\n aInstanceMatrix: gl.getAttribLocation(this.discProgram!, 'aInstanceMatrix'),\n uWorldMatrix: gl.getUniformLocation(this.discProgram!, 'uWorldMatrix'),\n uViewMatrix: gl.getUniformLocation(this.discProgram!, 'uViewMatrix'),\n uProjectionMatrix: gl.getUniformLocation(this.discProgram!, 'uProjectionMatrix'),\n uCameraPosition: gl.getUniformLocation(this.discProgram!, 'uCameraPosition'),\n uScaleFactor: gl.getUniformLocation(this.discProgram!, 'uScaleFactor'),\n uRotationAxisVelocity: gl.getUniformLocation(this.discProgram!, 'uRotationAxisVelocity'),\n uTex: gl.getUniformLocation(this.discProgram!, 'uTex'),\n uFrames: gl.getUniformLocation(this.discProgram!, 'uFrames'),\n uItemCount: gl.getUniformLocation(this.discProgram!, 'uItemCount'),\n uAtlasSize: gl.getUniformLocation(this.discProgram!, 'uAtlasSize'),\n };\n\n this.discGeo = new DiscGeometry(56, 1);\n this.discBuffers = this.discGeo.data;\n this.discVAO = makeVertexArray(\n gl,\n [\n [makeBuffer(gl, this.discBuffers.vertices, gl.STATIC_DRAW), this.discLocations.aModelPosition, 3],\n [makeBuffer(gl, this.discBuffers.uvs, gl.STATIC_DRAW), this.discLocations.aModelUvs, 2],\n ],\n this.discBuffers.indices,\n );\n\n this.icoGeo = new IcosahedronGeometry();\n this.icoGeo.subdivide(1).spherize(this.SPHERE_RADIUS);\n this.instancePositions = this.icoGeo.vertices.map(v => v.position);\n this.DISC_INSTANCE_COUNT = this.icoGeo.vertices.length;\n this.initDiscInstances(this.DISC_INSTANCE_COUNT);\n this.initTexture();\n this.control = new ArcballControl(this.canvas, deltaTime => this.onControlUpdate(deltaTime));\n\n this.updateCameraMatrix();\n this.updateProjectionMatrix();\n\n this.resize();\n\n if (onInit) {\n onInit(this);\n }\n }\n\n private initTexture(): void {\n if (!this.gl) return;\n const gl = this.gl;\n this.tex = createAndSetupTexture(gl, gl.LINEAR, gl.LINEAR, gl.CLAMP_TO_EDGE, gl.CLAMP_TO_EDGE);\n\n const itemCount = Math.max(1, this.items.length);\n this.atlasSize = Math.ceil(Math.sqrt(itemCount));\n const cellSize = 512;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d')!;\n canvas.width = this.atlasSize * cellSize;\n canvas.height = this.atlasSize * cellSize;\n\n Promise.all(\n this.items.map(\n item =>\n new Promise<HTMLImageElement>((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = e => reject(new Error(`Failed to load image: ${item.imageUrl}->${e} `));\n img.src = item.imageUrl;\n }),\n ),\n ).then((images) => {\n images.forEach((img, i) => {\n const x = (i % this.atlasSize) * cellSize;\n const y = Math.floor(i / this.atlasSize) * cellSize;\n ctx.drawImage(img, x, y, cellSize, cellSize);\n });\n\n gl.bindTexture(gl.TEXTURE_2D, this.tex);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas);\n gl.generateMipmap(gl.TEXTURE_2D);\n });\n }\n\n private initDiscInstances(count: number): void {\n if (!this.gl || !this.discVAO) return;\n const gl = this.gl;\n\n const matricesArray = new Float32Array(count * 16);\n const matrices: Float32Array[] = [];\n for (let i = 0; i < count; ++i) {\n const instanceMatrixArray = new Float32Array(matricesArray.buffer, i * 16 * 4, 16);\n mat4.identity(instanceMatrixArray as unknown as mat4);\n matrices.push(instanceMatrixArray);\n }\n\n this.discInstances = {\n matricesArray: matricesArray,\n matrices: matrices,\n buffer: gl.createBuffer(),\n };\n\n gl.bindVertexArray(this.discVAO);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.discInstances.buffer);\n gl.bufferData(gl.ARRAY_BUFFER, this.discInstances.matricesArray.byteLength, gl.DYNAMIC_DRAW);\n\n const mat4AttribSlotCount = 4;\n const bytesPerMatrix = 16 * 4;\n for (let j = 0; j < mat4AttribSlotCount; ++j) {\n const loc = this.discLocations.aInstanceMatrix + j;\n gl.enableVertexAttribArray(loc);\n gl.vertexAttribPointer(loc, 4, gl.FLOAT, false, bytesPerMatrix, j * 4 * 4);\n gl.vertexAttribDivisor(loc, 1);\n }\n gl.bindBuffer(gl.ARRAY_BUFFER, null);\n gl.bindVertexArray(null);\n }\n\n private animate(deltaTime: number): void {\n if (!this.gl) return;\n this.control.update(deltaTime, this.TARGET_FRAME_DURATION);\n\n const positions = this.instancePositions.map(p => vec3.transformQuat(vec3.create(), p, this.control.orientation));\n const scale = this.discSize;\n const SCALE_INTENSITY = 0.6;\n\n positions.forEach((p, ndx) => {\n const s = (Math.abs(p[2]) / this.SPHERE_RADIUS) * SCALE_INTENSITY + (1 - SCALE_INTENSITY);\n const finalScale = s * scale;\n const matrix = mat4.create();\n\n mat4.multiply(matrix, matrix, mat4.fromTranslation(mat4.create(), vec3.negate(vec3.create(), p)));\n mat4.multiply(matrix, matrix, mat4.targetTo(mat4.create(), [0, 0, 0], p, [0, 1, 0]));\n mat4.multiply(matrix, matrix, mat4.fromScaling(mat4.create(), [finalScale, finalScale, finalScale]));\n mat4.multiply(matrix, matrix, mat4.fromTranslation(mat4.create(), [0, 0, -this.SPHERE_RADIUS]));\n\n mat4.copy(this.discInstances.matrices[ndx], matrix);\n });\n\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.discInstances.buffer);\n this.gl.bufferSubData(this.gl.ARRAY_BUFFER, 0, this.discInstances.matricesArray);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);\n\n this.smoothRotationVelocity = this.control.rotationVelocity;\n }\n\n private render(): void {\n if (!this.gl || !this.discProgram) return;\n const gl = this.gl;\n\n gl.useProgram(this.discProgram);\n gl.enable(gl.CULL_FACE);\n gl.enable(gl.DEPTH_TEST);\n\n gl.clearColor(0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n\n gl.uniformMatrix4fv(this.discLocations.uWorldMatrix, false, this.worldMatrix);\n gl.uniformMatrix4fv(this.discLocations.uViewMatrix, false, this.camera.matrices.view);\n gl.uniformMatrix4fv(this.discLocations.uProjectionMatrix, false, this.camera.matrices.projection);\n gl.uniform3f(\n this.discLocations.uCameraPosition,\n this.camera.position[0],\n this.camera.position[1],\n this.camera.position[2],\n );\n gl.uniform4f(\n this.discLocations.uRotationAxisVelocity,\n this.control.rotationAxis[0],\n this.control.rotationAxis[1],\n this.control.rotationAxis[2],\n this.smoothRotationVelocity * 1.1,\n );\n\n gl.uniform1i(this.discLocations.uItemCount, this.items.length);\n gl.uniform1i(this.discLocations.uAtlasSize, this.atlasSize);\n\n gl.uniform1f(this.discLocations.uFrames, this._frames);\n gl.uniform1f(this.discLocations.uScaleFactor, this.scaleFactor);\n\n gl.uniform1i(this.discLocations.uTex, 0);\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, this.tex);\n\n gl.bindVertexArray(this.discVAO);\n gl.drawElementsInstanced(\n gl.TRIANGLES,\n this.discBuffers.indices.length,\n gl.UNSIGNED_SHORT,\n 0,\n this.DISC_INSTANCE_COUNT,\n );\n gl.bindVertexArray(null);\n }\n\n private updateCameraMatrix(): void {\n mat4.targetTo(this.camera.matrix, this.camera.position, [0, 0, 0], this.camera.up);\n mat4.invert(this.camera.matrices.view, this.camera.matrix);\n }\n\n private updateProjectionMatrix(): void {\n if (!this.gl) return;\n const canvasEl = this.gl.canvas as HTMLCanvasElement;\n this.camera.aspect = canvasEl.clientWidth / canvasEl.clientHeight;\n const height = this.SPHERE_RADIUS * 0.35;\n const distance = this.camera.position[2];\n if (this.camera.aspect > 1) {\n this.camera.fov = 2 * Math.atan(height / distance);\n } else {\n this.camera.fov = 2 * Math.atan(height / this.camera.aspect / distance);\n }\n mat4.perspective(\n this.camera.matrices.projection,\n this.camera.fov,\n this.camera.aspect,\n this.camera.near,\n this.camera.far,\n );\n mat4.invert(this.camera.matrices.inversProjection, this.camera.matrices.projection);\n }\n\n private onControlUpdate(deltaTime: number): void {\n const timeScale = deltaTime / this.TARGET_FRAME_DURATION + 0.0001;\n let damping = this.damping / timeScale;\n let cameraTargetZ = this.cameraDistance;\n\n const isMoving = this.control.isPointerDown || Math.abs(this.smoothRotationVelocity) > 0.01;\n\n if (isMoving !== this.movementActive) {\n this.movementActive = isMoving;\n this.onMovementChange(isMoving);\n }\n\n if (!this.control.isPointerDown) {\n const nearestVertexIndex = this.findNearestVertexIndex();\n const itemIndex = nearestVertexIndex % Math.max(1, this.items.length);\n this.onActiveItemChange(itemIndex);\n const snapDirection = vec3.normalize(vec3.create(), this.getVertexWorldPosition(nearestVertexIndex));\n this.control.snapTargetDirection = snapDirection;\n } else {\n cameraTargetZ += this.control.rotationVelocity * 80 + 2.5;\n damping = (this.damping + 2) / timeScale;\n }\n\n this.camera.position[2] += (cameraTargetZ - this.camera.position[2]) / damping;\n this.updateCameraMatrix();\n }\n\n private findNearestVertexIndex(): number {\n const n = this.control.snapDirection;\n const inversOrientation = quat.conjugate(quat.create(), this.control.orientation);\n const nt = vec3.transformQuat(vec3.create(), n, inversOrientation);\n\n let maxD = -1;\n let nearestVertexIndex = 0;\n for (let i = 0; i < this.instancePositions.length; ++i) {\n const d = vec3.dot(nt, this.instancePositions[i]);\n if (d > maxD) {\n maxD = d;\n nearestVertexIndex = i;\n }\n }\n return nearestVertexIndex;\n }\n\n private getVertexWorldPosition(index: number): vec3 {\n const nearestVertexPos = this.instancePositions[index];\n return vec3.transformQuat(vec3.create(), nearestVertexPos, this.control.orientation);\n }\n}\n\nconst defaultItems: InfiniteMenuItem[] = [\n {\n id: 'default-id',\n imageUrl: 'https://picsum.photos/900/900?grayscale',\n },\n];\n\ninterface Properties extends InfiniteMenuOptions {\n items: InfiniteMenuItem[];\n className?: string;\n onItemSelected?: (item: InfiniteMenuItem) => void;\n onDragChange?: (drag: boolean) => void;\n}\n\nexport function InfiniteMenu(properties: Properties) {\n const { items, className, onItemSelected, onDragChange, discSize, damping, snapStrength, cameraDistance, sphereRadius } = properties;\n\n const canvasRef = useRef<HTMLCanvasElement | null>(null) as MutableRefObject<HTMLCanvasElement | null>;\n const [activeItem, setActiveItem] = useState<InfiniteMenuItem | null>(null);\n const [isMoving, setIsMoving] = useState<boolean>(false);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n let sketch: InfiniteGridMenu | null = null;\n\n const handleActiveItem = (index: number) => {\n if (!items.length) return;\n const itemIndex = index % items.length;\n setActiveItem(items[itemIndex]);\n };\n\n const options: InfiniteMenuOptions = { discSize: discSize, damping: damping, snapStrength: snapStrength, cameraDistance: cameraDistance, sphereRadius: sphereRadius };\n\n if (canvas) {\n sketch = new InfiniteGridMenu(canvas, items?.length ? items : defaultItems, handleActiveItem, setIsMoving, sk =>\n sk.run(), options);\n }\n\n const handleResize = () => {\n if (sketch) {\n sketch.resize();\n }\n };\n\n window.addEventListener('resize', handleResize);\n handleResize();\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [items, discSize, damping, snapStrength, cameraDistance, sphereRadius]);\n\n useEffect(() => {\n if (!onItemSelected || !activeItem || isMoving) return;\n\n onItemSelected(activeItem);\n }, [activeItem, isMoving]);\n\n useEffect(() => {\n onDragChange?.(isMoving);\n }, [isMoving, onDragChange]);\n\n return (\n <div className={cn('relative h-full w-full', className)}>\n\n <canvas\n id=\"infinite-grid-menu-canvas\"\n ref={canvasRef}\n className=\"relative h-full w-full cursor-grab overflow-hidden outline-none active:cursor-grabbing\"\n />\n\n </div>\n );\n};\n","import { cn } from '@digo-labs/common';\nimport { Renderer, Program, Mesh, Color, Triangle } from 'ogl';\n\nimport { CSSProperties, useEffect, useRef } from 'react';\n\nconst vertexShader = `\nattribute vec2 uv;\nattribute vec2 position;\n\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = vec4(position, 0, 1);\n}\n`;\n\nconst fragmentShader = `\nprecision highp float;\n\nuniform float uTime;\nuniform vec3 uColor;\nuniform vec3 uResolution;\nuniform vec2 uMouse;\nuniform float uAmplitude;\nuniform float uSpeed;\nuniform float uOpacity;\n\nvarying vec2 vUv;\n\nvoid main() {\n float mr = min(uResolution.x, uResolution.y);\n vec2 uv = (vUv.xy * 2.0 - 1.0) * uResolution.xy / mr;\n\n uv += (uMouse - vec2(0.5)) * uAmplitude;\n\n float d = -uTime * 0.5 * uSpeed;\n float a = 0.0;\n for (float i = 0.0; i < 8.0; ++i) {\n a += cos(i - d - a * uv.x);\n d += sin(uv.y * i + a);\n }\n d += uTime * 0.5 * uSpeed;\n vec3 col = vec3(cos(uv * vec2(d, a)) * 0.6 + 0.4, cos(a + d) * 0.5 + 0.5);\n col = cos(col * cos(vec3(d, a, 2.5)) * 0.5 + 0.5) * uColor;\n gl_FragColor = vec4(col, uOpacity);\n\n}\n`;\n\ninterface Properties {\n color?: [number, number, number];\n speed?: number;\n opacity?: number;\n amplitude?: number;\n mouseReact?: boolean;\n className?: string;\n style?: CSSProperties;\n}\n\nexport function Iridescence(properties: Properties) {\n const {\n color = [1, 1, 1],\n speed = 1.0,\n amplitude = 0.1,\n opacity = 1,\n mouseReact = true,\n className,\n style,\n } = properties;\n\n const ctnDom = useRef<HTMLDivElement>(null);\n const mousePos = useRef({ x: 0.5, y: 0.5 });\n const programRef = useRef<Program | null>(null);\n\n useEffect(() => {\n if (!ctnDom.current) return;\n const ctn = ctnDom.current;\n const renderer = new Renderer({ alpha: true });\n const gl = renderer.gl;\n gl.clearColor(0, 0, 0, 0);\n\n // eslint-disable-next-line prefer-const\n let program: Program;\n\n function resize() {\n const scale = 1;\n renderer.setSize(ctn.offsetWidth * scale, ctn.offsetHeight * scale);\n if (program) {\n program.uniforms.uResolution.value = new Color(\n gl.canvas.width,\n gl.canvas.height,\n gl.canvas.width / gl.canvas.height,\n );\n }\n }\n window.addEventListener('resize', resize, false);\n\n resize();\n\n const geometry = new Triangle(gl);\n\n program = new Program(gl, {\n vertex: vertexShader,\n fragment: fragmentShader,\n uniforms: {\n uTime: { value: 0 },\n uColor: { value: new Color(...color) },\n uResolution: {\n value: new Color(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height),\n },\n uMouse: { value: new Float32Array([mousePos.current.x, mousePos.current.y]) },\n uAmplitude: { value: amplitude },\n uSpeed: { value: speed },\n uOpacity: { value: opacity },\n },\n });\n\n programRef.current = program;\n\n const mesh = new Mesh(gl, { geometry: geometry, program: program });\n let animateId: number;\n\n function update(t: number) {\n animateId = requestAnimationFrame(update);\n program.uniforms.uTime.value = t * 0.001;\n renderer.render({ scene: mesh });\n }\n\n animateId = requestAnimationFrame(update);\n\n ctn.appendChild(gl.canvas);\n\n function handleMouseMove(e: MouseEvent) {\n const rect = ctn.getBoundingClientRect();\n const x = (e.clientX - rect.left) / rect.width;\n const y = 1.0 - (e.clientY - rect.top) / rect.height;\n mousePos.current = { x: x, y: y };\n program.uniforms.uMouse.value[0] = x;\n program.uniforms.uMouse.value[1] = y;\n }\n\n if (mouseReact) {\n ctn.addEventListener('mousemove', handleMouseMove);\n }\n\n return () => {\n cancelAnimationFrame(animateId);\n window.removeEventListener('resize', resize);\n if (mouseReact) {\n ctn.removeEventListener('mousemove', handleMouseMove);\n }\n ctn.removeChild(gl.canvas);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n };\n }, [mouseReact]);\n\n useEffect(() => {\n if (programRef.current) {\n programRef.current.uniforms.uColor.value = new Color(...color);\n programRef.current.uniforms.uSpeed.value = speed;\n programRef.current.uniforms.uAmplitude.value = amplitude;\n programRef.current.uniforms.uOpacity.value = opacity;\n }\n }, [color, speed, amplitude, opacity]);\n\n return (\n <div ref={ctnDom} className={cn('h-full w-full', className)} style={style} />\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { useEffect, useState } from 'react';\nimport { AnimationOptions, motion, useAnimate } from 'motion/react';\n\nconst TRANSITION: AnimationOptions = {\n duration: 2,\n ease: 'backInOut',\n};\n\nconst DELAY = 60;\n\ntype AnimationDirection = 'topToBottom' | 'bottomToTop' | 'rightToLeft' | 'leftToRight';\n\nconst DIRECTIONS: AnimationDirection[] = ['topToBottom', 'bottomToTop', 'rightToLeft', 'leftToRight'];\n\ninterface LetterSwapProperties {\n letter: string;\n className?: string;\n direction?: AnimationDirection;\n}\n\nexport function LetterSwap(properties: LetterSwapProperties) {\n const { letter, className, direction = 'leftToRight' } = properties;\n\n const [scope, animate] = useAnimate();\n const [blocked, setBlocked] = useState(false);\n const [config] = useState(() => ANIMATION_CONFIGS[getRandomDirection()]);\n\n useEffect(() => {\n if (blocked) return;\n\n const timer = window.setTimeout(animationStart, getRandomDelay());\n\n return () => clearTimeout(timer);\n }, [blocked, animationStart]);\n\n useEffect(() => {\n if (blocked) return;\n\n const timer = window.setTimeout(animationStart, getRandomDelay());\n\n return () => clearTimeout(timer);\n }, [blocked, animationStart]);\n\n function animationStart() {\n if (blocked) return;\n\n setBlocked(true);\n\n animate('.letter', config.primary.animate, TRANSITION).then(() => {\n animate('.letter', config.primary.reset, { duration: 0 }).then(() => {\n setBlocked(false);\n });\n });\n\n animate('.letter-secondary', config.secondary.animate, TRANSITION).then(() => {\n animate('.letter-secondary', config.secondary.reset, { duration: 0 });\n });\n }\n\n function getRandomDelay() {\n return Math.floor(Math.random() * DELAY * 1000);\n }\n\n function getRandomDirection() {\n const index = Math.floor(Math.random() * DIRECTIONS.length);\n return DIRECTIONS[index];\n }\n\n const containerClass = direction.includes('Left') || direction.includes('Right')\n ? 'flex-row'\n : 'flex-col';\n\n return (\n <span className={cn('relative flex items-center justify-center overflow-hidden', containerClass, className)} ref={scope}>\n <span className=\"relative flex whitespace-pre\" aria-hidden={true}>\n <motion.span\n className=\"letter relative\"\n style={config.primary.style}\n >\n {letter}\n </motion.span>\n <motion.span\n className=\"letter-secondary absolute\"\n style={config.secondary.initial}\n >\n {letter}\n </motion.span>\n </span>\n </span>\n );\n}\n\nconst ANIMATION_CONFIGS = {\n topToBottom: {\n primary: {\n initial: { y: 0 },\n animate: { y: '100%' },\n reset: { y: 0 },\n style: { top: 0 },\n },\n secondary: {\n initial: { top: '-100%' },\n animate: { top: '0%' },\n reset: { top: '-100%' },\n },\n },\n bottomToTop: {\n primary: {\n initial: { y: 0 },\n animate: { y: '-100%' },\n reset: { y: 0 },\n style: { top: 0 },\n },\n secondary: {\n initial: { top: '100%' },\n animate: { top: '0%' },\n reset: { top: '100%' },\n },\n },\n rightToLeft: {\n primary: {\n initial: { x: 0 },\n animate: { x: '-100%' },\n reset: { x: 0 },\n style: { left: 0 },\n },\n secondary: {\n initial: { left: '100%' },\n animate: { left: '0%' },\n reset: { left: '100%' },\n },\n },\n leftToRight: {\n primary: {\n initial: { x: 0 },\n animate: { x: '100%' },\n reset: { x: 0 },\n style: { left: 0 },\n },\n secondary: {\n initial: { left: '-100%' },\n animate: { left: '0%' },\n reset: { left: '-100%' },\n },\n },\n};\n","import { cn } from '@digo-labs/common';\n\nimport { Icon, Marquee, TextScramble } from '..';\n\ninterface MarqueeBarProperties {\n direction?: 'left' | 'right' | 'up' | 'down';\n className?: string;\n}\n\nexport function MarqueeBar(properties: MarqueeBarProperties) {\n const { className, direction = 'right' } = properties;\n\n function renderType(content: MarqueeBarContent, key: string | number) {\n switch (content.type) {\n case 'text':\n return (\n <TextScramble\n key={key}\n duration={1.5}\n >\n {content.content}\n </TextScramble>\n );\n case 'icon':\n return (\n <Icon key={key} icon={content.content} className=\"size-5\" />\n );\n }\n }\n\n return (\n <Marquee\n baseVelocity={-8}\n repeat={6}\n draggable={true}\n scrollSpringConfig={{ damping: 50, stiffness: 400 }}\n slowDownFactor={0.1}\n slowdownOnHover\n slowDownSpringConfig={{ damping: 60, stiffness: 300 }}\n scrollAwareDirection={true}\n useScrollVelocity={true}\n direction={direction}\n className={cn('pointer-events-auto w-full items-center gap-4 overflow-hidden border-neutral-1 bg-accent-9 p-2 typo-1 typo-code text-neutral-1', className)}\n >\n <div className=\"flex flex-row items-center gap-4 \">\n {CONTENT.map((content, index) => renderType(content, index))}\n </div>\n </Marquee>\n );\n}\n\ninterface MarqueeBarContent {\n type: 'icon' | 'text';\n content: string;\n}\n\nconst CONTENT: MarqueeBarContent[] = [\n { type: 'text', content: 'Charity is overrated. Try us.' },\n { type: 'icon', content: 'code' },\n { type: 'text', content: 'Turn cash into pure nothingness' },\n { type: 'text', content: '///////////////' },\n];\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties, PointerEvent, ReactNode, RefObject, useRef } from 'react';\n\nimport { motion, SpringOptions, useAnimationFrame, useMotionValue, useScroll, useSpring, useTransform, useVelocity } from 'motion/react';\n\nfunction wrap(min: number, max: number, value: number): number {\n const range = max - min;\n return ((((value - min) % range) + range) % range) + min;\n};\n\ninterface SimpleMarqueeProperties {\n children: ReactNode;\n className?: string;\n direction?: 'left' | 'right' | 'up' | 'down';\n baseVelocity?: number;\n easing?: (value: number) => number;\n slowdownOnHover?: boolean;\n slowDownFactor?: number;\n slowDownSpringConfig?: SpringOptions;\n useScrollVelocity?: boolean;\n scrollAwareDirection?: boolean;\n scrollSpringConfig?: SpringOptions;\n scrollContainer?: RefObject<HTMLElement> | HTMLElement | null;\n repeat?: number;\n draggable?: boolean;\n dragSensitivity?: number;\n dragVelocityDecay?: number;\n dragAwareDirection?: boolean;\n dragAngle?: number;\n grabCursor?: boolean;\n style?: CSSProperties;\n}\n\nexport function Marquee(properites: SimpleMarqueeProperties) {\n const {\n children,\n className,\n direction = 'right',\n baseVelocity = 5,\n slowdownOnHover = false,\n slowDownFactor = 0.3,\n slowDownSpringConfig = { damping: 50, stiffness: 400 },\n useScrollVelocity = false,\n scrollAwareDirection = false,\n scrollSpringConfig = { damping: 50, stiffness: 400 },\n scrollContainer,\n repeat = 3,\n draggable = false,\n dragSensitivity = 0.2,\n dragVelocityDecay = 0.96,\n dragAwareDirection = false,\n dragAngle = 0,\n grabCursor = false,\n style,\n easing,\n } = properites;\n\n const innerContainer = useRef<HTMLDivElement>(null);\n const baseX = useMotionValue(0);\n const baseY = useMotionValue(0);\n\n const { scrollY } = useScroll({ container: (scrollContainer as RefObject<HTMLDivElement>) || innerContainer.current });\n\n const scrollVelocity = useVelocity(scrollY);\n const smoothVelocity = useSpring(scrollVelocity, scrollSpringConfig);\n\n const hoverFactorValue = useMotionValue(1);\n const defaultVelocity = useMotionValue(1);\n\n const isDragging = useRef(false);\n\n const dragVelocity = useRef(0);\n\n const smoothHoverFactor = useSpring(hoverFactorValue, slowDownSpringConfig);\n\n const velocityFactor = useTransform(useScrollVelocity ? smoothVelocity : defaultVelocity, [0, 1000], [0, 5], { clamp: false });\n\n const isHorizontal = direction === 'left' || direction === 'right';\n\n const actualBaseVelocity = direction === 'left' || direction === 'up' ? -baseVelocity : baseVelocity;\n\n const isHovered = useRef(false);\n\n const directionFactor = useRef(1);\n\n const x = useTransform(baseX, (v) => {\n const wrappedValue = wrap(0, -100, v);\n return `${easing ? easing(wrappedValue / -100) * -100 : wrappedValue}%`;\n });\n\n const y = useTransform(baseY, (v) => {\n const wrappedValue = wrap(0, -100, v);\n return `${easing ? easing(wrappedValue / -100) * -100 : wrappedValue}%`;\n });\n\n useAnimationFrame((_, delta) => {\n if (isDragging.current && draggable) {\n if (isHorizontal) {\n baseX.set(baseX.get() + dragVelocity.current);\n } else {\n baseY.set(baseY.get() + dragVelocity.current);\n }\n\n dragVelocity.current *= 0.9;\n\n if (Math.abs(dragVelocity.current) < 0.01) {\n dragVelocity.current = 0;\n }\n\n return;\n }\n\n if (isHovered.current) {\n hoverFactorValue.set(slowdownOnHover ? slowDownFactor : 1);\n } else {\n hoverFactorValue.set(1);\n }\n\n let moveBy = directionFactor.current * actualBaseVelocity * (delta / 1000) * smoothHoverFactor.get();\n\n if (scrollAwareDirection && !isDragging.current) {\n if (velocityFactor.get() < 0) {\n directionFactor.current = -1;\n } else if (velocityFactor.get() > 0) {\n directionFactor.current = 1;\n }\n }\n\n moveBy += directionFactor.current * moveBy * velocityFactor.get();\n\n if (draggable) {\n moveBy += dragVelocity.current;\n\n if (dragAwareDirection && Math.abs(dragVelocity.current) > 0.1) {\n directionFactor.current = Math.sign(dragVelocity.current);\n }\n\n if (!isDragging.current && Math.abs(dragVelocity.current) > 0.01) {\n dragVelocity.current *= dragVelocityDecay;\n } else if (!isDragging.current) {\n dragVelocity.current = 0;\n }\n }\n\n if (isHorizontal) {\n baseX.set(baseX.get() + moveBy);\n } else {\n baseY.set(baseY.get() + moveBy);\n }\n });\n\n const lastPointerPosition = useRef({ x: 0, y: 0 });\n\n function handlePointerDown(e: PointerEvent) {\n if (!draggable)\n return\n ;(e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n\n if (grabCursor) {\n ;(e.currentTarget as HTMLElement).style.cursor = 'grabbing';\n }\n\n isDragging.current = true;\n lastPointerPosition.current = { x: e.clientX, y: e.clientY };\n\n dragVelocity.current = 0;\n };\n\n function handlePointerMove(e: PointerEvent) {\n if (!draggable || !isDragging.current) return;\n\n const currentPosition = { x: e.clientX, y: e.clientY };\n\n const deltaX = currentPosition.x - lastPointerPosition.current.x;\n const deltaY = currentPosition.y - lastPointerPosition.current.y;\n\n const angleInRadians = (dragAngle * Math.PI) / 180;\n\n const directionX = Math.cos(angleInRadians);\n const directionY = Math.sin(angleInRadians);\n\n const projectedDelta = deltaX * directionX + deltaY * directionY;\n\n dragVelocity.current = projectedDelta * dragSensitivity;\n\n lastPointerPosition.current = currentPosition;\n };\n\n function handlePointerUp(e: PointerEvent) {\n if (!draggable) return // Release pointer capture\n ;(e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);\n\n isDragging.current = false;\n };\n\n return (\n <motion.div\n className={cn('flex', isHorizontal ? 'flex-row' : 'flex-col', className)}\n onHoverStart={() => (isHovered.current = true)}\n onHoverEnd={() => (isHovered.current = false)}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n ref={innerContainer}\n style={style}\n >\n {Array.from({ length: repeat }, (_, i) => i).map(i => (\n <motion.div\n key={i}\n className={cn(\n 'shrink-0',\n isHorizontal && 'flex',\n draggable && grabCursor && 'cursor-grab',\n )}\n style={isHorizontal ? { x: x } : { y: y }}\n aria-hidden={i > 0}\n >\n {children}\n </motion.div>\n ))}\n </motion.div>\n );\n};\n","import { cn } from '@digo-labs/common';\n\nimport { useRef, useEffect } from 'react';\n\ninterface NoiseProperties {\n patternSize?: number;\n patternScaleX?: number;\n patternScaleY?: number;\n patternRefreshInterval?: number;\n patternAlpha?: number;\n className?: string;\n}\n\nexport function Noise(properties: NoiseProperties) {\n const {\n patternSize = 250,\n patternScaleX = 1,\n patternScaleY = 1,\n patternRefreshInterval = 2,\n patternAlpha = 15,\n className,\n } = properties;\n\n const grainRef = useRef<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n const canvas = grainRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d', { alpha: true });\n if (!ctx) return;\n\n let frame = 0;\n let animationId: number;\n\n const canvasSize = 1024;\n\n const resize = () => {\n if (!canvas) return;\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n\n canvas.style.width = '100vw';\n canvas.style.height = '100vh';\n };\n\n const drawGrain = () => {\n const imageData = ctx.createImageData(canvasSize, canvasSize);\n const data = imageData.data;\n\n for (let i = 0; i < data.length; i += 4) {\n const value = Math.random() * 255;\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n data[i + 3] = patternAlpha;\n }\n\n ctx.putImageData(imageData, 0, 0);\n };\n\n const loop = () => {\n if (frame % patternRefreshInterval === 0) {\n drawGrain();\n }\n frame++;\n animationId = window.requestAnimationFrame(loop);\n };\n\n window.addEventListener('resize', resize);\n resize();\n loop();\n\n return () => {\n window.removeEventListener('resize', resize);\n window.cancelAnimationFrame(animationId);\n };\n }, [patternSize, patternScaleX, patternScaleY, patternRefreshInterval, patternAlpha]);\n\n return (\n <div className={cn('pointer-events-none absolute inset-0 grid', className)}>\n <canvas\n className=\"size-full\"\n ref={grainRef}\n style={{\n imageRendering: 'pixelated',\n }}\n />\n </div>\n );\n};\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties, useEffect, useRef } from 'react';\nimport { Renderer, Program, Mesh, Triangle, Vec3 } from 'ogl';\n\ntype ColorRGB = [number, number, number];\n\ninterface Properties {\n hue?: number;\n className?: string;\n innerRadius?: number;\n noiseScale?: number;\n rotationSpeed?: number;\n color1?: ColorRGB;\n color2?: ColorRGB;\n color3?: ColorRGB;\n style?: CSSProperties;\n}\n\nexport function Orb(properties: Properties) {\n const {\n hue = 0,\n rotationSpeed = 0,\n innerRadius = 0.6,\n noiseScale = 0.65,\n color1 = [1, 1, 1],\n color2 = [1, 0, 0],\n color3 = [0, 0, 1],\n style,\n className,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const programRef = useRef<Program | null>(null);\n\n const vert = `\n precision highp float;\n attribute vec2 position;\n attribute vec2 uv;\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `;\n\n const frag = `\n precision highp float;\n\n uniform float iTime;\n uniform float hue;\n uniform float innerRadius;\n uniform float noiseScale;\n uniform float rotationSpeed;\n uniform vec3 iResolution;\n uniform vec3 baseColor1;\n uniform vec3 baseColor2;\n uniform vec3 baseColor3;\n varying vec2 vUv;\n\n vec3 rgb2yiq(vec3 c) {\n float y = dot(c, vec3(0.299, 0.587, 0.114));\n float i = dot(c, vec3(0.596, -0.274, -0.322));\n float q = dot(c, vec3(0.211, -0.523, 0.312));\n return vec3(y, i, q);\n }\n \n vec3 yiq2rgb(vec3 c) {\n float r = c.x + 0.956 * c.y + 0.621 * c.z;\n float g = c.x - 0.272 * c.y - 0.647 * c.z;\n float b = c.x - 1.106 * c.y + 1.703 * c.z;\n return vec3(r, g, b);\n }\n \n vec3 adjustHue(vec3 color, float hueDeg) {\n float hueRad = hueDeg * 3.14159265 / 180.0;\n vec3 yiq = rgb2yiq(color);\n float cosA = cos(hueRad);\n float sinA = sin(hueRad);\n float i = yiq.y * cosA - yiq.z * sinA;\n float q = yiq.y * sinA + yiq.z * cosA;\n yiq.y = i;\n yiq.z = q;\n return yiq2rgb(yiq);\n }\n \n vec3 hash33(vec3 p3) {\n p3 = fract(p3 * vec3(0.1031, 0.11369, 0.13787));\n p3 += dot(p3, p3.yxz + 19.19);\n return -1.0 + 2.0 * fract(vec3(\n p3.x + p3.y,\n p3.x + p3.z,\n p3.y + p3.z\n ) * p3.zyx);\n }\n \n float snoise3(vec3 p) {\n const float K1 = 0.333333333;\n const float K2 = 0.166666667;\n vec3 i = floor(p + (p.x + p.y + p.z) * K1);\n vec3 d0 = p - (i - (i.x + i.y + i.z) * K2);\n vec3 e = step(vec3(0.0), d0 - d0.yzx);\n vec3 i1 = e * (1.0 - e.zxy);\n vec3 i2 = 1.0 - e.zxy * (1.0 - e);\n vec3 d1 = d0 - (i1 - K2);\n vec3 d2 = d0 - (i2 - K1);\n vec3 d3 = d0 - 0.5;\n vec4 h = max(0.6 - vec4(\n dot(d0, d0),\n dot(d1, d1),\n dot(d2, d2),\n dot(d3, d3)\n ), 0.0);\n vec4 n = h * h * h * h * vec4(\n dot(d0, hash33(i)),\n dot(d1, hash33(i + i1)),\n dot(d2, hash33(i + i2)),\n dot(d3, hash33(i + 1.0))\n );\n return dot(vec4(31.316), n);\n }\n \n vec4 extractAlpha(vec3 colorIn) {\n float a = max(max(colorIn.r, colorIn.g), colorIn.b);\n return vec4(colorIn.rgb / (a + 1e-5), a);\n }\n \n \n float light1(float intensity, float attenuation, float dist) {\n return intensity / (1.0 + dist * attenuation);\n }\n \n float light2(float intensity, float attenuation, float dist) {\n return intensity / (1.0 + dist * dist * attenuation);\n }\n \n vec4 draw(vec2 uv) {\n vec3 color1 = adjustHue(baseColor1, hue);\n vec3 color2 = adjustHue(baseColor2, hue);\n vec3 color3 = adjustHue(baseColor3, hue);\n \n float ang = atan(uv.y, uv.x);\n float len = length(uv);\n float invLen = len > 0.0 ? 1.0 / len : 0.0;\n \n float n0 = snoise3(vec3(uv * noiseScale, iTime * 0.5)) * 0.5 + 0.5;\n float r0 = mix(mix(innerRadius, 1.0, 0.4), mix(innerRadius, 1.0, 0.6), n0);\n float d0 = distance(uv, (r0 * invLen) * uv);\n float v0 = light1(1.0, 10.0, d0);\n v0 *= smoothstep(r0 * 1.05, r0, len);\n float cl = cos(ang + iTime * 2.0) * 0.5 + 0.5;\n \n float a = iTime * -1.0;\n vec2 pos = vec2(cos(a), sin(a)) * r0;\n float d = distance(uv, pos);\n float v1 = light2(1.5, 5.0, d);\n v1 *= light1(1.0, 50.0, d0);\n \n float v2 = smoothstep(1.0, mix(innerRadius, 1.0, n0 * 0.5), len);\n float v3 = smoothstep(innerRadius, mix(innerRadius, 1.0, 0.5), len);\n \n vec3 col = mix(color1, color2, cl);\n col = mix(color3, col, v0);\n col = (col + v1) * v2;\n col = clamp(col, 0.0, 1.0);\n \n return extractAlpha(col);\n }\n \n vec4 mainImage(vec2 fragCoord) {\n vec2 center = iResolution.xy * 0.5;\n float size = min(iResolution.x, iResolution.y);\n vec2 uv = (fragCoord - center) / size * 2.0;\n \n float angle = iTime * rotationSpeed;\n float s = sin(angle);\n float c = cos(angle);\n uv = vec2(c * uv.x - s * uv.y, s * uv.x + c * uv.y);\n \n return draw(uv);\n }\n \n void main() {\n vec2 fragCoord = vUv * iResolution.xy;\n vec4 col = mainImage(fragCoord);\n gl_FragColor = vec4(col.rgb * col.a, col.a);\n }\n `;\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const renderer = new Renderer({ alpha: true, premultipliedAlpha: false });\n\n const gl = renderer.gl;\n\n gl.clearColor(0, 0, 0, 0);\n\n container.appendChild(gl.canvas);\n\n const geometry = new Triangle(gl);\n\n const program = new Program(gl, {\n vertex: vert,\n fragment: frag,\n uniforms: {\n iTime: { value: 0 },\n iResolution: {\n value: new Vec3(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height),\n },\n hue: { value: hue },\n rotationSpeed: { value: rotationSpeed },\n innerRadius: { value: innerRadius },\n noiseScale: { value: noiseScale },\n baseColor1: { value: new Vec3(...color1) },\n baseColor2: { value: new Vec3(...color2) },\n baseColor3: { value: new Vec3(...color3) },\n },\n });\n\n programRef.current = program;\n\n const mesh = new Mesh(gl, { geometry: geometry, program: program });\n\n function resize() {\n if (!container) return;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n renderer.setSize(width * dpr, height * dpr);\n\n gl.canvas.style.width = width + 'px';\n gl.canvas.style.height = height + 'px';\n\n program.uniforms.iResolution.value.set(gl.canvas.width, gl.canvas.height, gl.canvas.width / gl.canvas.height);\n }\n\n window.addEventListener('resize', resize);\n\n resize();\n\n let rafId: number;\n\n const update = (t: number) => {\n rafId = requestAnimationFrame(update);\n\n program.uniforms.iTime.value = t * 0.001;\n\n renderer.render({ scene: mesh });\n };\n rafId = requestAnimationFrame(update);\n\n return () => {\n cancelAnimationFrame(rafId);\n window.removeEventListener('resize', resize);\n container.removeChild(gl.canvas);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n };\n }, []);\n\n useEffect(() => {\n if (!programRef.current) return;\n\n programRef.current.uniforms.hue.value = hue;\n programRef.current.uniforms.rotationSpeed.value = rotationSpeed;\n programRef.current.uniforms.noiseScale.value = noiseScale;\n programRef.current.uniforms.innerRadius.value = innerRadius;\n programRef.current.uniforms.baseColor1.value.set(...color1);\n programRef.current.uniforms.baseColor2.value.set(...color2);\n programRef.current.uniforms.baseColor3.value.set(...color3);\n }, [hue, rotationSpeed, noiseScale, innerRadius, color1, color2, color3]);\n\n return (\n\n <div\n ref={containerRef}\n className={cn('h-full w-full', className)}\n style={style}\n />\n\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { AnimatePresence, motion, Transition, Variants } from 'motion/react';\n\nimport { useMemo, useId, CSSProperties } from 'react';\n\nexport interface TextMorphProperties {\n children: string;\n className?: string;\n style?: CSSProperties;\n variants?: Variants;\n transition?: Transition;\n damping?: number;\n stiffness?: number;\n mass?: number;\n onFinish?: () => void;\n};\n\nexport function TextMorph(properties: TextMorphProperties) {\n const {\n children,\n className,\n style,\n variants,\n transition,\n damping = 10,\n stiffness = 150,\n mass = 0.5,\n onFinish,\n } = properties;\n\n const uniqueId = useId();\n\n const characters = useMemo(() => {\n const charCounts: Record<string, number> = {};\n\n return children.split('').map((char) => {\n const lowerChar = char.toLowerCase();\n charCounts[lowerChar] = (charCounts[lowerChar] || 0) + 1;\n\n return {\n id: `${uniqueId}-${lowerChar}${charCounts[lowerChar]}`,\n label: char === ' ' ? '\\u00A0' : char,\n };\n });\n }, [children, uniqueId]);\n\n const defaultVariants: Variants = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n };\n\n const defaultTransition: Transition = {\n type: 'spring',\n stiffness: stiffness,\n damping: damping,\n mass: mass,\n };\n\n return (\n <p className={cn(className)} aria-label={children} style={style}>\n <AnimatePresence mode=\"popLayout\" initial={false} onExitComplete={onFinish}>\n {characters.map(character => (\n <motion.span\n key={character.id}\n layoutId={character.id}\n className=\"inline-block transform-gpu\"\n aria-hidden=\"true\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants || defaultVariants}\n transition={transition || defaultTransition}\n >\n {character.label}\n </motion.span>\n ))}\n </AnimatePresence>\n </p>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { useEffect, useRef, useState } from 'react';\n\ninterface TextPressureProps {\n text?: string;\n width?: boolean;\n weight?: boolean;\n italic?: boolean;\n alpha?: boolean;\n flex?: boolean;\n scale?: boolean;\n className?: string;\n minFontSize?: number;\n}\n\nexport function TextPressure(properties: TextPressureProps) {\n const {\n text = 'Compressa',\n width = true,\n weight = true,\n italic = true,\n alpha = false,\n scale = false,\n className = '',\n minFontSize = 24,\n } = properties;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n const titleRef = useRef<HTMLHeadingElement | null>(null);\n const spansRef = useRef<(HTMLSpanElement | null)[]>([]);\n\n const mouseRef = useRef({ x: 0, y: 0 });\n const cursorRef = useRef({ x: 0, y: 0 });\n\n const [fontSize, setFontSize] = useState(minFontSize);\n const [scaleY, setScaleY] = useState(1);\n const [lineHeight, setLineHeight] = useState(1);\n\n const chars = text.split('');\n\n const dist = (a: { x: number; y: number; }, b: { x: number; y: number; }) => {\n const dx = b.x - a.x;\n const dy = b.y - a.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n cursorRef.current.x = e.clientX;\n cursorRef.current.y = e.clientY;\n };\n\n const handleTouchMove = (e: TouchEvent) => {\n const t = e.touches[0];\n cursorRef.current.x = t.clientX;\n cursorRef.current.y = t.clientY;\n };\n\n window.addEventListener('mousemove', handleMouseMove);\n\n window.addEventListener('touchmove', handleTouchMove, { passive: false });\n\n if (containerRef.current) {\n const { left, top, width, height } = containerRef.current.getBoundingClientRect();\n mouseRef.current.x = left + width / 2;\n mouseRef.current.y = top + height / 2;\n cursorRef.current.x = mouseRef.current.x;\n cursorRef.current.y = mouseRef.current.y;\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('touchmove', handleTouchMove);\n };\n }, []);\n\n const setSize = () => {\n if (!containerRef.current || !titleRef.current) return;\n\n const { width: containerW, height: containerH } = containerRef.current.getBoundingClientRect();\n\n let newFontSize = containerW / (chars.length / 2);\n newFontSize = Math.max(newFontSize, minFontSize);\n\n setFontSize(newFontSize);\n setScaleY(1);\n setLineHeight(1);\n\n requestAnimationFrame(() => {\n if (!titleRef.current) return;\n const textRect = titleRef.current.getBoundingClientRect();\n\n if (scale && textRect.height > 0) {\n const yRatio = containerH / textRect.height;\n setScaleY(yRatio);\n setLineHeight(yRatio);\n }\n });\n };\n\n useEffect(() => {\n setSize();\n\n window.addEventListener('resize', setSize);\n\n return () => window.removeEventListener('resize', setSize);\n }, [scale, text]);\n\n useEffect(() => {\n let rafId: number;\n const animate = () => {\n mouseRef.current.x += (cursorRef.current.x - mouseRef.current.x) / 15;\n mouseRef.current.y += (cursorRef.current.y - mouseRef.current.y) / 15;\n\n if (titleRef.current) {\n const titleRect = titleRef.current.getBoundingClientRect();\n const maxDist = titleRect.width / 2;\n\n spansRef.current.forEach((span) => {\n if (!span) return;\n\n const rect = span.getBoundingClientRect();\n const charCenter = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n\n const d = dist(mouseRef.current, charCenter);\n\n const getAttr = (distance: number, minVal: number, maxVal: number) => {\n const val = maxVal - Math.abs((maxVal * distance) / maxDist);\n return Math.max(minVal, val + minVal);\n };\n\n const wdth = width ? Math.floor(getAttr(d, 5, 200)) : 100;\n const wght = weight ? Math.floor(getAttr(d, 100, 900)) : 400;\n const italVal = italic ? getAttr(d, 0, 1).toFixed(2) : '0';\n const alphaVal = alpha ? getAttr(d, 0, 1).toFixed(2) : '1';\n\n span.style.opacity = alphaVal;\n span.style.fontVariationSettings = `'wght' ${wght}, 'wdth' ${wdth}, 'ital' ${italVal}`;\n });\n }\n\n rafId = requestAnimationFrame(animate);\n };\n\n animate();\n return () => cancelAnimationFrame(rafId);\n }, [width, weight, italic, alpha, chars.length]);\n\n return (\n <div\n ref={containerRef}\n className=\"relative size-full overflow-hidden bg-transparent\"\n >\n\n <h1\n ref={titleRef}\n className={cn('flex justify-between text-center typo-header text-neutral-11 uppercase select-none', className)}\n style={{\n fontSize: fontSize,\n lineHeight: lineHeight,\n transform: `scale(1, ${scaleY})`,\n transformOrigin: 'center top',\n margin: 0,\n fontWeight: 100,\n }}\n >\n {chars.map((char, i) => (\n <span\n key={i}\n ref={(el) => { spansRef.current[i] = el; }}\n data-char={char}\n className=\"inline-block\"\n >\n {char}\n </span>\n ))}\n </h1>\n </div>\n );\n};\n","import { motion, VariantLabels, Target, TargetAndTransition, Transition } from 'motion/react';\n\ninterface Properties {\n children: string;\n duration?: number;\n getEnterDelay?: (index: number) => number;\n getExitDelay?: (index: number) => number;\n className?: string;\n transition?: Transition;\n variants?: {\n enter: {\n initial: Target | VariantLabels | boolean;\n animate: TargetAndTransition | VariantLabels;\n };\n exit: {\n initial: Target | VariantLabels | boolean;\n animate: TargetAndTransition | VariantLabels;\n };\n };\n onAnimationComplete?: () => void;\n};\n\nexport function TextRoll(properties: Properties) {\n const {\n children,\n duration = 0.5,\n getEnterDelay = i => i * 0.1,\n getExitDelay = i => i * 0.1 + 0.2,\n className,\n transition = { ease: 'easeIn' },\n variants,\n onAnimationComplete,\n } = properties;\n\n const defaultVariants = {\n enter: {\n initial: { rotateX: 0 },\n animate: { rotateX: 90 },\n },\n exit: {\n initial: { rotateX: 90 },\n animate: { rotateX: 0 },\n },\n } as const;\n\n const letters = children.split('');\n\n return (\n <span className={className}>\n {letters.map((letter, i) => {\n return (\n <span\n key={i}\n className=\"relative inline-block w-auto perspective-[10000px] transform-3d\"\n aria-hidden=\"true\"\n >\n <motion.span\n className=\"absolute inline-block origin-[50%_25%] backface-hidden\"\n initial={\n variants?.enter?.initial ?? defaultVariants.enter.initial\n }\n animate={\n variants?.enter?.animate ?? defaultVariants.enter.animate\n }\n transition={{\n ...transition,\n duration: duration,\n delay: getEnterDelay(i),\n }}\n >\n {letter === ' ' ? '\\u00A0' : letter}\n </motion.span>\n <motion.span\n className=\"absolute inline-block origin-[50%_100%] backface-hidden\"\n initial={variants?.exit?.initial ?? defaultVariants.exit.initial}\n animate={variants?.exit?.animate ?? defaultVariants.exit.animate}\n transition={{\n ...transition,\n duration: duration,\n delay: getExitDelay(i),\n }}\n onAnimationComplete={\n letters.length === i + 1 ? onAnimationComplete : undefined\n }\n >\n {letter === ' ' ? '\\u00A0' : letter}\n </motion.span>\n <span className=\"invisible\">\n {letter === ' ' ? '\\u00A0' : letter}\n </span>\n </span>\n );\n })}\n <span className=\"sr-only\">{children}</span>\n </span>\n );\n}\n","import { CSSProperties, type JSX, useEffect, useState } from 'react';\nimport { motion, MotionProps } from 'motion/react';\n\ninterface Properties extends MotionProps {\n children: string;\n duration?: number;\n delay?: number;\n characterSet?: 'default' | 'binary';\n as?: React.ElementType;\n className?: string;\n style?: CSSProperties;\n trigger?: boolean;\n triggerOnMouse?: boolean;\n onScrambleComplete?: () => void;\n}\n\nconst DEFAULT_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nconst BINARY_CHARACTERS = '01';\n\nexport function TextScramble(properties: Properties) {\n const {\n children,\n duration = 0.8,\n delay = 0.04,\n characterSet = 'default',\n className,\n as: Component = 'p',\n trigger = true,\n onScrambleComplete,\n triggerOnMouse = false,\n style,\n ...props\n } = properties;\n\n const MotionComponent = motion.create(Component as keyof JSX.IntrinsicElements);\n const [displayText, setDisplayText] = useState(children);\n const [isAnimating, setIsAnimating] = useState(false);\n const [isTrigger, setIsTrigger] = useState(trigger);\n\n useEffect(() => {\n setIsTrigger(trigger);\n }, [trigger]);\n\n useEffect(() => {\n setDisplayText(children);\n\n if (isAnimating) return;\n\n setIsTrigger(true);\n }, [children]);\n\n useEffect(() => {\n if (!isTrigger) return;\n\n setIsTrigger(false);\n\n scramble();\n }, [isTrigger]);\n\n async function scramble() {\n if (isAnimating) return;\n\n setIsAnimating(true);\n\n const steps = duration / delay;\n let step = 0;\n\n const characters = characterSet === 'binary' ? BINARY_CHARACTERS : DEFAULT_CHARACTERS;\n\n const interval = setInterval(() => {\n let scrambled = '';\n const progress = step / steps;\n\n for (let i = 0; i < children.length; i++) {\n if (children[i] === ' ') {\n scrambled += ' ';\n continue;\n }\n\n if (progress * children.length > i) {\n scrambled += children[i];\n } else {\n scrambled += characters[Math.floor(Math.random() * characters.length)];\n }\n }\n\n setDisplayText(scrambled);\n step++;\n\n if (step > steps) {\n clearInterval(interval);\n setDisplayText(children);\n setIsAnimating(false);\n setIsTrigger(false);\n onScrambleComplete?.();\n }\n }, delay * 1000);\n };\n\n return (\n <div onMouseEnter={() => !isAnimating && triggerOnMouse && setIsTrigger(true)}>\n <MotionComponent className={className} style={style} {...props}>\n {displayText}\n </MotionComponent>\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { CSSProperties, ElementType, useMemo, type JSX } from 'react';\nimport { motion } from 'motion/react';\n\nimport { ComponentStylesProps, createComponentStyles } from '../utils/styles';\n\nconst { ComponentStylesProvider, useComponentStyles } = createComponentStyles('textShimmer');\n\ntype Properties = RootProperties & ComponentStylesProps<'textShimmer'>;\n\nexport function TextShimmer(properties: Properties) {\n const { classNames, ...props } = properties;\n\n return (\n <ComponentStylesProvider classNames={classNames}>\n <TextShimmerRoot {...props} />\n </ComponentStylesProvider>\n );\n}\n\ninterface RootProperties {\n children: string;\n as?: ElementType;\n className?: string;\n duration?: number;\n spread?: number;\n highlightColor?: string;\n}\n\nfunction TextShimmerRoot(properties: RootProperties) {\n const {\n children,\n as: Component = 'p',\n className,\n duration = 2,\n spread = 2,\n highlightColor = '#000',\n } = properties;\n\n const styles = useComponentStyles();\n const MotionComponent = motion.create(Component as keyof JSX.IntrinsicElements);\n const dynamicSpread = useMemo(() => children.length * spread, [children, spread]);\n\n return (\n <MotionComponent\n data-slot=\"text-shimmer\"\n className={cn(styles.root, className)}\n initial={{ backgroundPosition: '100% center' }}\n animate={{ backgroundPosition: '0% center' }}\n transition={{\n repeat: Infinity,\n duration: duration,\n ease: 'linear',\n }}\n style={{\n backgroundImage: `linear-gradient(90deg, currentColor calc(50% - ${dynamicSpread}px), ${highlightColor} 50%, currentColor calc(50% + ${dynamicSpread}px))`,\n backgroundSize: '250% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n backgroundRepeat: 'no-repeat',\n } as CSSProperties}\n >\n {children}\n </MotionComponent>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { type JSX } from 'react';\nimport { motion, Transition } from 'motion/react';\n\ninterface Properties {\n children: string;\n as?: React.ElementType;\n className?: string;\n duration?: number;\n zDistance?: number;\n xDistance?: number;\n yDistance?: number;\n spread?: number;\n scaleDistance?: number;\n rotateYDistance?: number;\n transition?: Transition;\n};\n\nexport function TextShimmerWave(properties: Properties) {\n const {\n children,\n as: Component = 'p',\n className,\n duration = 1,\n zDistance = 10,\n xDistance = 2,\n yDistance = -2,\n spread = 1,\n scaleDistance = 1.1,\n rotateYDistance = 10,\n transition,\n } = properties;\n\n const MotionComponent = motion.create(\n Component as keyof JSX.IntrinsicElements,\n );\n\n return (\n <MotionComponent\n className={cn(\n 'relative inline-block perspective-normal',\n '[--base-color:#a1a1aa] [--base-gradient-color:#000]',\n className,\n )}\n style={{ color: 'var(--base-color)' }}\n >\n {children.split('').map((char, i) => {\n const delay = (i * duration * (1 / spread)) / children.length;\n\n return (\n <motion.span\n key={i}\n className={cn(\n 'inline-block whitespace-pre transform-3d',\n )}\n initial={{\n translateZ: 0,\n scale: 1,\n rotateY: 0,\n color: 'var(--base-color)',\n }}\n animate={{\n translateZ: [0, zDistance, 0],\n translateX: [0, xDistance, 0],\n translateY: [0, yDistance, 0],\n scale: [1, scaleDistance, 1],\n rotateY: [0, rotateYDistance, 0],\n color: [\n 'var(--base-color)',\n 'var(--base-gradient-color)',\n 'var(--base-color)',\n ],\n }}\n transition={{\n duration: duration,\n repeat: Infinity,\n repeatDelay: (children.length * 0.05) / spread,\n delay: delay,\n ease: 'easeInOut',\n ...transition,\n }}\n >\n {char}\n </motion.span>\n );\n })}\n </MotionComponent>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { LetterSwap } from '..';\n\ninterface TextSwapLetterProperties {\n word: string;\n className?: string;\n}\n\nexport function TextSwapLetter(properties: TextSwapLetterProperties) {\n const { word, className } = properties;\n\n return (\n <div className={cn('gap-4 overflow-hidden typo-header ', className)}>\n <div className=\"mb-[-2vw] flex items-center text-[20vw] leading-[16vw]\">\n {word.split('').map((letter, index) => (\n <LetterSwap\n key={index}\n letter={letter}\n />\n ))}\n </div>\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport { ElementType, useEffect, useRef, useState, createElement, useMemo, HTMLAttributes, ReactNode } from 'react';\n\nimport { gsap } from 'gsap';\n\ninterface Properties extends HTMLAttributes<HTMLElement> {\n className?: string;\n showCursor?: boolean;\n hideCursorWhileTyping?: boolean;\n hideCursorOnComplete?: boolean;\n cursorCharacter?: '|' | '█' | '▮' | '▌' | '_' | ReactNode;\n cursorBlinkDuration?: number;\n cursorClassName?: string;\n text: string | string[];\n as?: ElementType;\n typingSpeed?: number;\n initialDelay?: number;\n pauseDuration?: number;\n deletingSpeed?: number;\n loop?: boolean;\n textColors?: string[];\n variableSpeed?: { min: number; max: number; };\n onSentenceComplete?: (sentence: string, index: number) => void;\n startOnVisible?: boolean;\n reverseMode?: boolean;\n}\n\nexport function TextType(properties: Properties) {\n const {\n text,\n as: Component = 'div',\n typingSpeed = 50,\n initialDelay = 100,\n pauseDuration = 500,\n deletingSpeed = 20,\n loop = true,\n className = '',\n showCursor = true,\n hideCursorWhileTyping = false,\n hideCursorOnComplete = false,\n cursorCharacter = '▌',\n cursorClassName = '',\n cursorBlinkDuration = 0.5,\n textColors = [],\n variableSpeed,\n onSentenceComplete,\n startOnVisible = true,\n reverseMode = false,\n ...props\n } = properties;\n\n const [displayedText, setDisplayedText] = useState('');\n const [currentCharIndex, setCurrentCharIndex] = useState(0);\n const [isDeleting, setIsDeleting] = useState(false);\n const [currentTextIndex, setCurrentTextIndex] = useState(0);\n const [isVisible, setIsVisible] = useState(!startOnVisible);\n const [previousText, setPreviousText] = useState(text);\n const cursorRef = useRef<HTMLSpanElement>(null);\n const containerRef = useRef<HTMLElement>(null);\n\n const textArray = useMemo(() => (Array.isArray(text) ? text : [text]), [text]);\n\n useEffect(() => {\n if (previousText !== text && displayedText !== '') {\n setIsDeleting(true);\n setPreviousText(text);\n }\n }, [text, previousText, displayedText]);\n\n function getRandomSpeed() {\n if (!variableSpeed) return typingSpeed;\n\n const { min, max } = variableSpeed;\n\n return Math.random() * (max - min) + min;\n }\n\n function getCurrentTextColor() {\n if (textColors.length === 0) return;\n\n return textColors[currentTextIndex % textColors.length];\n };\n\n useEffect(() => {\n if (!startOnVisible || !containerRef.current) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n }\n });\n },\n { threshold: 0.1 },\n );\n\n observer.observe(containerRef.current);\n return () => observer.disconnect();\n }, [startOnVisible]);\n\n useEffect(() => {\n if (showCursor && cursorRef.current) {\n gsap.set(cursorRef.current, { opacity: 1 });\n gsap.to(cursorRef.current, {\n opacity: 0,\n duration: cursorBlinkDuration,\n repeat: -1,\n yoyo: true,\n ease: 'power2.inOut',\n });\n }\n }, [showCursor, cursorBlinkDuration]);\n\n useEffect(() => {\n if (!isVisible) return;\n\n let timeout: NodeJS.Timeout;\n\n const currentText = textArray[currentTextIndex];\n const processedText = reverseMode ? currentText.split('').reverse().join('') : currentText;\n\n const executeTypingAnimation = () => {\n if (isDeleting) {\n if (displayedText === '') {\n setIsDeleting(false);\n\n setCurrentCharIndex(0);\n\n if (Array.isArray(text)) {\n if (currentTextIndex === textArray.length - 1 && !loop) {\n return;\n }\n\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n\n setCurrentTextIndex(prev => (prev + 1) % textArray.length);\n }\n\n timeout = setTimeout(() => {}, pauseDuration);\n } else {\n timeout = setTimeout(() => {\n setDisplayedText(prev => prev.slice(0, -1));\n }, deletingSpeed);\n }\n } else {\n if (currentCharIndex < processedText.length) {\n timeout = setTimeout(\n () => {\n setDisplayedText(prev => prev + processedText[currentCharIndex]);\n setCurrentCharIndex(prev => prev + 1);\n },\n variableSpeed ? getRandomSpeed() : typingSpeed,\n );\n } else {\n if (onSentenceComplete) {\n onSentenceComplete(textArray[currentTextIndex], currentTextIndex);\n }\n\n if (Array.isArray(text) && textArray.length > 1) {\n timeout = setTimeout(() => {\n setIsDeleting(true);\n }, pauseDuration);\n }\n }\n }\n };\n\n if (currentCharIndex === 0 && !isDeleting && displayedText === '') {\n timeout = setTimeout(executeTypingAnimation, initialDelay);\n } else {\n executeTypingAnimation();\n }\n\n return () => clearTimeout(timeout);\n }, [\n currentCharIndex,\n displayedText,\n isDeleting,\n typingSpeed,\n deletingSpeed,\n pauseDuration,\n textArray,\n currentTextIndex,\n loop,\n initialDelay,\n isVisible,\n reverseMode,\n variableSpeed,\n onSentenceComplete,\n text,\n ]);\n\n const isComplete = currentCharIndex >= textArray[currentTextIndex].length && !isDeleting;\n\n const hideOnComplete = hideCursorOnComplete && isComplete;\n\n const shouldHideCursor = hideCursorWhileTyping && (currentCharIndex < textArray[currentTextIndex].length || isDeleting);\n\n return createElement(\n Component,\n {\n ref: containerRef,\n className: cn('inline-block typo-10 typo-header tracking-tight whitespace-pre-wrap ', className),\n ...props,\n },\n <span className=\"inline\" style={{ color: getCurrentTextColor() || 'inherit' }}>\n {displayedText}\n </span>,\n !hideOnComplete && showCursor && (\n <span\n ref={cursorRef}\n className={cn('ml-1 inline-block opacity-100 ', shouldHideCursor && 'hidden', cursorClassName)}\n >\n {cursorCharacter}\n </span>\n ),\n );\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport function useAnimatedValue(duration: number): [number, () => void] {\n const [value, setValue] = useState(0);\n const startTimeRef = useRef(Date.now());\n const previousProgressRef = useRef(0);\n\n useEffect(() => {\n const animationId = requestAnimationFrame(animate);\n\n return () => cancelAnimationFrame(animationId);\n }, [duration]);\n\n function reset() {\n startTimeRef.current = Date.now();\n previousProgressRef.current = 0;\n setValue(0);\n };\n\n function animate() {\n const elapsed = Date.now() - startTimeRef.current;\n const progress = (elapsed % duration) / duration;\n\n setValue(progress * 100);\n\n previousProgressRef.current = progress;\n\n if (progress < 1) {\n requestAnimationFrame(animate);\n }\n };\n\n return [value, reset];\n};\n","import { Size } from '@digo-labs/common';\n\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nexport function useElementSize<T extends HTMLElement>() {\n const ref = useRef<T | null>(null);\n const [size, setSize] = useState<Size>({ width: 0, height: 0 });\n\n useLayoutEffect(() => {\n const element = ref.current;\n\n if (!element) return;\n\n update(element);\n\n const resizeObserver = new ResizeObserver(() => update(element));\n\n resizeObserver.observe(element);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n function update(element: T) {\n setSize({ width: element.clientWidth, height: element.clientHeight });\n };\n\n return { ref: ref, ...size };\n}\n","import { useEffect, useState } from 'react';\n\nexport function useFocusSize(isFocused: boolean, duration: number = 1000) {\n const [size, setSize] = useState(0);\n\n useEffect(() => {\n let start: number | null = null;\n let animationFrameId: number;\n\n const animate = (timestamp: number) => {\n if (!start) start = timestamp;\n const elapsed = timestamp - start;\n const progress = Math.min(elapsed / duration, 1);\n const newSize = isFocused ? progress * 100 : (1 - progress) * 100;\n setSize(newSize);\n if (elapsed < duration) {\n animationFrameId = requestAnimationFrame(animate);\n }\n };\n\n animationFrameId = requestAnimationFrame(animate);\n\n return () => cancelAnimationFrame(animationFrameId);\n }, [isFocused, duration]);\n\n return size;\n};\n","import { useEffect, useState } from 'react';\n\nexport function usePreloadedImage(src: string): string {\n const [loadedSrc, setLoadedSrc] = useState(src);\n\n useEffect(() => {\n const image = new Image();\n image.src = src;\n\n image.onload = () => {\n setLoadedSrc(src);\n };\n }, [src]);\n\n return loadedSrc;\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface Stopwatch {\n start: () => void;\n stop: () => void;\n}\n\ninterface StopwatchOutput extends Stopwatch {\n seconds: number;\n}\n\nexport function useStopwatch(): StopwatchOutput {\n const intervalRef = useRef<NodeJS.Timeout>(undefined);\n\n const [seconds, setSeconds] = useState(0);\n\n useEffect(() => {\n return () => stop();\n }, []);\n\n function start() {\n if (intervalRef.current) return;\n\n setSeconds(0);\n\n intervalRef.current = setInterval(() => {\n setSeconds(prev => parseFloat((prev + 0.1).toFixed(1)));\n }, 100);\n };\n\n function stop() {\n if (!intervalRef.current) return;\n\n clearInterval(intervalRef.current);\n\n intervalRef.current = undefined;\n };\n\n return { start: start, stop: stop, seconds: seconds };\n}\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface Timer {\n start: (seconds: number) => void;\n pause: () => void;\n resume: (currentSecons?: number) => void;\n reset: () => void;\n}\n\ninterface UseTimerProperties {\n initialSeconds: number;\n onComplete?: () => void;\n}\ninterface TimerOutput extends Timer {\n seconds: number;\n}\n\nexport function useTimer(properties: UseTimerProperties): TimerOutput {\n const {\n initialSeconds,\n onComplete,\n } = properties;\n\n const [seconds, setSeconds] = useState(initialSeconds);\n const [isRunning, setIsRunning] = useState(false);\n\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n const onCompleteRef = useRef(onComplete);\n\n useEffect(() => {\n return () => {\n if (timerRef.current) clearInterval(timerRef.current);\n };\n }, []);\n\n useEffect(() => {\n onCompleteRef.current = onComplete;\n }, [onComplete]);\n\n function startInterval() {\n if (timerRef.current) return;\n\n setIsRunning(true);\n\n timerRef.current = setInterval(() => {\n setSeconds((prevSeconds) => {\n if (prevSeconds <= 1) {\n clearInterval(timerRef.current!);\n\n timerRef.current = null;\n\n setIsRunning(false);\n\n if (onCompleteRef.current) onCompleteRef.current();\n\n return 0;\n }\n\n return prevSeconds - 1;\n });\n }, 1000);\n }\n\n function start(seconds: number) {\n stop();\n\n setSeconds(seconds);\n\n setTimeout(() => startInterval(), 0);\n }\n\n function stop() {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n timerRef.current = null;\n }\n setIsRunning(false);\n }\n\n function pause() {\n if (!timerRef.current) return;\n\n clearInterval(timerRef.current);\n\n timerRef.current = null;\n\n setIsRunning(false);\n }\n\n function resume(currentSeconds?: number) {\n if (isRunning) return;\n\n if (currentSeconds !== undefined) {\n setSeconds(currentSeconds);\n }\n\n if (currentSeconds === undefined && seconds <= 0) return;\n\n startInterval();\n }\n\n function reset() {\n stop();\n setSeconds(initialSeconds);\n }\n\n return { seconds: seconds, start: start, pause: pause, resume: resume, reset: reset };\n}\n","import { createContext, ReactNode, useContext } from 'react';\n\ninterface CommandContextType {\n open: () => void;\n}\n\nconst CommandContext = createContext<CommandContextType | undefined>(undefined);\n\ninterface CommandProviderProperties {\n children: ReactNode;\n open: () => void;\n}\n\nexport function CommandProvider(properties: CommandProviderProperties) {\n const { open, children } = properties;\n\n return (\n <CommandContext.Provider value={{ open: open }}>\n {children}\n </CommandContext.Provider>\n );\n}\n\nexport function useCommand(): CommandContextType {\n const context = useContext(CommandContext);\n\n if (!context) {\n throw new Error('useCommand must be used within a CommandProvider');\n }\n\n return context;\n}\n","import { styles } from 'src/utils/styles';\n\nexport const accordion = styles({\n slots: {\n root: 'flex max-w-[calc(100vw-8rem)] flex-col justify-center overflow-hidden rounded-md border border-neutral-6',\n item: 'border-b border-neutral-6 text-left typo-3 last:border-none',\n header: 'flex',\n trigger: 'group cs-disabled relative cs-focus flex w-full items-center justify-between gap-4 bg-neutral-4 px-3 py-2 text-left cs-transition hover:bg-neutral-5',\n triggerIcon: 'flex-col-center typo-3',\n panel: 'overflow-hidden',\n content: 'border-t border-neutral-6 p-3 text-neutral-11',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const alert = styles({\n slots: {\n root: 'relative grid w-full items-start gap-4 rounded-md border p-4 has-data-[slot=alert-action]:grid-cols-[1fr_auto] has-data-[slot=alert-icon]:grid-cols-[auto_1fr] has-data-[slot=alert-icon]:has-data-[slot=alert-action]:grid-cols-[auto_1fr_auto]',\n content: 'flex flex-col gap-2',\n title: 'typo-3 typo-header',\n description: 'typo-3 typo-body',\n action: 'flex',\n icon: 'flex typo-5',\n },\n variants: {\n variant: {\n default: {\n root: 'border-neutral-6 bg-neutralA-2',\n title: 'text-neutral-12',\n description: 'text-neutral-10',\n icon: 'text-neutral-12',\n },\n destructive: {\n root: 'border-error-6 bg-error-2',\n title: 'text-error-11',\n description: 'text-error-9',\n icon: 'text-error-11',\n },\n success: {\n root: 'border-success-6 bg-success-2',\n title: 'text-success-11',\n description: 'text-success-9',\n icon: 'text-success-11',\n },\n warning: {\n root: 'border-warning-6 bg-warning-2',\n title: 'text-warning-11',\n description: 'text-warning-9',\n icon: 'text-warning-11',\n },\n info: {\n root: 'border-info-6 bg-info-2',\n title: 'text-info-11',\n description: 'text-info-9',\n icon: 'text-info-11',\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const autocomplete = styles({\n slots: {\n positioner: 'z-50 select-none',\n popup: [\n 'mt-0.5 rounded-md border border-neutral-6 bg-neutral-2 shadow-l',\n 'relative flex max-h-full max-w-(--available-width) min-w-(--anchor-width) origin-(--transform-origin)',\n 'before:pointer-events-none before:absolute before:inset-0',\n ],\n popupInner: 'flex h-[min(var(--available-height),23rem)] max-h-fit flex-col overflow-hidden',\n input: 'p-0',\n item: [\n 'flex cursor-default items-center gap-2 rounded-sm px-2.5 py-1.5 typo-2 text-neutralA-11 outline-none select-none',\n 'data-highlighted:bg-neutralA-4 data-highlighted:text-neutralA-12',\n 'cs-disabled',\n ],\n separator: 'my-2 bg-neutral-4',\n group: '[[role=group]+&]:mt-1.5',\n groupLabel: 'px-2.5 py-1.5 typo-2 typo-label text-neutral-9',\n empty: 'text-center typo-2 typo-label text-neutralA-9 not-empty:p-4',\n list: 'not-empty:scroll-py-1 not-empty:p-1 in-data-has-overflow-y:pe-3',\n clear: 'flex items-center justify-center text-neutral-8 hover:text-neutralA-11',\n status: 'px-2.5 py-1.5 typo-2 typo-label text-neutral-8 empty:m-0 empty:p-0',\n trigger: 'flex items-center justify-center text-neutral-11 cs-transition hover:text-neutralA-12 active:scale-80',\n statusLoading: 'flex items-center justify-between gap-2',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const button = styles({\n slots: {\n root: [\n 'group/button flex-row-center cursor-default select-none',\n 'gap-2 rounded-md border border-transparent px-2.5 py-2 typo-3 typo-body whitespace-nowrap',\n 'cs-disabled cs-focus cs-transition',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'border-neutral-6 bg-neutral-3 text-neutral-11',\n 'hover:border-neutral-8 hover:bg-neutral-5 hover:text-neutral-12',\n ],\n },\n accent: {\n root: [\n 'border-accent-6 bg-accent-11 text-accent-1',\n 'hover:border-accent-8 hover:bg-accent-12 hover:text-accent-1',\n ],\n },\n primary: {\n root: [\n 'border-neutral-6 bg-neutral-12 text-neutral-1',\n 'hover:border-neutral-12 hover:bg-neutral-12 hover:text-neutral-1',\n ],\n },\n secondary: {\n root: [\n 'border-neutral-6 bg-neutral-4 text-neutral-11',\n 'hover:border-neutral-8 hover:bg-neutral-6 hover:text-neutral-12',\n ],\n },\n destructive: {\n root: [\n 'border-error-6 bg-error-3 text-error-11',\n 'hover:border-error-8 hover:bg-error-5 hover:text-error-12 ',\n ],\n },\n outline: {\n root: [\n 'border-neutral-12 text-neutral-12',\n 'hover:border-neutral-9 hover:bg-neutral-2 hover:text-neutral-12',\n ],\n },\n ghost: {\n root: [\n 'text-neutral-11',\n 'hover:bg-neutralA-2 hover:text-neutral-12',\n ],\n },\n icon: {\n root: [\n 'text-neutral-11',\n 'hover:text-neutral-12',\n 'active:scale-110',\n ],\n },\n close: {\n root: [\n 'rounded-lg p-1 typo-1 shadow-md',\n 'border-neutral-10 bg-neutral-12 text-neutral-1',\n 'hover:border-neutral-12 hover:bg-neutral-12 hover:text-neutral-2',\n 'active:scale-110',\n ],\n },\n link: { root: 'text-accent-9 underline-offset-4 hover:underline' },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const slider = styles({\n slots: {\n root: 'flex gap-2',\n control: 'cs-disabled flex touch-none select-none',\n track: 'relative flex grow items-center rounded-md bg-neutralA-6 select-none',\n indicator: 'rounded-md bg-neutral-12',\n thumb: 'cs-focus size-3 rounded-md border border-neutral-12 bg-neutral-2 shadow-l cs-transition transition-[scale] hover:scale-110 data-dragging:scale-125',\n value: 'flex justify-end typo-2 typo-label',\n ticksContainer: 'flex items-center justify-between gap-2 typo-1 typo-label font-code',\n tick: 'gap-2',\n tickLine: 'rounded-full bg-neutralA-6',\n tickLabel: 'text-neutralA-11 data-[major=false]:opacity-0',\n },\n variants: {\n orientation: {\n horizontal: {\n root: 'w-full flex-col',\n control: '',\n track: 'h-1 flex-row',\n ticksContainer: 'mx-1 flex-row',\n tick: 'flex-col-center w-0',\n tickLine: 'h-1 w-px data-[major=false]:h-0.5',\n },\n vertical: {\n root: 'h-full flex-row',\n control: 'flex-col',\n track: 'w-1 flex-col',\n ticksContainer: 'my-1 flex-col',\n tick: 'flex-row-center h-0',\n tickLine: 'h-px w-1 data-[major=false]:w-0.5',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const card = styles({\n slots: {\n root: [\n 'group/card flex flex-col overflow-hidden rounded-lg border select-none',\n 'border-neutralA-3 bg-neutral-1 text-neutral-11',\n 'hover:border-neutralA-6 hover:bg-neutralA-2 hover:text-neutral-12 hover:shadow-md',\n 'active:bg-neutralA-3',\n 'cs-focus cs-transition',\n ],\n content: 'grid gap-2 overflow-hidden p-4',\n feedback: 'w-full overflow-hidden border-t border-neutralA-6 bg-neutral-12 px-4 py-3 typo-1 typo-header font-code text-neutral-1 uppercase',\n feedbackWrapper: 'flex w-full flex-col justify-start overflow-hidden rounded-b-lg',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const chatThread = styles({\n slots: {\n root: 'flex flex-col gap-3 overflow-y-auto p-4',\n message: 'flex max-w-[75%] flex-col gap-1 rounded-lg px-3 py-2 typo-3',\n userMessage: 'self-end bg-neutral-3 text-neutral-12',\n assistantMessage: 'self-start text-neutral-12',\n errorMessage: 'self-start border border-error-6 bg-error-2 text-error-11',\n errorTag: 'self-start rounded-sm bg-error-3 px-1.5 py-0.5 typo-1 typo-label text-error-11',\n messageContent: 'wrap-break-word whitespace-pre-wrap',\n contentImages: 'mt-1 flex flex-row flex-wrap gap-1',\n contentImage: 'size-20 rounded-sm border border-neutralA-3',\n cursor: 'ml-0.5 inline-block h-4 w-0.5 animate-pulse bg-current align-text-bottom',\n stopReason: 'typo-1 typo-label text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const chart = styles({\n slots: {\n root: [\n 'flex aspect-video justify-center typo-2',\n '[&_.recharts-cartesian-axis-tick_text]:fill-neutral-11',\n '[&_.recharts-cartesian-grid_line[stroke=\"#ccc\"]]:stroke-neutral-6/50',\n '[&_.recharts-curve.recharts-tooltip-cursor]:stroke-neutral-6',\n '[&_.recharts-polar-grid_[stroke=\"#ccc\"]]:stroke-neutral-6',\n '[&_.recharts-radial-bar-background-sector]:fill-neutral-3',\n '[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-3',\n '[&_.recharts-reference-line_[stroke=\"#ccc\"]]:stroke-neutral-6',\n '[&_.recharts-dot[stroke=\"#fff\"]]:stroke-transparent',\n '[&_.recharts-layer]:outline-hidden',\n '[&_.recharts-sector]:outline-hidden',\n '[&_.recharts-sector[stroke=\"#fff\"]]:stroke-transparent',\n '[&_.recharts-surface]:outline-hidden',\n ],\n tooltip: 'grid min-w-32 items-start gap-2 rounded-md border border-neutralA-6 bg-neutral-2 p-2 shadow-xl',\n tooltipItem: 'flex items-center gap-2 typo-2',\n tooltipIndicator: 'w-2.5 self-stretch rounded-xxs',\n tooltipLabel: 'text-neutral-10',\n tooltipValue: 'font-mono font-medium text-neutral-12 tabular-nums',\n legend: 'flex items-center justify-center gap-4 pt-3',\n legendItem: 'flex items-center gap-1.5',\n legendIndicator: 'size-3 shrink-0 rounded-xxs',\n legendLabel: 'typo-code typo-label text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const checkbox = styles({\n slots: {\n root: [\n 'inline-flex cursor-default items-center justify-center select-none',\n 'size-4 shrink-0 rounded-[min(var(--radius-sm),0.375rem)] border',\n 'border-neutral-6 bg-neutralA-2 text-neutral-11',\n 'hover:border-neutral-9 hover:bg-neutral-5',\n 'data-checked:border-accent-9 data-checked:bg-accent-9 data-checked:text-neutral-1',\n 'data-indeterminate:border-accent-9 data-indeterminate:bg-accent-9 data-indeterminate:text-neutral-1',\n 'cs-disabled cs-focus cs-transition',\n ],\n indicator: ['flex-col-center size-4'],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const codeBlock = styles({\n slots: {\n root: 'group/code relative overflow-hidden rounded-lg border border-neutral-6 bg-neutral-2',\n header: 'flex-row-center justify-between border-b border-neutral-6 bg-neutral-3 py-1 pr-1 pl-3 select-none',\n title: 'flex-row-center gap-2 typo-2 font-code typo-weight-600 text-neutral-11',\n actions: 'flex-row-center gap-2',\n floatingActions: 'absolute top-1 right-1 z-10 flex-row-center opacity-0 cs-transition duration-100 group-focus-within/code:opacity-100 group-hover/code:opacity-100',\n code: [\n 'relative w-full overflow-x-auto py-4 typo-2 font-code leading-0.5 typo-weight-500',\n '[&_.line]:block [&_.line]:w-full [&_.line]:px-4 [&_.line]:py-2',\n '[&_.line-number]:mr-4 [&_.line-number]:inline-block [&_.line-number]:w-[3ch] [&_.line-number]:text-right [&_.line-number]:text-neutralA-9 [&_.line-number]:select-none',\n '[&_.line[data-highlighted]]:-ml-px [&_.line[data-highlighted]]:border-l-2 [&_.line[data-highlighted]]:border-accent-11 [&_.line[data-highlighted]]:bg-accent-3',\n '[&_pre.shiki]:bg-transparent!',\n ],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const collapsible = styles({\n slots: {\n root: 'group/collapsible cs-disabled relative overflow-hidden rounded-md border border-neutral-6',\n trigger: 'cs-focus flex w-full cursor-pointer items-center justify-between px-3 py-2 typo-2 typo-label text-neutral-12',\n panel: 'overflow-hidden',\n panelContent: 'relative flex flex-col gap-1 border-t border-neutral-6 p-3 typo-2 text-neutral-11',\n icon: 'cs-focus flex-col-center cursor-pointer text-neutral-12 opacity-100 hover:text-neutral-12 active:scale-110',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorArea = styles({\n slots: {\n root: 'size-full min-h-40 rounded-sm border border-neutral-3',\n thumb: 'top-1/2 size-3 origin-center rounded-sm border border-neutral-12 shadow-md cs-transition transition-[width,height] active:size-6 active:shadow-lg data-dragging:size-5 data-dragging:shadow-lg',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorField = styles({\n slots: {\n root: 'w-full',\n input: [\n 'relative inline-flex w-full min-w-0 bg-transparent outline-none',\n 'gap-2 px-2.5 py-1.5 typo-3',\n 'rounded-sm border border-neutralA-6 bg-neutralA-2 text-neutralA-11',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutralA-12',\n 'typo-code uppercase',\n 'cs-disabled cs-focus cs-invalid cs-transition',\n ],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorInput = styles({\n slots: {\n root: 'grid w-full grid-flow-col grid-cols-[auto_auto_1fr] items-stretch gap-1',\n trigger: 'h-full w-6 rounded-sm',\n swatch: 'size-full rounded-sm border-neutral-6',\n select: 'w-20 min-w-0 overflow-hidden',\n fields: 'flex flex-1 flex-row gap-0',\n hexInput: '',\n channelInput: 'rounded-none in-data-[slot=0]:rounded-l-sm in-data-[slot=1]:border-x-0 in-data-[slot=2]:rounded-r-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorPicker = styles({\n slots: {\n root: '',\n trigger: 'cs-focus grid size-5 rounded-md',\n swatch: 'size-full cursor-pointer shadow-md cs-transition active:scale-110',\n popup: 'w-60 overflow-hidden border-neutral-3 bg-neutral-2',\n content: 'flex flex-col gap-3 overflow-visible p-2',\n channelsContainer: 'flex flex-col gap-2',\n select: 'w-full',\n channels: 'grid grid-cols-3 gap-1',\n inputs: 'rounded-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorSlider = styles({\n slots: {\n root: '',\n track: 'rounded-xs border border-neutral-6 cs-transition',\n thumb: 'top-1/2 size-4 origin-center rounded-sm border border-neutral-12 shadow-md cs-transition transition-[width,height] active:size-6 active:shadow-lg data-dragging:size-6 data-dragging:shadow-lg',\n transparentBackground: '-z-1 overflow-hidden rounded-xs',\n },\n variants: {\n orientation: {\n horizontal: {\n track: 'h-3 w-full',\n },\n vertical: {\n track: 'h-full w-3',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorSwatch = styles({\n slots: {\n root: 'relative size-4 overflow-hidden rounded-md border border-neutralA-6 shadow-xs',\n transparentBackground: 'absolute inset-0',\n color: 'relative size-full ',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const colorSwatchPicker = styles({\n slots: {\n root: 'flex w-full justify-between gap-1.5',\n item: 'relative cs-focus rounded-md cs-transition',\n swatchContainer: [\n 'relative size-5 overflow-hidden rounded-md',\n 'outline-2 outline-offset-1 outline-transparent',\n 'in-data-selected:scale-115 in-data-selected:p-0.5 in-data-selected:outline in-data-selected:outline-accent-11',\n 'cs-transition',\n ],\n swatch: 'size-full',\n indicator: 'absolute inset-0 flex-row-center p-1 text-neutral-1 opacity-0 cs-transition in-data-selected:opacity-80',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const combobox = styles({\n slots: {\n root: 'cs-disabled grid w-full',\n positioner: 'z-50 max-w-(--anchor-width)! overflow-hidden select-none',\n popup: [\n 'cs-backdrop-panel text-neutral-11',\n 'relative flex max-h-full max-w-(--available-width) min-w-(--anchor-width) cs-popup-animation flex-col',\n ],\n popupInner: 'flex h-[min(var(--available-height),23rem)] max-h-fit flex-col overflow-hidden',\n input: '',\n clear: 'flex-row-center hover:opacity-80',\n trigger: 'flex-row-center hover:opacity-80',\n item: 'cs-disabled flex-row-center min-w-0 justify-between gap-2 overflow-hidden rounded-sm px-2.5 py-1.5 typo-2 text-neutral-11 data-highlighted:bg-neutralA-3 data-highlighted:text-neutral-12',\n itemIndicator: 'flex-col-center',\n separator: 'my-2 bg-neutralA-4 last:hidden',\n group: 'mt-1.5 first:mt-0',\n groupLabel: 'px-2 py-1.5 typo-2 typo-label text-neutral-10',\n empty: 'text-center typo-2 text-neutral-10 not-empty:p-2',\n list: 'not-empty:scroll-py-1 not-empty:px-1 not-empty:py-1 in-data-has-overflow-y:pe-3',\n scrollArea: '',\n status: 'px-3 py-2 typo-2 typo-label text-neutral-10 empty:m-0 empty:p-0',\n chips: 'flex-wrap gap-0.5 overflow-hidden p-0.5 has-[>[data-align=inline-start]]:py-0.5',\n chipsAddon: 'pr-1 pl-2',\n chip: 'flex-row-center h-7 justify-between gap-2 rounded-sm border border-neutralA-4 bg-neutral-4 px-2 typo-2 typo-label text-neutral-12 shadow-m',\n chipsInput: 'h-7 min-w-12 flex-1 ps-2 typo-2 outline-none [[data-slot=combobox-chip]+&]:ps-0.5',\n chipRemove: 'flex-col-center cursor-pointer opacity-50 hover:opacity-100',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const commandButton = styles({\n slots: {\n root: 'p-1 pl-2 typo-3 text-neutral-11 hover:bg-neutral-2',\n placeholder: 'flex flex-1 items-center',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const command = styles({\n slots: {\n backdrop: 'fixed inset-0 z-50 bg-black/50 cs-transition data-ending-style:opacity-0 data-starting-style:opacity-0',\n viewport: 'fixed inset-0 z-50 flex flex-col items-center px-4 py-30',\n popup: [\n 'rounded-md border border-neutral-6 bg-neutral-2 text-neutral-11 shadow-l',\n 'relative row-start-2 flex max-h-105 min-h-0 w-full max-w-xl min-w-0 cs-popup-animation flex-col will-change-transform outline-none',\n 'translate-y-[calc(-1.25rem*var(--nested-dialogs))] scale-[calc(1-0.1*var(--nested-dialogs))] opacity-[calc(1-0.1*var(--nested-dialogs))]',\n 'data-nested:data-ending-style:translate-y-8 data-nested-dialog-open:origin-top data-nested:data-starting-style:translate-y-8',\n '**:data-[slot=scroll-area-viewport]:data-has-overflow-y:pe-1',\n ],\n inputContainer: 'flex items-center gap-2 px-4 py-3',\n input: 'typo-label text-neutral-11',\n list: 'not-empty:scroll-py-2 not-empty:p-2',\n empty: 'not-empty:p-6',\n panel: 'relative min-h-0 border-t border-neutral-6 bg-neutralA-2 not-has-[+[data-slot=command-footer]]:rounded-none',\n item: 'pr-1.5',\n separator: 'my-2',\n shortcut: 'ml-auto',\n footer: 'flex items-center justify-between gap-2 border-t border-neutral-6 p-3 typo-2 typo-label text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const counter = styles({\n slots: {\n root: 'relative inline-block',\n digits: 'flex overflow-hidden',\n digit: 'relative w-[1ch] place-self-center typo-11 typo-code typo-weight-600 text-neutral-12 tabular-nums',\n number: 'absolute inset-0 flex items-center justify-center',\n overlay: 'pointer-events-none absolute inset-0',\n topGradient: 'h-10 bg-linear-to-b from-neutral-1 to-transparent',\n bottomGradient: 'absolute bottom-0 h-10 w-full bg-linear-to-t from-neutral-1 to-transparent',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const drawer = styles({\n slots: {\n backdrop: [\n 'fixed inset-0 z-50',\n 'bg-neutral-1/50',\n 'opacity-[calc(1-var(--drawer-swipe-progress,0))]',\n '[transition-duration:calc(350ms*var(--drawer-swipe-strength,1))]',\n 'data-ending-style:opacity-0 data-starting-style:opacity-0',\n 'data-swiping:[transition-duration:0s]',\n 'cs-transition',\n ],\n viewport: 'fixed inset-0 z-50 flex p-2 data-no-backdrop:pointer-events-none',\n popup: [\n 'group/popup relative flex flex-col will-change-transform outline-none in-data-no-backdrop:pointer-events-auto',\n 'rounded-xl border border-neutralA-4 bg-neutral-1 text-neutral-11 shadow-l',\n '[transition-duration:calc(350ms*var(--drawer-swipe-strength,1))]',\n 'data-swiping:[transition-duration:0s]',\n 'cs-transition',\n ],\n content: 'flex flex-1 flex-col gap-3 overflow-hidden typo-2 text-neutral-9',\n header: 'flex flex-col gap-2 border-b border-neutralA-4 p-4 select-none',\n title: 'typo-3 typo-header text-neutral-12',\n description: 'typo-2 text-neutral-11',\n footer: 'flex flex-col gap-2 border-t border-neutralA-4 p-4',\n handle: 'absolute shrink-0 rounded-full bg-neutralA-6 cs-transition group-data-nested-drawer-open/popup:opacity-0 hover:bg-neutral-12 active:scale-x-110',\n },\n variants: {\n side: {\n top: {\n viewport: 'items-start justify-center',\n popup: 'max-h-[calc(100dvh+var(--drawer-snap-point-offset,0px))] w-full origin-top [translate:0_calc(var(--nested-drawers,0)*-16px+var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y,0px))] scale-x-[calc(1-var(--nested-drawers,0)*0.02)] overflow-hidden data-ending-style:[translate:0_-100%] data-nested-drawer-open:h-(--drawer-frontmost-height) data-nested-drawer-open:overflow-hidden data-starting-style:[translate:0_-100%]',\n handle: 'bottom-2 left-1/2 h-1 w-12 -translate-x-1/2',\n },\n right: {\n viewport: 'items-stretch justify-end',\n popup: 'h-full max-w-[calc(100dvw-var(--drawer-snap-point-offset,0px))] origin-right [translate:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-x,0px))_0] scale-y-[calc(1-var(--nested-drawers,0)*0.02)] overflow-hidden data-ending-style:[translate:100%_0] data-starting-style:[translate:100%_0]',\n handle: 'top-1/2 left-2 h-12 w-1 -translate-y-1/2',\n },\n bottom: {\n viewport: 'items-end justify-center',\n popup: 'flex max-h-[calc(100dvh-var(--drawer-snap-point-offset,0px))] w-full origin-bottom [translate:0_calc(var(--nested-drawers,0)*-16px+var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y,0px))] scale-x-[calc(1-var(--nested-drawers,0)*0.02)] flex-col overflow-hidden data-ending-style:[translate:0_100%] data-nested-drawer-open:h-(--drawer-frontmost-height) data-nested-drawer-open:overflow-hidden data-starting-style:[translate:0_100%]',\n handle: 'top-2 left-1/2 h-1 w-12 -translate-x-1/2',\n },\n left: {\n viewport: 'items-stretch justify-start',\n popup: 'h-full max-w-[calc(100dvw+var(--drawer-snap-point-offset,0px))] origin-left [translate:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-x,0px))_0] scale-y-[calc(1-var(--nested-drawers,0)*0.02)] overflow-hidden data-ending-style:[translate:-100%_0] data-starting-style:[translate:-100%_0]',\n handle: 'top-1/2 right-2 h-12 w-1 -translate-y-1/2',\n },\n },\n },\n defaultVariants: {\n side: 'right',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const dropzone = styles({\n slots: {\n root: 'w-full select-none',\n area: 'cs-disabled flex flex-col gap-2 overflow-hidden rounded-lg border border-dashed border-neutralA-6 bg-neutralA-2 p-2 data-drag-over:border-accent-11 data-drag-over:bg-accent-2',\n cta: 'cs-focus flex-row-center gap-3 rounded-sm border border-neutralA-6 p-3 typo-2 typo-label font-code text-neutral-11 cs-transition hover:bg-neutralA-2 hover:text-neutral-12',\n fileList: 'grid grid-flow-row',\n fileItem: 'mb-2 grid auto-cols-auto grid-flow-col grid-cols-[auto_1fr] items-center gap-3 rounded-sm border border-neutralA-3 bg-neutral-3 p-2 shadow-m select-none last:mb-0 data-dragging:bg-neutral-4',\n thumbnailContainer: 'flex-col-center size-12 rounded-sm border border-neutralA-3 shadow-m',\n thumbnail: 'size-full object-cover',\n info: 'flex flex-col gap-1 overflow-hidden',\n name: 'cursor-pointer self-start truncate typo-2 typo-label text-neutral-12 hover:text-accent-11',\n type: 'truncate typo-1 text-neutral-10',\n remove: 'self-stretch',\n grab: 'size-3 rotate-90 cursor-grab text-neutral-12 opacity-50',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const image = styles({\n slots: {\n root: 'relative overflow-hidden cs-transition',\n image: 'size-full object-cover cs-transition',\n placeholder: 'size-full',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const imageDropzone = styles({\n slots: {\n root: 'select-none',\n area: 'group/area relative grid h-auto w-full overflow-hidden rounded-lg border-solid border-neutral-8 cs-gutter p-0 shadow-md cs-transition hover:p-2 data-drag-over:p-2',\n image: 'rounded-lg object-contain outline outline-neutral-6',\n placeholder: 'flex-col-center min-h-30 gap-3 rounded-lg border border-transparent bg-neutralA-2 typo-2 typo-label font-code text-neutral-11 outline outline-neutral-6 group-hover/area:border-neutral-3 group-hover/area:bg-neutralA-4 group-hover/area:text-neutral-12',\n placeholderIcon: 'typo-6 opacity-75',\n loader: 'pointer-events-auto absolute inset-0 flex-col-center bg-neutral-1/85 typo-4 text-neutral-12 ',\n loaderIcon: 'animate-spin',\n deleteButton: 'absolute top-1 right-1 z-10 p-1',\n cta: 'absolute inset-0 cursor-pointer opacity-0',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const empty = styles({\n slots: {\n root: 'flex-col-center min-w-0 gap-4 p-6 text-center text-balance',\n header: 'flex-col-center max-w-sm gap-2',\n title: 'typo-4 typo-header text-neutral-12',\n description: 'typo-3 text-neutral-10',\n media: 'relative mb-4 flex-col-center size-20 shrink-0 overflow-hidden rounded-full border border-neutral-6',\n iconWrapper: 'relative flex-col-center shrink-0',\n iconShadow: 'pointer-events-none absolute bottom-0 mb-4 flex-col-center origin-bottom scale-90 rounded-md border border-neutral-6 bg-neutral-2 p-4 typo-8 text-neutral-12 shadow-none',\n icon: 'z-1 mb-4 flex-col-center rounded-md border border-neutral-6 bg-neutral-2 p-4 typo-8 text-neutral-12',\n content: 'flex-col-center w-full gap-2 typo-3 text-balance',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const field = styles({\n slots: {\n root: 'flex flex-col items-start gap-2',\n label: 'inline-flex items-center gap-2 typo-2 typo-label text-neutralA-11',\n item: 'flex',\n description: 'typo-2 text-neutral-9',\n error: 'typo-2 text-error-9',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const fieldSet = styles({\n slots: {\n root: 'flex w-full max-w-64 flex-col gap-4',\n legend: 'typo-3 typo-header text-neutral-12',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const form = styles({\n slots: {\n root: 'flex flex-col gap-4',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const group = styles({\n slots: {\n root: 'flex w-fit overflow-hidden rounded-md border border-neutral-6 *:focus-visible:z-1 has-[>[data-slot=group]]:gap-2 *:data-slot:rounded-none *:data-slot:border-transparent',\n separator: 'pointer-events-none relative z-2 shrink-0 bg-neutral-6',\n text: 'relative inline-flex items-center gap-2 border border-neutralA-6 bg-neutralA-3 px-2.5 typo-3 whitespace-nowrap text-neutral-11 outline-none',\n },\n variants: {\n orientation: {\n horizontal: {\n separator: 'w-px self-stretch',\n },\n vertical: {\n root: 'flex-col',\n separator: 'h-px self-stretch',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const inputGroup = styles({\n slots: {\n root: [\n 'group/input-group relative flex w-full min-w-0 items-center gap-2 rounded-md p-2 pl-3 outline-none',\n 'border border-neutralA-6 bg-neutralA-2',\n 'cs-transition duration-0',\n 'cs-has-disabled cs-has-focus cs-has-invalid',\n 'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col',\n 'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col',\n 'has-[>[data-align=inline-start]]:py-1.5',\n 'has-[>[data-align=inline-end]]:py-1.5',\n 'has-[>[data-align=block-start]]:gap-3 has-[>[data-align=block-start]]:py-3',\n 'has-[>[data-align=block-end]]:gap-3 has-[>[data-align=block-end]]:py-3',\n 'has-[>textarea]:h-auto',\n ],\n addon: [\n 'flex-row-center cursor-text gap-2 typo-3 text-neutralA-11 select-none',\n 'group-data-[disabled=true]/input-group:cs-disabled',\n 'data-[align=inline-start]:order-first',\n 'data-[align=inline-end]:order-last',\n 'data-[align=block-start]:order-first data-[align=block-start]:w-full data-[align=block-start]:justify-start',\n 'data-[align=block-end]:order-last data-[align=block-end]:w-full data-[align=block-end]:justify-start',\n ],\n text: 'flex-row-center gap-2 typo-3 typo-label text-neutralA-11',\n input: 'bg-transparent p-0',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const input = styles({\n slots: {\n root: [\n 'relative inline-flex w-full min-w-0 bg-transparent outline-none',\n 'gap-2 px-2.5 py-2 typo-2',\n 'placeholder:text-neutralA-8',\n 'before:pointer-events-none before:absolute before:inset-0',\n 'file:mr-2.5 file:inline-flex file:rounded-sm file:border file:border-neutralA-6 file:bg-neutralA-4 file:px-1.5 file:py-1 file:typo-label file:text-neutralA-11 ',\n '[&:-webkit-autofill]:caret-[white] [&:-webkit-autofill]:[-webkit-text-fill-color:white] [&:-webkit-autofill]:[transition:background-color_9999s]',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'rounded-sm border',\n 'border-neutralA-6 bg-neutralA-2 text-neutralA-11',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutralA-12',\n ],\n },\n ghost: {\n root: 'hover:text-neutralA-12',\n },\n },\n unstyled: {\n false: { root: 'cs-disabled cs-focus cs-invalid cs-transition' },\n true: { root: 'focus-visible:ring-0 focus-visible:outline-none' },\n },\n },\n defaultVariants: {\n unstyled: false,\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const masonry = styles({\n slots: {\n root: 'flex w-full items-start',\n column: 'flex min-w-0 flex-col',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const kbd = styles({\n slots: {\n root: 'pointer-events-none inline-flex h-5 min-w-5 items-center justify-center gap-1 rounded-md border border-neutralA-2 bg-neutralA-3 px-1.5 py-1 typo-2 typo-body typo-label leading-2 text-neutral-11 select-none',\n group: 'inline-flex items-center gap-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const label = styles({\n slots: {\n root: 'typo-2 typo-label text-neutral-12',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const motionAnimatePresence = styles({\n slots: {\n root: 'relative grid size-full overflow-hidden',\n content: 'absolute inset-0 grid',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const navbar = styles({\n slots: {\n root: 'flex items-stretch justify-between gap-2 border-b border-neutral-4 p-2 select-none',\n logo: 'flex items-center gap-2 rounded-md px-2 py-1 hover:bg-neutralA-3',\n content: 'flex items-center gap-2',\n actions: 'flex items-center gap-3',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const navigationMenu = styles({\n slots: {\n root: 'group/navigation-menu relative flex-row-center max-w-max flex-1 items-stretch rounded-md',\n list: 'group flex-row-center flex-1 list-none items-stretch gap-0',\n item: 'relative',\n trigger: [\n 'group/navigation-menu-trigger group flex-row-center h-full w-max gap-2 rounded-sm px-2.5 py-1.5 typo-2 typo-label',\n 'bg-transparent text-neutral-11',\n 'hover:bg-neutralA-3',\n 'data-open:bg-neutralA-3/50 data-open:hover:bg-neutralA-3 data-open:focus:bg-neutralA-3',\n 'data-popup-open:bg-neutralA-3/50 data-popup-open:hover:bg-neutralA-3',\n 'cs-disabled cs-focus cs-transition',\n ],\n triggerIcon: 'relative cs-transition group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180',\n content: [\n 'grid h-full w-120 grid-flow-row grid-cols-2 gap-2 rounded-md p-2',\n 'group-data-[viewport=false]/navigation-menu:bg-neutral-3 group-data-[viewport=false]/navigation-menu:text-neutral-11 group-data-[viewport=false]/navigation-menu:shadow-sm group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-accent-11/10',\n 'group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95',\n 'data-starting-style:data-[activation-direction=left]:[translate:-50%_0] data-starting-style:data-[activation-direction=right]:[translate:50%_0]',\n 'data-ending-style:data-[activation-direction=left]:[translate:50%_0] data-ending-style:data-[activation-direction=right]:[translate:-50%_0]',\n 'data-ending-style:opacity-0 data-starting-style:opacity-0',\n 'transition-[opacity,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:duration-300',\n '**:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none',\n ],\n positioner: [\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width)',\n 'transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-instant:transition-none',\n 'data-[side=bottom]:before:-top-2.5 data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n ],\n popup: 'relative h-(--popup-height) w-(--popup-width) cs-popup-animation cs-backdrop-panel transition-[opacity,transform,width,height,scale,translate] data-ending-style:duration-150',\n viewport: 'relative size-full overflow-hidden',\n link: [\n 'flex-row-center h-full w-max gap-2 rounded-sm px-2.5 py-1.5 typo-2 typo-label',\n 'bg-transparent text-neutral-11',\n 'hover:bg-neutralA-3',\n 'data-active:border-dashed data-active:border-neutral-6 data-active:bg-neutralA-3/50 data-active:hover:bg-neutralA-3/50 data-active:focus:bg-neutralA-3',\n 'cs-disabled cs-focus cs-transition',\n ],\n linkCard: [\n 'flex flex-col items-start justify-start gap-1 rounded-md border px-2.5 py-1.5 typo-2 typo-label',\n 'border-transparent bg-transparent text-neutral-11',\n 'hover:bg-neutralA-3/50',\n 'in-data-[slot=navigation-menu-content]:hover:border-dashed in-data-[slot=navigation-menu-content]:hover:border-neutral-6',\n 'data-active:border-dashed data-active:border-neutral-6 data-active:bg-neutralA-3/50 data-active:hover:bg-neutralA-3/50 data-active:focus:bg-neutralA-3',\n 'cs-focus cs-transition',\n ],\n indicatorWrapper: 'top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:fade-in',\n indicator: 'relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-neutral-3 shadow-m',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const numberField = styles({\n slots: {\n root: 'flex w-full flex-col items-start gap-2',\n group: [\n 'relative flex w-full justify-between overflow-hidden rounded-md border typo-2 shadow-xs',\n 'border-neutral-6 bg-neutralA-2 text-neutral-12',\n 'cs-has-disabled cs-has-focus cs-has-invalid cs-transition',\n ],\n button: [\n 'relative flex-col-center cursor-pointer px-3 outline',\n 'text-neutral-10 outline-neutral-6',\n 'hover:bg-neutralA-3 hover:text-neutral-11',\n 'cs-transition',\n ],\n input: [\n 'w-full min-w-0 grow px-2 py-2 text-center typo-2 typo-code outline-none',\n 'bg-transparent',\n 'cs-transition',\n ],\n scrubAreaCursor: 'cursor-row-resize',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const pagination = styles({\n slots: {\n root: 'mx-auto flex w-full justify-center',\n content: 'flex flex-row items-center gap-1',\n previousNext: 'max-sm:aspect-square max-sm:p-0',\n previousNextLabel: 'max-sm:hidden',\n link: 'px-2 py-1 typo-2',\n ellipsis: 'flex min-w-7 justify-center text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const fontPicker = styles({\n slots: {\n trigger: 'w-full justify-between gap-2 truncate rounded-md bg-neutralA-2 px-3 py-1.5 typo-body text-neutral-11 capitalize hover:bg-neutralA-3',\n popup: '',\n fontPreview: 'truncate typo-4 typo-header text-neutral-12',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex-col-center flex-col! gap-4 overflow-hidden border border-neutral-4 p-4 text-neutral-12 hover:border-neutral-6 data-selected:bg-neutral-12 data-selected:text-neutral-1',\n itemPreview: 'typo-12 leading-none',\n itemlabel: 'typo-2 typo-label uppercase opacity-50',\n itemIndicator: 'hidden',\n list: 'grid grid-cols-1 gap-2 overflow-hidden',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const googleSignInButton = styles({\n slots: {\n root: 'group gap-3 py-2 pr-4 pl-2 typo-3 typo-label text-neutral-11 active:gap-3.5 active:pl-2.5',\n icon: 'size-4 cs-transition group-active:scale-110',\n label: 'flex-1',\n spinner: 'size-4',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const palettePicker = styles({\n slots: {\n trigger: 'w-full justify-between gap-1 bg-neutralA-2 typo-label text-neutral-11 capitalize hover:bg-neutralA-3',\n popup: '',\n colorBlock: 'size-4',\n paletteContainer: 'flex-row-center gap-1',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex flex-row items-center gap-3 px-0.5 py-0.5 typo-2 capitalize',\n list: '',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameter = styles({\n slots: {\n root: 'flex flex-col gap-3 select-none',\n label: 'typo-2 typo-label text-neutral-11',\n value: 'typo-2 typo-code text-neutral-11',\n measure: 'typo-2 typo-code text-neutral-9',\n separator: 'flex-1 bg-neutralA-3',\n input: 'grid select-auto',\n row: 'flex min-h-4 flex-row items-center justify-start gap-2',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterColor = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterColorSwatchPicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterCombobox = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n trigger: 'w-full justify-between gap-1 bg-neutralA-2 typo-label text-neutral-11 capitalize hover:bg-neutralA-3',\n popup: '',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex flex-row items-center justify-start gap-3 p-1.5 px-3 typo-2 typo-label capitalize',\n itemIcon: '-ml-1.5 rounded-sm border border-neutralA-3 p-2 text-neutral-12',\n itemName: 'flex-1 text-start',\n list: 'overflow-hidden',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterFontPicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterGroup = styles({\n slots: {\n root: 'rounded-sm',\n trigger: 'items-center justify-start gap-2',\n icon: '',\n collapsibleIcon: '',\n name: 'flex-1 text-start',\n panel: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterPalettePicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterPresetPicker = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterSlider = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n value: '',\n measure: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterSwitch = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterText = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterTextArea = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterToggle = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterToggleGroup = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: 'w-full',\n item: 'flex-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterTypographyGroup = styles({\n slots: {\n root: '',\n content: 'flex flex-col gap-6',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterFiles = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterImage = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterNumber = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n measure: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterSelect = styles({\n slots: {\n root: '',\n row: '',\n label: '',\n separator: '',\n input: '',\n trigger: '',\n popup: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const parameterShadowGroup = styles({\n slots: {\n root: '',\n preview: 'my-2 mb-4 h-40 w-full rounded-md border border-neutral-6 bg-neutral-2',\n content: 'flex flex-col gap-6',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const placeholder = styles({\n slots: {\n root: 'size-full overflow-hidden',\n list: 'flex flex-col gap-2 p-4',\n itemWrapper: '',\n item: 'h-10 overflow-hidden rounded-md bg-neutralA-3',\n scrollableArea: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const popover = styles({\n slots: {\n positioner: 'z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom,transform] data-instant:transition-none',\n popup: [\n 'cs-backdrop-panel text-neutral-11',\n 'relative grid h-(--popup-height,auto) w-(--popup-width,auto) cs-popup-animation transition-[width,height,scale,opacity]',\n ],\n viewport: [\n 'relative size-full max-h-(--available-height) overflow-clip not-data-transitioning:overflow-y-auto data-instant:transition-none',\n '**:data-current:w-[calc(var(--popup-width)-2px)] **:data-current:opacity-100 **:data-current:transition-opacity **:data-current:data-ending-style:opacity-0',\n '**:data-previous:w-[calc(var(--popup-width)-2px)] **:data-previous:opacity-100 **:data-previous:transition-opacity **:data-previous:data-ending-style:opacity-0',\n '**:data-current:data-starting-style:opacity-0 **:data-previous:data-starting-style:opacity-0',\n ],\n content: 'flex flex-col gap-2 p-3',\n title: 'typo-3 typo-label text-neutral-12',\n description: 'typo-2 text-neutral-10',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const presetPicker = styles({\n slots: {\n trigger: 'w-full justify-between gap-1 bg-neutralA-2 typo-label text-neutral-11 capitalize hover:bg-neutralA-3',\n popup: '',\n colorBlock: 'size-4',\n presetContainer: 'flex-row-center gap-1',\n inputContainer: 'p-2',\n input: 'rounded-sm',\n item: 'flex flex-row items-center gap-3 px-0.5 py-0.5 typo-2 capitalize',\n itemColors: 'flex-row-center gap-1',\n list: '',\n empty: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const progress = styles({\n slots: {\n root: 'flex w-full flex-col gap-2',\n track: 'block h-1.5 w-full overflow-hidden rounded-sm bg-neutralA-3 data-indeterminate:cs-stripes data-indeterminate:bg-neutralA-2 data-indeterminate:outline data-indeterminate:outline-neutralA-6',\n indicator: 'bg-neutral-12 cs-transition',\n label: 'typo-3 typo-label',\n value: 'typo-3 typo-body font-code tabular-nums',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const promptInput = styles({\n slots: {\n root: 'flex flex-col gap-2 overflow-hidden rounded-md border border-neutral-6 bg-neutral-2 p-2 shadow-lg data-drag-over:border-dashed data-drag-over:border-accent-11 data-drag-over:bg-accent-2',\n attachments: 'flex flex-row flex-wrap items-center gap-1',\n attachment: 'group relative',\n attachmentImage: 'size-16 rounded-sm border border-neutralA-3 [&_img]:pointer-events-none [&_img]:select-none',\n attachmentImageTooltip: 'overflow-hidden p-0',\n attachmentImagePreview: 'size-60',\n attachmentFile: 'flex-col-center size-16 rounded-sm border border-neutralA-3 bg-neutral-3',\n attachmentExtension: 'typo-1 typo-code typo-weight-600 text-neutral-11',\n removeButton: 'absolute -top-1 -right-1 hidden typo-1 group-hover:flex',\n input: 'rounded-none p-2 text-neutral-11',\n toolbarRow: 'flex w-full flex-row items-center gap-1',\n modelPicker: 'w-40 border-none bg-neutral-3 hover:bg-neutral-4',\n attachButton: 'rounded-sm border-none bg-neutral-3 hover:bg-neutral-4',\n submitButton: 'rounded-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const properties = styles({\n slots: {\n root: 'grid auto-cols-fr grid-flow-col grid-cols-[auto] items-center divide-x divide-neutral-4 border-neutral-4 *:h-full *:px-6 *:py-3',\n name: 'flex-row-center justify-start typo-2 typo-label font-code text-neutral-12 uppercase select-none',\n item: 'group/property-item flex-row-center flex gap-6 typo-1 font-code uppercase',\n labelWrapper: 'relative flex-row-center',\n label: 'text-neutral-12 cs-transition data-has-value:group-hover/property-item:opacity-0',\n valueWrapper: 'absolute right-0 flex-row-center gap-1 text-right opacity-0 group-hover/property-item:opacity-100',\n value: 'text-neutral-12',\n measure: 'text-neutral-10',\n separator: 'flex-1 bg-neutral-4',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const scrollArea = styles({\n slots: {\n root: 'relative size-full min-h-0 overflow-hidden',\n viewport: [\n 'cs-focus h-full overscroll-contain rounded-[inherit] cs-transition data-has-overflow-x:overscroll-x-contain',\n 'data-scroll-fade:scroll-py-[--fade-size] data-scroll-fade:mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] data-scroll-fade:mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] data-scroll-fade:mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] data-scroll-fade:mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] data-scroll-fade:[--fade-size:1.5rem]',\n 'data-scrollbar-gutter:data-has-overflow-x:pb-2.5 data-scrollbar-gutter:data-has-overflow-y:pe-2.5',\n ],\n scrollbar: [\n 'm-1 flex cs-transition data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1',\n 'opacity-0 hover:opacity-100 data-hovering:delay-0 data-hovering:duration-200 data-scrolling:opacity-100 data-scrolling:delay-0 data-scrolling:duration-200',\n 'data-[orientation=horizontal]:flex-col',\n ],\n thumb: 'relative flex-1 rounded-full bg-neutral-12/40',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const select = styles({\n slots: {\n root: 'cs-disabled grid w-full',\n positioner: 'z-50 select-none',\n popup: 'cs-popup-animation origin-(--transform-origin) cs-backdrop-panel text-neutral-11 outline-none',\n popupInner: ' relative h-full min-w-(--anchor-width)',\n trigger: [\n 'flex-row-center w-full min-w-36 justify-between gap-2 rounded-sm',\n 'border px-2.5 py-1.5 typo-2',\n 'border-neutralA-6 bg-neutralA-2 text-neutral-11',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutral-12',\n 'cs-disabled cs-focus cs-transition',\n ],\n triggerIcon: 'flex-col-center opacity-60',\n value: 'flex-1 truncate text-left data-placeholder:text-neutralA-8',\n item: 'cs-disabled grid grid-cols-[1rem_1fr] items-center gap-2 overflow-hidden rounded-sm px-2.5 py-1.5 typo-2 text-neutral-11 in-data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] data-highlighted:bg-neutralA-3 data-highlighted:text-neutral-12',\n itemText: 'col-start-2 min-w-0',\n itemIndicator: 'col-start-1 flex-col-center',\n separator: 'my-2 bg-neutralA-4 last:hidden',\n group: 'mt-1.5 first:mt-0',\n groupLabel: 'px-2 py-1.5 typo-2 typo-label text-neutral-10',\n scrollArrow: 'z-50 flex-row-center h-6 w-full cursor-default',\n list: 'max-h-(--available-height) overflow-y-auto p-1',\n scrollArea: '',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const separator = styles({\n slots: {\n root: 'shrink-0 rounded-sm bg-neutralA-6',\n },\n variants: {\n orientation: {\n horizontal: { root: 'h-px w-full' },\n vertical: { root: 'w-px self-stretch' },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const sidebar = styles({\n slots: {\n root: 'flex h-full flex-col border-r border-neutral-6 bg-neutral-2',\n header: 'flex flex-col gap-2 p-4',\n content: 'flex flex-1 flex-col gap-6 overflow-y-auto p-4',\n footer: 'flex flex-col gap-2 p-4',\n group: 'flex flex-col gap-2',\n groupLabel: 'flex items-center justify-between',\n groupTitle: 'px-2 py-1 typo-2 typo-label text-neutral-12',\n groupAction: 'flex items-center',\n groupContent: 'flex flex-col gap-0.5',\n item: 'flex flex-row items-center gap-2 rounded-sm border border-transparent px-2.5 py-1.5 typo-2 text-neutral-10 cs-transition hover:bg-neutralA-3 hover:text-neutral-12 active:gap-3 active:pl-3 data-active:border-neutralA-2 data-active:bg-neutralA-3 data-active:text-neutral-12 data-active:shadow-sm',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const spacer = styles({\n slots: {\n root: 'grid size-full flex-1',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const spinner = styles({\n slots: {\n root: 'inline-flex items-center justify-center typo-5 text-current',\n },\n variants: {\n spin: {\n true: { root: 'animate-spin' },\n false: {},\n },\n },\n defaultVariants: {\n spin: true,\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const steps = styles({\n slots: {\n root: [\n 'relative ml-2 border-l border-neutral-6 pl-6 cs-steps ',\n '[&_h3:not([data-slot=step]_h3)]:cs-step',\n '[&_h3]:before:absolute [&_h3]:before:-left-4',\n '[&_h3]:before:flex-col-center [&_h3]:before:size-8 [&_h3]:before:rounded-full',\n '[&_h3]:before:bg-neutral-3 [&_h3]:before:typo-3 [&_h3]:before:text-neutral-12',\n ],\n step: [\n 'cs-step',\n 'before:absolute before:-left-4',\n 'before:flex-col-center before:size-8 before:rounded-full',\n 'before:bg-neutral-3 before:typo-3 before:text-neutral-12',\n ],\n },\n});\n","import { styles } from 'src/utils/styles';\n\nconst _switch = styles({\n slots: {\n root: [\n 'peer inline-flex shrink-0 cursor-default items-center p-(--switch-padding) select-none',\n 'rounded-full border shadow-xs',\n 'border-neutral-6 bg-neutral-4',\n 'data-checked:bg-neutral-12',\n 'data-unchecked:bg-neutral-4',\n '[--switch-padding:1px] [--thumb-size:--spacing(5)]',\n 'cs-disabled cs-focus cs-transition',\n ],\n thumb: [\n 'group pointer-events-none flex-col-center aspect-square rounded-(--thumb-size) will-change-transform',\n '[transition:translate_.15s,border-radius_.15s,scale_.1s_.1s,transform-origin_.15s]',\n 'in-[[role=switch]:active,[data-slot=label]:active,[data-slot=field-label]:active]:not-data-disabled:rounded-[var(--thumb-size)/calc(var(--thumb-size)*1.1)]',\n 'shadow-s',\n 'data-checked:bg-neutral-1',\n 'data-unchecked:bg-neutral-12',\n ],\n checkedIcon: [\n 'absolute size-2.5 cs-transition',\n 'group-data-checked:scale-100 group-data-checked:text-neutral-12',\n 'group-data-unchecked:scale-0 group-data-unchecked:text-neutral-1',\n ],\n uncheckedIcon: [\n 'absolute size-2.5 cs-transition',\n 'group-data-unchecked:scale-100 group-data-unchecked:text-neutral-1',\n 'group-data-checked:scale-0 group-data-checked:text-neutral-12',\n ],\n },\n variants: {\n orientation: {\n horizontal: {\n root: 'h-[calc(var(--thumb-size)+2px)] w-[calc(var(--thumb-size)*2-var(--switch-padding)*2)]',\n thumb: 'h-full origin-left in-[[role=switch]:active,[data-slot=label]:active,[data-slot=field-label]:active]:not-data-disabled:scale-x-120 data-checked:origin-[var(--thumb-size)_50%] data-checked:translate-x-[calc(var(--thumb-size)-var(--switch-padding)*4)]',\n },\n vertical: {\n root: 'h-[calc(var(--thumb-size)*2-var(--switch-padding)*2)] w-[calc(var(--thumb-size)+var(--switch-padding)*2)] flex-col',\n thumb: 'w-full origin-top in-[[role=switch]:active,[data-slot=label]:active,[data-slot=field-label]:active]:not-data-disabled:scale-y-120 data-checked:origin-[50%_var(--thumb-size)] data-checked:translate-y-[calc(var(--thumb-size)-var(--switch-padding)*4)]',\n },\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n});\n\nexport { _switch as switch };\n","import { styles } from 'src/utils/styles';\n\nexport const tableOfContents = styles({\n slots: {\n root: 'flex flex-col gap-2',\n header: 'flex items-center gap-2 typo-3 typo-header text-neutral-11',\n items: 'relative flex flex-col',\n item: 'relative py-1.5 typo-2 text-neutral-10 cs-transition hover:text-accent-12 data-[active=true]:text-accent-11',\n line: 'absolute top-0 left-0',\n linePath: 'stroke-neutral-6',\n lineCircle: 'fill-neutral-3',\n lineNumber: 'fill-neutral-12 typo-1 typo-code',\n track: 'absolute top-0 left-0',\n indicator: 'absolute top-0 left-0 cs-transition',\n indicatorPath: 'stroke-accent-11',\n indicatorCircle: 'fill-accent-11',\n indicatorNumber: 'fill-accent-1 typo-1 typo-code',\n dot: 'absolute left-0 size-1 rounded-full bg-accent-11 opacity-(--toc-dot-opacity,0) cs-transition [offset-distance:var(--toc-offset,0px)]',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const tabs = styles({\n slots: {\n root: 'flex-col-center flex gap-4',\n list: 'relative z-0 flex w-fit items-center justify-center',\n indicator: 'absolute bottom-0 left-0 h-(--active-tab-height) w-(--active-tab-width) translate-x-(--active-tab-left) -translate-y-(--active-tab-bottom) cs-transition',\n tab: [\n 'relative flex-row-center shrink-0 grow gap-1.5 border-0 border-transparent px-2.5 py-1.5 typo-3 typo-label select-none',\n 'text-neutral-10 hover:text-neutral-11 data-active:text-neutral-12',\n 'cs-disabled cs-focus cs-transition',\n ],\n panel: 'flex-1 p-0 typo-2 text-neutral-10 outline-none',\n },\n variants: {\n variant: {\n default: {\n list: 'gap-0.5 rounded-md bg-neutral-3 p-1',\n indicator: '-z-1 rounded-sm bg-neutral-6',\n },\n underline: {\n list: 'text-neutral-11',\n tab: 'border-neutral-6 hover:text-neutral-12',\n indicator: 'z-10 rounded-lg bg-accent-11',\n },\n },\n orientation: {\n horizontal: {},\n vertical: {\n root: 'flex-row',\n list: 'flex-col',\n tab: 'w-full justify-start',\n indicator: '',\n },\n },\n },\n compoundVariants: [\n {\n variant: 'underline',\n orientation: 'horizontal',\n class: {\n tab: 'border-b',\n indicator: 'h-0.5 translate-y-px',\n },\n },\n {\n variant: 'underline',\n orientation: 'vertical',\n class: {\n tab: 'rounded-none rounded-r-md border-l',\n indicator: 'w-0.5 -translate-x-px',\n },\n },\n ],\n defaultVariants: {\n variant: 'default',\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const textArea = styles({\n slots: {\n root: [\n 'relative inline-flex w-full min-w-0 rounded-md bg-transparent outline-none',\n 'gap-1.5 px-2 py-1.5 typo-3',\n 'placeholder:text-neutralA-8',\n 'before:pointer-events-none before:absolute before:inset-0',\n 'file:mr-2.5 file:inline-flex file:border file:border-neutralA-6 file:bg-neutralA-4 file:px-1 file:py-0.5 file:typo-label file:text-neutralA-11',\n '[&:-webkit-autofill]:caret-[white] [&:-webkit-autofill]:[-webkit-text-fill-color:white] [&:-webkit-autofill]:[transition:background-color_9999s]',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'border',\n 'border-neutralA-6 bg-neutralA-2 text-neutralA-11',\n 'hover:border-neutralA-8 hover:bg-neutralA-3 hover:text-neutralA-12',\n ],\n },\n ghost: {\n root: 'hover:text-neutralA-12',\n },\n },\n unstyled: {\n false: { root: 'cs-disabled cs-focus cs-invalid cs-transition' },\n true: { root: 'focus-visible:ring-0 focus-visible:outline-none' },\n },\n resize: {\n false: { root: 'resize-none' },\n true: {},\n },\n },\n defaultVariants: {\n unstyled: false,\n variant: 'default',\n resize: false,\n },\n});\n","import { styles } from '../utils/styles';\n\nexport const textShimmer = styles({\n slots: {\n root: 'relative inline-block typo-8 typo-header text-neutral-12 ',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const tintImage = styles({\n slots: {\n root: 'relative cs-transition',\n image: 'opacity-0',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const toast = styles({\n slots: {\n root: 'w-full max-w-72 rounded-md border select-none',\n content: 'pointer-events-auto flex items-center justify-between gap-1.5 overflow-hidden p-4 typo-2 cs-transition',\n outerContainer: 'flex gap-2',\n innerContainer: 'flex flex-col gap-2',\n title: 'typo-2 typo-header',\n description: 'typo-2 typo-body',\n icon: 'typo-2',\n action: 'absolute top-2 right-2 rounded-md border px-2 py-1 text-neutral-11',\n viewport: [\n 'fixed z-50 mx-auto flex w-[calc(100%-var(--toast-inset)*2)] [--toast-inset:--spacing(4)]',\n 'data-[position*=top]:top-(--toast-inset)',\n 'data-[position*=bottom]:bottom-(--toast-inset)',\n 'data-[position*=left]:left-(--toast-inset)',\n 'data-[position*=right]:right-(--toast-inset)',\n 'data-[position*=center]:left-1/2 data-[position*=center]:-translate-x-1/2',\n ],\n toastRoot: [\n 'absolute z-[calc(9999-var(--toast-index))] h-(--toast-calc-height) [transition:transform_.5s_cubic-bezier(.22,1,.36,1),opacity_.5s,height_.15s] before:pointer-events-none before:absolute before:inset-0',\n 'data-[position*=right]:right-0 data-[position*=right]:left-auto',\n 'data-[position*=left]:right-auto data-[position*=left]:left-0',\n 'data-[position*=center]:right-0 data-[position*=center]:left-0',\n 'data-[position*=top]:top-0 data-[position*=top]:bottom-auto data-[position*=top]:origin-top',\n 'data-[position*=bottom]:top-auto data-[position*=bottom]:bottom-0 data-[position*=bottom]:origin-bottom',\n 'after:absolute after:left-0 after:h-[calc(var(--toast-gap)+1px)] after:w-full',\n 'data-[position*=top]:after:top-full',\n 'data-[position*=bottom]:after:bottom-full',\n '[--toast-calc-height:var(--toast-frontmost-height,var(--toast-height))] [--toast-gap:--spacing(2)] [--toast-peek:--spacing(3)] [--toast-scale:calc(max(0,1-(var(--toast-index)*.1)))] [--toast-shrink:calc(1-var(--toast-scale))]',\n 'data-[position*=top]:[--toast-calc-offset-y:calc(var(--toast-offset-y)+var(--toast-index)*var(--toast-gap)+var(--toast-swipe-movement-y))]',\n 'data-[position*=bottom]:[--toast-calc-offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--toast-gap)*-1+var(--toast-swipe-movement-y))]',\n 'data-[position*=top]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek))+(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]',\n 'data-[position*=bottom]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--toast-peek))-(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]',\n 'data-limited:opacity-0',\n 'data-expanded:h-(--toast-height)',\n 'data-position:data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-calc-offset-y))]',\n 'data-[position*=top]:data-starting-style:transform-[translateY(calc(-100%-var(--toast-inset)))]',\n 'data-[position*=bottom]:data-starting-style:transform-[translateY(calc(100%+var(--toast-inset)))]',\n 'data-ending-style:opacity-0',\n 'data-ending-style:not-data-limited:not-data-swipe-direction:transform-[translateY(calc(100%+var(--toast-inset)))]',\n 'data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]',\n 'data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]',\n 'data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]',\n ],\n toastContent: 'data-behind:opacity-0 data-behind:not-data-expanded:pointer-events-none data-expanded:opacity-100',\n },\n variants: {\n variant: {\n default: {\n root: 'border-neutral-4 bg-neutral-2',\n icon: 'text-neutral-11',\n title: 'text-neutral-12',\n description: 'text-neutral-10',\n action: 'border-neutral-6 bg-neutral-3 hover:border-neutral-9 hover:bg-neutral-4',\n },\n success: {\n root: 'border-success-4 bg-success-2',\n icon: 'text-success-11',\n title: 'text-success-12',\n description: 'text-success-10',\n action: 'border-success-6 bg-success-3 hover:border-success-9 hover:bg-success-4',\n },\n error: {\n root: 'border-error-4 bg-error-2',\n icon: 'text-error-11',\n title: 'text-error-12',\n description: 'text-error-10',\n action: 'border-error-6 bg-error-3 hover:border-error-9 hover:bg-error-4',\n },\n warning: {\n root: 'border-warning-4 bg-warning-2',\n icon: 'text-warning-11',\n title: 'text-warning-12',\n description: 'text-warning-10',\n action: 'border-warning-6 bg-warning-3 hover:border-warning-9 hover:bg-warning-4',\n },\n info: {\n root: 'border-info-4 bg-info-2',\n icon: 'text-info-11',\n title: 'text-info-12',\n description: 'text-info-10',\n action: 'border-info-6 bg-info-3 hover:border-info-9 hover:bg-info-4',\n },\n loading: {\n root: 'border-neutral-4 bg-neutral-2',\n icon: 'animate-spin text-neutral-12',\n title: 'text-neutral-12',\n description: 'text-neutral-10',\n action: 'border-neutral-6 bg-neutral-3 hover:border-neutral-9 hover:bg-neutral-4',\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const toggleGroup = styles({\n slots: {\n root: 'flex w-fit overflow-hidden *:focus-visible:z-1',\n separator: 'pointer-events-none relative shrink-0 bg-neutral-6 before:absolute before:inset-0 before:cs-transition',\n },\n variants: {\n variant: {\n default: {\n root: 'gap-1',\n },\n outline: {\n root: 'rounded-md border border-neutral-6 *:data-[slot=toggle]:rounded-none *:data-[slot=toggle]:border-transparent',\n },\n },\n orientation: {\n horizontal: {\n separator: 'w-px self-stretch',\n },\n vertical: {\n root: 'flex-col',\n separator: 'h-px self-stretch',\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n orientation: 'horizontal',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const toggle = styles({\n slots: {\n root: [\n 'group/toggle inline-flex cursor-default items-center justify-center select-none',\n 'gap-2 rounded-sm border px-2.5 py-2 typo-2 typo-label',\n 'cs-disabled cs-focus cs-transition',\n ],\n },\n variants: {\n variant: {\n default: {\n root: [\n 'border-neutralA-3 bg-neutralA-2 text-neutral-11',\n 'hover:border-neutralA-6 hover:bg-neutralA-3 hover:text-neutral-12',\n 'data-pressed:border-neutralA-6 data-pressed:bg-neutralA-4 data-pressed:text-neutral-12',\n ],\n },\n outline: {\n root: [\n 'border-neutralA-6 bg-transparent text-neutral-11',\n 'hover:border-neutral-11 hover:text-neutral-12',\n 'data-pressed:border-neutral-12 data-pressed:bg-neutral-12 data-pressed:text-neutral-1',\n ],\n },\n ghost: {\n root: [\n 'border-none bg-transparent text-neutral-10',\n 'hover:text-accent-12',\n 'p-0 data-pressed:text-neutral-12',\n ],\n },\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n","import { styles } from 'src/utils/styles';\n\nexport const tooltip = styles({\n slots: {\n positioner: [\n 'z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width)',\n 'transition-[top,left,right,bottom,transform] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-instant:transition-none',\n ],\n popup: [\n 'relative h-(--popup-height,auto) w-(--popup-width,auto) cs-popup-animation text-balance',\n 'transition-[width,height,scale,opacity]',\n 'rounded-md border border-neutral-6 bg-neutral-2 py-1.5 typo-2 typo-label text-neutral-12 shadow-l select-none',\n ],\n arrow: [\n 'size-4',\n 'fill-neutral-2 stroke-neutral-6 stroke-1',\n 'data-[side=top]:-bottom-3 data-[side=top]:rotate-180',\n 'data-[side=bottom]:-top-3 data-[side=bottom]:rotate-0',\n 'data-[side=left]:-right-3 data-[side=left]:rotate-90',\n 'data-[side=right]:-left-3 data-[side=right]:-rotate-90',\n 'transition-[left] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-instant:transition-none',\n ],\n viewport: [\n 'px-(--viewport-inline-padding)',\n '[--viewport-inline-padding:0.5rem]',\n 'relative h-full w-full overflow-clip',\n '**:data-current:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding))]',\n '**:data-current:translate-x-0',\n '**:data-current:opacity-100',\n '**:data-current:transition-[translate,opacity]',\n '**:data-current:duration-[350ms,175ms]',\n '**:data-current:ease-[cubic-bezier(0.22,1,0.36,1)]',\n '**:data-previous:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding))]',\n '**:data-previous:translate-x-0',\n '**:data-previous:opacity-100',\n '**:data-previous:transition-[translate,opacity]',\n '**:data-previous:duration-[350ms,175ms]',\n '**:data-previous:ease-[cubic-bezier(0.22,1,0.36,1)]',\n 'data-[activation-direction~=left]:[&_[data-current][data-starting-style]]:-translate-x-1/2',\n 'data-[activation-direction~=left]:[&_[data-current][data-starting-style]]:opacity-0',\n 'data-[activation-direction~=right]:[&_[data-current][data-starting-style]]:translate-x-1/2',\n 'data-[activation-direction~=right]:[&_[data-current][data-starting-style]]:opacity-0',\n 'data-[activation-direction~=left]:[&_[data-previous][data-ending-style]]:translate-x-1/2',\n 'data-[activation-direction~=left]:[&_[data-previous][data-ending-style]]:opacity-0',\n 'data-[activation-direction~=right]:[&_[data-previous][data-ending-style]]:-translate-x-1/2',\n 'data-[activation-direction~=right]:[&_[data-previous][data-ending-style]]:opacity-0',\n '[[data-instant]_&_[data-previous]]:transition-none',\n '[[data-instant]_&_[data-current]]:transition-none',\n ],\n },\n});\n","export * from './accordion';\nexport * from './alert';\nexport * from './autocomplete';\nexport * from './button';\nexport * from './slider';\nexport * from './card';\nexport * from './chat-thread';\nexport * from './chart';\nexport * from './checkbox';\nexport * from './code-block';\nexport * from './collapsible';\nexport * from './color-area';\nexport * from './color-field';\nexport * from './color-input';\nexport * from './color-picker';\nexport * from './color-slider';\nexport * from './color-swatch';\nexport * from './color-swatch-picker';\nexport * from './combobox';\nexport * from './command-button';\nexport * from './command';\nexport * from './counter';\nexport * from './drawer';\nexport * from './dropzone';\nexport * from './image';\nexport * from './image-dropzone';\nexport * from './empty';\nexport * from './field';\nexport * from './field-set';\nexport * from './form';\nexport * from './group';\nexport * from './input-group';\nexport * from './input';\nexport * from './masonry';\nexport * from './kbd';\nexport * from './label';\nexport * from './motion-animate-presence';\nexport * from './navbar';\nexport * from './navigation-menu';\nexport * from './number-field';\nexport * from './pagination';\nexport * from './font-picker';\nexport * from './google-signin-button';\nexport * from './palette-picker';\nexport * from './parameter';\nexport * from './parameter-color';\nexport * from './parameter-color-swatch-picker';\nexport * from './parameter-combobox';\nexport * from './parameter-font-picker';\nexport * from './parameter-group';\nexport * from './parameter-palette-picker';\nexport * from './parameter-preset-picker';\nexport * from './parameter-slider';\nexport * from './parameter-switch';\nexport * from './parameter-text';\nexport * from './parameter-text-area';\nexport * from './parameter-toggle';\nexport * from './parameter-toggle-group';\nexport * from './parameter-typography-group';\nexport * from './parameter-files';\nexport * from './parameter-image';\nexport * from './parameter-number';\nexport * from './parameter-select';\nexport * from './parameter-shadow-group';\nexport * from './placeholder';\nexport * from './popover';\nexport * from './preset-picker';\nexport * from './progress';\nexport * from './prompt-input';\nexport * from './properties';\nexport * from './scroll-area';\nexport * from './select';\nexport * from './separator';\nexport * from './sidebar';\nexport * from './spacer';\nexport * from './spinner';\nexport * from './steps';\nexport * from './switch';\nexport * from './table-of-contents';\nexport * from './tabs';\nexport * from './text-area';\nexport * from './text-shimmer';\nexport * from './tint-image';\nexport * from './toast';\nexport * from './toggle-group';\nexport * from './toggle';\nexport * from './tooltip';\n","import type { BundledLanguage, HighlighterGeneric, LanguageInput } from 'shiki';\nimport { createHighlighter } from 'shiki';\nimport { Mode } from 'src/presets';\n\nlet highlighterInstance: HighlighterGeneric<BundledLanguage, any> | null = null;\n\nconst THEMES = [\n 'github-dark',\n 'github-light',\n 'nord',\n 'one-dark-pro',\n 'dracula',\n 'monokai',\n 'material-theme-darker',\n 'tokyo-night',\n 'catppuccin-mocha',\n 'solarized-dark',\n 'solarized-light',\n 'min-dark',\n 'min-light',\n];\n\nconst LANGUAJES = ['typescript', 'javascript', 'tsx', 'jsx', 'python', 'bash', 'json', 'css', 'html', 'text'];\n\nexport async function getHighlighter() {\n if (highlighterInstance) {\n return highlighterInstance;\n }\n\n highlighterInstance = await createHighlighter({\n themes: THEMES,\n langs: LANGUAJES,\n });\n\n return highlighterInstance;\n}\n\ninterface HighlightOptions {\n highlightLines?: number[];\n showLineNumbers?: boolean;\n mode?: Mode;\n}\n\nexport async function highlightCode(code: string, lang: string = 'text', options: HighlightOptions = {}): Promise<string> {\n const highlighter = await getHighlighter();\n\n const { highlightLines = [], showLineNumbers = false, mode = 'dark' } = options;\n\n const loadedLanguages = highlighter.getLoadedLanguages();\n\n if (!loadedLanguages.includes(lang as BundledLanguage)) {\n try {\n await highlighter.loadLanguage(lang as unknown as LanguageInput);\n } catch (_error) {\n console.warn(`Language \"${lang}\" not found, falling back to plaintext`);\n lang = 'text';\n }\n }\n\n const html = highlighter.codeToHtml(code, {\n lang: lang,\n theme: mode === 'light' ? 'min-light' : 'tokyo-night',\n transformers: [\n {\n pre: function (node) {\n node.properties.tabindex = '-1';\n },\n line: function (node, line) {\n node.properties['data-line'] = String(line);\n\n if (highlightLines.includes(line)) {\n node.properties['data-highlighted'] = '';\n }\n\n // Add line number as first child when enabled\n if (showLineNumbers) {\n node.children.unshift({\n type: 'element',\n tagName: 'span',\n properties: { class: 'line-number' },\n children: [{ type: 'text', value: String(line) }],\n });\n }\n },\n },\n ],\n });\n\n return html;\n}\n","export interface CodeMeta {\n title?: string;\n highlightLines?: number[];\n showLineNumbers?: boolean;\n}\n\nexport function parseCodeMeta(meta: string = ''): CodeMeta {\n const result: CodeMeta = {};\n\n const titleMatch = meta.match(/title=\"([^\"]+)\"/);\n\n if (titleMatch) {\n result.title = titleMatch[1];\n }\n\n const highlightMatch = meta.match(/\\{([0-9,-]+)\\}/);\n\n if (highlightMatch) {\n result.highlightLines = parseLineNumbers(highlightMatch[1]);\n }\n\n result.showLineNumbers = meta.includes('showLineNumbers');\n\n return result;\n}\n\nfunction parseLineNumbers(input: string): number[] {\n const lines: number[] = [];\n const parts = input.split(',');\n\n for (const part of parts) {\n if (part.includes('-')) {\n const [start, end] = part.split('-').map(Number);\n for (let i = start; i <= end; i++) {\n lines.push(i);\n }\n } else {\n lines.push(Number(part));\n }\n }\n\n return lines;\n}\n","import { CommonHelpers } from '@digo-labs/common';\nimport { parseColor, Color } from '..';\n\nexport function cssColor(varName: string): Color {\n let cached: Color | null = null;\n const resolve = () => cached ??= parseColor(CommonHelpers.getCssVariable(varName));\n\n return new Proxy({} as Color, {\n get: function (_target, prop) {\n const real = resolve() as unknown as Record<string | symbol, unknown>;\n const value = real[prop as string];\n return typeof value === 'function' ? (value as (...args: unknown[]) => unknown).bind(real) : value;\n },\n });\n}\n","import { cn } from '@digo-labs/common';\nimport { Tint } from '..';\n\nimport { ComponentPropsWithoutRef } from 'react';\nimport LottieUI from 'lottie-react';\n\ninterface LottieProperties extends ComponentPropsWithoutRef<typeof LottieUI> {\n tint?: string;\n containerClasses?: string;\n}\n\nexport function Lottie(properties: LottieProperties) {\n const {\n className,\n tint,\n containerClasses,\n ...props\n } = properties;\n\n return (\n <div className={cn('relative', containerClasses)}>\n <LottieUI\n className={cn('', className)}\n {...props}\n />\n\n <Tint color={tint ? tint : 'transparent'} />\n </div>\n );\n}\n","import { cn } from '@digo-labs/common';\n\nimport QR from 'qrcode';\n\nimport { ComponentPropsWithoutRef, useEffect, useState } from 'react';\n\nexport interface QRCodeProperties extends ComponentPropsWithoutRef<'div'> {\n data: string;\n foreground?: string;\n background?: string;\n robustness?: 'L' | 'M' | 'Q' | 'H';\n};\n\nexport function QRCode(properties: QRCodeProperties) {\n const {\n data,\n foreground,\n background,\n robustness = 'M',\n className,\n ...props\n } = properties;\n\n const [svg, setSVG] = useState<string | null>(null);\n\n useEffect(() => {\n generateQR();\n }, [data, foreground, background, robustness]);\n\n if (!svg) return undefined;\n\n async function generateQR() {\n try {\n const newSvg = await QR.toString(data, {\n type: 'svg',\n color: {\n dark: foreground,\n light: background,\n },\n width: 200,\n errorCorrectionLevel: robustness,\n margin: 0,\n });\n\n setSVG(newSvg);\n } catch (err) {\n console.error(err);\n }\n };\n\n return (\n <div\n className={cn('size-full', '[&_svg]:size-full', className)}\n dangerouslySetInnerHTML={{ __html: svg }}\n {...props}\n />\n );\n};\n","export default \"data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='100'%20height='100'%20fill='inherit'%20stroke='inherit'%20stroke-width='inherit'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='100'%20height='100'%20viewBox='0%200%20100%20100'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='50'%20cy='50'%20r='40'%20fill='inherit'%20stroke='inherit'%20stroke-width='inherit'%20paint-order='stroke%20fill'/%3e%3c/svg%3e\"","import { ComponentType } from 'react';\n\nimport Square from '../shapes/square.svg?react';\nimport Circle from '../shapes/circle.svg?react';\n\nexport type ShapeType = 'triangle' | 'square' | 'circle' | 'star';\n\ninterface Properties {\n type: ShapeType;\n fill?: string;\n stroke?: string;\n strokeWidthPercent?: number;\n width?: number;\n height?: number;\n}\n\nexport function Shape(properties: Properties) {\n const { type, fill, width, height, stroke, strokeWidthPercent } = properties;\n\n const SvgComponent = getShape();\n\n function getShape(): ComponentType<any> {\n switch (type) {\n case 'square':\n return Square;\n case 'circle':\n return Circle;\n default:\n return Square;\n }\n }\n\n const radius = strokeWidthPercent ? 50 - strokeWidthPercent / 2 : 50;\n\n return (\n <SvgComponent\n width={width}\n height={height}\n fill={fill}\n stroke={stroke}\n strokeWidth={strokeWidthPercent}\n style={{ display: 'block' }}\n r={radius}\n />\n );\n}\n","import { cn } from '@digo-labs/common';\n\ninterface Properties {\n color: string;\n className?: string;\n}\n\nexport function Tint(properties: Properties) {\n const {\n color,\n className,\n } = properties;\n\n return (\n <div\n className={cn('pointer-events-none absolute inset-0 mix-blend-darken', className)}\n style={{ backgroundColor: color }}\n />\n );\n};\n"],"mappings":"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EACZ,GACA,OACF;EAGF,OADA,EAAK,IAAI,GAAM,EAAE,QAAQ,GAAG,CAAC,GACtB;CACT;CAEA,IAAI,GAAS,GAAc,GAAM,MAExB,EACJ,SAAS,EACR,UAAU,EACR,UAAU,IACZ,EACF,CAAC,CAAC,CACD,SAAS,SAAS,CAAC,CAAC,CACpB,GACC,GACA;EACE,UAAU;EACV,MAAU;EACV,UAAU;CACZ,GACA,OACF,CAAC,CACA,GACC,GACA;EACE,UAAU;EACV,MAAU;EACV,UAAU;EACV,UAAU;CACZ,GACA,OACF,CAAC,CACA,OACC,GACA;EACE,WAAW;EACX,UAAW;CACb,GACA;EACE,MAAU;EACV,UAAU;CACZ,GACA,YACF,CAAC,CACA,OACC,GACA;EACE,UAAU;EACV,UAAU;CACZ,GACA;EACE,MAAU;EACV,UAAU;EACV,UAAU;CACZ,GACA,YACF;CAGJ,IAAI,GAAS,GAAc,GAAM,MAExB,EACJ,SAAS,EACR,UAAU,EACR,UAAU,IACZ,EACF,CAAC,CAAC,CACD,SAAS,SAAS,CAAC,CAAC,CACpB,GACC,GACA;EACE,UAAU;EACV,MAAU;EACV,UAAU;CACZ,GACA,OACF,CAAC,CACA,GACC,GACA;EACE,UAAU;EACV,MAAU;EACV,UAAU;EACV,UAAU;CACZ,GACA,OACF,CAAC,CACA,OACC,GACA;EACE,WAAW;EACX,UAAW;CACb,GACA;EACE,MAAU;EACV,UAAU;CACZ,GACA,YACF,CAAC,CACA,OACC,GACA;EACE,UAAU;EACV,UAAU;CACZ,GACA;EACE,MAAU;EACV,UAAU;EACV,UAAU;CACZ,GACA,YACF;CAIJ,IAAI,GAAS,GAAe,GAAM,MACzB,EACJ,SAAS,EACR,UAAU;EACR,UAAU;EACV,MAAU;CACZ,EACF,CAAC,CAAC,CACD,SAAS,SAAS,CAAC,CAAC,CACpB,GACC,GACA;EACE,iBAAiB;EACjB,QAAiB;EACjB,WAAiB;CACnB,GACA,OACF,CAAC,CACA,OACC,GACA;EACE,iBAAiB;EACjB,WAAiB;EACjB,QAAiB;CACnB,GACA;EACE,WAAW;EACX,QAAW;CACb,GACA,OACF;CAGJ,IAAI,GAAS,GAAe,GAAM,MAEzB,EACJ,SAAS,EACR,UAAU;EACR,UAAU;EACV,MAAU;CACZ,EACF,CAAC,CAAC,CACD,SAAS,SAAS,CAAC,CAAC,CACpB,GACC,GACA;EACE,OAAU;EACV,UAAU;CACZ,GACA,OACF,CAAC,CACA,SAAS,UAAU,GAAG,CAAC,CACvB,OACC,GACA;EACE,OAAU;EACV,UAAU;CACZ,GACA;EACE,UAAU;EACV,MAAU;EACV,OAAU;EACV,UAAU;CACZ,GACA,QACF;AAGN,GC5gBY,KAAL,yBAAA,GAAA;QACL,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA,KACA,EAAA,IAAA;AACF,EAAA,CAAA,CAAA;AASA,SAAgB,GAAgB,GAAwB;CACtD,IAAM,EACJ,QACA,YAAA,KACA,WAAQ,CAAC,GACT,eAAY,OACV,GAEE,IAAkB,EAAuB,IAAI,GAC7C,IAAkB,EAAuB,IAAI,GAC7C,IAAkB,EAAuB,IAAI,GAC7C,IAAkB,EAAuB,IAAI,GAC7C,IAAkB,EAAuB,IAAI,GAC7C,IAAkB,EAAgB,EAAK,GAEvC,CAAC,GAAY,KAAiB,EAAiB,CAAG,GAClD,CAAC,GAAS,KAAoB,EAAwB,IAAI;CAmChE,OAjCA,QAAgB;EACV,MAAQ,KAAc,EAAe,YAEzC,EAAe,UAAU,IAEzB,EAAW,CAAG;CAChB,GAAG,CAAC,GAAK,CAAU,CAAC,GAEpB,QAAgB;EACd,IAAI,CAAC,KAAW,CAAC,EAAgB,WAAW,CAAC,EAAa,SAAS;EAEnE,IAAM,IAAe,EAAgB,SAC/B,IAAe,EAAgB,SAC/B,IAAe,EAAa,SAC5B,IAAe,EAAa;EAE9B,CAAC,KAAgB,CAAC,MAEJ,GAAiB,MAAW,GAAA,EAAA,CAEnB,GAAS,GAAc,GAAM,CAExD,CAAA,CAAS,cAAc,oBAAoB;GAOzC,AANA,EAAc,CAAO,GAErB,EAAK,IAAI,CAAC,GAAS,CAAY,GAAG,EAAE,YAAY,MAAM,CAAC,GAEvD,EAAW,IAAI,GAEf,EAAe,UAAU;EAC3B,CAAC;CACH,GAAG,CAAC,GAAS,CAAM,CAAC,GAGlB,kBAAC,OAAD;EACE,KAAK;EACL,WAAW,EAAG,sCAAsC,CAAS;EACtD;YAHT,CAME,kBAAC,OAAD;GAAK,KAAK;GAAiB,WAAU;aAEnC,kBAAC,OAAD;IACE,KAAK;IACL,WAAU;IACV,OAAO,EACL,iBAAiB,OAAO,EAAW,GACrC;IACA,MAAK;GACN,CAAA;EAEE,CAAA,GAEJ,KACC,kBAAC,OAAD;GAAK,KAAK;GAAc,WAAU;aAEhC,kBAAC,OAAD;IACE,KAAK;IACL,WAAU;IACV,OAAO,EACL,iBAAiB,OAAO,EAAQ,GAClC;IACA,MAAK;GACN,CAAA;EAEE,CAAA,CAEJ;;AAET;;;ACjHA,IAAM,KAAuB,i8CA8CvB,KAAuB,0+BAuCvB,KAAN,MAAW;CACT;CACA;CACA;CAEA,YAAY,GAAW,GAAW,GAAW;EAG3C,AAFA,KAAK,IAAI,GACT,KAAK,IAAI,GACT,KAAK,IAAI;CACX;AACF,GAEM,KAAN,MAAa;CACX;CACA;CACA;CAEA,YAAY,GAAW,GAAW,GAAW;EAG3C,AAFA,KAAK,WAAW,EAAK,WAAW,GAAG,GAAG,CAAC,GACvC,KAAK,SAAW,EAAK,OAAO,GAC5B,KAAK,KAAW,GAAK,OAAO;CAC9B;AACF,GAEM,KAAN,MAAe;CACb;CACA;CAEA,cAAc;EAEZ,AADA,KAAK,WAAW,CAAC,GACjB,KAAK,QAAW,CAAC;CACnB;CAEA,UAAiB,GAAG,GAAsB;EACxC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,KAAK,GACpC,KAAK,SAAS,KAAK,IAAI,GAAO,EAAK,IAAI,EAAK,IAAI,IAAI,EAAK,IAAI,EAAE,CAAC;EAElE,OAAO;CACT;CAEA,QAAe,GAAG,GAAsB;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAK,QAAQ,KAAK,GACpC,KAAK,MAAM,KAAK,IAAI,GAAK,EAAK,IAAI,EAAK,IAAI,IAAI,EAAK,IAAI,EAAE,CAAC;EAE7D,OAAO;CACT;CAEA,IAAW,aAAqB;EAC9B,OAAO,KAAK,SAAS,KAAK,SAAS,SAAS;CAC9C;CAEA,UAAiB,IAAY,GAAS;EACpC,IAAM,IAAwC,CAAC,GAC3C,IAA0C,KAAK;EAEnD,KAAK,IAAI,IAAM,GAAG,IAAM,GAAW,EAAE,GAAK;GACxC,IAAM,IAAe,MAAY,EAAE,SAAS,CAAC;GAc7C,AAZA,EAAE,SAAS,GAAM,MAAQ;IACvB,IAAM,IAAM,KAAK,YAAY,EAAK,GAAG,EAAK,GAAG,CAAa,GACpD,IAAM,KAAK,YAAY,EAAK,GAAG,EAAK,GAAG,CAAa,GACpD,IAAM,KAAK,YAAY,EAAK,GAAG,EAAK,GAAG,CAAa,GAEpD,IAAY,IAAM;IAIxB,AAHA,EAAS,IAAI,KAAK,IAAI,GAAK,EAAK,GAAG,GAAK,CAAG,GAC3C,EAAS,IAAI,KAAK,IAAI,GAAK,EAAK,GAAG,GAAK,CAAG,GAC3C,EAAS,IAAI,KAAK,IAAI,GAAK,EAAK,GAAG,GAAK,CAAG,GAC3C,EAAS,IAAI,KAAK,IAAI,GAAK,GAAK,GAAK,CAAG;GAC1C,CAAC,GAED,IAAI;EACN;EAGA,OADA,KAAK,QAAQ,GACN;CACT;CAEA,SAAgB,IAAS,GAAS;EAKhC,OAJA,KAAK,SAAS,SAAS,MAAW;GAEhC,AADA,EAAK,UAAU,EAAO,QAAQ,EAAO,QAAQ,GAC7C,EAAK,MAAM,EAAO,UAAU,EAAO,QAAQ,CAAM;EACnD,CAAC,GACM;CACT;CAEA,IAAW,OAKT;EACA,OAAO;GACL,UAAU,KAAK;GACf,SAAU,KAAK;GACf,SAAU,KAAK;GACf,KAAU,KAAK;EACjB;CACF;CAEA,IAAW,aAA2B;EACpC,OAAO,IAAI,aAAa,KAAK,SAAS,SAAQ,MAAK,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC;CAC5E;CAEA,IAAW,aAA2B;EACpC,OAAO,IAAI,aAAa,KAAK,SAAS,SAAQ,MAAK,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC;CAC1E;CAEA,IAAW,SAAuB;EAChC,OAAO,IAAI,aAAa,KAAK,SAAS,SAAQ,MAAK,MAAM,KAAK,EAAE,EAAE,CAAC,CAAC;CACtE;CAEA,IAAW,YAAyB;EAClC,OAAO,IAAI,YAAY,KAAK,MAAM,SAAQ,MAAK;GAAC,EAAE;GAAG,EAAE;GAAG,EAAE;EAAC,CAAC,CAAC;CACjE;CAEA,YAAmB,GAAc,GAAc,GAAuC;EACpF,IAAM,IAAW,IAAO,IAAO,KAAK,EAAK,GAAG,MAAS,KAAK,EAAK,GAAG;EAClE,IAAI,OAAO,UAAU,eAAe,KAAK,GAAO,CAAQ,GACtD,OAAO,EAAM;EAEf,IAAM,IAAY,KAAK,SAAS,EAAK,CAAC,UAChC,IAAY,KAAK,SAAS,EAAK,CAAC,UAChC,IAAY,KAAK,SAAS;EAGhC,OAFA,EAAM,KAAY,GAClB,KAAK,WAAW,EAAE,KAAK,EAAE,MAAM,KAAM,EAAE,KAAK,EAAE,MAAM,KAAM,EAAE,KAAK,EAAE,MAAM,EAAG,GACrE;CACT;AACF,GAEM,KAAN,cAAkC,GAAS;CACzC,cAAc;EACZ,MAAM;EACN,IAAM,IAAI,KAAK,KAAK,CAAC,IAAI,KAAM;EAC/B,KAAK,UACH,IACA,GACA,GACA,GACA,GACA,GACA,IACA,CAAC,GACD,GACA,GACA,CAAC,GACD,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,CAAC,GACD,GACA,GACA,CAAC,GACD,GACA,GACA,IACA,GACA,GACA,GACA,CAAC,GACD,GACA,IACA,CAAC,GACD,GACA,CACF,CAAC,CAAC,QACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,CACF;CACF;AACF,GAEM,KAAN,cAA2B,GAAS;CAClC,YAAY,IAAQ,GAAG,IAAS,GAAG;EACjC,MAAM;EACN,IAAM,IAAY,KAAK,IAAI,GAAG,CAAK,GAC7B,IAAa,IAAI,KAAK,KAAM;E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C1B,OAAO;EACL,MAAa;EACb,SAAa;EACb,OAAa;EACb,aAAa;EACb,QAAa;EACb,MAAa;CACf;CACA,UAAU,EACR,SAAS;EACP,SAAS;GACP,MAAa;GACb,OAAa;GACb,aAAa;GACb,MAAa;EACf;EACA,aAAa;GACX,MAAa;GACb,OAAa;GACb,aAAa;GACb,MAAa;EACf;EACA,SAAS;GACP,MAAa;GACb,OAAa;GACb,aAAa;GACb,MAAa;EACf;EACA,SAAS;GACP,MAAa;GACb,OAAa;GACb,aAAa;GACb,MAAa;EACf;EACA,MAAM;GACJ,MAAa;GACb,OAAa;GACb,aAAa;GACb,MAAa;EACf;CACF,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CAAC,GC9CY,KAAe,EAAO,EACjC,OAAO;CACL,YAAY;CACZ,OAAY;EACV;EACA;EACA;CACF;CACA,YAAY;CACZ,OAAY;CACZ,MAAY;EACV;EACA;EACA;CACF;CACA,WAAe;CACf,OAAe;CACf,YAAe;CACf,OAAe;CACf,MAAe;CACf,OAAe;CACf,QAAe;CACf,SAAe;CACf,eAAe;AACjB,EACF,CAAC,GCzBY,KAAS,EAAO;CAC3B,OAAO,EACL,MAAM;EACJ;EACA;EACA;CACF,EACF;CACA,UAAU,EACR,SAAS;EACP,SAAS,EACP,MAAM,CACJ,iDACA,iEACF,EACF;EACA,QAAQ,EACN,MAAM,CACJ,8CACA,8DACF,EACF;EACA,SAAS,EACP,MAAM,CACJ,iDACA,kEACF,EACF;EACA,WAAW,EACT,MAAM,CACJ,iDACA,iEACF,EACF;EACA,aAAa,EACX,MAAM,CACJ,2CACA,4DACF,EACF;EACA,SAAS,EACP,MAAM,CACJ,qCACA,iEACF,EACF;EACA,OAAO,EACL,MAAM,CACJ,mBACA,2CACF,EACF;EACA,MAAM,EACJ,MAAM;GACJ;GACA;GACA;EACF,EACF;EACA,OAAO,EACL,MAAM;GACJ;GACA;GACA;GACA;EACF,EACF;EACA,MAAM,EAAE,MAAM,mDAAmD;CACnE,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CAAC,GCzEY,KAAS,EAAO;CAC3B,OAAO;EACL,MAAgB;EAChB,SAAgB;EAChB,OAAgB;EAChB,WAAgB;EAChB,OAAgB;EAChB,OAAgB;EAChB,gBAAgB;EAChB,MAAgB;EAChB,UAAgB;EAChB,WAAgB;CAClB;CACA,UAAU,EACR,aAAa;EACX,YAAY;GACV,MAAgB;GAChB,SAAgB;GAChB,OAAgB;GAChB,gBAAgB;GAChB,MAAgB;GAChB,UAAgB;EAClB;EACA,UAAU;GACR,MAAgB;GAChB,SAAgB;GAChB,OAAgB;GAChB,gBAAgB;GAChB,MAAgB;GAChB,UAAgB;EAClB;CACF,EACF;CACA,iBAAiB,EACf,aAAa,aACf;AACF,CAAC,GCpCY,KAAO,EAAO,EACzB,OAAO;CACL,MAAM;EACJ;EACA;EACA;EACA;EACA;CACF;CACA,SAAiB;CACjB,UAAiB;CACjB,iBAAiB;AACnB,EACF,CAAC,GCbY,KAAa,EAAO,EAC/B,OAAO;CACL,MAAkB;CAClB,SAAkB;CAClB,aAAkB;CAClB,kBAAkB;CAClB,cAAkB;CAClB,UAAkB;CAClB,gBAAkB;CAClB,eAAkB;CAClB,cAAkB;CAClB,QAAkB;CAClB,YAAkB;AACpB,EACF,CAAC,GCdY,KAAQ,EAAO,EAC1B,OAAO;CACL,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,SAAkB;CAClB,aAAkB;CAClB,kBAAkB;CAClB,cAAkB;CAClB,cAAkB;CAClB,QAAkB;CAClB,YAAkB;CAClB,iBAAkB;CAClB,aAAkB;AACpB,EACF,CAAC,GC3BY,KAAW,EAAO,EAC7B,OAAO;CACL,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,WAAW,CAAC,wBAAwB;AACtC,EACF,CAAC,GCbY,KAAY,EAAO,EAC9B,OAAO;CACL,MAAiB;CACjB,QAAiB;CACjB,OAAiB;CACjB,SAAiB;CACjB,iBAAiB;CACjB,MAAiB;EACf;EACA;EACA;EACA;EACA;CACF;AACF,EACF,CAAC,GCfY,KAAc,EAAO,EAChC,OAAO;CACL,MAAc;CACd,SAAc;CACd,OAAc;CACd,cAAc;CACd,MAAc;AAChB,EACF,CAAC,GCRY,KAAY,EAAO,EAC9B,OAAO;CACL,MAAO;CACP,OAAO;AACT,EACF,CAAC,GCLY,KAAa,EAAO,EAC/B,OAAO;CACL,MAAO;CACP,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF,EACF,CAAC,GCZY,KAAa,EAAO,EAC/B,OAAO;CACL,MAAc;CACd,SAAc;CACd,QAAc;CACd,QAAc;CACd,QAAc;CACd,UAAc;CACd,cAAc;AAChB,EACF,CAAC,GCVY,KAAc,EAAO,EAChC,OAAO;CACL,MAAmB;CACnB,SAAmB;CACnB,QAAmB;CACnB,OAAmB;CACnB,SAAmB;CACnB,mBAAmB;CACnB,QAAmB;CACnB,UAAmB;CACnB,QAAmB;AACrB,EACF,CAAC,GCZY,KAAc,EAAO;CAChC,OAAO;EACL,MAAuB;EACvB,OAAuB;EACvB,OAAuB;EACvB,uBAAuB;CACzB;CACA,UAAU,EACR,aAAa;EACX,YAAY,EACV,OAAO,aACT;EACA,UAAU,EACR,OAAO,aACT;CACF,EACF;CACA,iBAAiB,EACf,aAAa,aACf;AACF,CAAC,GCpBY,KAAc,EAAO,EAChC,OAAO;CACL,MAAuB;CACvB,uBAAuB;CACvB,OAAuB;AACzB,EACF,CAAC,GCNY,KAAoB,EAAO,EACtC,OAAO;CACL,MAAiB;CACjB,MAAiB;CACjB,iBAAiB;EACf;EACA;EACA;EACA;CACF;CACA,QAAW;CACX,WAAW;AACb,EACF,CAAC,GCbY,KAAW,EAAO,EAC7B,OAAO;CACL,MAAY;CACZ,YAAY;CACZ,OAAY,CACV,qCACA,uGACF;CACA,YAAe;CACf,OAAe;CACf,OAAe;CACf,SAAe;CACf,MAAe;CACf,eAAe;CACf,WAAe;CACf,OAAe;CACf,YAAe;CACf,OAAe;CACf,MAAe;CACf,YAAe;CACf,QAAe;CACf,OAAe;CACf,YAAe;CACf,MAAe;CACf,YAAe;CACf,YAAe;AACjB,EACF,CAAC,GC3BY,KAAgB,EAAO,EAClC,OAAO;CACL,MAAa;CACb,aAAa;AACf,EACF,CAAC,GCLY,KAAU,EAAO,EAC5B,OAAO;CACL,UAAU;CACV,UAAU;CACV,OAAU;EACR;EACA;EACA;EACA;EACA;CACF;CACA,gBAAgB;CAChB,OAAgB;CAChB,MAAgB;CAChB,OAAgB;CAChB,OAAgB;CAChB,MAAgB;CAChB,WAAgB;CAChB,UAAgB;CAChB,QAAgB;AAClB,EACF,CAAC,GCrBY,KAAU,EAAO,EAC5B,OAAO;CACL,MAAgB;CAChB,QAAgB;CAChB,OAAgB;CAChB,QAAgB;CAChB,SAAgB;CAChB,aAAgB;CAChB,gBAAgB;AAClB,EACF,CAAC,GCVY,KAAS,EAAO;CAC3B,OAAO;EACL,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,UAAU;EACV,OAAU;GACR;GACA;GACA;GACA;GACA;EACF;EACA,SAAa;EACb,QAAa;EACb,OAAa;EACb,aAAa;EACb,QAAa;EACb,QAAa;CACf;CACA,UAAU,EACR,MAAM;EACJ,KAAK;GACH,UAAU;GACV,OAAU;GACV,QAAU;EACZ;EACA,OAAO;GACL,UAAU;GACV,OAAU;GACV,QAAU;EACZ;EACA,QAAQ;GACN,UAAU;GACV,OAAU;GACV,QAAU;EACZ;EACA,MAAM;GACJ,UAAU;GACV,OAAU;GACV,QAAU;EACZ;CACF,EACF;CACA,iBAAiB,EACf,MAAM,QACR;AACF,CAAC,GCrDY,KAAW,EAAO,EAC7B,OAAO;CACL,MAAoB;CACpB,MAAoB;CACpB,KAAoB;CACpB,UAAoB;CACpB,UAAoB;CACpB,oBAAoB;CACpB,WAAoB;CACpB,MAAoB;CACpB,MAAoB;CACpB,MAAoB;CACpB,QAAoB;CACpB,MAAoB;AACtB,EACF,CAAC,GCfY,KAAQ,EAAO,EAC1B,OAAO;CACL,MAAa;CACb,OAAa;CACb,aAAa;AACf,EACF,CAAC,GCNY,KAAgB,EAAO,EAClC,OAAO;CACL,MAAiB;CACjB,MAAiB;CACjB,OAAiB;CACjB,aAAiB;CACjB,iBAAiB;CACjB,QAAiB;CACjB,YAAiB;CACjB,cAAiB;CACjB,KAAiB;AACnB,EACF,CAAC,GCZY,KAAQ,EAAO,EAC1B,OAAO;CACL,MAAa;CACb,QAAa;CACb,OAAa;CACb,aAAa;CACb,OAAa;CACb,aAAa;CACb,YAAa;CACb,MAAa;CACb,SAAa;AACf,EACF,CAAC,GCZY,KAAQ,EAAO,EAC1B,OAAO;CACL,MAAa;CACb,OAAa;CACb,MAAa;CACb,aAAa;CACb,OAAa;AACf,EACF,CAAC,GCRY,KAAW,EAAO,EAC7B,OAAO;CACL,MAAQ;CACR,QAAQ;AACV,EACF,CAAC,GCLY,KAAO,EAAO,EACzB,OAAO,EACL,MAAM,sBACR,EACF,CAAC,GCJY,KAAQ,EAAO;CAC1B,OAAO;EACL,MAAW;EACX,WAAW;EACX,MAAW;CACb;CACA,UAAU,EACR,aAAa;EACX,YAAY,EACV,WAAW,oBACb;EACA,UAAU;GACR,MAAW;GACX,WAAW;EACb;CACF,EACF;CACA,iBAAiB,EACf,aAAa,aACf;AACF,CAAC,GCpBY,KAAa,EAAO,EAC/B,OAAO;CACL,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAO;CACP,OAAO;AACT,EACF,CAAC,GC1BY,KAAQ,EAAO;CAC1B,OAAO,EACL,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;CACF,EACF;CACA,UAAU;EACR,SAAS;GACP,SAAS,EACP,MAAM;IACJ;IACA;IACA;GACF,EACF;GACA,OAAO,EACL,MAAM,yBACR;EACF;EACA,UAAU;GACR,OAAO,EAAE,MAAM,gDAAgD;GAC/D,MAAO,EAAE,MAAM,kDAAkD;EACnE;CACF;CACA,iBAAiB;EACf,UAAU;EACV,SAAU;CACZ;AACF,CAAC,GCjCY,KAAU,EAAO,EAC5B,OAAO;CACL,MAAQ;CACR,QAAQ;AACV,EACF,CAAC,GCLY,KAAM,EAAO,EACxB,OAAO;CACL,MAAO;CACP,OAAO;AACT,EACF,CAAC,GCLY,KAAQ,EAAO,EAC1B,OAAO,EACL,MAAM,oCACR,EACF,CAAC,GCJY,KAAwB,EAAO,EAC1C,OAAO;CACL,MAAS;CACT,SAAS;AACX,EACF,CAAC,GCLY,KAAS,EAAO,EAC3B,OAAO;CACL,MAAS;CACT,MAAS;CACT,SAAS;CACT,SAAS;AACX,EACF,CAAC,GCPY,KAAiB,EAAO,EACnC,OAAO;CACL,MAAS;CACT,MAAS;CACT,MAAS;CACT,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;CACF;CACA,aAAa;CACb,SAAa;EACX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,YAAY;EACV;EACA;EACA;EACA;CACF;CACA,OAAU;CACV,UAAU;CACV,MAAU;EACR;EACA;EACA;EACA;EACA;CACF;CACA,UAAU;EACR;EACA;EACA;EACA;EACA;EACA;CACF;CACA,kBAAkB;CAClB,WAAkB;AACpB,EACF,CAAC,GClDY,KAAc,EAAO,EAChC,OAAO;CACL,MAAO;CACP,OAAO;EACL;EACA;EACA;CACF;CACA,QAAQ;EACN;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;CACF;CACA,iBAAiB;AACnB,EACF,CAAC,GCrBY,KAAa,EAAO,EAC/B,OAAO;CACL,MAAmB;CACnB,SAAmB;CACnB,cAAmB;CACnB,mBAAmB;CACnB,MAAmB;CACnB,UAAmB;AACrB,EACF,CAAC,GCTY,KAAa,EAAO,EAC/B,OAAO;CACL,SAAgB;CAChB,OAAgB;CAChB,aAAgB;CAChB,gBAAgB;CAChB,OAAgB;CAChB,MAAgB;CAChB,aAAgB;CAChB,WAAgB;CAChB,eAAgB;CAChB,MAAgB;CAChB,OAAgB;AAClB,EACF,CAAC,GCdY,KAAqB,EAAO,EACvC,OAAO;CACL,MAAS;CACT,MAAS;CACT,OAAS;CACT,SAAS;AACX,EACF,CAAC,GCPY,KAAgB,EAAO,EAClC,OAAO;CACL,SAAkB;CAClB,OAAkB;CAClB,YAAkB;CAClB,kBAAkB;CAClB,gBAAkB;CAClB,OAAkB;CAClB,MAAkB;CAClB,MAAkB;CAClB,OAAkB;AACpB,EACF,CAAC,GCZY,KAAY,EAAO,EAC9B,OAAO;CACL,MAAW;CACX,OAAW;CACX,OAAW;CACX,SAAW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Cf,MAAM,GACR;AACF,CAAC,GCbY,KAAQ,EAAO,EAC1B,OAAO;CACL,MAAM;EACJ;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;CACF;AACF,EACF,CAAC,GChBK,KAAU,EAAO;CACrB,OAAO;EACL,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;EACF;EACA,aAAa;GACX;GACA;GACA;EACF;EACA,eAAe;GACb;GACA;GACA;EACF;CACF;CACA,UAAU,EACR,aAAa;EACX,YAAY;GACV,MAAO;GACP,OAAO;EACT;EACA,UAAU;GACR,MAAO;GACP,OAAO;EACT;CACF,EACF;CACA,iBAAiB,EACf,aAAa,aACf;AACF,CAAC,GC7CY,KAAkB,EAAO,EACpC,OAAO;CACL,MAAiB;CACjB,QAAiB;CACjB,OAAiB;CACjB,MAAiB;CACjB,MAAiB;CACjB,UAAiB;CACjB,YAAiB;CACjB,YAAiB;CACjB,OAAiB;CACjB,WAAiB;CACjB,eAAiB;CACjB,iBAAiB;CACjB,iBAAiB;CACjB,KAAiB;AACnB,EACF,CAAC,GCjBY,KAAO,EAAO;CACzB,OAAO;EACL,MAAW;EACX,MAAW;EACX,WAAW;EACX,KAAW;GACT;GACA;GACA;EACF;EACA,OAAO;CACT;CACA,UAAU;EACR,SAAS;GACP,SAAS;IACP,MAAW;IACX,WAAW;GACb;GACA,WAAW;IACT,MAAW;IACX,KAAW;IACX,WAAW;GACb;EACF;EACA,aAAa;GACX,YAAY,CAAC;GACb,UAAY;IACV,MAAW;IACX,MAAW;IACX,KAAW;IACX,WAAW;GACb;EACF;CACF;CACA,kBAAkB,CAChB;EACE,SAAa;EACb,aAAa;EACb,OAAa;GACX,KAAW;GACX,WAAW;EACb;CACF,GACA;EACE,SAAa;EACb,aAAa;EACb,OAAa;GACX,KAAW;GACX,WAAW;EACb;CACF,CACF;CACA,iBAAiB;EACf,SAAa;EACb,aAAa;CACf;AACF,CAAC,GCxDY,KAAW,EAAO;CAC7B,OAAO,EACL,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;CACF,EACF;CACA,UAAU;EACR,SAAS;GACP,SAAS,EACP,MAAM;IACJ;IACA;IACA;GACF,EACF;GACA,OAAO,EACL,MAAM,yBACR;EACF;EACA,UAAU;GACR,OAAO,EAAE,MAAM,gDAAgD;GAC/D,MAAO,EAAE,MAAM,kDAAkD;EACnE;EACA,QAAQ;GACN,OAAO,EAAE,MAAM,cAAc;GAC7B,MAAO,CAAC;EACV;CACF;CACA,iBAAiB;EACf,UAAU;EACV,SAAU;EACV,QAAU;CACZ;AACF,CAAC,GCtCY,KAAc,EAAO,EAChC,OAAO,EACL,MAAM,4DACR,EACF,CAAC,GCJY,KAAY,EAAO,EAC9B,OAAO;CACL,MAAO;CACP,OAAO;AACT,EACF,CAAC,GCLY,KAAQ,EAAO;CAC1B,OAAO;EACL,MAAgB;EAChB,SAAgB;EAChB,gBAAgB;EAChB,gBAAgB;EAChB,OAAgB;EAChB,aAAgB;EAChB,MAAgB;EAChB,QAAgB;EAChB,UAAgB;GACd;GACA;GACA;GACA;GACA;GACA;EACF;EACA,WAAW;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;EACA,cAAc;CAChB;CACA,UAAU,EACR,SAAS;EACP,SAAS;GACP,MAAa;GACb,MAAa;GACb,OAAa;GACb,aAAa;GACb,QAAa;EACf;EACA,SAAS;GACP,MAAa;GACb,MAAa;GACb,OAAa;GACb,aAAa;GACb,QAAa;EACf;EACA,OAAO;GACL,MAAa;GACb,MAAa;GACb,OAAa;GACb,aAAa;GACb,QAAa;EACf;EACA,SAAS;GACP,MAAa;GACb,MAAa;GACb,OAAa;GACb,aAAa;GACb,QAAa;EACf;EACA,MAAM;GACJ,MAAa;GACb,MAAa;GACb,OAAa;GACb,aAAa;GACb,QAAa;EACf;EACA,SAAS;GACP,MAAa;GACb,MAAa;GACb,OAAa;GACb,aAAa;GACb,QAAa;EACf;CACF,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CAAC,GCpGY,KAAc,EAAO;CAChC,OAAO;EACL,MAAW;EACX,WAAW;CACb;CACA,UAAU;EACR,SAAS;GACP,SAAS,EACP,MAAM,QACR;GACA,SAAS,EACP,MAAM,+GACR;EACF;EACA,aAAa;GACX,YAAY,EACV,WAAW,oBACb;GACA,UAAU;IACR,MAAW;IACX,WAAW;GACb;EACF;CACF;CACA,iBAAiB;EACf,SAAa;EACb,aAAa;CACf;AACF,CAAC,GC5BY,KAAS,EAAO;CAC3B,OAAO,EACL,MAAM;EACJ;EACA;EACA;CACF,EACF;CACA,UAAU,EACR,SAAS;EACP,SAAS,EACP,MAAM;GACJ;GACA;GACA;EACF,EACF;EACA,SAAS,EACP,MAAM;GACJ;GACA;GACA;EACF,EACF;EACA,OAAO,EACL,MAAM;GACJ;GACA;GACA;EACF,EACF;CACF,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CAAC,GCpCY,KAAU,EAAO,EAC5B,OAAO;CACL,YAAY;EACV;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF,EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IEhDG,KAAuE,MAErE,KAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEM,KAAY;CAAC;CAAc;CAAc;CAAO;CAAO;CAAU;CAAQ;CAAQ;CAAO;CAAQ;AAAM;AAE5G,eAAsB,KAAiB;CAUrC,OATI,OAIJ,KAAsB,MAAM,GAAkB;EAC5C,QAAQ;EACR,OAAQ;CACV,CAAC,GAEM;AACT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"}
|