poetry-core 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +3 -0
  3. data/DESIGN.md +145 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +30 -0
  6. data/THIRD_PARTY_NOTICES.md +507 -0
  7. data/app/components/poetry/core/box/component.rb +82 -0
  8. data/app/components/poetry/core/component.rb +390 -0
  9. data/app/components/poetry/core/concerns/agent_tools.rb +418 -0
  10. data/app/components/poetry/core/concerns/declared_attributes.rb +267 -0
  11. data/app/components/poetry/core/concerns/introspection.rb +533 -0
  12. data/app/components/poetry/core/concerns/options.rb +262 -0
  13. data/app/components/poetry/core/concerns/parts.rb +148 -0
  14. data/app/components/poetry/core/concerns/stimulus.rb +363 -0
  15. data/app/components/poetry/core/concerns/styles.rb +323 -0
  16. data/app/components/poetry/core/style.rb +150 -0
  17. data/app/components/poetry/core/wrapper/component.rb +90 -0
  18. data/app/javascript/poetry/core/accordion_controller.js +165 -0
  19. data/app/javascript/poetry/core/action_bar_controller.js +109 -0
  20. data/app/javascript/poetry/core/autocomplete_controller.js +220 -0
  21. data/app/javascript/poetry/core/calendar_controller.js +406 -0
  22. data/app/javascript/poetry/core/carousel_controller.js +167 -0
  23. data/app/javascript/poetry/core/checkbox_group_controller.js +97 -0
  24. data/app/javascript/poetry/core/checked_controller.js +208 -0
  25. data/app/javascript/poetry/core/clipboard_text_controller.js +111 -0
  26. data/app/javascript/poetry/core/combobox_controller.js +1095 -0
  27. data/app/javascript/poetry/core/command_controller.js +510 -0
  28. data/app/javascript/poetry/core/context_menu_controller.js +204 -0
  29. data/app/javascript/poetry/core/date_field_controller.js +584 -0
  30. data/app/javascript/poetry/core/date_picker_controller.js +111 -0
  31. data/app/javascript/poetry/core/deferred_controller.js +111 -0
  32. data/app/javascript/poetry/core/dialog_controller.js +206 -0
  33. data/app/javascript/poetry/core/dismissable_controller.js +182 -0
  34. data/app/javascript/poetry/core/drawer_controller.js +365 -0
  35. data/app/javascript/poetry/core/file_input_controller.js +191 -0
  36. data/app/javascript/poetry/core/focus_scope_controller.js +162 -0
  37. data/app/javascript/poetry/core/helpers/announce.js +228 -0
  38. data/app/javascript/poetry/core/helpers/breakpoint.js +28 -0
  39. data/app/javascript/poetry/core/helpers/collection.js +18 -0
  40. data/app/javascript/poetry/core/helpers/direction.js +15 -0
  41. data/app/javascript/poetry/core/helpers/escape.js +38 -0
  42. data/app/javascript/poetry/core/helpers/filter_rank.js +104 -0
  43. data/app/javascript/poetry/core/helpers/focus_guards.js +46 -0
  44. data/app/javascript/poetry/core/helpers/hotkey.js +43 -0
  45. data/app/javascript/poetry/core/helpers/id_integrity.js +65 -0
  46. data/app/javascript/poetry/core/helpers/incomplete_date.js +328 -0
  47. data/app/javascript/poetry/core/helpers/mask.js +283 -0
  48. data/app/javascript/poetry/core/helpers/portal.js +217 -0
  49. data/app/javascript/poetry/core/helpers/presence.js +210 -0
  50. data/app/javascript/poetry/core/helpers/registration_guard.js +76 -0
  51. data/app/javascript/poetry/core/helpers/scroll_lock.js +67 -0
  52. data/app/javascript/poetry/core/helpers/scroller_geometry.js +422 -0
  53. data/app/javascript/poetry/core/helpers/state.js +80 -0
  54. data/app/javascript/poetry/core/helpers/tabbable.js +56 -0
  55. data/app/javascript/poetry/core/helpers/turbo_cache.js +21 -0
  56. data/app/javascript/poetry/core/helpers/typeahead.js +85 -0
  57. data/app/javascript/poetry/core/hotkey_controller.js +55 -0
  58. data/app/javascript/poetry/core/hover_card_controller.js +431 -0
  59. data/app/javascript/poetry/core/index.js +218 -0
  60. data/app/javascript/poetry/core/mask_controller.js +500 -0
  61. data/app/javascript/poetry/core/menu_controller.js +1050 -0
  62. data/app/javascript/poetry/core/menubar_controller.js +329 -0
  63. data/app/javascript/poetry/core/message_scroller_controller.js +930 -0
  64. data/app/javascript/poetry/core/navigation_menu_controller.js +458 -0
  65. data/app/javascript/poetry/core/number_field_controller.js +404 -0
  66. data/app/javascript/poetry/core/optimistic_form_controller.js +56 -0
  67. data/app/javascript/poetry/core/otp_controller.js +219 -0
  68. data/app/javascript/poetry/core/popover_controller.js +300 -0
  69. data/app/javascript/poetry/core/popper_controller.js +439 -0
  70. data/app/javascript/poetry/core/pressed_controller.js +74 -0
  71. data/app/javascript/poetry/core/questionnaire_controller.js +468 -0
  72. data/app/javascript/poetry/core/radio_group_controller.js +197 -0
  73. data/app/javascript/poetry/core/resizable_controller.js +202 -0
  74. data/app/javascript/poetry/core/roving_focus_controller.js +215 -0
  75. data/app/javascript/poetry/core/scroll_spy_controller.js +84 -0
  76. data/app/javascript/poetry/core/search_field_controller.js +95 -0
  77. data/app/javascript/poetry/core/select_controller.js +924 -0
  78. data/app/javascript/poetry/core/sensitive_input_controller.js +195 -0
  79. data/app/javascript/poetry/core/sheet_controller.js +24 -0
  80. data/app/javascript/poetry/core/sidebar_controller.js +272 -0
  81. data/app/javascript/poetry/core/slider_controller.js +419 -0
  82. data/app/javascript/poetry/core/state_controller.js +82 -0
  83. data/app/javascript/poetry/core/table_selection_controller.js +153 -0
  84. data/app/javascript/poetry/core/tabs_controller.js +151 -0
  85. data/app/javascript/poetry/core/tag_group_controller.js +134 -0
  86. data/app/javascript/poetry/core/toast_controller.js +228 -0
  87. data/app/javascript/poetry/core/toast_trigger_controller.js +26 -0
  88. data/app/javascript/poetry/core/toaster_controller.js +197 -0
  89. data/app/javascript/poetry/core/toggle_group_controller.js +206 -0
  90. data/app/javascript/poetry/core/tooltip_controller.js +541 -0
  91. data/app/javascript/poetry/core/tree_controller.js +265 -0
  92. data/app/javascript/poetry/core/vendor/floating_ui_core.js +1043 -0
  93. data/app/javascript/poetry/core/vendor/floating_ui_dom.js +794 -0
  94. data/app/javascript/poetry/core/vendor/floating_ui_utils.js +141 -0
  95. data/app/javascript/poetry/core/vendor/floating_ui_utils_dom.js +170 -0
  96. data/app/views/poetry/core/preview.html.erb +13 -0
  97. data/config/component_registry.yml +20 -0
  98. data/config/controllers_manifest.json +1528 -0
  99. data/config/importmap.rb +11 -0
  100. data/config/state_vocabulary.json +31 -0
  101. data/lib/active_model/type/list.rb +33 -0
  102. data/lib/active_model/type/symbol.rb +36 -0
  103. data/lib/poetry/core/check/stable_identity.rb +104 -0
  104. data/lib/poetry/core/check.rb +1445 -0
  105. data/lib/poetry/core/config.rb +286 -0
  106. data/lib/poetry/core/contrib/wrapped_helper.rb +68 -0
  107. data/lib/poetry/core/css/bem_merger.rb +45 -0
  108. data/lib/poetry/core/css/bem_reference.rb +87 -0
  109. data/lib/poetry/core/css/override_scan.rb +110 -0
  110. data/lib/poetry/core/css/resolver.rb +161 -0
  111. data/lib/poetry/core/css/safelist.rb +41 -0
  112. data/lib/poetry/core/css/tailwind_merger.rb +102 -0
  113. data/lib/poetry/core/css/template_classes.rb +102 -0
  114. data/lib/poetry/core/css/theme_coverage.rb +72 -0
  115. data/lib/poetry/core/css/var_coverage.rb +75 -0
  116. data/lib/poetry/core/css/verifier.rb +106 -0
  117. data/lib/poetry/core/design_lint.rb +720 -0
  118. data/lib/poetry/core/design_md/import.rb +250 -0
  119. data/lib/poetry/core/design_md.rb +461 -0
  120. data/lib/poetry/core/engine.rb +71 -0
  121. data/lib/poetry/core/errors.rb +53 -0
  122. data/lib/poetry/core/html/attributes.rb +667 -0
  123. data/lib/poetry/core/icons.rb +157 -0
  124. data/lib/poetry/core/llms_text.rb +354 -0
  125. data/lib/poetry/core/page_architectures.rb +304 -0
  126. data/lib/poetry/core/part_contract.rb +285 -0
  127. data/lib/poetry/core/preview/abstract.rb +121 -0
  128. data/lib/poetry/core/preview/base.rb +227 -0
  129. data/lib/poetry/core/preview/sidecarable.rb +136 -0
  130. data/lib/poetry/core/preview/template.rb +186 -0
  131. data/lib/poetry/core/recipe_items.rb +82 -0
  132. data/lib/poetry/core/registry.rb +363 -0
  133. data/lib/poetry/core/registry_address.rb +115 -0
  134. data/lib/poetry/core/registry_client.rb +217 -0
  135. data/lib/poetry/core/registry_installer.rb +234 -0
  136. data/lib/poetry/core/registry_items.rb +184 -0
  137. data/lib/poetry/core/skill_text.rb +288 -0
  138. data/lib/poetry/core/stable_id.rb +110 -0
  139. data/lib/poetry/core/stimulus/builder.rb +395 -0
  140. data/lib/poetry/core/stimulus/declarations.rb +444 -0
  141. data/lib/poetry/core/stimulus/manifest.rb +68 -0
  142. data/lib/poetry/core/stimulus/merger.rb +131 -0
  143. data/lib/poetry/core/stimulus_contract.rb +263 -0
  144. data/lib/poetry/core/tag_helper.rb +10 -0
  145. data/lib/poetry/core/template_compile.rb +74 -0
  146. data/lib/poetry/core/token_import.rb +317 -0
  147. data/lib/poetry/core/tokens/color.rb +215 -0
  148. data/lib/poetry/core/tokens/contrast_gate.rb +120 -0
  149. data/lib/poetry/core/tokens/generator.rb +211 -0
  150. data/lib/poetry/core/tokens.rb +117 -0
  151. data/lib/poetry/core/version.rb +9 -0
  152. data/lib/poetry/core.rb +52 -0
  153. data/lib/poetry-core.rb +5 -0
  154. data/tokens/aliases.css +145 -0
  155. data/tokens/tailwind-theme.css +47 -0
  156. data/tokens/tokens.css +78 -0
  157. data/tokens/tokens.dtcg.json +779 -0
  158. data/vendor/floating-ui/LICENSE +20 -0
  159. data/vendor/floating-ui/VENDORED_VERSIONS +15 -0
  160. data/vendor/shadcn-tailwind/LICENSE +21 -0
  161. data/vendor/shadcn-tailwind/VENDORED_COMMIT +1 -0
  162. data/vendor/shadcn-tailwind/tailwind.css +629 -0
  163. data/vendor/tw-animate-css/LICENSE +21 -0
  164. data/vendor/tw-animate-css/VENDORED_VERSION +1 -0
  165. data/vendor/tw-animate-css/tw-animate.css +1 -0
  166. metadata +267 -0
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pathname"
4
+ require "zeitwerk"
5
+ require "active_support/concern"
6
+ require "active_model/type/symbol"
7
+ require "active_model/type/list"
8
+
9
+ ActiveModel::Type.register(:symbol, ActiveModel::Type::Symbol)
10
+ ActiveModel::Type.register(:list, ActiveModel::Type::List)
11
+
12
+ require "view_component"
13
+ require "tailwind_merge"
14
+
15
+ require_relative "core/version"
16
+
17
+ module Poetry
18
+ # The framework layer of poetry: the Rails engine, the component DSL, and the
19
+ # shared primitives. Concrete components live in poetry-ui.
20
+ module Core
21
+ class << self
22
+ # Gem root (the directory containing lib/, app/, etc.).
23
+ #
24
+ # @return [Pathname]
25
+ def root
26
+ @root ||= Pathname.new(File.expand_path("../..", __dir__))
27
+ end
28
+
29
+ # The dedicated Zeitwerk loader for poetry-core's lib/ tree.
30
+ #
31
+ # @return [Zeitwerk::Loader]
32
+ def loader
33
+ @loader ||= Zeitwerk::Loader.new.tap do |loader|
34
+ loader.tag = "poetry-core"
35
+ loader.inflector.inflect("css" => "CSS", "html" => "HTML")
36
+ loader.push_dir("#{root}/lib")
37
+ loader.ignore("#{root}/lib/poetry-core.rb") # hyphenated auto-require shim
38
+ loader.ignore("#{root}/lib/active_model") # the option types, required directly above
39
+ loader.ignore("#{root}/lib/poetry/core/version.rb") # required directly above
40
+ loader.ignore("#{root}/lib/poetry/core/engine.rb") # required after setup
41
+ loader.ignore("#{root}/lib/poetry/core/errors.rb") # required after setup
42
+ loader.setup
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ Poetry::Core.loader
50
+
51
+ require_relative "core/errors"
52
+ require_relative "core/engine"
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Convenience entrypoint so `require "poetry-core"` (e.g. Bundler auto-require)
4
+ # resolves to the namespaced `Poetry::Core` framework.
5
+ require_relative "poetry/core"
@@ -0,0 +1,145 @@
1
+ /* poetry-owned component var aliases (hand-authored, NOT generated).
2
+ The menus-family popper aliases: shadcn's source-exact class strings reference
3
+ Radix-namespaced content vars; poetry--core--popper ships the Base UI
4
+ names (--anchor-width / --available-height / --transform-origin)
5
+ - these aliases bind the Radix family names so ny-v4 source-exact class
6
+ strings keep reading them. */
7
+ [data-slot="dropdown-menu-content"],
8
+ [data-slot="dropdown-menu-sub-content"] {
9
+ --radix-dropdown-menu-content-available-height: var(--available-height);
10
+ --radix-dropdown-menu-content-transform-origin: var(--transform-origin);
11
+ }
12
+
13
+ [data-slot="context-menu-content"],
14
+ [data-slot="context-menu-sub-content"] {
15
+ --radix-context-menu-content-available-height: var(--available-height);
16
+ --radix-context-menu-content-transform-origin: var(--transform-origin);
17
+ }
18
+
19
+ [data-slot="menubar-content"],
20
+ [data-slot="menubar-sub-content"] {
21
+ --radix-menubar-content-available-height: var(--available-height);
22
+ --radix-menubar-content-transform-origin: var(--transform-origin);
23
+ }
24
+
25
+ /* The Select listbox: the menus
26
+ alias pair PLUS the anchor-size pair - popper measures the anchor
27
+ (--anchor-width/-height) so the source-exact
28
+ trigger-width/-height viewport classes bind in popper mode. */
29
+ [data-slot="select-content"] {
30
+ --radix-select-content-available-height: var(--available-height);
31
+ --radix-select-content-transform-origin: var(--transform-origin);
32
+ --radix-select-trigger-width: var(--anchor-width);
33
+ --radix-select-trigger-height: var(--anchor-height);
34
+ }
35
+
36
+ /* The popper-consumer trio (Popover / Tooltip / HoverCard) - the same
37
+ alias pattern, one per consumer,
38
+ so the source-exact origin-(--radix-*-content-transform-origin) classes
39
+ bind to popper's generic var. */
40
+ [data-slot="popover-content"] {
41
+ --radix-popover-content-transform-origin: var(--transform-origin);
42
+ }
43
+
44
+ [data-slot="tooltip-content"] {
45
+ --radix-tooltip-content-transform-origin: var(--transform-origin);
46
+ }
47
+
48
+ [data-slot="hover-card-content"] {
49
+ --radix-hover-card-content-transform-origin: var(--transform-origin);
50
+ }
51
+
52
+ /* Accordion resting-keyframe gate: the panel
53
+ keeps data-open the whole time it's open, so the theme's
54
+ data-open:animate-accordion-down keyframe (poetry-ui themes) re-runs
55
+ whenever a display:none -> visible toggle restarts CSS animations - an
56
+ accordion nested in a Tabs panel replays the expand as a flicker on every
57
+ return to the panel. poetry--core--accordion marks the brief open/close
58
+ window with data-transitioning; at rest, stop the keyframe so a re-display
59
+ is inert. Unlayered (this file imports without layer()), so it beats the
60
+ layer(base) theme animation by cascade-layer order - no !important. */
61
+ [data-slot="accordion-content"]:not([data-transitioning]) {
62
+ animation-name: none;
63
+ }
64
+
65
+ /* CodeBlock single-spacing: rouge emits a
66
+ newline after every line so the copy affordance's textContent keeps real
67
+ line breaks, but .line is display:block (for the full-row .hll tint and the
68
+ line-number counter), so each newline ALSO renders as a blank line in the
69
+ <pre> - doubling the spacing and leaving a trailing blank line at the bottom
70
+ with none at the top. Zero the code's line-height so those inter-line
71
+ newline boxes collapse to nothing, and restore a line-height on .line so the
72
+ code stays single-spaced. :has(.line) keeps the rouge-absent plain-text
73
+ fallback untouched. Copy text is unchanged; top/bottom padding is symmetric.
74
+ Unlayered, so it beats the text-sm utility line-height by cascade order.
75
+ The .line value is the code's row spacing (1.5rem = a relaxed single;
76
+ 1.25rem is tight, 1.75rem is airy). */
77
+ [data-slot="code-block-code"]:has(.line) {
78
+ line-height: 0;
79
+ }
80
+ [data-slot="code-block-code"] .line {
81
+ line-height: 1.5rem;
82
+ }
83
+
84
+ /* CodeBlock copy affordance: the button is a
85
+ ghost (transparent), so a long code line scrolling under it shows through
86
+ and the icon blends into the code. Paint it the code panel's OWN surface
87
+ color so it masks the code beneath while blending into the panel: the panel
88
+ is bg-muted/30 (muted 30% over --background) in every theme, and this mix is
89
+ exactly that composite made opaque. On hover it drops to transparent (the
90
+ shadcn behavior - once you're on it, the melt reads as the interaction).
91
+ Scoped to the code-block so the standalone ClipboardText button is
92
+ unaffected. Unlayered, so it wins over the ghost Button's utility bg. */
93
+ [data-slot="code-block"] [data-slot="clipboard-text-copy"] {
94
+ background-color: color-mix(in oklab, var(--muted) 30%, var(--background));
95
+ }
96
+ [data-slot="code-block"] [data-slot="clipboard-text-copy"]:hover {
97
+ background-color: transparent;
98
+ }
99
+
100
+ /* NativeSelect chevron geometry: the chevron
101
+ position is STRUCTURAL, not theme-owned. Letting each theme place/size the
102
+ icon (cn-native-select-icon) drifted it on every theme switch (mira
103
+ right-1.5/size-3.5 vs the others right-2.5/size-4), so it moved and resized.
104
+ Reserve a fixed gutter on the select and make the icon fill exactly that
105
+ gutter and center the glyph - identical in every theme, by construction, so
106
+ no per-theme tuning is ever needed again. Unlayered, so it beats BOTH the
107
+ theme (layer base) and the component's own icon utilities; the theme keeps
108
+ only the color (text-muted-foreground on cn-native-select-icon). */
109
+ [data-slot="native-select"] {
110
+ padding-right: 2rem;
111
+ }
112
+ [data-slot="native-select-icon"] {
113
+ /* Vertical centering via the standard top:50% + translate:-50% idiom, set
114
+ here structurally (the theme used the same, per-theme). Written as
115
+ `translate: 0 -50%` NOT `none`/`0`: Tailwind v4 translate utilities set the
116
+ `translate` PROPERTY, and Lightning CSS strips `translate: none`/`0` as the
117
+ initial value, which would let the theme's -translate-y-1/2 win. */
118
+ top: 50%;
119
+ right: 0;
120
+ translate: 0 -50%;
121
+ width: 2rem;
122
+ height: 1rem;
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ }
127
+ [data-slot="native-select-icon"] > svg {
128
+ width: 1rem;
129
+ height: 1rem;
130
+ }
131
+
132
+ /* data-selected bridge extension (the Base UI vocabulary contract):
133
+ the vendored shadcn/tailwind.css @custom-variant data-selected matches
134
+ [data-selected="true"] ONLY (upstream quirk), but poetry emits the bare
135
+ Base UI presence attribute (data-selected="") on committed select/combobox
136
+ items. Tailwind v4 @custom-variant redefinition is last-wins (verified
137
+ v4.3.1: a later definition fully REPLACES the earlier one, including
138
+ across @import files - this file imports after the vendored layer), so
139
+ this single definition must carry the whole match: bare presence AND
140
+ ="true", excluding ="false". */
141
+ @custom-variant data-selected {
142
+ &:where([data-selected]:not([data-selected="false"])) {
143
+ @slot;
144
+ }
145
+ }
@@ -0,0 +1,47 @@
1
+ /* Generated by `bin/rake tokens:generate` from tokens/tokens.dtcg.json - DO NOT EDIT BY HAND. */
2
+
3
+ @custom-variant dark (&:where(.dark, .dark *));
4
+
5
+ @theme inline {
6
+ --radius-sm: calc(var(--radius) * 0.6);
7
+ --radius-md: calc(var(--radius) * 0.8);
8
+ --radius-lg: var(--radius);
9
+ --radius-xl: calc(var(--radius) * 1.4);
10
+ --radius-2xl: calc(var(--radius) * 1.8);
11
+ --radius-3xl: calc(var(--radius) * 2.2);
12
+ --radius-4xl: calc(var(--radius) * 2.6);
13
+ --color-background: var(--background);
14
+ --color-foreground: var(--foreground);
15
+ --color-card: var(--card);
16
+ --color-card-foreground: var(--card-foreground);
17
+ --color-popover: var(--popover);
18
+ --color-popover-foreground: var(--popover-foreground);
19
+ --color-primary: var(--primary);
20
+ --color-primary-foreground: var(--primary-foreground);
21
+ --color-secondary: var(--secondary);
22
+ --color-secondary-foreground: var(--secondary-foreground);
23
+ --color-muted: var(--muted);
24
+ --color-muted-foreground: var(--muted-foreground);
25
+ --color-accent: var(--accent);
26
+ --color-accent-foreground: var(--accent-foreground);
27
+ --color-destructive: var(--destructive);
28
+ --color-success: var(--success);
29
+ --color-warning: var(--warning);
30
+ --color-info: var(--info);
31
+ --color-border: var(--border);
32
+ --color-input: var(--input);
33
+ --color-ring: var(--ring);
34
+ --color-chart-1: var(--chart-1);
35
+ --color-chart-2: var(--chart-2);
36
+ --color-chart-3: var(--chart-3);
37
+ --color-chart-4: var(--chart-4);
38
+ --color-chart-5: var(--chart-5);
39
+ --color-sidebar: var(--sidebar);
40
+ --color-sidebar-foreground: var(--sidebar-foreground);
41
+ --color-sidebar-primary: var(--sidebar-primary);
42
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
43
+ --color-sidebar-accent: var(--sidebar-accent);
44
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
45
+ --color-sidebar-border: var(--sidebar-border);
46
+ --color-sidebar-ring: var(--sidebar-ring);
47
+ }
data/tokens/tokens.css ADDED
@@ -0,0 +1,78 @@
1
+ /* Generated by `bin/rake tokens:generate` from tokens/tokens.dtcg.json - DO NOT EDIT BY HAND. */
2
+
3
+ :root {
4
+ color-scheme: light;
5
+ --radius: 0.625rem;
6
+ --background: oklch(1 0 0);
7
+ --foreground: oklch(0.145 0 0);
8
+ --card: oklch(1 0 0);
9
+ --card-foreground: oklch(0.145 0 0);
10
+ --popover: oklch(1 0 0);
11
+ --popover-foreground: oklch(0.145 0 0);
12
+ --primary: oklch(0.205 0 0);
13
+ --primary-foreground: oklch(0.985 0 0);
14
+ --secondary: oklch(0.97 0 0);
15
+ --secondary-foreground: oklch(0.205 0 0);
16
+ --muted: oklch(0.97 0 0);
17
+ --muted-foreground: oklch(0.545 0 0);
18
+ --accent: oklch(0.97 0 0);
19
+ --accent-foreground: oklch(0.205 0 0);
20
+ --destructive: oklch(0.577 0.245 27.325);
21
+ --success: oklch(0.596 0.145 163.225);
22
+ --warning: oklch(0.555 0.163 48.998);
23
+ --info: oklch(0.546 0.245 262.881);
24
+ --border: oklch(0.922 0 0);
25
+ --input: oklch(0.922 0 0);
26
+ --ring: oklch(0.708 0 0);
27
+ --chart-1: oklch(0.809 0.105 251.813);
28
+ --chart-2: oklch(0.623 0.214 259.815);
29
+ --chart-3: oklch(0.546 0.245 262.881);
30
+ --chart-4: oklch(0.488 0.243 264.376);
31
+ --chart-5: oklch(0.424 0.199 265.638);
32
+ --sidebar: oklch(0.985 0 0);
33
+ --sidebar-foreground: oklch(0.145 0 0);
34
+ --sidebar-primary: oklch(0.205 0 0);
35
+ --sidebar-primary-foreground: oklch(0.985 0 0);
36
+ --sidebar-accent: oklch(0.97 0 0);
37
+ --sidebar-accent-foreground: oklch(0.205 0 0);
38
+ --sidebar-border: oklch(0.922 0 0);
39
+ --sidebar-ring: oklch(0.708 0 0);
40
+ }
41
+
42
+ .dark {
43
+ color-scheme: dark;
44
+ --background: oklch(0.145 0 0);
45
+ --foreground: oklch(0.985 0 0);
46
+ --card: oklch(0.205 0 0);
47
+ --card-foreground: oklch(0.985 0 0);
48
+ --popover: oklch(0.205 0 0);
49
+ --popover-foreground: oklch(0.985 0 0);
50
+ --primary: oklch(0.922 0 0);
51
+ --primary-foreground: oklch(0.205 0 0);
52
+ --secondary: oklch(0.269 0 0);
53
+ --secondary-foreground: oklch(0.985 0 0);
54
+ --muted: oklch(0.269 0 0);
55
+ --muted-foreground: oklch(0.708 0 0);
56
+ --accent: oklch(0.269 0 0);
57
+ --accent-foreground: oklch(0.985 0 0);
58
+ --destructive: oklch(0.704 0.191 22.216);
59
+ --success: oklch(0.765 0.177 163.223);
60
+ --warning: oklch(0.828 0.189 84.429);
61
+ --info: oklch(0.809 0.105 251.813);
62
+ --border: oklch(1 0 0 / 10%);
63
+ --input: oklch(1 0 0 / 15%);
64
+ --ring: oklch(0.556 0 0);
65
+ --chart-1: oklch(0.809 0.105 251.813);
66
+ --chart-2: oklch(0.623 0.214 259.815);
67
+ --chart-3: oklch(0.546 0.245 262.881);
68
+ --chart-4: oklch(0.488 0.243 264.376);
69
+ --chart-5: oklch(0.424 0.199 265.638);
70
+ --sidebar: oklch(0.205 0 0);
71
+ --sidebar-foreground: oklch(0.985 0 0);
72
+ --sidebar-primary: oklch(0.488 0.243 264.376);
73
+ --sidebar-primary-foreground: oklch(0.985 0 0);
74
+ --sidebar-accent: oklch(0.269 0 0);
75
+ --sidebar-accent-foreground: oklch(0.985 0 0);
76
+ --sidebar-border: oklch(1 0 0 / 10%);
77
+ --sidebar-ring: oklch(0.556 0 0);
78
+ }