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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +3 -0
- data/DESIGN.md +145 -0
- data/LICENSE.txt +21 -0
- data/README.md +30 -0
- data/THIRD_PARTY_NOTICES.md +507 -0
- data/app/components/poetry/core/box/component.rb +82 -0
- data/app/components/poetry/core/component.rb +390 -0
- data/app/components/poetry/core/concerns/agent_tools.rb +418 -0
- data/app/components/poetry/core/concerns/declared_attributes.rb +267 -0
- data/app/components/poetry/core/concerns/introspection.rb +533 -0
- data/app/components/poetry/core/concerns/options.rb +262 -0
- data/app/components/poetry/core/concerns/parts.rb +148 -0
- data/app/components/poetry/core/concerns/stimulus.rb +363 -0
- data/app/components/poetry/core/concerns/styles.rb +323 -0
- data/app/components/poetry/core/style.rb +150 -0
- data/app/components/poetry/core/wrapper/component.rb +90 -0
- data/app/javascript/poetry/core/accordion_controller.js +165 -0
- data/app/javascript/poetry/core/action_bar_controller.js +109 -0
- data/app/javascript/poetry/core/autocomplete_controller.js +220 -0
- data/app/javascript/poetry/core/calendar_controller.js +406 -0
- data/app/javascript/poetry/core/carousel_controller.js +167 -0
- data/app/javascript/poetry/core/checkbox_group_controller.js +97 -0
- data/app/javascript/poetry/core/checked_controller.js +208 -0
- data/app/javascript/poetry/core/clipboard_text_controller.js +111 -0
- data/app/javascript/poetry/core/combobox_controller.js +1095 -0
- data/app/javascript/poetry/core/command_controller.js +510 -0
- data/app/javascript/poetry/core/context_menu_controller.js +204 -0
- data/app/javascript/poetry/core/date_field_controller.js +584 -0
- data/app/javascript/poetry/core/date_picker_controller.js +111 -0
- data/app/javascript/poetry/core/deferred_controller.js +111 -0
- data/app/javascript/poetry/core/dialog_controller.js +206 -0
- data/app/javascript/poetry/core/dismissable_controller.js +182 -0
- data/app/javascript/poetry/core/drawer_controller.js +365 -0
- data/app/javascript/poetry/core/file_input_controller.js +191 -0
- data/app/javascript/poetry/core/focus_scope_controller.js +162 -0
- data/app/javascript/poetry/core/helpers/announce.js +228 -0
- data/app/javascript/poetry/core/helpers/breakpoint.js +28 -0
- data/app/javascript/poetry/core/helpers/collection.js +18 -0
- data/app/javascript/poetry/core/helpers/direction.js +15 -0
- data/app/javascript/poetry/core/helpers/escape.js +38 -0
- data/app/javascript/poetry/core/helpers/filter_rank.js +104 -0
- data/app/javascript/poetry/core/helpers/focus_guards.js +46 -0
- data/app/javascript/poetry/core/helpers/hotkey.js +43 -0
- data/app/javascript/poetry/core/helpers/id_integrity.js +65 -0
- data/app/javascript/poetry/core/helpers/incomplete_date.js +328 -0
- data/app/javascript/poetry/core/helpers/mask.js +283 -0
- data/app/javascript/poetry/core/helpers/portal.js +217 -0
- data/app/javascript/poetry/core/helpers/presence.js +210 -0
- data/app/javascript/poetry/core/helpers/registration_guard.js +76 -0
- data/app/javascript/poetry/core/helpers/scroll_lock.js +67 -0
- data/app/javascript/poetry/core/helpers/scroller_geometry.js +422 -0
- data/app/javascript/poetry/core/helpers/state.js +80 -0
- data/app/javascript/poetry/core/helpers/tabbable.js +56 -0
- data/app/javascript/poetry/core/helpers/turbo_cache.js +21 -0
- data/app/javascript/poetry/core/helpers/typeahead.js +85 -0
- data/app/javascript/poetry/core/hotkey_controller.js +55 -0
- data/app/javascript/poetry/core/hover_card_controller.js +431 -0
- data/app/javascript/poetry/core/index.js +218 -0
- data/app/javascript/poetry/core/mask_controller.js +500 -0
- data/app/javascript/poetry/core/menu_controller.js +1050 -0
- data/app/javascript/poetry/core/menubar_controller.js +329 -0
- data/app/javascript/poetry/core/message_scroller_controller.js +930 -0
- data/app/javascript/poetry/core/navigation_menu_controller.js +458 -0
- data/app/javascript/poetry/core/number_field_controller.js +404 -0
- data/app/javascript/poetry/core/optimistic_form_controller.js +56 -0
- data/app/javascript/poetry/core/otp_controller.js +219 -0
- data/app/javascript/poetry/core/popover_controller.js +300 -0
- data/app/javascript/poetry/core/popper_controller.js +439 -0
- data/app/javascript/poetry/core/pressed_controller.js +74 -0
- data/app/javascript/poetry/core/questionnaire_controller.js +468 -0
- data/app/javascript/poetry/core/radio_group_controller.js +197 -0
- data/app/javascript/poetry/core/resizable_controller.js +202 -0
- data/app/javascript/poetry/core/roving_focus_controller.js +215 -0
- data/app/javascript/poetry/core/scroll_spy_controller.js +84 -0
- data/app/javascript/poetry/core/search_field_controller.js +95 -0
- data/app/javascript/poetry/core/select_controller.js +924 -0
- data/app/javascript/poetry/core/sensitive_input_controller.js +195 -0
- data/app/javascript/poetry/core/sheet_controller.js +24 -0
- data/app/javascript/poetry/core/sidebar_controller.js +272 -0
- data/app/javascript/poetry/core/slider_controller.js +419 -0
- data/app/javascript/poetry/core/state_controller.js +82 -0
- data/app/javascript/poetry/core/table_selection_controller.js +153 -0
- data/app/javascript/poetry/core/tabs_controller.js +151 -0
- data/app/javascript/poetry/core/tag_group_controller.js +134 -0
- data/app/javascript/poetry/core/toast_controller.js +228 -0
- data/app/javascript/poetry/core/toast_trigger_controller.js +26 -0
- data/app/javascript/poetry/core/toaster_controller.js +197 -0
- data/app/javascript/poetry/core/toggle_group_controller.js +206 -0
- data/app/javascript/poetry/core/tooltip_controller.js +541 -0
- data/app/javascript/poetry/core/tree_controller.js +265 -0
- data/app/javascript/poetry/core/vendor/floating_ui_core.js +1043 -0
- data/app/javascript/poetry/core/vendor/floating_ui_dom.js +794 -0
- data/app/javascript/poetry/core/vendor/floating_ui_utils.js +141 -0
- data/app/javascript/poetry/core/vendor/floating_ui_utils_dom.js +170 -0
- data/app/views/poetry/core/preview.html.erb +13 -0
- data/config/component_registry.yml +20 -0
- data/config/controllers_manifest.json +1528 -0
- data/config/importmap.rb +11 -0
- data/config/state_vocabulary.json +31 -0
- data/lib/active_model/type/list.rb +33 -0
- data/lib/active_model/type/symbol.rb +36 -0
- data/lib/poetry/core/check/stable_identity.rb +104 -0
- data/lib/poetry/core/check.rb +1445 -0
- data/lib/poetry/core/config.rb +286 -0
- data/lib/poetry/core/contrib/wrapped_helper.rb +68 -0
- data/lib/poetry/core/css/bem_merger.rb +45 -0
- data/lib/poetry/core/css/bem_reference.rb +87 -0
- data/lib/poetry/core/css/override_scan.rb +110 -0
- data/lib/poetry/core/css/resolver.rb +161 -0
- data/lib/poetry/core/css/safelist.rb +41 -0
- data/lib/poetry/core/css/tailwind_merger.rb +102 -0
- data/lib/poetry/core/css/template_classes.rb +102 -0
- data/lib/poetry/core/css/theme_coverage.rb +72 -0
- data/lib/poetry/core/css/var_coverage.rb +75 -0
- data/lib/poetry/core/css/verifier.rb +106 -0
- data/lib/poetry/core/design_lint.rb +720 -0
- data/lib/poetry/core/design_md/import.rb +250 -0
- data/lib/poetry/core/design_md.rb +461 -0
- data/lib/poetry/core/engine.rb +71 -0
- data/lib/poetry/core/errors.rb +53 -0
- data/lib/poetry/core/html/attributes.rb +667 -0
- data/lib/poetry/core/icons.rb +157 -0
- data/lib/poetry/core/llms_text.rb +354 -0
- data/lib/poetry/core/page_architectures.rb +304 -0
- data/lib/poetry/core/part_contract.rb +285 -0
- data/lib/poetry/core/preview/abstract.rb +121 -0
- data/lib/poetry/core/preview/base.rb +227 -0
- data/lib/poetry/core/preview/sidecarable.rb +136 -0
- data/lib/poetry/core/preview/template.rb +186 -0
- data/lib/poetry/core/recipe_items.rb +82 -0
- data/lib/poetry/core/registry.rb +363 -0
- data/lib/poetry/core/registry_address.rb +115 -0
- data/lib/poetry/core/registry_client.rb +217 -0
- data/lib/poetry/core/registry_installer.rb +234 -0
- data/lib/poetry/core/registry_items.rb +184 -0
- data/lib/poetry/core/skill_text.rb +288 -0
- data/lib/poetry/core/stable_id.rb +110 -0
- data/lib/poetry/core/stimulus/builder.rb +395 -0
- data/lib/poetry/core/stimulus/declarations.rb +444 -0
- data/lib/poetry/core/stimulus/manifest.rb +68 -0
- data/lib/poetry/core/stimulus/merger.rb +131 -0
- data/lib/poetry/core/stimulus_contract.rb +263 -0
- data/lib/poetry/core/tag_helper.rb +10 -0
- data/lib/poetry/core/template_compile.rb +74 -0
- data/lib/poetry/core/token_import.rb +317 -0
- data/lib/poetry/core/tokens/color.rb +215 -0
- data/lib/poetry/core/tokens/contrast_gate.rb +120 -0
- data/lib/poetry/core/tokens/generator.rb +211 -0
- data/lib/poetry/core/tokens.rb +117 -0
- data/lib/poetry/core/version.rb +9 -0
- data/lib/poetry/core.rb +52 -0
- data/lib/poetry-core.rb +5 -0
- data/tokens/aliases.css +145 -0
- data/tokens/tailwind-theme.css +47 -0
- data/tokens/tokens.css +78 -0
- data/tokens/tokens.dtcg.json +779 -0
- data/vendor/floating-ui/LICENSE +20 -0
- data/vendor/floating-ui/VENDORED_VERSIONS +15 -0
- data/vendor/shadcn-tailwind/LICENSE +21 -0
- data/vendor/shadcn-tailwind/VENDORED_COMMIT +1 -0
- data/vendor/shadcn-tailwind/tailwind.css +629 -0
- data/vendor/tw-animate-css/LICENSE +21 -0
- data/vendor/tw-animate-css/VENDORED_VERSION +1 -0
- data/vendor/tw-animate-css/tw-animate.css +1 -0
- metadata +267 -0
data/lib/poetry/core.rb
ADDED
|
@@ -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"
|
data/lib/poetry-core.rb
ADDED
data/tokens/aliases.css
ADDED
|
@@ -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
|
+
}
|