@ratio-ui/core 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/catalogue.json +17 -17
  2. package/dist/components/alert/Alert.js +4 -3
  3. package/dist/components/button/Button.js +6 -6
  4. package/dist/components/calendar/Calendar.js +2 -2
  5. package/dist/components/checkbox/Checkbox.js +1 -1
  6. package/dist/components/data-table/DataTable.js +11 -17
  7. package/dist/components/definition/Definition.js +1 -1
  8. package/dist/components/dialog/Dialog.js +1 -1
  9. package/dist/components/drawer/Drawer.js +1 -1
  10. package/dist/components/icon/Icon.d.ts +1 -1
  11. package/dist/components/icon/Icon.js +16 -5
  12. package/dist/components/icon/glyphs.js +19 -8
  13. package/dist/components/icon/registry.d.ts +3 -2
  14. package/dist/components/icon/registry.js +14 -2
  15. package/dist/components/input/Input.js +1 -1
  16. package/dist/components/input-group/InputGroup.d.ts +3 -1
  17. package/dist/components/input-group/InputGroup.js +20 -8
  18. package/dist/components/input-otp/InputOtp.js +1 -1
  19. package/dist/components/link/Link.js +1 -1
  20. package/dist/components/metric-strip/MetricStrip.js +1 -1
  21. package/dist/components/pagination/Pagination.js +1 -1
  22. package/dist/components/search-field/SearchField.js +8 -4
  23. package/dist/components/select/Select.js +1 -1
  24. package/dist/components/sheet/Sheet.js +1 -1
  25. package/dist/components/side-nav/SideNav.js +15 -10
  26. package/dist/components/status-pill/StatusPill.js +1 -1
  27. package/dist/components/switch/Switch.js +2 -2
  28. package/dist/components/table/Table.d.ts +1 -1
  29. package/dist/components/table/Table.js +24 -3
  30. package/dist/components/text/Text.d.ts +3 -2
  31. package/dist/components/text/Text.js +3 -1
  32. package/dist/components/textarea/Textarea.js +1 -1
  33. package/dist/components/toaster/Toaster.js +1 -1
  34. package/dist/components/tooltip/Tooltip.d.ts +1 -1
  35. package/dist/components/tooltip/Tooltip.js +2 -2
  36. package/dist/components/top-bar/TopBar.d.ts +2 -4
  37. package/dist/components/top-bar/TopBar.js +2 -7
  38. package/dist/lib/cn.js +2 -1
  39. package/dist/styles.css +1 -1
  40. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.4.0",
2
+ "version": "0.5.0",
3
3
  "components": [
4
4
  {
5
5
  "name": "Accordion",
@@ -1762,11 +1762,11 @@
1762
1762
  {
1763
1763
  "name": "Icon",
1764
1764
  "import": "import { Icon } from '@ratio-ui/core'",
1765
- "description": "Draws one icon of the registry: the design system's own glyphs, filled in a single colour, and Tabler's icons for the rest, drawn with a 1.5px line at every size. The icon is a square box of 8, 12 or 16px and takes the colour of its tone.",
1765
+ "description": "Draws one icon of the registry: the design system's own glyphs, filled (or, for check-mark, stroked) in a single colour, and Tabler's icons for the rest, drawn with a 1.5px line at every size. The icon is a square box of 8, 12 or 16px and takes the colour of its tone.",
1766
1766
  "props": [
1767
1767
  {
1768
1768
  "name": "name",
1769
- "type": "\"alert-triangle\" | \"calendar\" | \"check\" | \"chevron-left\" | \"chevron-right\" | \"export\" | \"import\" | \"info-circle\" | \"menu\" | \"more\" | \"nav-analytics\" | \"nav-apps\" | \"nav-caret-down\" | \"nav-chevron\" | \"nav-content\" | \"nav-customers\" | \"nav-discounts\" | \"nav-growth\" | \"nav-home\" | \"nav-markets\" | \"nav-orders\" | \"nav-product\" | \"nav-product-2\" | \"nav-sales-channels\" | \"nav-settings\" | \"nav-shortcut\" | \"plus\" | \"search\" | \"x\"",
1769
+ "type": "\"alert-triangle\" | \"arrow-down\" | \"arrow-up\" | \"calendar\" | \"check\" | \"check-mark\" | \"chevron-left\" | \"chevron-right\" | \"export\" | \"import\" | \"info-circle\" | \"menu\" | \"more\" | \"nav-analytics\" | \"nav-apps\" | \"nav-caret-down\" | \"nav-chevron\" | \"nav-content\" | \"nav-customers\" | \"nav-discounts\" | \"nav-growth\" | \"nav-home\" | \"nav-markets\" | \"nav-orders\" | \"nav-product\" | \"nav-product-2\" | \"nav-sales-channels\" | \"nav-settings\" | \"nav-shortcut\" | \"plus\" | \"search\" | \"x\"",
1770
1770
  "required": true,
1771
1771
  "description": "Which icon to draw, by name."
1772
1772
  },
@@ -1792,7 +1792,7 @@
1792
1792
  }
1793
1793
  ],
1794
1794
  "usage": {
1795
- "whenToUse": "- A glyph beside a label inside a control: the plus on a main button, the magnifier in a search field, the export tray on a secondary button. Use size 12\n- The side navigation: the nav glyphs at size 16 (nav-home and nav-product are the design system's own; nav-orders, nav-customers, nav-growth, nav-discounts, nav-content, nav-markets, nav-analytics, nav-sales-channels, nav-apps and nav-settings are Tabler stand-ins for the dashboard's sections, question 7), and the disclosure caret (nav-chevron or nav-caret-down, one glyph under two names) at size 8\n- The date pickers' open button: calendar (Tabler) at size 12\n- Pagination: chevron-left and chevron-right at size 8\n- A mark that Tabler supplies: check, x, alert-triangle, info-circle, import, more (three dots) and menu (the phone menu button). They are drawn with a 1.5px line at every size, so they sit beside the design system's own glyphs without looking heavier\n- Meaning that lives only in the icon: pass label. The icon is then an image that assistive technology announces under that name. Without a label it is decoration and is hidden from assistive technology\n- Colour: tone current, the default, takes the colour of the text around the icon. icon is the design system's icon ink, subdued is its subdued text ink and primary is the accent\n- Chevron geometry (design question 9): the design system has no vector for its pagination chevrons, only a 1.5px CSS caret in an 8px box, so chevron-left and chevron-right stand in. Each is the outline of a line 1.5 units wide with round ends, two legs at 45 degrees, each 2.5 units across and 2.5 down, through (2.75, 1.5), (5.25, 4) and (2.75, 6.5) in an 8 unit box. They scale like every filled glyph, so draw them at size 8, and expect them to be replaced when the designer sends real vectors",
1795
+ "whenToUse": "- A glyph beside a label inside a control: the plus on a main button, the magnifier in a search field, the export tray on a secondary button. Use size 12\n- The side navigation: the nav glyphs at size 16 (nav-home and nav-product are the design system's own; nav-orders, nav-customers, nav-growth, nav-discounts, nav-content, nav-markets, nav-analytics, nav-sales-channels, nav-apps and nav-settings are Tabler stand-ins for the dashboard's sections, question 7), and the disclosure caret (nav-chevron or nav-caret-down, one glyph under two names) at size 8\n- The date pickers' open button: calendar (Tabler) at size 12\n- Pagination: chevron-left and chevron-right at size 8\n- A mark that Tabler supplies: check, x, alert-triangle, info-circle, import, more (three dots) and menu (the phone menu button). They are drawn with a 1.5px line at every size, so they sit beside the design system's own glyphs without looking heavier\n- Meaning that lives only in the icon: pass label. The icon is then an image that assistive technology announces under that name. Without a label it is decoration and is hidden from assistive technology\n- Colour: tone current, the default, takes the colour of the text around the icon. icon is the design system's icon ink, subdued is its subdued text ink and primary is the accent\n- Chevron geometry (design question 9): the design system has no vector for its pagination chevrons, only a CSS caret in an 8px box (a 4.48px square with 1.5px top and right borders, rotated 45 degrees, square ends), so chevron-left and chevron-right draw that caret as a path: about 8.5px tall, so it reaches 0.23 units past the top and bottom of the 8 unit box (glyphs are not clipped), centred at x 3.5 for the right chevron and 4.5 for the left. Draw them at size 8, and expect them to be replaced when the designer sends real vectors\n- check-mark is the design system's own checkbox check, the path M1 4.2 L3 6.2 L7 1.8 in an 8 unit box as a 1.4 line with round ends; use it at size 8. arrow-up and arrow-down are Tabler's, for a table's sort direction, because the design system has no sort glyph (question 7)",
1796
1796
  "whenNotToUse": "- Decoration that adds no meaning. An icon next to text that already says the same thing is hidden from assistive technology, so leave the label off, and leave the icon out when it adds nothing\n- An icon the registry does not have. Components accept no className or style, and icons come from the registry only, so a new one is a registry entry: the design system's glyph first, Tabler for the rest\n- An icon-only control without a name. Pass label, or give the control its own accessible name\n- A size other than 8, 12 or 16, or a colour other than the four tones. There is no red, no destructive colour and no third accent: an error is marked with the alert-triangle glyph beside its message, not with a colour\n- Emoji, or unicode arrows and symbols, as icons. Inter's web subsets do not hold them and the design system bans them",
1797
1797
  "example": "import { Icon } from '@ratio-ui/core'\n\n// Beside text that names it: decoration, hidden from assistive technology\n<button type=\"button\">\n <Icon name=\"plus\" />\n Add product\n</button>\n\n// Alone: the label is the accessible name\n<Icon name=\"search\" tone=\"icon\" label=\"Search\" />\n\n// Pagination chevrons are drawn for an 8px box\n<Icon name=\"chevron-right\" size={8} />"
1798
1798
  }
@@ -1886,6 +1886,13 @@
1886
1886
  "default": "36",
1887
1887
  "description": "The height in px: 36 for forms and search, 32 for fields inside a table. Defaults to 36."
1888
1888
  },
1889
+ {
1890
+ "name": "search",
1891
+ "type": "boolean",
1892
+ "required": false,
1893
+ "default": "false",
1894
+ "description": "Draws the design system search bar's 8px side padding instead of 12px. SearchField sets it; forms leave it off."
1895
+ },
1889
1896
  {
1890
1897
  "name": "ref",
1891
1898
  "type": "Ref<HTMLDivElement>",
@@ -3247,7 +3254,7 @@
3247
3254
  {
3248
3255
  "name": "TableHead",
3249
3256
  "import": "import { TableHead } from '@ratio-ui/core'",
3250
- "description": "A column heading: 12px uppercase text in the subdued colour. It is a column header unless `scope` says otherwise.",
3257
+ "description": "A column heading: 12px uppercase text in the muted foreground, the design system's colour for column headings. It is a column header unless `scope` says otherwise.",
3251
3258
  "props": [
3252
3259
  {
3253
3260
  "name": "numeric",
@@ -3506,7 +3513,7 @@
3506
3513
  "props": [
3507
3514
  {
3508
3515
  "name": "variant",
3509
- "type": "\"b1\" | \"b2\" | \"b3\" | \"b4\" | \"c1\" | \"c2\" | \"c3\" | \"display\" | \"h1\" | \"h5\" | \"label\" | \"s1\" | \"s2\"",
3516
+ "type": "\"b1\" | \"b2\" | \"b3\" | \"b4\" | \"badge\" | \"c1\" | \"c2\" | \"c3\" | \"display\" | \"h1\" | \"h5\" | \"label\" | \"s1\" | \"s2\" | \"section\"",
3510
3517
  "required": false,
3511
3518
  "default": "b3",
3512
3519
  "description": "The text style: size, line height, weight and letter spacing. Defaults to b3, the body text."
@@ -3540,8 +3547,8 @@
3540
3547
  }
3541
3548
  ],
3542
3549
  "usage": {
3543
- "whenToUse": "- Any text on a screen: every label, heading, value and hint is set with Text, because components take no `className` and no `style`\n- A style from the design system's type scale: `variant` is one of display, h1, h5, s1, s2, b1, b2, b3, b4, c1, c2, c3 or label, and b3 is the default\n- A colour from the design system's text colours: `tone` is default, subdued, muted, primary or inherit\n- A heading, paragraph or list term that must look like another style: `as` picks the element (span, p, div, strong, em, h1 to h6, legend, dt or dd) and `variant` picks the look, so the two are chosen apart\n- A single line that is cut with an ellipsis: `truncate`, on a block element such as `as=\"p\"` or `as=\"div\"`",
3544
- "whenNotToUse": "- Text in a button: buttons take the design system's two button styles, which are not Text variants\n- A colour that is not a tone: `color` is a type error, and so are `className` and `style`\n- A style that is not in the type scale: `variant=\"h2\"` is a type error, so pick the nearest of the 13\n- Space around text: use Stack or Inline\n- Several lines cut at a number of lines: `truncate` keeps one line",
3550
+ "whenToUse": "- Any text on a screen: every label, heading, value and hint is set with Text, because components take no `className` and no `style`\n- A style from the design system's type scale: `variant` is one of display, h1, h5, s1, s2, b1, b2, b3, b4, c1, c2, c3, label, section or badge, and b3 is the default\n- A colour from the design system's text colours: `tone` is default, subdued, muted, primary or inherit\n- A heading, paragraph or list term that must look like another style: `as` picks the element (span, p, div, strong, em, h1 to h6, legend, dt or dd) and `variant` picks the look, so the two are chosen apart\n- A single line that is cut with an ellipsis: `truncate`, on a block element such as `as=\"p\"` or `as=\"div\"`",
3551
+ "whenNotToUse": "- Text in a button: buttons take the design system's two button styles, which are not Text variants\n- A colour that is not a tone: `color` is a type error, and so are `className` and `style`\n- A style that is not in the type scale: `variant=\"h2\"` is a type error, so pick the nearest of the 15\n- Space around text: use Stack or Inline\n- Several lines cut at a number of lines: `truncate` keeps one line",
3545
3552
  "example": "<Text as=\"h1\" variant=\"h1\">Settlements</Text>\n<Text tone=\"subdued\">Paid out every weekday</Text>"
3546
3553
  }
3547
3554
  },
@@ -3603,7 +3610,7 @@
3603
3610
  {
3604
3611
  "name": "TooltipContent",
3605
3612
  "import": "import { TooltipContent } from '@ratio-ui/core'",
3606
- "description": "The tooltip text: a dark panel with light text, no shadow and no animation. It sits above the trigger by default.",
3613
+ "description": "The tooltip text: a white panel with a 1px line-100 border and ink-800 text, like a popover, no shadow and no animation. It sits above the trigger by default.",
3607
3614
  "props": [
3608
3615
  {
3609
3616
  "name": "render",
@@ -3643,14 +3650,7 @@
3643
3650
  "name": "logo",
3644
3651
  "type": "ReactNode",
3645
3652
  "required": false,
3646
- "description": "The logo, usually an image. When it is left out the bar shows the text wordmark instead (--rt-wordmark)."
3647
- },
3648
- {
3649
- "name": "wordmarkLabel",
3650
- "type": "string",
3651
- "required": false,
3652
- "default": "Ratio",
3653
- "description": "The accessible name of the text wordmark, shown when there is no logo. Defaults to Ratio."
3653
+ "description": "The logo, usually the SVG the app gets from its designer. The bar draws no logo of its own: without one the slot is empty."
3654
3654
  },
3655
3655
  {
3656
3656
  "name": "menuLabel",
@@ -3,19 +3,20 @@ import { Icon } from "../icon/Icon.js";
3
3
  import { Text } from "../text/Text.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  // src/components/alert/Alert.tsx
6
+ const HAIRLINE = "rt:bg-background rt:border-border";
6
7
  const TONES = {
7
8
  info: {
8
- box: "rt:bg-primary-tint rt:border-primary-tint",
9
+ box: HAIRLINE,
9
10
  glyph: "rt:text-primary",
10
11
  icon: "info-circle"
11
12
  },
12
13
  success: {
13
- box: "rt:bg-success-tint rt:border-success-border",
14
+ box: HAIRLINE,
14
15
  glyph: "rt:text-success",
15
16
  icon: "check"
16
17
  },
17
18
  warning: {
18
- box: "rt:bg-warning-tint rt:border-warning-border",
19
+ box: HAIRLINE,
19
20
  glyph: "rt:text-warning",
20
21
  icon: "alert-triangle"
21
22
  },
@@ -3,14 +3,14 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { Button } from "@base-ui/react/button";
4
4
  import { cva } from "class-variance-authority";
5
5
  // src/components/button/Button.tsx
6
- const buttonVariants = cva("rt:inline-flex rt:h-7 rt:shrink-0 rt:items-center rt:justify-center rt:rounded-md rt:border-0 rt:text-btn rt:whitespace-nowrap rt:select-none rt:cursor-pointer rt:transition-colors rt:focus-visible:focus-ring rt:disabled:pointer-events-none rt:disabled:opacity-50 rt:data-disabled:pointer-events-none rt:data-disabled:opacity-50", {
6
+ const buttonVariants = cva("rt:inline-flex rt:h-7 rt:shrink-0 rt:items-center rt:justify-center rt:rounded-md rt:border-0 rt:whitespace-nowrap rt:select-none rt:cursor-pointer rt:transition-colors rt:focus-visible:focus-ring rt:disabled:pointer-events-none rt:disabled:opacity-50 rt:data-disabled:pointer-events-none rt:data-disabled:opacity-50", {
7
7
  variants: {
8
8
  variant: {
9
- main: "rt:gap-1.5 rt:bg-primary rt:text-primary-foreground rt:hover:bg-primary-hover rt:active:bg-primary-hover",
10
- secondary: "rt:gap-1 rt:bg-secondary rt:text-secondary-foreground rt:shadow-ring-strong rt:forced-outline rt:hover:bg-primary-tint rt:active:bg-primary-tint",
11
- ghost: "rt:gap-1 rt:bg-transparent rt:text-secondary-foreground rt:hover:bg-muted rt:active:bg-muted",
12
- link: "rt:gap-1 rt:bg-transparent rt:text-primary rt:hover:underline rt:active:underline",
13
- destructive: "rt:gap-1 rt:bg-destructive-fill rt:text-destructive-foreground rt:shadow-ring-destructive rt:forced-outline rt:hover:bg-destructive-hover rt:active:bg-destructive-hover"
9
+ main: "rt:gap-1.5 rt:text-btn rt:bg-primary rt:text-primary-foreground rt:hover:bg-primary-hover rt:active:bg-primary-hover",
10
+ secondary: "rt:gap-1 rt:text-b3 rt:svg:text-foreground-subdued rt:bg-secondary rt:text-secondary-foreground rt:shadow-ring-strong rt:forced-outline rt:hover:bg-primary-tint rt:active:bg-primary-tint",
11
+ ghost: "rt:gap-1 rt:text-b3 rt:svg:text-foreground-subdued rt:bg-transparent rt:text-secondary-foreground rt:hover:bg-muted rt:active:bg-muted",
12
+ link: "rt:gap-1 rt:text-btn rt:bg-transparent rt:text-primary rt:hover:text-primary-hover rt:hover:underline rt:active:text-primary-hover rt:active:underline",
13
+ destructive: "rt:gap-1 rt:text-b3 rt:svg:text-foreground-subdued rt:bg-destructive-fill rt:text-destructive-foreground rt:shadow-ring-destructive rt:forced-outline rt:hover:bg-destructive-hover rt:active:bg-destructive-hover"
14
14
  },
15
15
  iconOnly: {
16
16
  false: "rt:px-2 rt:py-1",
@@ -73,10 +73,10 @@ const PreviousMonthButton = navButton("chevron-left");
73
73
  const NextMonthButton = navButton("chevron-right");
74
74
  const CLASS_NAMES = {
75
75
  root: "rt:relative rt:w-fit rt:p-2 rt:text-foreground",
76
- months: "rt:relative rt:flex rt:flex-col rt:gap-4 rt:md:flex-row",
76
+ months: "rt:relative rt:flex rt:flex-col rt:gap-3.5 rt:md:flex-row",
77
77
  month: "rt:flex rt:w-full rt:flex-col rt:gap-2",
78
78
  nav: "rt:absolute rt:inset-x-0 rt:top-0 rt:z-10 rt:flex rt:w-full rt:items-center rt:justify-between rt:gap-1",
79
- month_caption: "rt:flex rt:h-7 rt:w-full rt:items-center rt:justify-center rt:px-7",
79
+ month_caption: "rt:flex rt:h-7 rt:w-full rt:items-center rt:justify-center rt:px-8",
80
80
  caption_label: "rt:text-c3 rt:text-foreground rt:select-none",
81
81
  month_grid: "rt:w-full rt:border-collapse",
82
82
  weekdays: "rt:flex",
@@ -19,7 +19,7 @@ function Checkbox$1({ ...props }) {
19
19
  "data-slot": "checkbox-dash",
20
20
  className: "rt:block rt:h-px rt:w-2 rt:rounded-sm rt:bg-primary-foreground"
21
21
  }) : /* @__PURE__ */ jsx(Icon, {
22
- name: "check",
22
+ name: "check-mark",
23
23
  size: 8
24
24
  })
25
25
  })
@@ -1,7 +1,8 @@
1
+ import { Icon } from "../icon/Icon.js";
1
2
  import { RatioLink } from "../link-provider/RatioLink.js";
2
3
  import { Checkbox } from "../checkbox/Checkbox.js";
3
4
  import { Pagination } from "../pagination/Pagination.js";
4
- import { Table, TableBody, TableBox, TableCell, TableHead, TableHeader, TableRow } from "../table/Table.js";
5
+ import { SelectionCell, SelectionHead, Table, TableBody, TableBox, TableCell, TableHead, TableHeader, TableRow } from "../table/Table.js";
5
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
  import { useMemo, useSyncExternalStore } from "react";
7
8
  import { FlexRender, rowSelectionFeature, rowSortingFeature, tableFeatures, useTable } from "@tanstack/react-table";
@@ -72,10 +73,10 @@ function DataTable({ columns: allColumns, data, getRowId, selectedIds, onSelecte
72
73
  if (loading) return /* @__PURE__ */ jsx(Fragment, { children: loading });
73
74
  return /* @__PURE__ */ jsxs("div", {
74
75
  "data-slot": "data-table",
75
- className: "rt:flex rt:w-full rt:flex-col rt:gap-2",
76
+ className: "rt:flex rt:w-full rt:flex-col",
76
77
  children: [/* @__PURE__ */ jsx(TableBox, { children: /* @__PURE__ */ jsxs(Table, {
77
78
  ...rest,
78
- children: [/* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [selectable ? /* @__PURE__ */ jsx(TableHead, { children: /* @__PURE__ */ jsx(Checkbox, {
79
+ children: [/* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [selectable ? /* @__PURE__ */ jsx(SelectionHead, { children: /* @__PURE__ */ jsx(Checkbox, {
79
80
  "aria-label": "Select all rows",
80
81
  checked: table.getIsAllRowsSelected() && rows.length > 0,
81
82
  indeterminate: rows.some((r) => r.getIsSelected()) && !table.getIsAllRowsSelected(),
@@ -92,10 +93,7 @@ function DataTable({ columns: allColumns, data, getRowId, selectedIds, onSelecte
92
93
  "aria-label": `Sort by ${c.header}`,
93
94
  className: "rt:inline-flex rt:cursor-pointer rt:items-center rt:gap-1 rt:uppercase rt:focus-visible:focus-ring",
94
95
  onClick: () => h.column.toggleSorting(),
95
- children: [/* @__PURE__ */ jsx(FlexRender, { header: h }), /* @__PURE__ */ jsx("span", {
96
- "aria-hidden": "true",
97
- children: sorted === "asc" ? "↑" : sorted === "desc" ? "↓" : null
98
- })]
96
+ children: [/* @__PURE__ */ jsx(FlexRender, { header: h }), sorted ? /* @__PURE__ */ jsx(Icon, { name: sorted === "asc" ? "arrow-up" : "arrow-down" }) : null]
99
97
  }) : /* @__PURE__ */ jsx(FlexRender, { header: h })
100
98
  }, h.id);
101
99
  })] }) }), /* @__PURE__ */ jsx(TableBody, { children: rows.length === 0 ? /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, {
@@ -103,7 +101,7 @@ function DataTable({ columns: allColumns, data, getRowId, selectedIds, onSelecte
103
101
  children: empty
104
102
  }) }) : rows.map((row, index) => /* @__PURE__ */ jsxs(TableRow, {
105
103
  selected: row.getIsSelected(),
106
- children: [selectable ? /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(Checkbox, {
104
+ children: [selectable ? /* @__PURE__ */ jsx(SelectionCell, { children: /* @__PURE__ */ jsx(Checkbox, {
107
105
  "aria-label": getRowLabel ? `Select ${getRowLabel(row.original)}` : `Select row ${index + 1}`,
108
106
  checked: row.getIsSelected(),
109
107
  onCheckedChange: () => row.toggleSelected()
@@ -126,15 +124,11 @@ function DataTable({ columns: allColumns, data, getRowId, selectedIds, onSelecte
126
124
  }, cell.id);
127
125
  })]
128
126
  }, row.id)) })]
129
- }) }), hasFooter ? /* @__PURE__ */ jsx("div", {
130
- "data-slot": "data-table-pagination",
131
- className: "rt:rounded-lg rt:border rt:border-border rt:bg-background rt:px-2",
132
- children: /* @__PURE__ */ jsx(Pagination, {
133
- page,
134
- pageSize,
135
- total,
136
- onPageChange
137
- })
127
+ }) }), hasFooter ? /* @__PURE__ */ jsx(Pagination, {
128
+ page,
129
+ pageSize,
130
+ total,
131
+ onPageChange
138
132
  }) : null]
139
133
  });
140
134
  }
@@ -21,7 +21,7 @@ function Definition({ children, definition }) {
21
21
  className: "rt:isolate rt:z-50",
22
22
  children: /* @__PURE__ */ jsx(Popover.Popup, {
23
23
  "aria-label": "Definition",
24
- className: "rt:max-w-72 rt:rounded-md rt:border rt:border-border rt:bg-popover rt:px-3 rt:py-1.5 rt:text-b1 rt:text-popover-foreground rt:outline-hidden",
24
+ className: "rt:max-w-72 rt:rounded-lg rt:border rt:border-border rt:bg-popover rt:px-3 rt:py-1.5 rt:text-b1 rt:text-popover-foreground rt:outline-hidden",
25
25
  children: definition
26
26
  })
27
27
  }) })] });
@@ -36,7 +36,7 @@ function DialogContent({ children, showCloseButton = true, closeLabel = "Close",
36
36
  children: [children, showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
37
37
  "data-slot": "dialog-close",
38
38
  "aria-label": closeLabel,
39
- className: "rt:absolute rt:top-4 rt:right-4 rt:flex rt:size-7 rt:items-center rt:justify-center rt:rounded-md rt:text-icon rt:transition-colors rt:hover:bg-primary-tint rt:focus-visible:focus-ring",
39
+ className: "rt:absolute rt:top-6 rt:right-6 rt:flex rt:size-7 rt:items-center rt:justify-center rt:rounded-md rt:text-icon rt:transition-colors rt:hover:bg-primary-tint rt:focus-visible:focus-ring",
40
40
  children: /* @__PURE__ */ jsx(Icon, {
41
41
  name: "x",
42
42
  size: 12
@@ -66,7 +66,7 @@ function DrawerContent({ children, showCloseButton = true, closeLabel = "Close",
66
66
  showCloseButton && /* @__PURE__ */ jsx(Drawer.Close, {
67
67
  "data-slot": "drawer-close",
68
68
  "aria-label": closeLabel,
69
- className: "rt:absolute rt:top-5 rt:right-5 rt:flex rt:size-7 rt:items-center rt:justify-center rt:rounded-md rt:text-icon rt:transition-colors rt:hover:bg-primary-tint rt:focus-visible:focus-ring",
69
+ className: "rt:absolute rt:top-6 rt:right-6 rt:flex rt:size-7 rt:items-center rt:justify-center rt:rounded-md rt:text-icon rt:transition-colors rt:hover:bg-primary-tint rt:focus-visible:focus-ring",
70
70
  children: /* @__PURE__ */ jsx(Icon, {
71
71
  name: "x",
72
72
  size: 12
@@ -27,7 +27,7 @@ export interface IconProps extends Omit<SVGAttributes<SVGSVGElement>, 'className
27
27
  label?: string;
28
28
  }
29
29
  /**
30
- * Draws one icon of the registry: the design system's own glyphs, filled in a single colour, and Tabler's icons for the
30
+ * Draws one icon of the registry: the design system's own glyphs, filled (or, for check-mark, stroked) in a single colour, and Tabler's icons for the
31
31
  * rest, drawn with a 1.5px line at every size. The icon is a square box of 8, 12 or 16px and takes the colour of its
32
32
  * tone.
33
33
  */
@@ -9,7 +9,7 @@ const TONE_CLASSES = {
9
9
  primary: "rt:text-primary"
10
10
  };
11
11
  /**
12
- * Draws one icon of the registry: the design system's own glyphs, filled in a single colour, and Tabler's icons for the
12
+ * Draws one icon of the registry: the design system's own glyphs, filled (or, for check-mark, stroked) in a single colour, and Tabler's icons for the
13
13
  * rest, drawn with a 1.5px line at every size. The icon is a square box of 8, 12 or 16px and takes the colour of its
14
14
  * tone.
15
15
  */
@@ -40,13 +40,24 @@ function Icon({ name, size = 12, tone = "current", label, ...rest }) {
40
40
  strokeLinejoin: "round"
41
41
  });
42
42
  }
43
+ const { glyph } = entry;
44
+ const paint = glyph.stroke === void 0 ? {
45
+ fill: "currentColor",
46
+ stroke: "none"
47
+ } : {
48
+ fill: "none",
49
+ stroke: "currentColor",
50
+ strokeWidth: glyph.stroke,
51
+ strokeLinecap: "round",
52
+ strokeLinejoin: "round"
53
+ };
43
54
  return /* @__PURE__ */ jsx("svg", {
44
55
  ...rest,
45
56
  ...own,
46
- viewBox: entry.glyph.viewBox,
47
- fill: "currentColor",
48
- stroke: "none",
49
- children: entry.glyph.paths.map(({ d, fillRule, transform }) => /* @__PURE__ */ jsx("path", {
57
+ className: cn(own.className, "rt:overflow-visible"),
58
+ viewBox: glyph.viewBox,
59
+ ...paint,
60
+ children: glyph.paths.map(({ d, fillRule, transform }) => /* @__PURE__ */ jsx("path", {
50
61
  d,
51
62
  fillRule,
52
63
  transform
@@ -72,24 +72,35 @@ const NAV_CHEVRON = {
72
72
  }]
73
73
  };
74
74
  /**
75
- * The right chevron. The design system draws its pagination chevrons as a 1.5px CSS caret in an 8px box and has no
76
- * vector for them (design question 9), so this is a stand-in, to be replaced when the designer sends real vectors. It
77
- * is the outline of a line 1.5 units wide with round ends: two legs at 45 degrees, each 2.5 units across and 2.5
78
- * down, from (2.75, 1.5) through (5.25, 4) to (2.75, 6.5) in an 8 unit box, which centres the caret in the box.
75
+ * The right chevron. The design system draws its pagination chevrons as a CSS caret in an 8px box and has no vector for
76
+ * them (design question 9): a 4.48px square with 1.5px top and right borders, rotated 45 degrees, square ends, about 8.5px
77
+ * tall. This is that caret as a path. The borders are an L of 1.5 units round the square's 5.98 unit outside (the corners
78
+ * (0,0), (5.98,0), (5.98,5.98), (4.48,5.98), (4.48,1.5), (0,1.5)), rotated 45 degrees about the square's centre, which
79
+ * sits at (3.5, 4) in the 8 unit box: the design system's margin-left of -1 moves the centred caret half a unit left. The
80
+ * caret reaches past the box (y from -0.23 to 8.23), as the CSS one does, so Icon lets a glyph overflow.
79
81
  */
80
82
  const CHEVRON_RIGHT = {
81
83
  viewBox: "0 0 8 8",
82
84
  paths: [{
83
- d: "M3.2803 0.9697L5.7803 3.4697A0.75 0.75 0 0 1 5.7803 4.5303L3.2803 7.0303A0.75 0.75 0 0 1 2.2197 5.9697L4.1893 4L2.2197 2.0303A0.75 0.75 0 0 1 3.2803 0.9697Z",
85
+ d: "M3.5000 -0.2285L7.7285 4.0000L3.5000 8.2285L2.4393 7.1678L5.6072 4.0000L2.4393 0.8322Z",
84
86
  fillRule: "nonzero"
85
87
  }]
86
88
  };
87
- /** The left chevron: the right chevron mirrored in x = 4. */
89
+ /** The left chevron: the right chevron mirrored in x = 4, as the design system's 225 degree rotation and margin-left of 1 do. */
88
90
  const CHEVRON_LEFT = {
89
91
  viewBox: "0 0 8 8",
90
92
  paths: [{
91
- d: "M4.7197 0.9697L2.2197 3.4697A0.75 0.75 0 0 0 2.2197 4.5303L4.7197 7.0303A0.75 0.75 0 0 0 5.7803 5.9697L3.8107 4L5.7803 2.0303A0.75 0.75 0 0 0 4.7197 0.9697Z",
93
+ d: "M4.5000 -0.2285L0.2715 4.0000L4.5000 8.2285L5.5607 7.1678L2.3928 4.0000L5.5607 0.8322Z",
92
94
  fillRule: "nonzero"
93
95
  }]
94
96
  };
95
- export { CHEVRON_LEFT, CHEVRON_RIGHT, EXPORT, NAV_CHEVRON, NAV_HOME, NAV_PRODUCT, NAV_PRODUCT_2, NAV_SHORTCUT, PLUS, SEARCH };
97
+ /** The check mark of the design system's checkbox (Listing.jsx): the path M1 4.2 L3 6.2 L7 1.8 in an 8 unit box, a 1.4 line with round ends. */
98
+ const CHECK_MARK = {
99
+ viewBox: "0 0 8 8",
100
+ paths: [{
101
+ d: "M1 4.2 L3 6.2 L7 1.8",
102
+ fillRule: "nonzero"
103
+ }],
104
+ stroke: 1.4
105
+ };
106
+ export { CHECK_MARK, CHEVRON_LEFT, CHEVRON_RIGHT, EXPORT, NAV_CHEVRON, NAV_HOME, NAV_PRODUCT, NAV_PRODUCT_2, NAV_SHORTCUT, PLUS, SEARCH };
@@ -2,6 +2,7 @@ import "@tabler/icons-react";
2
2
  /**
3
3
  * The name of an icon. The design system's own glyphs come first (plus, search, export, the two pagination chevrons and
4
4
  * the five navigation glyphs); the rest are Tabler icons drawn with a 1.5px line: check, x, alert-triangle, info-circle,
5
- * the dashboard's navigation glyphs (nav-orders to nav-settings), import, more and menu (the phone menu button) and calendar (the date pickers' open button).
5
+ * the dashboard's navigation glyphs (nav-orders to nav-settings), import, more and menu (the phone menu button), calendar (the date pickers' open button) and arrow-up and arrow-down (the table's sort direction; the
6
+ * design system has no sort glyph, so Tabler's, question 7). check-mark is the design system's own checkbox check, drawn as a line.
6
7
  */
7
- export type IconName = 'plus' | 'search' | 'export' | 'chevron-left' | 'chevron-right' | 'nav-home' | 'nav-shortcut' | 'nav-product' | 'nav-product-2' | 'nav-chevron' | 'nav-caret-down' | 'check' | 'x' | 'alert-triangle' | 'info-circle' | 'nav-orders' | 'nav-customers' | 'nav-growth' | 'nav-discounts' | 'nav-content' | 'nav-markets' | 'nav-analytics' | 'nav-sales-channels' | 'nav-apps' | 'nav-settings' | 'import' | 'more' | 'menu' | 'calendar';
8
+ export type IconName = 'plus' | 'search' | 'export' | 'chevron-left' | 'chevron-right' | 'nav-home' | 'nav-shortcut' | 'nav-product' | 'nav-product-2' | 'nav-chevron' | 'nav-caret-down' | 'check' | 'x' | 'alert-triangle' | 'info-circle' | 'nav-orders' | 'nav-customers' | 'nav-growth' | 'nav-discounts' | 'nav-content' | 'nav-markets' | 'nav-analytics' | 'nav-sales-channels' | 'nav-apps' | 'nav-settings' | 'import' | 'more' | 'menu' | 'calendar' | 'check-mark' | 'arrow-up' | 'arrow-down';
@@ -1,5 +1,5 @@
1
- import { CHEVRON_LEFT, CHEVRON_RIGHT, EXPORT, NAV_CHEVRON, NAV_HOME, NAV_PRODUCT, NAV_PRODUCT_2, NAV_SHORTCUT, PLUS, SEARCH } from "./glyphs.js";
2
- import { IconAlertTriangle, IconApps, IconBuildingStore, IconCalendar, IconChartBar, IconCheck, IconDiscount2, IconDots, IconFileImport, IconFileText, IconInfoCircle, IconMenu2, IconReceipt, IconSettings, IconTrendingUp, IconUsers, IconWorld, IconX } from "@tabler/icons-react";
1
+ import { CHECK_MARK, CHEVRON_LEFT, CHEVRON_RIGHT, EXPORT, NAV_CHEVRON, NAV_HOME, NAV_PRODUCT, NAV_PRODUCT_2, NAV_SHORTCUT, PLUS, SEARCH } from "./glyphs.js";
2
+ import { IconAlertTriangle, IconApps, IconArrowDown, IconArrowUp, IconBuildingStore, IconCalendar, IconChartBar, IconCheck, IconDiscount2, IconDots, IconFileImport, IconFileText, IconInfoCircle, IconMenu2, IconReceipt, IconSettings, IconTrendingUp, IconUsers, IconWorld, IconX } from "@tabler/icons-react";
3
3
  // src/components/icon/registry.ts
4
4
  /**
5
5
  * Every icon by name. nav-chevron and nav-caret-down are one glyph under two names, as in the design system, whose
@@ -121,6 +121,18 @@ const ICONS = {
121
121
  calendar: {
122
122
  kind: "tabler",
123
123
  component: IconCalendar
124
+ },
125
+ "check-mark": {
126
+ kind: "glyph",
127
+ glyph: CHECK_MARK
128
+ },
129
+ "arrow-up": {
130
+ kind: "tabler",
131
+ component: IconArrowUp
132
+ },
133
+ "arrow-down": {
134
+ kind: "tabler",
135
+ component: IconArrowDown
124
136
  }
125
137
  };
126
138
  export { ICONS };
@@ -3,7 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { Input } from "@base-ui/react/input";
5
5
  // src/components/input/Input.tsx
6
- const inputVariants = cva("rt:w-full rt:min-w-0 rt:rounded-lg rt:bg-background rt:text-b3 rt:text-foreground rt:placeholder:text-muted-foreground rt:shadow-ring-subtle rt:outline-none rt:transition-colors rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
6
+ const inputVariants = cva("rt:w-full rt:min-w-0 rt:rounded-lg rt:bg-background rt:text-b3 rt:text-foreground rt:placeholder:text-muted-foreground rt:shadow-ring-subtle rt:outline-none rt:ring-fade rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
7
7
  variants: { size: {
8
8
  36: "rt:h-9 rt:px-3",
9
9
  32: "rt:h-8 rt:px-2.75"
@@ -5,6 +5,8 @@ export type InputGroupSize = 36 | 32;
5
5
  export type InputGroupProps = Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'> & {
6
6
  /** The height in px: 36 for forms and search, 32 for fields inside a table. Defaults to 36. */
7
7
  size?: InputGroupSize;
8
+ /** Draws the design system search bar's 8px side padding instead of 12px. SearchField sets it; forms leave it off. */
9
+ search?: boolean;
8
10
  /** Receives the group element. */
9
11
  ref?: Ref<HTMLDivElement>;
10
12
  };
@@ -12,7 +14,7 @@ export type InputGroupProps = Omit<HTMLAttributes<HTMLDivElement>, 'className' |
12
14
  * A field with a prefix, suffix, icon or shortcut hint beside the input, inside one ring. Put an InputGroupInput in it
13
15
  * and an InputGroupAddon on either side, for example a rupee sign before a price or kg after a weight.
14
16
  */
15
- export declare function InputGroup({ size, ref, ...rest }: InputGroupProps): JSX.Element;
17
+ export declare function InputGroup({ size, search, ref, ...rest }: InputGroupProps): JSX.Element;
16
18
  /** The side of the input an addon sits on: start is before it, end is after it. */
17
19
  export type InputGroupAddonAlign = 'start' | 'end';
18
20
  /** The props of InputGroupAddon: the HTML attributes of a div, except className and style, with its side. */
@@ -4,23 +4,35 @@ import { useEffect, useRef } from "react";
4
4
  import { cva } from "class-variance-authority";
5
5
  import { Input } from "@base-ui/react/input";
6
6
  // src/components/input-group/InputGroup.tsx
7
- const groupVariants = cva("rt:flex rt:w-full rt:min-w-0 rt:items-center rt:gap-2 rt:rounded-lg rt:bg-background rt:shadow-ring-subtle rt:transition-colors rt:forced-outline rt:focus-within:shadow-ring-focus rt:has-aria-invalid:shadow-ring-invalid rt:has-aria-invalid:focus-within:shadow-ring-invalid rt:has-disabled:opacity-50", {
8
- variants: { size: {
9
- 36: "rt:h-9 rt:px-3",
10
- 32: "rt:h-8 rt:px-2.75"
11
- } },
12
- defaultVariants: { size: 36 }
7
+ const groupVariants = cva("rt:flex rt:w-full rt:min-w-0 rt:items-center rt:gap-2 rt:rounded-lg rt:bg-background rt:shadow-ring-subtle rt:ring-fade rt:forced-outline rt:focus-within:shadow-ring-focus rt:has-aria-invalid:shadow-ring-invalid rt:has-aria-invalid:focus-within:shadow-ring-invalid rt:has-disabled:opacity-50", {
8
+ variants: {
9
+ size: {
10
+ 36: "rt:h-9 rt:px-3",
11
+ 32: "rt:h-8 rt:px-2.75"
12
+ },
13
+ search: {
14
+ true: "rt:px-2",
15
+ false: ""
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ size: 36,
20
+ search: false
21
+ }
13
22
  });
14
23
  /**
15
24
  * A field with a prefix, suffix, icon or shortcut hint beside the input, inside one ring. Put an InputGroupInput in it
16
25
  * and an InputGroupAddon on either side, for example a rupee sign before a price or kg after a weight.
17
26
  */
18
- function InputGroup({ size = 36, ref, ...rest }) {
27
+ function InputGroup({ size = 36, search = false, ref, ...rest }) {
19
28
  return /* @__PURE__ */ jsx("div", {
20
29
  "data-slot": "input-group",
21
30
  role: "group",
22
31
  ref,
23
- className: cn(groupVariants({ size })),
32
+ className: cn(groupVariants({
33
+ size,
34
+ search
35
+ })),
24
36
  ...rest
25
37
  });
26
38
  }
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { use } from "react";
3
3
  import { OTPInput, OTPInputContext, REGEXP_ONLY_DIGITS } from "input-otp";
4
4
  // src/components/input-otp/InputOtp.tsx
5
- const slotClass = "rt:relative rt:flex rt:size-11 rt:items-center rt:justify-center rt:rounded-lg rt:bg-background rt:text-otp rt:text-foreground rt:shadow-ring-subtle rt:transition-colors rt:forced-outline rt:data-active:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:data-active:shadow-ring-invalid";
5
+ const slotClass = "rt:relative rt:flex rt:size-11 rt:items-center rt:justify-center rt:rounded-lg rt:bg-background rt:text-b4 rt:text-foreground rt:shadow-ring-subtle rt:ring-fade rt:forced-outline rt:data-active:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:data-active:shadow-ring-invalid";
6
6
  function Slot({ index, invalid }) {
7
7
  const { char, hasFakeCaret, isActive } = use(OTPInputContext).slots[index] ?? {};
8
8
  return /* @__PURE__ */ jsxs("div", {
@@ -2,7 +2,7 @@ import { cn } from "../../lib/cn.js";
2
2
  import { RatioLink } from "../link-provider/RatioLink.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  // src/components/link/Link.tsx
5
- const LINK = "rt:inline-flex rt:items-center rt:gap-1 rt:rounded-sm rt:text-primary rt:transition-colors rt:hover:underline rt:focus-visible:focus-ring";
5
+ const LINK = "rt:inline-flex rt:items-center rt:gap-1 rt:rounded-sm rt:text-primary rt:transition-colors rt:hover:text-primary-hover rt:hover:underline rt:focus-visible:focus-ring";
6
6
  /**
7
7
  * A text link to another page, such as "← Products" or "View all variants →". It is drawn by the app's LinkProvider, so a
8
8
  * router navigates without a reload; without one it is a plain <a href>. The arrows are decoration and are hidden from
@@ -13,7 +13,7 @@ function MetricStrip({ segments, label }) {
13
13
  return /* @__PURE__ */ jsx("div", {
14
14
  role: "group",
15
15
  "aria-label": label,
16
- className: "rt:overflow-hidden rt:rounded-md rt:border rt:border-border rt:bg-background",
16
+ className: "rt:overflow-hidden rt:rounded-lg rt:border rt:border-border rt:bg-background",
17
17
  children: /* @__PURE__ */ jsx("div", {
18
18
  className: "rt:-mr-px rt:-mb-px rt:flex rt:flex-wrap",
19
19
  children: segments.map((segment) => {
@@ -51,7 +51,7 @@ function Pagination({ page, pageSize, total, onPageChange, "aria-label": label =
51
51
  })]
52
52
  }), /* @__PURE__ */ jsx("p", {
53
53
  role: "status",
54
- className: "rt:min-w-26 rt:px-2 rt:text-c1 rt:whitespace-nowrap rt:text-foreground-subdued",
54
+ className: "rt:min-w-26.5 rt:px-2 rt:text-c1 rt:whitespace-nowrap rt:text-foreground-subdued",
55
55
  children: summary
56
56
  })]
57
57
  });
@@ -28,10 +28,14 @@ function SearchField({ label, value, defaultValue = "", onValueChange, size = 36
28
28
  };
29
29
  return /* @__PURE__ */ jsxs(InputGroup, {
30
30
  size,
31
+ search: true,
31
32
  children: [
32
- /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(Icon, {
33
- name: "search",
34
- tone: "icon"
33
+ /* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx("span", {
34
+ className: "rt:flex rt:w-6 rt:items-center rt:pl-2",
35
+ children: /* @__PURE__ */ jsx(Icon, {
36
+ name: "search",
37
+ tone: "icon"
38
+ })
35
39
  }) }),
36
40
  /* @__PURE__ */ jsx(InputGroupInput, {
37
41
  ...rest,
@@ -56,7 +60,7 @@ function SearchField({ label, value, defaultValue = "", onValueChange, size = 36
56
60
  type: "button",
57
61
  "aria-label": "Clear search",
58
62
  onClick: clear,
59
- className: "rt:inline-flex rt:size-5 rt:items-center rt:justify-center rt:rounded-sm rt:text-icon rt:outline-none rt:transition-colors rt:hover:bg-muted rt:focus-visible:shadow-ring-focus",
63
+ className: "rt:inline-flex rt:size-5 rt:items-center rt:justify-center rt:rounded-sm rt:text-icon rt:outline-none rt:transition-colors rt:hover:bg-muted rt:focus-visible:focus-ring",
60
64
  children: /* @__PURE__ */ jsx(Icon, { name: "x" })
61
65
  })
62
66
  }) : null
@@ -8,7 +8,7 @@ import { Select } from "@base-ui/react/select";
8
8
  function Select$1(props) {
9
9
  return /* @__PURE__ */ jsx(Select.Root, { ...props });
10
10
  }
11
- const triggerVariants = cva("rt:flex rt:w-full rt:min-w-0 rt:items-center rt:justify-between rt:gap-2 rt:rounded-lg rt:bg-background rt:text-b3 rt:text-foreground rt:whitespace-nowrap rt:shadow-ring-subtle rt:outline-none rt:select-none rt:transition-colors rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:data-placeholder:text-muted-foreground rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
11
+ const triggerVariants = cva("rt:flex rt:w-full rt:min-w-0 rt:items-center rt:justify-between rt:gap-2 rt:rounded-lg rt:bg-background rt:text-b3 rt:text-foreground rt:whitespace-nowrap rt:shadow-ring-subtle rt:outline-none rt:select-none rt:ring-fade rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:data-placeholder:text-muted-foreground rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
12
12
  variants: { size: {
13
13
  36: "rt:h-9 rt:pr-8 rt:pl-3",
14
14
  32: "rt:h-8 rt:pr-8 rt:pl-2.75"
@@ -38,7 +38,7 @@ function SheetContent({ children, side = "right", showCloseButton = true, closeL
38
38
  children: [children, showCloseButton && /* @__PURE__ */ jsx(Dialog.Close, {
39
39
  "data-slot": "sheet-close",
40
40
  "aria-label": closeLabel,
41
- className: "rt:absolute rt:top-5 rt:right-5 rt:flex rt:size-7 rt:items-center rt:justify-center rt:rounded-md rt:text-icon rt:transition-colors rt:hover:bg-primary-tint rt:focus-visible:focus-ring",
41
+ className: "rt:absolute rt:top-6 rt:right-6 rt:flex rt:size-7 rt:items-center rt:justify-center rt:rounded-md rt:text-icon rt:transition-colors rt:hover:bg-primary-tint rt:focus-visible:focus-ring",
42
42
  children: /* @__PURE__ */ jsx(Icon, {
43
43
  name: "x",
44
44
  size: 12
@@ -28,17 +28,20 @@ function Row({ item, active, depth, onSelect }) {
28
28
  const open = toggled && toggled.forActive === active ? toggled.open : containsActive(item, active);
29
29
  const cls = cn(ROW, depth > 0 && "rt:pl-8", isActive && "rt:bg-muted rt:text-primary rt:font-medium");
30
30
  const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
31
- item.icon && /* @__PURE__ */ jsx(Icon, {
32
- name: item.icon,
33
- size: 16,
34
- tone: isActive ? "primary" : "icon"
31
+ item.icon && /* @__PURE__ */ jsx("span", {
32
+ className: "rt:flex rt:size-6 rt:shrink-0 rt:items-center rt:justify-center",
33
+ children: /* @__PURE__ */ jsx(Icon, {
34
+ name: item.icon,
35
+ size: 16,
36
+ tone: isActive ? "primary" : "icon"
37
+ })
35
38
  }),
36
39
  /* @__PURE__ */ jsx("span", {
37
40
  className: "rt:min-w-0 rt:flex-1 rt:truncate",
38
41
  children: item.label
39
42
  }),
40
43
  item.count !== void 0 && /* @__PURE__ */ jsx("span", {
41
- className: "rt:text-c1 rt:text-foreground-subdued",
44
+ className: "rt:text-badge rt:text-foreground-subdued",
42
45
  children: item.count
43
46
  }),
44
47
  hasChildren && /* @__PURE__ */ jsx(Icon, {
@@ -107,13 +110,13 @@ function Section({ section, active, onSelect }) {
107
110
  })]
108
111
  });
109
112
  }
110
- function Panel({ label, sections, active, onSelect, account, footer }) {
113
+ function Panel({ label, sections, active, onSelect, account, footer, edge }) {
111
114
  return /* @__PURE__ */ jsxs("div", {
112
115
  "data-slot": "side-nav",
113
- className: "rt:flex rt:h-full rt:w-60 rt:shrink-0 rt:flex-col rt:bg-sidebar rt:text-sidebar-foreground",
116
+ className: cn("rt:flex rt:h-full rt:w-60 rt:shrink-0 rt:flex-col rt:bg-sidebar rt:text-sidebar-foreground", edge && "rt:border-r rt:border-border"),
114
117
  children: [
115
118
  account && /* @__PURE__ */ jsx("div", {
116
- className: "rt:flex rt:shrink-0 rt:items-start rt:px-3.5 rt:pt-2",
119
+ className: "rt:flex rt:h-15 rt:shrink-0 rt:items-start rt:px-3.5 rt:pt-2",
117
120
  children: /* @__PURE__ */ jsxs("button", {
118
121
  type: "button",
119
122
  onClick: account.onClick,
@@ -121,7 +124,6 @@ function Panel({ label, sections, active, onSelect, account, footer }) {
121
124
  children: [
122
125
  /* @__PURE__ */ jsx(Avatar, {
123
126
  name: account.name,
124
- shape: "square",
125
127
  size: "sm"
126
128
  }),
127
129
  /* @__PURE__ */ jsxs("span", {
@@ -166,7 +168,10 @@ function Panel({ label, sections, active, onSelect, account, footer }) {
166
168
  function SideNav(props) {
167
169
  const phone = useIsPhone();
168
170
  const shell = use(ShellNavContext);
169
- if (!phone) return /* @__PURE__ */ jsx(Panel, { ...props });
171
+ if (!phone) return /* @__PURE__ */ jsx(Panel, {
172
+ ...props,
173
+ edge: true
174
+ });
170
175
  const open = props.open ?? shell?.open ?? false;
171
176
  const onOpenChange = (next) => {
172
177
  props.onOpenChange?.(next);
@@ -12,7 +12,7 @@ function StatusPill({ tone = "neutral", children, ref, ...rest }) {
12
12
  ...rest,
13
13
  ref,
14
14
  "data-tone": tone,
15
- className: cn("rt:inline-flex rt:h-5 rt:w-fit rt:shrink-0 rt:items-center rt:justify-center rt:rounded-sm rt:border rt:px-2 rt:text-c2 rt:whitespace-nowrap", TONE_CLASSES[tone]),
15
+ className: cn("rt:inline-flex rt:h-5 rt:w-fit rt:shrink-0 rt:items-center rt:justify-center rt:rounded-sm rt:border rt:px-1.5 rt:text-b1 rt:whitespace-nowrap", TONE_CLASSES[tone]),
16
16
  children
17
17
  });
18
18
  }
@@ -9,11 +9,11 @@ import { Switch } from "@base-ui/react/switch";
9
9
  function Switch$1({ ...props }) {
10
10
  return /* @__PURE__ */ jsx(Switch.Root, {
11
11
  "data-slot": "switch",
12
- className: cn("rt:peer rt:relative rt:inline-flex rt:h-4.5 rt:w-8 rt:shrink-0 rt:cursor-pointer rt:items-center rt:justify-start rt:rounded-3xl rt:bg-background rt:shadow-ring-hairline rt:transition-colors rt:outline-none", "rt:after:absolute rt:after:-inset-x-1.5 rt:after:-inset-y-1.5", "rt:data-checked:justify-end rt:data-checked:bg-primary rt:data-checked:shadow-none", "rt:focus-visible:focus-ring rt:forced-outline", "rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid", "rt:data-disabled:cursor-not-allowed rt:data-disabled:opacity-50"),
12
+ className: cn("rt:peer rt:relative rt:inline-flex rt:h-4.5 rt:w-8 rt:shrink-0 rt:cursor-pointer rt:items-center rt:justify-start rt:rounded-md rt:bg-background rt:shadow-ring-hairline rt:transition-colors rt:outline-none", "rt:after:absolute rt:after:-inset-x-1.5 rt:after:-inset-y-1.5", "rt:data-checked:justify-end rt:data-checked:bg-primary rt:data-checked:shadow-none", "rt:focus-visible:focus-ring rt:forced-outline", "rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid", "rt:data-disabled:cursor-not-allowed rt:data-disabled:opacity-50"),
13
13
  ...props,
14
14
  children: /* @__PURE__ */ jsx(Switch.Thumb, {
15
15
  "data-slot": "switch-thumb",
16
- className: "rt:pointer-events-none rt:mx-0.5 rt:block rt:size-3.5 rt:rounded-3xl rt:forced-outline rt:bg-control rt:transition-colors rt:data-checked:bg-primary-foreground"
16
+ className: "rt:pointer-events-none rt:mx-0.5 rt:block rt:size-3.5 rt:rounded-sm rt:forced-outline rt:bg-control rt:transition-colors rt:data-checked:bg-primary-foreground"
17
17
  })
18
18
  });
19
19
  }
@@ -31,7 +31,7 @@ export type TableHeadProps = Omit<ComponentProps<'th'>, 'className' | 'style'> &
31
31
  /** Aligns the heading to the right, over a column of numbers. Defaults to false, which aligns it to the left. */
32
32
  numeric?: boolean;
33
33
  };
34
- /** A column heading: 12px uppercase text in the subdued colour. It is a column header unless `scope` says otherwise. */
34
+ /** A column heading: 12px uppercase text in the muted foreground, the design system's colour for column headings. It is a column header unless `scope` says otherwise. */
35
35
  export declare function TableHead({ numeric, scope, ...rest }: TableHeadProps): JSX.Element;
36
36
  /** The props of TableCell: the attributes of a td element, except className and style, and the alignment of its column. */
37
37
  export type TableCellProps = Omit<ComponentProps<'td'>, 'className' | 'style'> & {
@@ -62,11 +62,11 @@ function TableRow({ selected = false, ...rest }) {
62
62
  ...rest
63
63
  });
64
64
  }
65
- /** A column heading: 12px uppercase text in the subdued colour. It is a column header unless `scope` says otherwise. */
65
+ /** A column heading: 12px uppercase text in the muted foreground, the design system's colour for column headings. It is a column header unless `scope` says otherwise. */
66
66
  function TableHead({ numeric = false, scope = "col", ...rest }) {
67
67
  return /* @__PURE__ */ jsx("th", {
68
68
  scope,
69
- className: cn("rt:px-2 rt:align-middle rt:text-label rt:uppercase rt:whitespace-nowrap rt:text-foreground-subdued", numeric ? "rt:text-right" : "rt:text-left"),
69
+ className: cn("rt:px-2 rt:align-middle rt:text-label rt:uppercase rt:whitespace-nowrap rt:text-muted-foreground", numeric ? "rt:text-right" : "rt:text-left"),
70
70
  ...rest
71
71
  });
72
72
  }
@@ -84,4 +84,25 @@ function TableCaption(props) {
84
84
  ...props
85
85
  });
86
86
  }
87
- export { Table, TableBody, TableBox, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
87
+ /** The head cell of a selection column: 40px wide with its checkbox centred. For DataTable; not exported from the package. */
88
+ function SelectionHead({ children }) {
89
+ return /* @__PURE__ */ jsx("th", {
90
+ scope: "col",
91
+ className: "rt:w-10 rt:px-0 rt:align-middle",
92
+ children: /* @__PURE__ */ jsx("div", {
93
+ className: "rt:flex rt:justify-center",
94
+ children
95
+ })
96
+ });
97
+ }
98
+ /** The body cell of a selection column: 40px wide with its checkbox centred. For DataTable; not exported from the package. */
99
+ function SelectionCell({ children }) {
100
+ return /* @__PURE__ */ jsx("td", {
101
+ className: "rt:w-10 rt:px-0 rt:align-middle",
102
+ children: /* @__PURE__ */ jsx("div", {
103
+ className: "rt:flex rt:justify-center",
104
+ children
105
+ })
106
+ });
107
+ }
108
+ export { SelectionCell, SelectionHead, Table, TableBody, TableBox, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
@@ -1,10 +1,11 @@
1
1
  import { HTMLAttributes, JSX, Ref } from "react";
2
2
  /**
3
3
  * One of the design system's 13 text styles, named as in its type scale: display, the headings h1 and h5, the subtitles s1
4
- * and s2, the body styles b1 to b4, the captions c1 to c3, and the label, which is set in capitals. The design system's
4
+ * and s2, the body styles b1 to b4, the captions c1 to c3, and the label, which is set in capitals; and the two page 05 adds,
5
+ * section (a 16px section title) and badge (the 10px count badge). The design system's
5
6
  * two button styles are not among them: buttons take those.
6
7
  */
7
- export type TextVariant = 'display' | 'h1' | 'h5' | 's1' | 's2' | 'b1' | 'b2' | 'b3' | 'b4' | 'c1' | 'c2' | 'c3' | 'label';
8
+ export type TextVariant = 'display' | 'h1' | 'h5' | 's1' | 's2' | 'b1' | 'b2' | 'b3' | 'b4' | 'c1' | 'c2' | 'c3' | 'label' | 'section' | 'badge';
8
9
  /**
9
10
  * The colour of the text. Default is the body colour for b3 and b4 and the strong colour for every other style, as in the
10
11
  * design system. Inherit sets no colour, so the text takes the colour of its parent.
@@ -14,7 +14,9 @@ const VARIANT_CLASSES = {
14
14
  c1: "rt:text-c1",
15
15
  c2: "rt:text-c2",
16
16
  c3: "rt:text-c3",
17
- label: "rt:text-label rt:uppercase"
17
+ label: "rt:text-label rt:uppercase",
18
+ section: "rt:text-section",
19
+ badge: "rt:text-badge"
18
20
  };
19
21
  const TONE_CLASSES = {
20
22
  subdued: "rt:text-foreground-subdued",
@@ -2,7 +2,7 @@ import { cn } from "../../lib/cn.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { cva } from "class-variance-authority";
4
4
  // src/components/textarea/Textarea.tsx
5
- const textareaVariants = cva("rt:block rt:w-full rt:min-w-0 rt:resize-y rt:rounded-lg rt:bg-background rt:border-y-2 rt:border-transparent rt:px-3 rt:py-2 rt:text-b3 rt:text-foreground rt:placeholder:text-muted-foreground rt:shadow-ring-subtle rt:outline-none rt:transition-colors rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
5
+ const textareaVariants = cva("rt:block rt:w-full rt:min-w-0 rt:resize-y rt:rounded-lg rt:bg-background rt:border-y-2 rt:border-transparent rt:px-3 rt:py-2 rt:text-b3 rt:text-foreground rt:placeholder:text-muted-foreground rt:shadow-ring-subtle rt:outline-none rt:ring-fade rt:forced-outline rt:focus-visible:shadow-ring-focus rt:aria-invalid:shadow-ring-invalid rt:aria-invalid:focus-visible:shadow-ring-invalid rt:disabled:pointer-events-none rt:disabled:cursor-not-allowed rt:disabled:opacity-50", {
6
6
  variants: { size: {
7
7
  88: "rt:min-h-22",
8
8
  64: "rt:min-h-16"
@@ -81,7 +81,7 @@ function Toaster({ closeLabel = "Close notification" }) {
81
81
  toastManager: manager,
82
82
  children: /* @__PURE__ */ jsx(Toast.Portal, { children: /* @__PURE__ */ jsx(Toast.Viewport, {
83
83
  "data-slot": "toast-viewport",
84
- className: "rt:pointer-events-none rt:fixed rt:right-4 rt:bottom-4 rt:z-50 rt:flex rt:w-90 rt:max-w-full rt:flex-col rt:gap-2",
84
+ className: "rt:pointer-events-none rt:fixed rt:right-6 rt:bottom-6 rt:z-50 rt:flex rt:w-90 rt:max-w-full rt:flex-col rt:gap-2",
85
85
  children: /* @__PURE__ */ jsx(ToastList, { closeLabel })
86
86
  }) })
87
87
  });
@@ -13,6 +13,6 @@ export type TooltipTriggerProps = Omit<Tooltip.Trigger.Props, 'className' | 'sty
13
13
  export declare function TooltipTrigger(props: TooltipTriggerProps): import("react").JSX.Element;
14
14
  /** The props of TooltipContent: the popup props plus where the tooltip sits. */
15
15
  export type TooltipContentProps = Omit<Tooltip.Popup.Props, 'className' | 'style'> & Pick<Tooltip.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>;
16
- /** The tooltip text: a dark panel with light text, no shadow and no animation. It sits above the trigger by default. */
16
+ /** The tooltip text: a white panel with a 1px line-100 border and ink-800 text, like a popover, no shadow and no animation. It sits above the trigger by default. */
17
17
  export declare function TooltipContent({ side, sideOffset, align, alignOffset, children, ...props }: TooltipContentProps): import("react").JSX.Element;
18
18
  export { Tooltip$1 as Tooltip };
@@ -17,7 +17,7 @@ function Tooltip$1(props) {
17
17
  function TooltipTrigger(props) {
18
18
  return /* @__PURE__ */ jsx(Tooltip.Trigger, { ...props });
19
19
  }
20
- /** The tooltip text: a dark panel with light text, no shadow and no animation. It sits above the trigger by default. */
20
+ /** The tooltip text: a white panel with a 1px line-100 border and ink-800 text, like a popover, no shadow and no animation. It sits above the trigger by default. */
21
21
  function TooltipContent({ side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
22
22
  return /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
23
23
  align,
@@ -26,7 +26,7 @@ function TooltipContent({ side = "top", sideOffset = 4, align = "center", alignO
26
26
  sideOffset,
27
27
  className: "rt:isolate rt:z-50",
28
28
  children: /* @__PURE__ */ jsx(Tooltip.Popup, {
29
- className: cn("rt:inline-flex rt:w-fit rt:max-w-72 rt:items-center rt:gap-1.5 rt:rounded-md rt:bg-foreground rt:px-3 rt:py-1.5 rt:text-b1 rt:text-background"),
29
+ className: cn("rt:inline-flex rt:w-fit rt:max-w-72 rt:items-center rt:gap-1.5 rt:rounded-lg rt:border rt:border-border rt:bg-popover rt:px-3 rt:py-1.5 rt:text-b1 rt:text-popover-foreground"),
30
30
  ...props,
31
31
  children
32
32
  })
@@ -1,10 +1,8 @@
1
1
  import { JSX, ReactNode } from "react";
2
2
  /** The props of TopBar. */
3
3
  export type TopBarProps = {
4
- /** The logo, usually an image. When it is left out the bar shows the text wordmark instead (--rt-wordmark). */
4
+ /** The logo, usually the SVG the app gets from its designer. The bar draws no logo of its own: without one the slot is empty. */
5
5
  logo?: ReactNode;
6
- /** The accessible name of the text wordmark, shown when there is no logo. Defaults to Ratio. */
7
- wordmarkLabel?: string;
8
6
  /** The accessible name of the phone menu button that opens the side navigation. Defaults to Open navigation menu. */
9
7
  menuLabel?: string;
10
8
  /** The global search, for example GlobalSearch. It takes the free space in the middle. */
@@ -21,4 +19,4 @@ export type TopBarProps = {
21
19
  * desktop and 52px on a phone, with a hairline under it. The parts are slots, so the bar does not depend on their
22
20
  * components. Inside an AppShell with a side nav it shows a menu button on phones, which opens the side nav drawer.
23
21
  */
24
- export declare function TopBar({ logo, wordmarkLabel, menuLabel, search, actions, storeSwitcher, account }: TopBarProps): JSX.Element;
22
+ export declare function TopBar({ logo, menuLabel, search, actions, storeSwitcher, account }: TopBarProps): JSX.Element;
@@ -8,7 +8,7 @@ import { use } from "react";
8
8
  * desktop and 52px on a phone, with a hairline under it. The parts are slots, so the bar does not depend on their
9
9
  * components. Inside an AppShell with a side nav it shows a menu button on phones, which opens the side nav drawer.
10
10
  */
11
- function TopBar({ logo, wordmarkLabel = "Ratio", menuLabel = "Open navigation menu", search, actions, storeSwitcher, account }) {
11
+ function TopBar({ logo, menuLabel = "Open navigation menu", search, actions, storeSwitcher, account }) {
12
12
  const nav = use(ShellNavContext);
13
13
  return /* @__PURE__ */ jsxs("header", {
14
14
  className: "rt:flex rt:h-13 rt:md:h-15 rt:shrink-0 rt:items-center rt:gap-3 rt:border-b rt:border-border rt:bg-page rt:px-3 rt:md:px-6 rt:font-sans",
@@ -28,12 +28,7 @@ function TopBar({ logo, wordmarkLabel = "Ratio", menuLabel = "Open navigation me
28
28
  }),
29
29
  /* @__PURE__ */ jsx("div", {
30
30
  className: "rt:flex rt:shrink-0 rt:items-center rt:text-b4 rt:text-foreground",
31
- children: logo ?? /* @__PURE__ */ jsx("span", {
32
- "data-slot": "wordmark",
33
- role: "img",
34
- "aria-label": wordmarkLabel,
35
- className: "rt:wordmark"
36
- })
31
+ children: logo
37
32
  }),
38
33
  /* @__PURE__ */ jsx("div", {
39
34
  className: "rt:flex rt:min-w-0 rt:flex-1 rt:justify-center",
package/dist/lib/cn.js CHANGED
@@ -21,7 +21,8 @@ const twMerge = extendTailwindMerge({
21
21
  "label",
22
22
  "btn",
23
23
  "btn-sm",
24
- "otp"
24
+ "section",
25
+ "badge"
25
26
  ],
26
27
  shadow: [
27
28
  "ring-subtle",
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-content:""}}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/inter-latin-ext-400-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/inter-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./fonts/inter-latin-ext-500-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./fonts/inter-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./fonts/inter-latin-ext-600-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./fonts/inter-latin-600-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--rt-white:#fff;--rt-blue-600:#3f53fe;--rt-blue-700:#2e40e3;--rt-blue-100:#dde0ff;--rt-ink-900:#131927;--rt-ink-800:#1a2c44;--rt-ink-700:#273951;--rt-ink-600:#344054;--rt-ink-550:#3c4f69;--rt-ink-500:#545969;--rt-ink-450:#667691;--rt-ink-800-a60:#1a2c4499;--rt-line-100:#ecf1f6;--rt-line-150:#dde5ee;--rt-line-200:#e5e7ea;--rt-line-250:#e8e8e8;--rt-green-100:#eafcdd;--rt-green-300:#a8f170;--rt-green-800:#217005;--rt-amber-100:#fff3e2;--rt-amber-400:#f7a62d;--rt-amber-600:#e88b00;--rt-typeface:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--rt-page:var(--rt-white);--rt-background:var(--rt-white);--rt-card:var(--rt-white);--rt-card-foreground:var(--rt-ink-800);--rt-popover:var(--rt-white);--rt-popover-foreground:var(--rt-ink-800);--rt-foreground:var(--rt-ink-800);--rt-foreground-strong:var(--rt-ink-900);--rt-foreground-emphasis:var(--rt-ink-600);--rt-foreground-subdued:var(--rt-ink-550);--rt-muted-foreground:var(--rt-ink-450);--rt-icon:var(--rt-ink-500);--rt-tab-inactive:var(--rt-ink-800-a60);--rt-primary:var(--rt-blue-600);--rt-primary-foreground:var(--rt-white);--rt-primary-hover:var(--rt-blue-700);--rt-primary-tint:var(--rt-blue-100);--rt-secondary:transparent;--rt-secondary-foreground:var(--rt-ink-700);--rt-muted:var(--rt-line-100);--rt-accent:var(--rt-line-100);--rt-accent-foreground:var(--rt-ink-900);--rt-border:var(--rt-line-100);--rt-border-strong:var(--rt-line-250);--rt-divider:var(--rt-line-200);--rt-input:var(--rt-line-100);--rt-control:var(--rt-line-150);--rt-ring:var(--rt-blue-600);--rt-success:var(--rt-green-800);--rt-success-tint:var(--rt-green-100);--rt-success-border:var(--rt-green-300);--rt-warning:var(--rt-amber-600);--rt-warning-tint:var(--rt-amber-100);--rt-warning-border:var(--rt-amber-400);--rt-sidebar:var(--rt-white);--rt-sidebar-foreground:var(--rt-ink-800);--rt-sidebar-primary:var(--rt-blue-600);--rt-sidebar-primary-foreground:var(--rt-white);--rt-sidebar-accent:var(--rt-line-100);--rt-sidebar-accent-foreground:var(--rt-ink-800);--rt-sidebar-border:var(--rt-line-100);--rt-sidebar-ring:var(--rt-blue-600);--rt-chart-1:var(--rt-blue-600);--rt-chart-2:var(--rt-ink-800);--rt-chart-3:var(--rt-ink-450);--rt-chart-4:var(--rt-blue-100);--rt-chart-5:var(--rt-line-150);--rt-error:var(--rt-ink-900);--rt-error-icon:var(--rt-ink-900);--rt-destructive:var(--rt-ink-900);--rt-destructive-fill:transparent;--rt-destructive-foreground:var(--rt-ink-700);--rt-destructive-border:var(--rt-line-250);--rt-destructive-hover:var(--rt-blue-100);--rt-alert-critical-foreground:var(--rt-ink-900);--rt-alert-critical-background:transparent;--rt-alert-critical-border:var(--rt-line-250);--rt-status-neutral-foreground:var(--rt-ink-800);--rt-status-neutral-background:transparent;--rt-status-neutral-border:transparent;--rt-chip-background:var(--rt-line-100);--rt-chip-foreground:var(--rt-ink-800);--rt-chip-border:transparent;--rt-focus-ring:var(--rt-blue-600);--rt-focus-ring-width:2px;--rt-focus-ring-offset:2px;--rt-skeleton:var(--rt-line-100);--rt-progress:var(--rt-blue-600);--rt-progress-track:var(--rt-line-100);--rt-progress-height:2px;--rt-loading-animation:none;--rt-spinner-animation:none;--rt-wordmark:"RAT/O";--rt-sidenav-row-h:30px;--rt-sidenav-pad:20px;--rt-sidenav-gap:28px;--rt-sidenav-label-h:26px}[class^=rt\:],[class*=" rt:"],[class^=rt\:]:before,[class*=" rt:"]:before,[class^=rt\:]:after,[class*=" rt:"]:after{box-sizing:border-box;color:inherit;font:inherit;font-family:var(--rt-typeface);letter-spacing:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;appearance:none;background-color:#0000;border:0 solid;margin:0;padding:0;list-style:none}:root,:host{--rt-spacing:4px;--rt-aspect-video:16 / 9;--rt-default-transition-duration:.12s;--rt-default-transition-timing-function:ease;--rt-font-weight-medium:500;--rt-font-weight-semibold:600;--rt-radius-sm:4px;--rt-radius-md:6px;--rt-radius-lg:8px;--rt-radius-3xl:24px;--rt-container-content:1152px;--rt-text-display:48px;--rt-text-display--line-height:58px;--rt-text-display--font-weight:600;--rt-text-display--letter-spacing:0px;--rt-text-h1:34px;--rt-text-h1--line-height:40px;--rt-text-h1--font-weight:600;--rt-text-h1--letter-spacing:0px;--rt-text-h5:28px;--rt-text-h5--line-height:34px;--rt-text-h5--font-weight:600;--rt-text-h5--letter-spacing:0px;--rt-text-s1:28px;--rt-text-s1--line-height:34px;--rt-text-s1--font-weight:600;--rt-text-s1--letter-spacing:0px;--rt-text-s2:24px;--rt-text-s2--line-height:28px;--rt-text-s2--font-weight:600;--rt-text-s2--letter-spacing:0px;--rt-text-b1:12px;--rt-text-b1--line-height:20px;--rt-text-b1--font-weight:400;--rt-text-b1--letter-spacing:0px;--rt-text-b2:12px;--rt-text-b2--line-height:20px;--rt-text-b2--font-weight:500;--rt-text-b2--letter-spacing:0px;--rt-text-b3:14px;--rt-text-b3--line-height:20px;--rt-text-b3--font-weight:400;--rt-text-b3--letter-spacing:-.15px;--rt-text-b4:14px;--rt-text-b4--line-height:20px;--rt-text-b4--font-weight:600;--rt-text-b4--letter-spacing:-.15px;--rt-text-c1:12px;--rt-text-c1--line-height:16px;--rt-text-c1--font-weight:400;--rt-text-c1--letter-spacing:0px;--rt-text-c2:12px;--rt-text-c2--line-height:16px;--rt-text-c2--font-weight:500;--rt-text-c2--letter-spacing:0px;--rt-text-c3:14px;--rt-text-c3--line-height:16px;--rt-text-c3--font-weight:500;--rt-text-c3--letter-spacing:0px;--rt-text-label:12px;--rt-text-label--line-height:16px;--rt-text-label--font-weight:500;--rt-text-label--letter-spacing:0px;--rt-text-btn:14px;--rt-text-btn--line-height:16px;--rt-text-btn--font-weight:400;--rt-text-btn--letter-spacing:0px;--rt-text-otp:18px;--rt-text-otp--line-height:20px;--rt-text-otp--font-weight:600;--rt-text-otp--letter-spacing:0px;--rt-shadow-ring-subtle:inset 0 0 0 1px var(--rt-input), 0 0 0 1px var(--rt-input);--rt-shadow-ring-focus:inset 0 0 0 1px var(--rt-ring), 0 0 0 1px var(--rt-input);--rt-shadow-ring-strong:inset 0 0 0 1px var(--rt-border-strong);--rt-shadow-ring-hairline:inset 0 0 0 .5px var(--rt-control), 0 0 0 .5px var(--rt-control);--rt-shadow-ring-accent-hairline:inset 0 0 0 .5px var(--rt-primary), 0 0 0 .5px var(--rt-primary);--rt-shadow-ring-destructive:inset 0 0 0 1px var(--rt-destructive-border);--rt-shadow-ring-invalid:inset 0 0 0 1px var(--rt-destructive)}.rt\:pointer-events-auto{pointer-events:auto}.rt\:pointer-events-none{pointer-events:none}.rt\:invisible{visibility:hidden}.rt\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rt\:absolute{position:absolute}.rt\:fixed{position:fixed}.rt\:relative{position:relative}.rt\:inset-0{inset:0}.rt\:inset-x-0{inset-inline:0}.rt\:inset-x-2{inset-inline:calc(var(--rt-spacing) * 2)}.rt\:inset-y-0{inset-block:0}.rt\:top-0{top:0}.rt\:top-1{top:var(--rt-spacing)}.rt\:top-4{top:calc(var(--rt-spacing) * 4)}.rt\:top-5{top:calc(var(--rt-spacing) * 5)}.rt\:right-3{right:calc(var(--rt-spacing) * 3)}.rt\:right-4{right:calc(var(--rt-spacing) * 4)}.rt\:right-5{right:calc(var(--rt-spacing) * 5)}.rt\:bottom-2{bottom:calc(var(--rt-spacing) * 2)}.rt\:bottom-4{bottom:calc(var(--rt-spacing) * 4)}.rt\:left-0{left:0}.rt\:left-1{left:var(--rt-spacing)}.rt\:left-3{left:calc(var(--rt-spacing) * 3)}.rt\:isolate{isolation:isolate}.rt\:z-10{z-index:10}.rt\:z-50{z-index:50}.rt\:order-first{order:-9999}.rt\:order-last{order:9999}.rt\:m-0{margin:0}.rt\:m-auto{margin:auto}.rt\:mx-0\.5{margin-inline:calc(var(--rt-spacing) * .5)}.rt\:mx-auto{margin-inline:auto}.rt\:my-0\.5{margin-block:calc(var(--rt-spacing) * .5)}.rt\:my-1\.5{margin-block:calc(var(--rt-spacing) * 1.5)}.rt\:mt-0\.5{margin-top:calc(var(--rt-spacing) * .5)}.rt\:mt-1{margin-top:var(--rt-spacing)}.rt\:mt-auto{margin-top:auto}.rt\:-mr-px{margin-right:-1px}.rt\:-mb-px{margin-bottom:-1px}.rt\:-ml-1\.5{margin-left:calc(var(--rt-spacing) * -1.5)}.rt\:ml-2{margin-left:calc(var(--rt-spacing) * 2)}.rt\:ml-auto{margin-left:auto}.rt\:block{display:block}.rt\:flex{display:flex}.rt\:grid{display:grid}.rt\:hidden{display:none}.rt\:inline-block{display:inline-block}.rt\:inline-flex{display:inline-flex}.rt\:aspect-square{aspect-ratio:1}.rt\:aspect-video{aspect-ratio:var(--rt-aspect-video)}.rt\:size-1\.5{width:calc(var(--rt-spacing) * 1.5);height:calc(var(--rt-spacing) * 1.5)}.rt\:size-2{width:calc(var(--rt-spacing) * 2);height:calc(var(--rt-spacing) * 2)}.rt\:size-2\.5{width:calc(var(--rt-spacing) * 2.5);height:calc(var(--rt-spacing) * 2.5)}.rt\:size-3\.5{width:calc(var(--rt-spacing) * 3.5);height:calc(var(--rt-spacing) * 3.5)}.rt\:size-4{width:calc(var(--rt-spacing) * 4);height:calc(var(--rt-spacing) * 4)}.rt\:size-5{width:calc(var(--rt-spacing) * 5);height:calc(var(--rt-spacing) * 5)}.rt\:size-6{width:calc(var(--rt-spacing) * 6);height:calc(var(--rt-spacing) * 6)}.rt\:size-7{width:calc(var(--rt-spacing) * 7);height:calc(var(--rt-spacing) * 7)}.rt\:size-8{width:calc(var(--rt-spacing) * 8);height:calc(var(--rt-spacing) * 8)}.rt\:size-9{width:calc(var(--rt-spacing) * 9);height:calc(var(--rt-spacing) * 9)}.rt\:size-10{width:calc(var(--rt-spacing) * 10);height:calc(var(--rt-spacing) * 10)}.rt\:size-11{width:calc(var(--rt-spacing) * 11);height:calc(var(--rt-spacing) * 11)}.rt\:size-24{width:calc(var(--rt-spacing) * 24);height:calc(var(--rt-spacing) * 24)}.rt\:size-full{width:100%;height:100%}.rt\:h-4{height:calc(var(--rt-spacing) * 4)}.rt\:h-4\.5{height:calc(var(--rt-spacing) * 4.5)}.rt\:h-5{height:calc(var(--rt-spacing) * 5)}.rt\:h-7{height:calc(var(--rt-spacing) * 7)}.rt\:h-8{height:calc(var(--rt-spacing) * 8)}.rt\:h-9{height:calc(var(--rt-spacing) * 9)}.rt\:h-11{height:calc(var(--rt-spacing) * 11)}.rt\:h-12{height:calc(var(--rt-spacing) * 12)}.rt\:h-13{height:calc(var(--rt-spacing) * 13)}.rt\:h-24{height:calc(var(--rt-spacing) * 24)}.rt\:h-fit{height:fit-content}.rt\:h-full{height:100%}.rt\:h-progress{height:var(--rt-progress-height)}.rt\:h-px{height:1px}.rt\:h-sidenav-label{height:var(--rt-sidenav-label-h)}.rt\:h-sidenav-row{height:var(--rt-sidenav-row-h)}.rt\:max-h-72{max-height:calc(var(--rt-spacing) * 72)}.rt\:max-h-80{max-height:calc(var(--rt-spacing) * 80)}.rt\:max-h-available{max-height:var(--available-height)}.rt\:max-h-full{max-height:100%}.rt\:min-h-0{min-height:0}.rt\:min-h-9{min-height:calc(var(--rt-spacing) * 9)}.rt\:min-h-11{min-height:calc(var(--rt-spacing) * 11)}.rt\:min-h-16{min-height:calc(var(--rt-spacing) * 16)}.rt\:min-h-22{min-height:calc(var(--rt-spacing) * 22)}.rt\:w-0{width:0}.rt\:w-1{width:var(--rt-spacing)}.rt\:w-2{width:calc(var(--rt-spacing) * 2)}.rt\:w-7{width:calc(var(--rt-spacing) * 7)}.rt\:w-8{width:calc(var(--rt-spacing) * 8)}.rt\:w-14{width:calc(var(--rt-spacing) * 14)}.rt\:w-24{width:calc(var(--rt-spacing) * 24)}.rt\:w-40{width:calc(var(--rt-spacing) * 40)}.rt\:w-60{width:calc(var(--rt-spacing) * 60)}.rt\:w-72{width:calc(var(--rt-spacing) * 72)}.rt\:w-90{width:calc(var(--rt-spacing) * 90)}.rt\:w-120{width:calc(var(--rt-spacing) * 120)}.rt\:w-anchor{width:var(--anchor-width)}.rt\:w-fit{width:fit-content}.rt\:w-full{width:100%}.rt\:w-px{width:1px}.rt\:max-w-40{max-width:calc(var(--rt-spacing) * 40)}.rt\:max-w-64{max-width:calc(var(--rt-spacing) * 64)}.rt\:max-w-72{max-width:calc(var(--rt-spacing) * 72)}.rt\:max-w-available{max-width:var(--available-width)}.rt\:max-w-content{max-width:var(--rt-container-content)}.rt\:max-w-full{max-width:100%}.rt\:min-w-0{min-width:0}.rt\:min-w-5{min-width:calc(var(--rt-spacing) * 5)}.rt\:min-w-16{min-width:calc(var(--rt-spacing) * 16)}.rt\:min-w-26{min-width:calc(var(--rt-spacing) * 26)}.rt\:min-w-32{min-width:calc(var(--rt-spacing) * 32)}.rt\:min-w-40{min-width:calc(var(--rt-spacing) * 40)}.rt\:min-w-anchor{min-width:var(--anchor-width)}.rt\:flex-1{flex:1}.rt\:flex-auto{flex:auto}.rt\:shrink-0{flex-shrink:0}.rt\:caption-bottom{caption-side:bottom}.rt\:border-collapse{border-collapse:collapse}.rt\:rotate-0{rotate:0deg}.rt\:drawer-swipe{transform:translate3d(var(--drawer-swipe-movement-x,0), calc(var(--drawer-snap-point-offset,0px) + var(--drawer-swipe-movement-y,0px)), 0)}.rt\:skeleton{background-color:var(--rt-skeleton);animation:var(--rt-loading-animation)}@media (prefers-reduced-motion:reduce){.rt\:skeleton{animation:none}}.rt\:spinner-motion{animation:var(--rt-spinner-animation)}@media (prefers-reduced-motion:reduce){.rt\:spinner-motion{animation:none}}.rt\:cursor-default{cursor:default}.rt\:cursor-grab{cursor:grab}.rt\:cursor-grabbing{cursor:grabbing}.rt\:cursor-help{cursor:help}.rt\:cursor-pointer{cursor:pointer}.rt\:cursor-text{cursor:text}.rt\:touch-none{touch-action:none}.rt\:resize-y{resize:vertical}.rt\:list-none{list-style-type:none}.rt\:flex-col{flex-direction:column}.rt\:flex-wrap{flex-wrap:wrap}.rt\:items-baseline{align-items:baseline}.rt\:items-center{align-items:center}.rt\:items-end{align-items:flex-end}.rt\:items-start{align-items:flex-start}.rt\:items-stretch{align-items:stretch}.rt\:justify-between{justify-content:space-between}.rt\:justify-center{justify-content:center}.rt\:justify-end{justify-content:flex-end}.rt\:justify-start{justify-content:flex-start}.rt\:gap-0{gap:0}.rt\:gap-0\.5{gap:calc(var(--rt-spacing) * .5)}.rt\:gap-1{gap:var(--rt-spacing)}.rt\:gap-1\.5{gap:calc(var(--rt-spacing) * 1.5)}.rt\:gap-1\.75{gap:calc(var(--rt-spacing) * 1.75)}.rt\:gap-2{gap:calc(var(--rt-spacing) * 2)}.rt\:gap-2\.75{gap:calc(var(--rt-spacing) * 2.75)}.rt\:gap-3{gap:calc(var(--rt-spacing) * 3)}.rt\:gap-3\.5{gap:calc(var(--rt-spacing) * 3.5)}.rt\:gap-4{gap:calc(var(--rt-spacing) * 4)}.rt\:gap-6{gap:calc(var(--rt-spacing) * 6)}.rt\:gap-8{gap:calc(var(--rt-spacing) * 8)}.rt\:gap-20{gap:calc(var(--rt-spacing) * 20)}.rt\:gap-px{gap:1px}.rt\:sidenav-gap{gap:var(--rt-sidenav-gap)}.rt\:gap-x-3{column-gap:calc(var(--rt-spacing) * 3)}.rt\:gap-y-2{row-gap:calc(var(--rt-spacing) * 2)}.rt\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rt\:overflow-hidden{overflow:hidden}.rt\:overflow-x-auto{overflow-x:auto}.rt\:overflow-y-auto{overflow-y:auto}.rt\:overscroll-contain{overscroll-behavior:contain}.rt\:rounded-3xl{border-radius:var(--rt-radius-3xl)}.rt\:rounded-lg{border-radius:var(--rt-radius-lg)}.rt\:rounded-md{border-radius:var(--rt-radius-md)}.rt\:rounded-none{border-radius:0}.rt\:rounded-sm{border-radius:var(--rt-radius-sm)}.rt\:rounded-l-md{border-top-left-radius:var(--rt-radius-md);border-bottom-left-radius:var(--rt-radius-md)}.rt\:rounded-r-md{border-top-right-radius:var(--rt-radius-md);border-bottom-right-radius:var(--rt-radius-md)}.rt\:border{border-style:var(--tw-border-style);border-width:1px}.rt\:border-0{border-style:var(--tw-border-style);border-width:0}.rt\:border-2{border-style:var(--tw-border-style);border-width:2px}.rt\:border-y-2{border-block-style:var(--tw-border-style);border-block-width:2px}.rt\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.rt\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.rt\:border-dashed{--tw-border-style:dashed;border-style:dashed}.rt\:border-alert-critical-border{border-color:var(--rt-alert-critical-border)}.rt\:border-border{border-color:var(--rt-border)}.rt\:border-border-strong{border-color:var(--rt-border-strong)}.rt\:border-chart-1{border-color:var(--rt-chart-1)}.rt\:border-chart-2{border-color:var(--rt-chart-2)}.rt\:border-chart-3{border-color:var(--rt-chart-3)}.rt\:border-chart-4{border-color:var(--rt-chart-4)}.rt\:border-chart-5{border-color:var(--rt-chart-5)}.rt\:border-chip-border{border-color:var(--rt-chip-border)}.rt\:border-divider{border-color:var(--rt-divider)}.rt\:border-muted-foreground{border-color:var(--rt-muted-foreground)}.rt\:border-primary-tint{border-color:var(--rt-primary-tint)}.rt\:border-progress-track{border-color:var(--rt-progress-track)}.rt\:border-status-neutral-border{border-color:var(--rt-status-neutral-border)}.rt\:border-success-border{border-color:var(--rt-success-border)}.rt\:border-transparent{border-color:#0000}.rt\:border-warning-border{border-color:var(--rt-warning-border)}.rt\:border-t-progress{border-top-color:var(--rt-progress)}.rt\:bg-alert-critical-background{background-color:var(--rt-alert-critical-background)}.rt\:bg-background{background-color:var(--rt-background)}.rt\:bg-border-strong{background-color:var(--rt-border-strong)}.rt\:bg-chart-1{background-color:var(--rt-chart-1)}.rt\:bg-chart-2{background-color:var(--rt-chart-2)}.rt\:bg-chart-3{background-color:var(--rt-chart-3)}.rt\:bg-chart-4{background-color:var(--rt-chart-4)}.rt\:bg-chart-5{background-color:var(--rt-chart-5)}.rt\:bg-chip-background{background-color:var(--rt-chip-background)}.rt\:bg-control{background-color:var(--rt-control)}.rt\:bg-current{background-color:currentColor}.rt\:bg-destructive-fill{background-color:var(--rt-destructive-fill)}.rt\:bg-divider{background-color:var(--rt-divider)}.rt\:bg-foreground{background-color:var(--rt-foreground)}.rt\:bg-muted{background-color:var(--rt-muted)}.rt\:bg-muted-foreground{background-color:var(--rt-muted-foreground)}.rt\:bg-page{background-color:var(--rt-page)}.rt\:bg-popover{background-color:var(--rt-popover)}.rt\:bg-primary{background-color:var(--rt-primary)}.rt\:bg-primary-foreground{background-color:var(--rt-primary-foreground)}.rt\:bg-primary-tint{background-color:var(--rt-primary-tint)}.rt\:bg-progress{background-color:var(--rt-progress)}.rt\:bg-progress-track{background-color:var(--rt-progress-track)}.rt\:bg-secondary{background-color:var(--rt-secondary)}.rt\:bg-sidebar{background-color:var(--rt-sidebar)}.rt\:bg-status-neutral-background{background-color:var(--rt-status-neutral-background)}.rt\:bg-success-tint{background-color:var(--rt-success-tint)}.rt\:bg-transparent{background-color:#0000}.rt\:bg-warning-tint{background-color:var(--rt-warning-tint)}.rt\:recharts .recharts-cartesian-axis-tick text{fill:var(--rt-muted-foreground)}.rt\:recharts .recharts-cartesian-grid line[stroke=\#ccc],.rt\:recharts .recharts-polar-grid [stroke=\#ccc],.rt\:recharts .recharts-reference-line [stroke=\#ccc],.rt\:recharts .recharts-curve.recharts-tooltip-cursor{stroke:var(--rt-border)}.rt\:recharts .recharts-rectangle.recharts-tooltip-cursor,.rt\:recharts .recharts-radial-bar-background-sector{fill:var(--rt-muted)}.rt\:recharts :is(.recharts-surface,.recharts-layer,.recharts-sector){outline:none}.rt\:recharts :is(.recharts-surface,.recharts-layer,.recharts-sector):focus-visible{outline:var(--rt-focus-ring-width) solid var(--rt-focus-ring);outline-offset:var(--rt-focus-ring-offset)}.rt\:object-cover{object-fit:cover}.rt\:p-0{padding:0}.rt\:p-1{padding:var(--rt-spacing)}.rt\:p-2{padding:calc(var(--rt-spacing) * 2)}.rt\:p-3{padding:calc(var(--rt-spacing) * 3)}.rt\:p-6{padding:calc(var(--rt-spacing) * 6)}.rt\:p-px{padding:1px}.rt\:px-1{padding-inline:var(--rt-spacing)}.rt\:px-1\.5{padding-inline:calc(var(--rt-spacing) * 1.5)}.rt\:px-2{padding-inline:calc(var(--rt-spacing) * 2)}.rt\:px-2\.75{padding-inline:calc(var(--rt-spacing) * 2.75)}.rt\:px-3{padding-inline:calc(var(--rt-spacing) * 3)}.rt\:px-3\.5{padding-inline:calc(var(--rt-spacing) * 3.5)}.rt\:px-6{padding-inline:calc(var(--rt-spacing) * 6)}.rt\:px-7{padding-inline:calc(var(--rt-spacing) * 7)}.rt\:sidenav-pad-x{padding-inline:var(--rt-sidenav-pad)}.rt\:py-1{padding-block:var(--rt-spacing)}.rt\:py-1\.5{padding-block:calc(var(--rt-spacing) * 1.5)}.rt\:py-2{padding-block:calc(var(--rt-spacing) * 2)}.rt\:py-2\.75{padding-block:calc(var(--rt-spacing) * 2.75)}.rt\:py-3{padding-block:calc(var(--rt-spacing) * 3)}.rt\:py-6{padding-block:calc(var(--rt-spacing) * 6)}.rt\:pt-2{padding-top:calc(var(--rt-spacing) * 2)}.rt\:pt-3{padding-top:calc(var(--rt-spacing) * 3)}.rt\:sidenav-pad-top{padding-top:var(--rt-sidenav-pad)}.rt\:pr-0\.5{padding-right:calc(var(--rt-spacing) * .5)}.rt\:pr-1\.5{padding-right:calc(var(--rt-spacing) * 1.5)}.rt\:pr-3{padding-right:calc(var(--rt-spacing) * 3)}.rt\:pr-8{padding-right:calc(var(--rt-spacing) * 8)}.rt\:pr-20{padding-right:calc(var(--rt-spacing) * 20)}.rt\:pb-2\.75{padding-bottom:calc(var(--rt-spacing) * 2.75)}.rt\:pb-3{padding-bottom:calc(var(--rt-spacing) * 3)}.rt\:pb-6{padding-bottom:calc(var(--rt-spacing) * 6)}.rt\:sidenav-pad-bottom{padding-bottom:var(--rt-sidenav-pad)}.rt\:pl-2{padding-left:calc(var(--rt-spacing) * 2)}.rt\:pl-2\.75{padding-left:calc(var(--rt-spacing) * 2.75)}.rt\:pl-3{padding-left:calc(var(--rt-spacing) * 3)}.rt\:pl-8{padding-left:calc(var(--rt-spacing) * 8)}.rt\:text-center{text-align:center}.rt\:text-left{text-align:left}.rt\:text-right{text-align:right}.rt\:align-baseline{vertical-align:baseline}.rt\:align-middle{vertical-align:middle}.rt\:font-sans{font-family:var(--rt-typeface)}.rt\:text-b1{font-size:var(--rt-text-b1);line-height:var(--tw-leading,var(--rt-text-b1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b1--font-weight))}.rt\:text-b2{font-size:var(--rt-text-b2);line-height:var(--tw-leading,var(--rt-text-b2--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b2--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b2--font-weight))}.rt\:text-b3{font-size:var(--rt-text-b3);line-height:var(--tw-leading,var(--rt-text-b3--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b3--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b3--font-weight))}.rt\:text-b4{font-size:var(--rt-text-b4);line-height:var(--tw-leading,var(--rt-text-b4--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b4--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b4--font-weight))}.rt\:text-btn{font-size:var(--rt-text-btn);line-height:var(--tw-leading,var(--rt-text-btn--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-btn--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-btn--font-weight))}.rt\:text-c1{font-size:var(--rt-text-c1);line-height:var(--tw-leading,var(--rt-text-c1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-c1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-c1--font-weight))}.rt\:text-c2{font-size:var(--rt-text-c2);line-height:var(--tw-leading,var(--rt-text-c2--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-c2--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-c2--font-weight))}.rt\:text-c3{font-size:var(--rt-text-c3);line-height:var(--tw-leading,var(--rt-text-c3--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-c3--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-c3--font-weight))}.rt\:text-display{font-size:var(--rt-text-display);line-height:var(--tw-leading,var(--rt-text-display--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-display--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-display--font-weight))}.rt\:text-h1{font-size:var(--rt-text-h1);line-height:var(--tw-leading,var(--rt-text-h1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-h1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-h1--font-weight))}.rt\:text-h5{font-size:var(--rt-text-h5);line-height:var(--tw-leading,var(--rt-text-h5--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-h5--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-h5--font-weight))}.rt\:text-label{font-size:var(--rt-text-label);line-height:var(--tw-leading,var(--rt-text-label--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-label--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-label--font-weight))}.rt\:text-otp{font-size:var(--rt-text-otp);line-height:var(--tw-leading,var(--rt-text-otp--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-otp--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-otp--font-weight))}.rt\:text-s1{font-size:var(--rt-text-s1);line-height:var(--tw-leading,var(--rt-text-s1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-s1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-s1--font-weight))}.rt\:text-s2{font-size:var(--rt-text-s2);line-height:var(--tw-leading,var(--rt-text-s2--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-s2--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-s2--font-weight))}.rt\:font-medium{--tw-font-weight:var(--rt-font-weight-medium);font-weight:var(--rt-font-weight-medium)}.rt\:whitespace-nowrap{white-space:nowrap}.rt\:text-alert-critical-foreground{color:var(--rt-alert-critical-foreground)}.rt\:text-background{color:var(--rt-background)}.rt\:text-chip-foreground{color:var(--rt-chip-foreground)}.rt\:text-destructive-foreground{color:var(--rt-destructive-foreground)}.rt\:text-error{color:var(--rt-error)}.rt\:text-error-icon{color:var(--rt-error-icon)}.rt\:text-foreground{color:var(--rt-foreground)}.rt\:text-foreground-strong{color:var(--rt-foreground-strong)}.rt\:text-foreground-subdued{color:var(--rt-foreground-subdued)}.rt\:text-icon{color:var(--rt-icon)}.rt\:text-inherit{color:inherit}.rt\:text-muted-foreground{color:var(--rt-muted-foreground)}.rt\:text-popover-foreground{color:var(--rt-popover-foreground)}.rt\:text-primary{color:var(--rt-primary)}.rt\:text-primary-foreground{color:var(--rt-primary-foreground)}.rt\:text-secondary-foreground{color:var(--rt-secondary-foreground)}.rt\:text-sidebar-foreground{color:var(--rt-sidebar-foreground)}.rt\:text-status-neutral-foreground{color:var(--rt-status-neutral-foreground)}.rt\:text-success{color:var(--rt-success)}.rt\:text-tab-inactive{color:var(--rt-tab-inactive)}.rt\:text-warning{color:var(--rt-warning)}.rt\:uppercase{text-transform:uppercase}.rt\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.rt\:underline{text-decoration-line:underline}.rt\:decoration-dotted{text-decoration-style:dotted}.rt\:decoration-1{text-decoration-thickness:1px}.rt\:underline-offset-4{text-underline-offset:4px}.rt\:opacity-50{opacity:.5}.rt\:shadow-ring-destructive{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:shadow-ring-hairline{--tw-shadow:inset 0 0 0 .5px var(--tw-shadow-color,var(--rt-control)), 0 0 0 .5px var(--tw-shadow-color,var(--rt-control));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:shadow-ring-strong{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-border-strong));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:shadow-ring-subtle{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-input)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (forced-colors:active){.rt\:forced-outline{outline:1px solid #0000}.rt\:forced-outline:focus-visible{outline-width:var(--rt-focus-ring-width);outline-offset:var(--rt-focus-ring-offset)}}.rt\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.rt\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.rt\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rt-default-transition-duration))}.rt\:wordmark:before{content:var(--rt-wordmark)}.rt\:outline-none{--tw-outline-style:none;outline-style:none}.rt\:select-none{-webkit-user-select:none;user-select:none}.rt\:select-text{-webkit-user-select:text;user-select:text}.rt\:not-first\:border-t:not(:first-child){border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:not-last\:border-b:not(:last-child){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.rt\:not-last\:border-divider:not(:last-child){border-color:var(--rt-divider)}.rt\:not-empty\:p-3:not(:empty){padding:calc(var(--rt-spacing) * 3)}.rt\:not-aria-disabled\:cursor-pointer:not([aria-disabled=true]){cursor:pointer}.rt\:group-first\:rounded-l-md:is(:where(.rt\:group):first-child *){border-top-left-radius:var(--rt-radius-md);border-bottom-left-radius:var(--rt-radius-md)}.rt\:group-last\:rounded-r-md:is(:where(.rt\:group):last-child *){border-top-right-radius:var(--rt-radius-md);border-bottom-right-radius:var(--rt-radius-md)}.rt\:group-aria-expanded\/accordion-trigger\:rotate-180:is(:where(.rt\:group\/accordion-trigger)[aria-expanded=true] *){rotate:180deg}.rt\:group-aria-invalid\/radio-group\:shadow-ring-invalid:is(:where(.rt\:group\/radio-group)[aria-invalid=true] *){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:group-data-empty\/combobox-content\:flex:is(:where(.rt\:group\/combobox-content)[data-empty] *){display:flex}.rt\:group-data-panel-open\:hidden:is(:where(.rt\:group)[data-panel-open] *){display:none}.rt\:group-data-panel-open\:inline:is(:where(.rt\:group)[data-panel-open] *){display:inline}.rt\:group-data-swiping\/drawer-popup\:select-none:is(:where(.rt\:group\/drawer-popup)[data-swiping] *){-webkit-user-select:none;user-select:none}.rt\:group-swipe-up\/drawer-popup\:order-last:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up]) *),.rt\:group-swipe-left\/drawer-popup\:order-last:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left]) *){order:9999}.rt\:group-swipe-x\/drawer-popup\:h-12:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left],[data-swipe-direction=right]) *){height:calc(var(--rt-spacing) * 12)}.rt\:group-swipe-x\/drawer-popup\:w-1:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left],[data-swipe-direction=right]) *){width:var(--rt-spacing)}.rt\:group-swipe-x\/drawer-popup\:w-5:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left],[data-swipe-direction=right]) *){width:calc(var(--rt-spacing) * 5)}.rt\:group-swipe-y\/drawer-popup\:h-1:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up],[data-swipe-direction=down]) *){height:var(--rt-spacing)}.rt\:group-swipe-y\/drawer-popup\:h-5:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up],[data-swipe-direction=down]) *){height:calc(var(--rt-spacing) * 5)}.rt\:group-swipe-y\/drawer-popup\:w-12:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up],[data-swipe-direction=down]) *){width:calc(var(--rt-spacing) * 12)}.rt\:placeholder\:text-muted-foreground::placeholder{color:var(--rt-muted-foreground)}.rt\:after\:absolute:after{content:var(--tw-content);position:absolute}.rt\:after\:-inset-1\.25:after{content:var(--tw-content);inset:calc(var(--rt-spacing) * -1.25)}.rt\:after\:-inset-x-1\.5:after{content:var(--tw-content);inset-inline:calc(var(--rt-spacing) * -1.5)}.rt\:after\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.rt\:after\:-inset-y-1\.5:after{content:var(--tw-content);inset-block:calc(var(--rt-spacing) * -1.5)}.rt\:after\:-bottom-px:after{content:var(--tw-content);bottom:-1px}.rt\:after\:h-0\.5:after{content:var(--tw-content);height:calc(var(--rt-spacing) * .5)}.rt\:after\:bg-primary:after{content:var(--tw-content);background-color:var(--rt-primary)}.rt\:after\:opacity-0:after{content:var(--tw-content);opacity:0}.rt\:first\:rounded-l-md:first-child{border-top-left-radius:var(--rt-radius-md);border-bottom-left-radius:var(--rt-radius-md)}.rt\:last\:rounded-r-md:last-child{border-top-right-radius:var(--rt-radius-md);border-bottom-right-radius:var(--rt-radius-md)}.rt\:last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.rt\:empty\:hidden:empty{display:none}.rt\:focus-within\:shadow-ring-focus:focus-within{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-ring)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.rt\:hover\:bg-destructive-hover:hover{background-color:var(--rt-destructive-hover)}.rt\:hover\:bg-foreground-subdued:hover{background-color:var(--rt-foreground-subdued)}.rt\:hover\:bg-muted:hover{background-color:var(--rt-muted)}.rt\:hover\:bg-primary-hover:hover{background-color:var(--rt-primary-hover)}.rt\:hover\:bg-primary-tint:hover{background-color:var(--rt-primary-tint)}.rt\:hover\:text-foreground:hover{color:var(--rt-foreground)}.rt\:hover\:underline:hover{text-decoration-line:underline}.rt\:not-aria-disabled\:hover\:bg-muted:not([aria-disabled=true]):hover{background-color:var(--rt-muted)}}.rt\:focus-visible\:shadow-ring-focus:focus-visible{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-ring)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:focus-visible\:focus-ring:focus-visible{outline:var(--rt-focus-ring-width) solid var(--rt-focus-ring);outline-offset:var(--rt-focus-ring-offset)}.rt\:active\:cursor-grabbing:active{cursor:grabbing}.rt\:active\:bg-destructive-hover:active{background-color:var(--rt-destructive-hover)}.rt\:active\:bg-muted:active{background-color:var(--rt-muted)}.rt\:active\:bg-primary-hover:active{background-color:var(--rt-primary-hover)}.rt\:active\:bg-primary-tint:active{background-color:var(--rt-primary-tint)}.rt\:active\:underline:active{text-decoration-line:underline}.rt\:disabled\:pointer-events-none:disabled{pointer-events:none}.rt\:disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.rt\:disabled\:opacity-50:disabled,.rt\:has-disabled\:opacity-50:has(:disabled){opacity:.5}.rt\:has-aria-invalid\:shadow-ring-invalid:has([aria-invalid=true]),.rt\:has-aria-invalid\:focus-within\:shadow-ring-invalid:has([aria-invalid=true]):focus-within{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:aria-disabled\:cursor-default[aria-disabled=true]{cursor:default}.rt\:aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.rt\:aria-invalid\:shadow-ring-invalid[aria-invalid=true],.rt\:aria-invalid\:focus-visible\:shadow-ring-invalid[aria-invalid=true]:focus-visible{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-drag-active\:border-primary[data-drag-active]{border-color:var(--rt-primary)}.rt\:data-drag-active\:bg-primary-tint[data-drag-active]{background-color:var(--rt-primary-tint)}.rt\:data-dragging\:opacity-50[data-dragging]{opacity:.5}.rt\:data-empty\:py-0[data-empty]{padding-block:0}.rt\:data-highlighted\:bg-accent[data-highlighted]{background-color:var(--rt-accent)}.rt\:data-highlighted\:bg-destructive-hover[data-highlighted]{background-color:var(--rt-destructive-hover)}.rt\:data-highlighted\:bg-muted[data-highlighted]{background-color:var(--rt-muted)}.rt\:data-highlighted\:text-accent-foreground[data-highlighted]{color:var(--rt-accent-foreground)}.rt\:data-highlighted\:text-destructive-foreground[data-highlighted]{color:var(--rt-destructive-foreground)}.rt\:data-indeterminate\:w-1\/3[data-indeterminate]{width:33.3333%}.rt\:data-indeterminate\:loading-motion[data-indeterminate]{animation:var(--rt-loading-animation)}@media (prefers-reduced-motion:reduce){.rt\:data-indeterminate\:loading-motion[data-indeterminate]{animation:none}}.rt\:data-indeterminate\:bg-primary[data-indeterminate]{background-color:var(--rt-primary)}.rt\:data-indeterminate\:shadow-none[data-indeterminate]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.rt\:data-indeterminate\:hover\:bg-primary-hover[data-indeterminate]:hover{background-color:var(--rt-primary-hover)}}.rt\:aria-invalid\:data-indeterminate\:shadow-ring-invalid[aria-invalid=true][data-indeterminate]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--rt-muted-foreground)}.rt\:data-popup-open\:bg-accent[data-popup-open]{background-color:var(--rt-accent)}.rt\:data-pressed\:border-0[data-pressed]{border-style:var(--tw-border-style);border-width:0}.rt\:data-pressed\:px-2\.75[data-pressed]{padding-inline:calc(var(--rt-spacing) * 2.75)}.rt\:data-pressed\:font-semibold[data-pressed]{--tw-font-weight:var(--rt-font-weight-semibold);font-weight:var(--rt-font-weight-semibold)}.rt\:data-pressed\:text-primary[data-pressed]{color:var(--rt-primary)}.rt\:data-pressed\:shadow-ring-accent-hairline[data-pressed]{--tw-shadow:inset 0 0 0 .5px var(--tw-shadow-color,var(--rt-primary)), 0 0 0 .5px var(--tw-shadow-color,var(--rt-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (min-width:48rem){.rt\:md\:hidden{display:none}.rt\:md\:inline{display:inline}.rt\:md\:h-15{height:calc(var(--rt-spacing) * 15)}.rt\:md\:flex-row{flex-direction:row}.rt\:md\:px-6{padding-inline:calc(var(--rt-spacing) * 6)}}.rt\:data-checked\:justify-end:where([data-checked]:not([data-checked=false])){justify-content:flex-end}.rt\:data-checked\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--rt-primary)}.rt\:data-checked\:bg-primary-foreground:where([data-checked]:not([data-checked=false])){background-color:var(--rt-primary-foreground)}.rt\:data-checked\:shadow-none:where([data-checked]:not([data-checked=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.rt\:data-checked\:hover\:bg-primary-hover:where([data-checked]:not([data-checked=false])):hover{background-color:var(--rt-primary-hover)}}.rt\:aria-invalid\:data-checked\:shadow-ring-invalid[aria-invalid=true]:where([data-checked]:not([data-checked=false])){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-selected\:bg-muted:where([data-selected]:not([data-selected=false])){background-color:var(--rt-muted)}.rt\:data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.rt\:data-disabled\:cursor-default:where([data-disabled]:not([data-disabled=false])){cursor:default}.rt\:data-disabled\:cursor-not-allowed:where([data-disabled]:not([data-disabled=false])){cursor:not-allowed}.rt\:data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.rt\:data-active\:font-semibold:where([data-active]:not([data-active=false])){--tw-font-weight:var(--rt-font-weight-semibold);font-weight:var(--rt-font-weight-semibold)}.rt\:data-active\:text-primary:where([data-active]:not([data-active=false])){color:var(--rt-primary)}.rt\:data-active\:shadow-ring-focus:where([data-active]:not([data-active=false])){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-ring)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-active\:after\:opacity-100:where([data-active]:not([data-active=false])):after{content:var(--tw-content);opacity:1}.rt\:aria-invalid\:data-active\:shadow-ring-invalid[aria-invalid=true]:where([data-active]:not([data-active=false])){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-horizontal\:h-1\.5:where([data-orientation=horizontal]){height:calc(var(--rt-spacing) * 1.5)}.rt\:data-horizontal\:h-px:where([data-orientation=horizontal]){height:1px}.rt\:data-horizontal\:min-h-px:where([data-orientation=horizontal]){min-height:1px}.rt\:data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.rt\:data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.rt\:data-vertical\:h-full:where([data-orientation=vertical]){height:100%}.rt\:data-vertical\:w-1\.5:where([data-orientation=vertical]){width:calc(var(--rt-spacing) * 1.5)}.rt\:data-vertical\:w-px:where([data-orientation=vertical]){width:1px}.rt\:data-vertical\:shrink-0:where([data-orientation=vertical]){flex-shrink:0}.rt\:data-vertical\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.rt\:side-bottom\:inset-x-0:where([data-side=bottom]){inset-inline:0}.rt\:side-bottom\:bottom-0:where([data-side=bottom]){bottom:0}.rt\:side-bottom\:rounded-t-3xl:where([data-side=bottom]){border-top-left-radius:var(--rt-radius-3xl);border-top-right-radius:var(--rt-radius-3xl)}.rt\:side-bottom\:border-x:where([data-side=bottom]){border-inline-style:var(--tw-border-style);border-inline-width:1px}.rt\:side-bottom\:border-t:where([data-side=bottom]){border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:side-left\:inset-y-0:where([data-side=left]){inset-block:0}.rt\:side-left\:left-0:where([data-side=left]){left:0}.rt\:side-left\:w-3\/4:where([data-side=left]){width:75%}.rt\:side-left\:border-r:where([data-side=left]){border-right-style:var(--tw-border-style);border-right-width:1px}@media (min-width:40rem){.rt\:side-left\:sm\:w-96:where([data-side=left]){width:calc(var(--rt-spacing) * 96)}}.rt\:side-right\:inset-y-0:where([data-side=right]){inset-block:0}.rt\:side-right\:right-0:where([data-side=right]){right:0}.rt\:side-right\:w-3\/4:where([data-side=right]){width:75%}.rt\:side-right\:border-l:where([data-side=right]){border-left-style:var(--tw-border-style);border-left-width:1px}@media (min-width:40rem){.rt\:side-right\:sm\:w-96:where([data-side=right]){width:calc(var(--rt-spacing) * 96)}}.rt\:swipe-up\:top-0:where([data-swipe-direction=up]){top:0}.rt\:swipe-up\:rounded-b-3xl:where([data-swipe-direction=up]){border-bottom-right-radius:var(--rt-radius-3xl);border-bottom-left-radius:var(--rt-radius-3xl)}.rt\:swipe-up\:border-x:where([data-swipe-direction=up]){border-inline-style:var(--tw-border-style);border-inline-width:1px}.rt\:swipe-up\:border-b:where([data-swipe-direction=up]){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.rt\:swipe-down\:bottom-0:where([data-swipe-direction=down]){bottom:0}.rt\:swipe-down\:rounded-t-3xl:where([data-swipe-direction=down]){border-top-left-radius:var(--rt-radius-3xl);border-top-right-radius:var(--rt-radius-3xl)}.rt\:swipe-down\:border-x:where([data-swipe-direction=down]){border-inline-style:var(--tw-border-style);border-inline-width:1px}.rt\:swipe-down\:border-t:where([data-swipe-direction=down]){border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:swipe-left\:left-0:where([data-swipe-direction=left]){left:0}.rt\:swipe-left\:rounded-r-3xl:where([data-swipe-direction=left]){border-top-right-radius:var(--rt-radius-3xl);border-bottom-right-radius:var(--rt-radius-3xl)}.rt\:swipe-left\:border-y:where([data-swipe-direction=left]){border-block-style:var(--tw-border-style);border-block-width:1px}.rt\:swipe-left\:border-r:where([data-swipe-direction=left]){border-right-style:var(--tw-border-style);border-right-width:1px}.rt\:swipe-right\:right-0:where([data-swipe-direction=right]){right:0}.rt\:swipe-right\:rounded-l-3xl:where([data-swipe-direction=right]){border-top-left-radius:var(--rt-radius-3xl);border-bottom-left-radius:var(--rt-radius-3xl)}.rt\:swipe-right\:border-y:where([data-swipe-direction=right]){border-block-style:var(--tw-border-style);border-block-width:1px}.rt\:swipe-right\:border-l:where([data-swipe-direction=right]){border-left-style:var(--tw-border-style);border-left-width:1px}.rt\:swipe-x\:inset-y-0:where([data-swipe-direction=left],[data-swipe-direction=right]){inset-block:0}.rt\:swipe-x\:w-3\/4:where([data-swipe-direction=left],[data-swipe-direction=right]){width:75%}.rt\:swipe-x\:flex-row:where([data-swipe-direction=left],[data-swipe-direction=right]){flex-direction:row}@media (min-width:40rem){.rt\:swipe-x\:sm\:w-96:where([data-swipe-direction=left],[data-swipe-direction=right]){width:calc(var(--rt-spacing) * 96)}}.rt\:swipe-y\:inset-x-0:where([data-swipe-direction=up],[data-swipe-direction=down]){inset-inline:0}.rt\:svg\:text-icon svg{color:var(--rt-icon)}@keyframes rt-spin{to{transform:rotate(360deg)}}@keyframes rt-pulse{50%{opacity:.5}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-content:""}}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/inter-latin-ext-400-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/inter-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./fonts/inter-latin-ext-500-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./fonts/inter-latin-500-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./fonts/inter-latin-ext-600-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./fonts/inter-latin-600-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--rt-white:#fff;--rt-blue-600:#3f53fe;--rt-blue-700:#2e40e3;--rt-blue-100:#dde0ff;--rt-ink-900:#131927;--rt-ink-800:#1a2c44;--rt-ink-700:#273951;--rt-ink-600:#344054;--rt-ink-550:#3c4f69;--rt-ink-500:#545969;--rt-ink-450:#667691;--rt-ink-800-a60:#1a2c4499;--rt-line-100:#ecf1f6;--rt-line-150:#dde5ee;--rt-line-200:#e5e7ea;--rt-line-250:#e8e8e8;--rt-green-100:#eafcdd;--rt-green-300:#a8f170;--rt-green-800:#217005;--rt-amber-100:#fff3e2;--rt-amber-400:#f7a62d;--rt-amber-600:#e88b00;--rt-typeface:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--rt-page:var(--rt-white);--rt-background:var(--rt-white);--rt-card:var(--rt-white);--rt-card-foreground:var(--rt-ink-800);--rt-popover:var(--rt-white);--rt-popover-foreground:var(--rt-ink-800);--rt-foreground:var(--rt-ink-800);--rt-foreground-strong:var(--rt-ink-900);--rt-foreground-emphasis:var(--rt-ink-600);--rt-foreground-subdued:var(--rt-ink-550);--rt-muted-foreground:var(--rt-ink-450);--rt-icon:var(--rt-ink-500);--rt-tab-inactive:var(--rt-ink-800-a60);--rt-primary:var(--rt-blue-600);--rt-primary-foreground:var(--rt-white);--rt-primary-hover:var(--rt-blue-700);--rt-primary-tint:var(--rt-blue-100);--rt-secondary:transparent;--rt-secondary-foreground:var(--rt-ink-700);--rt-muted:var(--rt-line-100);--rt-accent:var(--rt-line-100);--rt-accent-foreground:var(--rt-ink-900);--rt-border:var(--rt-line-100);--rt-border-strong:var(--rt-line-250);--rt-divider:var(--rt-line-200);--rt-input:var(--rt-line-100);--rt-control:var(--rt-line-150);--rt-ring:var(--rt-blue-600);--rt-success:var(--rt-green-800);--rt-success-tint:var(--rt-green-100);--rt-success-border:var(--rt-green-300);--rt-warning:var(--rt-amber-600);--rt-warning-tint:var(--rt-amber-100);--rt-warning-border:var(--rt-amber-400);--rt-sidebar:var(--rt-white);--rt-sidebar-foreground:var(--rt-ink-800);--rt-sidebar-primary:var(--rt-blue-600);--rt-sidebar-primary-foreground:var(--rt-white);--rt-sidebar-accent:var(--rt-line-100);--rt-sidebar-accent-foreground:var(--rt-ink-800);--rt-sidebar-border:var(--rt-line-100);--rt-sidebar-ring:var(--rt-blue-600);--rt-chart-1:var(--rt-blue-600);--rt-chart-2:var(--rt-ink-800);--rt-chart-3:var(--rt-ink-450);--rt-chart-4:var(--rt-blue-100);--rt-chart-5:var(--rt-line-150);--rt-error:var(--rt-ink-900);--rt-error-icon:var(--rt-ink-900);--rt-destructive:var(--rt-ink-900);--rt-destructive-fill:transparent;--rt-destructive-foreground:var(--rt-ink-700);--rt-destructive-border:var(--rt-line-250);--rt-destructive-hover:var(--rt-blue-100);--rt-alert-critical-foreground:var(--rt-ink-900);--rt-alert-critical-background:transparent;--rt-alert-critical-border:var(--rt-line-250);--rt-status-neutral-foreground:var(--rt-ink-800);--rt-status-neutral-background:transparent;--rt-status-neutral-border:transparent;--rt-chip-background:var(--rt-line-100);--rt-chip-foreground:var(--rt-ink-800);--rt-chip-border:transparent;--rt-focus-ring:var(--rt-blue-600);--rt-focus-ring-width:2px;--rt-focus-ring-offset:2px;--rt-skeleton:var(--rt-line-100);--rt-progress:var(--rt-blue-600);--rt-progress-track:var(--rt-line-100);--rt-progress-height:2px;--rt-loading-animation:none;--rt-spinner-animation:none;--rt-sidenav-row-h:30px;--rt-sidenav-pad:20px;--rt-sidenav-pad-bottom:48px;--rt-sidenav-gap:28px;--rt-sidenav-label-h:26px}[class^=rt\:],[class*=" rt:"],[class^=rt\:]:before,[class*=" rt:"]:before,[class^=rt\:]:after,[class*=" rt:"]:after{box-sizing:border-box;color:inherit;font:inherit;font-family:var(--rt-typeface);letter-spacing:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;appearance:none;background-color:#0000;border:0 solid;margin:0;padding:0;list-style:none}:root,:host{--rt-spacing:4px;--rt-aspect-video:16 / 9;--rt-default-transition-duration:.12s;--rt-default-transition-timing-function:ease;--rt-font-weight-medium:500;--rt-font-weight-semibold:600;--rt-radius-sm:4px;--rt-radius-md:6px;--rt-radius-lg:8px;--rt-radius-3xl:24px;--rt-container-content:1152px;--rt-text-display:48px;--rt-text-display--line-height:58px;--rt-text-display--font-weight:600;--rt-text-display--letter-spacing:0px;--rt-text-h1:34px;--rt-text-h1--line-height:40px;--rt-text-h1--font-weight:600;--rt-text-h1--letter-spacing:0px;--rt-text-h5:28px;--rt-text-h5--line-height:34px;--rt-text-h5--font-weight:600;--rt-text-h5--letter-spacing:0px;--rt-text-s1:28px;--rt-text-s1--line-height:34px;--rt-text-s1--font-weight:600;--rt-text-s1--letter-spacing:0px;--rt-text-s2:24px;--rt-text-s2--line-height:28px;--rt-text-s2--font-weight:600;--rt-text-s2--letter-spacing:0px;--rt-text-b1:12px;--rt-text-b1--line-height:20px;--rt-text-b1--font-weight:400;--rt-text-b1--letter-spacing:0px;--rt-text-b2:12px;--rt-text-b2--line-height:20px;--rt-text-b2--font-weight:500;--rt-text-b2--letter-spacing:0px;--rt-text-b3:14px;--rt-text-b3--line-height:20px;--rt-text-b3--font-weight:400;--rt-text-b3--letter-spacing:-.15px;--rt-text-b4:14px;--rt-text-b4--line-height:20px;--rt-text-b4--font-weight:600;--rt-text-b4--letter-spacing:-.15px;--rt-text-c1:12px;--rt-text-c1--line-height:16px;--rt-text-c1--font-weight:400;--rt-text-c1--letter-spacing:0px;--rt-text-c2:12px;--rt-text-c2--line-height:16px;--rt-text-c2--font-weight:500;--rt-text-c2--letter-spacing:0px;--rt-text-c3:14px;--rt-text-c3--line-height:16px;--rt-text-c3--font-weight:500;--rt-text-c3--letter-spacing:0px;--rt-text-label:12px;--rt-text-label--line-height:16px;--rt-text-label--font-weight:500;--rt-text-label--letter-spacing:0px;--rt-text-btn:14px;--rt-text-btn--line-height:16px;--rt-text-btn--font-weight:400;--rt-text-btn--letter-spacing:0px;--rt-text-section:16px;--rt-text-section--line-height:24px;--rt-text-section--font-weight:600;--rt-text-section--letter-spacing:0px;--rt-text-badge:10px;--rt-text-badge--line-height:12px;--rt-text-badge--font-weight:600;--rt-text-badge--letter-spacing:0px;--rt-shadow-ring-subtle:inset 0 0 0 1px var(--rt-input), 0 0 0 1px var(--rt-input);--rt-shadow-ring-focus:inset 0 0 0 1px var(--rt-ring), 0 0 0 1px var(--rt-input);--rt-shadow-ring-strong:inset 0 0 0 1px var(--rt-border-strong);--rt-shadow-ring-hairline:inset 0 0 0 .5px var(--rt-control), 0 0 0 .5px var(--rt-control);--rt-shadow-ring-accent-hairline:inset 0 0 0 .5px var(--rt-primary), 0 0 0 .5px var(--rt-primary);--rt-shadow-ring-destructive:inset 0 0 0 1px var(--rt-destructive-border);--rt-shadow-ring-invalid:inset 0 0 0 1px var(--rt-destructive)}.rt\:pointer-events-auto{pointer-events:auto}.rt\:pointer-events-none{pointer-events:none}.rt\:invisible{visibility:hidden}.rt\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rt\:absolute{position:absolute}.rt\:fixed{position:fixed}.rt\:relative{position:relative}.rt\:inset-0{inset:0}.rt\:inset-x-0{inset-inline:0}.rt\:inset-x-2{inset-inline:calc(var(--rt-spacing) * 2)}.rt\:inset-y-0{inset-block:0}.rt\:top-0{top:0}.rt\:top-1{top:var(--rt-spacing)}.rt\:top-6{top:calc(var(--rt-spacing) * 6)}.rt\:right-3{right:calc(var(--rt-spacing) * 3)}.rt\:right-6{right:calc(var(--rt-spacing) * 6)}.rt\:bottom-2{bottom:calc(var(--rt-spacing) * 2)}.rt\:bottom-6{bottom:calc(var(--rt-spacing) * 6)}.rt\:left-0{left:0}.rt\:left-1{left:var(--rt-spacing)}.rt\:left-3{left:calc(var(--rt-spacing) * 3)}.rt\:isolate{isolation:isolate}.rt\:z-10{z-index:10}.rt\:z-50{z-index:50}.rt\:order-first{order:-9999}.rt\:order-last{order:9999}.rt\:m-0{margin:0}.rt\:m-auto{margin:auto}.rt\:mx-0\.5{margin-inline:calc(var(--rt-spacing) * .5)}.rt\:mx-auto{margin-inline:auto}.rt\:my-0\.5{margin-block:calc(var(--rt-spacing) * .5)}.rt\:my-1\.5{margin-block:calc(var(--rt-spacing) * 1.5)}.rt\:mt-0\.5{margin-top:calc(var(--rt-spacing) * .5)}.rt\:mt-1{margin-top:var(--rt-spacing)}.rt\:mt-auto{margin-top:auto}.rt\:-mr-px{margin-right:-1px}.rt\:-mb-px{margin-bottom:-1px}.rt\:-ml-1\.5{margin-left:calc(var(--rt-spacing) * -1.5)}.rt\:ml-2{margin-left:calc(var(--rt-spacing) * 2)}.rt\:ml-auto{margin-left:auto}.rt\:block{display:block}.rt\:flex{display:flex}.rt\:grid{display:grid}.rt\:hidden{display:none}.rt\:inline-block{display:inline-block}.rt\:inline-flex{display:inline-flex}.rt\:aspect-square{aspect-ratio:1}.rt\:aspect-video{aspect-ratio:var(--rt-aspect-video)}.rt\:size-1\.5{width:calc(var(--rt-spacing) * 1.5);height:calc(var(--rt-spacing) * 1.5)}.rt\:size-2{width:calc(var(--rt-spacing) * 2);height:calc(var(--rt-spacing) * 2)}.rt\:size-2\.5{width:calc(var(--rt-spacing) * 2.5);height:calc(var(--rt-spacing) * 2.5)}.rt\:size-3\.5{width:calc(var(--rt-spacing) * 3.5);height:calc(var(--rt-spacing) * 3.5)}.rt\:size-4{width:calc(var(--rt-spacing) * 4);height:calc(var(--rt-spacing) * 4)}.rt\:size-5{width:calc(var(--rt-spacing) * 5);height:calc(var(--rt-spacing) * 5)}.rt\:size-6{width:calc(var(--rt-spacing) * 6);height:calc(var(--rt-spacing) * 6)}.rt\:size-7{width:calc(var(--rt-spacing) * 7);height:calc(var(--rt-spacing) * 7)}.rt\:size-8{width:calc(var(--rt-spacing) * 8);height:calc(var(--rt-spacing) * 8)}.rt\:size-9{width:calc(var(--rt-spacing) * 9);height:calc(var(--rt-spacing) * 9)}.rt\:size-10{width:calc(var(--rt-spacing) * 10);height:calc(var(--rt-spacing) * 10)}.rt\:size-11{width:calc(var(--rt-spacing) * 11);height:calc(var(--rt-spacing) * 11)}.rt\:size-24{width:calc(var(--rt-spacing) * 24);height:calc(var(--rt-spacing) * 24)}.rt\:size-full{width:100%;height:100%}.rt\:h-4{height:calc(var(--rt-spacing) * 4)}.rt\:h-4\.5{height:calc(var(--rt-spacing) * 4.5)}.rt\:h-5{height:calc(var(--rt-spacing) * 5)}.rt\:h-7{height:calc(var(--rt-spacing) * 7)}.rt\:h-8{height:calc(var(--rt-spacing) * 8)}.rt\:h-9{height:calc(var(--rt-spacing) * 9)}.rt\:h-11{height:calc(var(--rt-spacing) * 11)}.rt\:h-12{height:calc(var(--rt-spacing) * 12)}.rt\:h-13{height:calc(var(--rt-spacing) * 13)}.rt\:h-15{height:calc(var(--rt-spacing) * 15)}.rt\:h-24{height:calc(var(--rt-spacing) * 24)}.rt\:h-fit{height:fit-content}.rt\:h-full{height:100%}.rt\:h-progress{height:var(--rt-progress-height)}.rt\:h-px{height:1px}.rt\:h-sidenav-label{height:var(--rt-sidenav-label-h)}.rt\:h-sidenav-row{height:var(--rt-sidenav-row-h)}.rt\:max-h-72{max-height:calc(var(--rt-spacing) * 72)}.rt\:max-h-80{max-height:calc(var(--rt-spacing) * 80)}.rt\:max-h-available{max-height:var(--available-height)}.rt\:max-h-full{max-height:100%}.rt\:min-h-0{min-height:0}.rt\:min-h-9{min-height:calc(var(--rt-spacing) * 9)}.rt\:min-h-11{min-height:calc(var(--rt-spacing) * 11)}.rt\:min-h-16{min-height:calc(var(--rt-spacing) * 16)}.rt\:min-h-22{min-height:calc(var(--rt-spacing) * 22)}.rt\:w-0{width:0}.rt\:w-1{width:var(--rt-spacing)}.rt\:w-2{width:calc(var(--rt-spacing) * 2)}.rt\:w-6{width:calc(var(--rt-spacing) * 6)}.rt\:w-7{width:calc(var(--rt-spacing) * 7)}.rt\:w-8{width:calc(var(--rt-spacing) * 8)}.rt\:w-10{width:calc(var(--rt-spacing) * 10)}.rt\:w-14{width:calc(var(--rt-spacing) * 14)}.rt\:w-24{width:calc(var(--rt-spacing) * 24)}.rt\:w-40{width:calc(var(--rt-spacing) * 40)}.rt\:w-60{width:calc(var(--rt-spacing) * 60)}.rt\:w-72{width:calc(var(--rt-spacing) * 72)}.rt\:w-90{width:calc(var(--rt-spacing) * 90)}.rt\:w-120{width:calc(var(--rt-spacing) * 120)}.rt\:w-anchor{width:var(--anchor-width)}.rt\:w-fit{width:fit-content}.rt\:w-full{width:100%}.rt\:w-px{width:1px}.rt\:max-w-40{max-width:calc(var(--rt-spacing) * 40)}.rt\:max-w-64{max-width:calc(var(--rt-spacing) * 64)}.rt\:max-w-72{max-width:calc(var(--rt-spacing) * 72)}.rt\:max-w-available{max-width:var(--available-width)}.rt\:max-w-content{max-width:var(--rt-container-content)}.rt\:max-w-full{max-width:100%}.rt\:min-w-0{min-width:0}.rt\:min-w-5{min-width:calc(var(--rt-spacing) * 5)}.rt\:min-w-16{min-width:calc(var(--rt-spacing) * 16)}.rt\:min-w-26\.5{min-width:calc(var(--rt-spacing) * 26.5)}.rt\:min-w-32{min-width:calc(var(--rt-spacing) * 32)}.rt\:min-w-40{min-width:calc(var(--rt-spacing) * 40)}.rt\:min-w-anchor{min-width:var(--anchor-width)}.rt\:flex-1{flex:1}.rt\:flex-auto{flex:auto}.rt\:shrink-0{flex-shrink:0}.rt\:caption-bottom{caption-side:bottom}.rt\:border-collapse{border-collapse:collapse}.rt\:rotate-0{rotate:0deg}.rt\:drawer-swipe{transform:translate3d(var(--drawer-swipe-movement-x,0), calc(var(--drawer-snap-point-offset,0px) + var(--drawer-swipe-movement-y,0px)), 0)}.rt\:skeleton{background-color:var(--rt-skeleton);animation:var(--rt-loading-animation)}@media (prefers-reduced-motion:reduce){.rt\:skeleton{animation:none}}.rt\:spinner-motion{animation:var(--rt-spinner-animation)}@media (prefers-reduced-motion:reduce){.rt\:spinner-motion{animation:none}}.rt\:cursor-default{cursor:default}.rt\:cursor-grab{cursor:grab}.rt\:cursor-grabbing{cursor:grabbing}.rt\:cursor-help{cursor:help}.rt\:cursor-pointer{cursor:pointer}.rt\:cursor-text{cursor:text}.rt\:touch-none{touch-action:none}.rt\:resize-y{resize:vertical}.rt\:list-none{list-style-type:none}.rt\:flex-col{flex-direction:column}.rt\:flex-wrap{flex-wrap:wrap}.rt\:items-baseline{align-items:baseline}.rt\:items-center{align-items:center}.rt\:items-end{align-items:flex-end}.rt\:items-start{align-items:flex-start}.rt\:items-stretch{align-items:stretch}.rt\:justify-between{justify-content:space-between}.rt\:justify-center{justify-content:center}.rt\:justify-end{justify-content:flex-end}.rt\:justify-start{justify-content:flex-start}.rt\:gap-0{gap:0}.rt\:gap-0\.5{gap:calc(var(--rt-spacing) * .5)}.rt\:gap-1{gap:var(--rt-spacing)}.rt\:gap-1\.5{gap:calc(var(--rt-spacing) * 1.5)}.rt\:gap-1\.75{gap:calc(var(--rt-spacing) * 1.75)}.rt\:gap-2{gap:calc(var(--rt-spacing) * 2)}.rt\:gap-2\.75{gap:calc(var(--rt-spacing) * 2.75)}.rt\:gap-3{gap:calc(var(--rt-spacing) * 3)}.rt\:gap-3\.5{gap:calc(var(--rt-spacing) * 3.5)}.rt\:gap-6{gap:calc(var(--rt-spacing) * 6)}.rt\:gap-8{gap:calc(var(--rt-spacing) * 8)}.rt\:gap-20{gap:calc(var(--rt-spacing) * 20)}.rt\:gap-px{gap:1px}.rt\:sidenav-gap{gap:var(--rt-sidenav-gap)}.rt\:gap-x-3{column-gap:calc(var(--rt-spacing) * 3)}.rt\:gap-y-2{row-gap:calc(var(--rt-spacing) * 2)}.rt\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rt\:overflow-hidden{overflow:hidden}.rt\:overflow-visible{overflow:visible}.rt\:overflow-x-auto{overflow-x:auto}.rt\:overflow-y-auto{overflow-y:auto}.rt\:overscroll-contain{overscroll-behavior:contain}.rt\:rounded-3xl{border-radius:var(--rt-radius-3xl)}.rt\:rounded-lg{border-radius:var(--rt-radius-lg)}.rt\:rounded-md{border-radius:var(--rt-radius-md)}.rt\:rounded-none{border-radius:0}.rt\:rounded-sm{border-radius:var(--rt-radius-sm)}.rt\:rounded-l-md{border-top-left-radius:var(--rt-radius-md);border-bottom-left-radius:var(--rt-radius-md)}.rt\:rounded-r-md{border-top-right-radius:var(--rt-radius-md);border-bottom-right-radius:var(--rt-radius-md)}.rt\:border{border-style:var(--tw-border-style);border-width:1px}.rt\:border-0{border-style:var(--tw-border-style);border-width:0}.rt\:border-2{border-style:var(--tw-border-style);border-width:2px}.rt\:border-y-2{border-block-style:var(--tw-border-style);border-block-width:2px}.rt\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.rt\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.rt\:border-dashed{--tw-border-style:dashed;border-style:dashed}.rt\:border-alert-critical-border{border-color:var(--rt-alert-critical-border)}.rt\:border-border{border-color:var(--rt-border)}.rt\:border-border-strong{border-color:var(--rt-border-strong)}.rt\:border-chart-1{border-color:var(--rt-chart-1)}.rt\:border-chart-2{border-color:var(--rt-chart-2)}.rt\:border-chart-3{border-color:var(--rt-chart-3)}.rt\:border-chart-4{border-color:var(--rt-chart-4)}.rt\:border-chart-5{border-color:var(--rt-chart-5)}.rt\:border-chip-border{border-color:var(--rt-chip-border)}.rt\:border-divider{border-color:var(--rt-divider)}.rt\:border-muted-foreground{border-color:var(--rt-muted-foreground)}.rt\:border-progress-track{border-color:var(--rt-progress-track)}.rt\:border-status-neutral-border{border-color:var(--rt-status-neutral-border)}.rt\:border-success-border{border-color:var(--rt-success-border)}.rt\:border-transparent{border-color:#0000}.rt\:border-warning-border{border-color:var(--rt-warning-border)}.rt\:border-t-progress{border-top-color:var(--rt-progress)}.rt\:bg-alert-critical-background{background-color:var(--rt-alert-critical-background)}.rt\:bg-background{background-color:var(--rt-background)}.rt\:bg-border-strong{background-color:var(--rt-border-strong)}.rt\:bg-chart-1{background-color:var(--rt-chart-1)}.rt\:bg-chart-2{background-color:var(--rt-chart-2)}.rt\:bg-chart-3{background-color:var(--rt-chart-3)}.rt\:bg-chart-4{background-color:var(--rt-chart-4)}.rt\:bg-chart-5{background-color:var(--rt-chart-5)}.rt\:bg-chip-background{background-color:var(--rt-chip-background)}.rt\:bg-control{background-color:var(--rt-control)}.rt\:bg-current{background-color:currentColor}.rt\:bg-destructive-fill{background-color:var(--rt-destructive-fill)}.rt\:bg-divider{background-color:var(--rt-divider)}.rt\:bg-foreground{background-color:var(--rt-foreground)}.rt\:bg-muted{background-color:var(--rt-muted)}.rt\:bg-muted-foreground{background-color:var(--rt-muted-foreground)}.rt\:bg-page{background-color:var(--rt-page)}.rt\:bg-popover{background-color:var(--rt-popover)}.rt\:bg-primary{background-color:var(--rt-primary)}.rt\:bg-primary-foreground{background-color:var(--rt-primary-foreground)}.rt\:bg-primary-tint{background-color:var(--rt-primary-tint)}.rt\:bg-progress{background-color:var(--rt-progress)}.rt\:bg-progress-track{background-color:var(--rt-progress-track)}.rt\:bg-secondary{background-color:var(--rt-secondary)}.rt\:bg-sidebar{background-color:var(--rt-sidebar)}.rt\:bg-status-neutral-background{background-color:var(--rt-status-neutral-background)}.rt\:bg-success-tint{background-color:var(--rt-success-tint)}.rt\:bg-transparent{background-color:#0000}.rt\:bg-warning-tint{background-color:var(--rt-warning-tint)}.rt\:recharts .recharts-cartesian-axis-tick text{fill:var(--rt-muted-foreground)}.rt\:recharts .recharts-cartesian-grid line[stroke=\#ccc],.rt\:recharts .recharts-polar-grid [stroke=\#ccc],.rt\:recharts .recharts-reference-line [stroke=\#ccc],.rt\:recharts .recharts-curve.recharts-tooltip-cursor{stroke:var(--rt-border)}.rt\:recharts .recharts-rectangle.recharts-tooltip-cursor,.rt\:recharts .recharts-radial-bar-background-sector{fill:var(--rt-muted)}.rt\:recharts :is(.recharts-surface,.recharts-layer,.recharts-sector){outline:none}.rt\:recharts :is(.recharts-surface,.recharts-layer,.recharts-sector):focus-visible{outline:var(--rt-focus-ring-width) solid var(--rt-focus-ring);outline-offset:var(--rt-focus-ring-offset)}.rt\:object-cover{object-fit:cover}.rt\:p-0{padding:0}.rt\:p-1{padding:var(--rt-spacing)}.rt\:p-2{padding:calc(var(--rt-spacing) * 2)}.rt\:p-3{padding:calc(var(--rt-spacing) * 3)}.rt\:p-6{padding:calc(var(--rt-spacing) * 6)}.rt\:p-px{padding:1px}.rt\:px-0{padding-inline:0}.rt\:px-1{padding-inline:var(--rt-spacing)}.rt\:px-1\.5{padding-inline:calc(var(--rt-spacing) * 1.5)}.rt\:px-2{padding-inline:calc(var(--rt-spacing) * 2)}.rt\:px-2\.75{padding-inline:calc(var(--rt-spacing) * 2.75)}.rt\:px-3{padding-inline:calc(var(--rt-spacing) * 3)}.rt\:px-3\.5{padding-inline:calc(var(--rt-spacing) * 3.5)}.rt\:px-6{padding-inline:calc(var(--rt-spacing) * 6)}.rt\:px-8{padding-inline:calc(var(--rt-spacing) * 8)}.rt\:sidenav-pad-x{padding-inline:var(--rt-sidenav-pad)}.rt\:py-1{padding-block:var(--rt-spacing)}.rt\:py-1\.5{padding-block:calc(var(--rt-spacing) * 1.5)}.rt\:py-2{padding-block:calc(var(--rt-spacing) * 2)}.rt\:py-2\.75{padding-block:calc(var(--rt-spacing) * 2.75)}.rt\:py-3{padding-block:calc(var(--rt-spacing) * 3)}.rt\:py-6{padding-block:calc(var(--rt-spacing) * 6)}.rt\:pt-2{padding-top:calc(var(--rt-spacing) * 2)}.rt\:pt-3{padding-top:calc(var(--rt-spacing) * 3)}.rt\:sidenav-pad-top{padding-top:var(--rt-sidenav-pad)}.rt\:pr-0\.5{padding-right:calc(var(--rt-spacing) * .5)}.rt\:pr-1\.5{padding-right:calc(var(--rt-spacing) * 1.5)}.rt\:pr-3{padding-right:calc(var(--rt-spacing) * 3)}.rt\:pr-8{padding-right:calc(var(--rt-spacing) * 8)}.rt\:pr-20{padding-right:calc(var(--rt-spacing) * 20)}.rt\:pb-2\.75{padding-bottom:calc(var(--rt-spacing) * 2.75)}.rt\:pb-3{padding-bottom:calc(var(--rt-spacing) * 3)}.rt\:pb-6{padding-bottom:calc(var(--rt-spacing) * 6)}.rt\:sidenav-pad-bottom{padding-bottom:var(--rt-sidenav-pad-bottom)}.rt\:pl-2{padding-left:calc(var(--rt-spacing) * 2)}.rt\:pl-2\.75{padding-left:calc(var(--rt-spacing) * 2.75)}.rt\:pl-3{padding-left:calc(var(--rt-spacing) * 3)}.rt\:pl-8{padding-left:calc(var(--rt-spacing) * 8)}.rt\:text-center{text-align:center}.rt\:text-left{text-align:left}.rt\:text-right{text-align:right}.rt\:align-baseline{vertical-align:baseline}.rt\:align-middle{vertical-align:middle}.rt\:font-sans{font-family:var(--rt-typeface)}.rt\:text-b1{font-size:var(--rt-text-b1);line-height:var(--tw-leading,var(--rt-text-b1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b1--font-weight))}.rt\:text-b2{font-size:var(--rt-text-b2);line-height:var(--tw-leading,var(--rt-text-b2--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b2--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b2--font-weight))}.rt\:text-b3{font-size:var(--rt-text-b3);line-height:var(--tw-leading,var(--rt-text-b3--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b3--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b3--font-weight))}.rt\:text-b4{font-size:var(--rt-text-b4);line-height:var(--tw-leading,var(--rt-text-b4--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-b4--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-b4--font-weight))}.rt\:text-badge{font-size:var(--rt-text-badge);line-height:var(--tw-leading,var(--rt-text-badge--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-badge--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-badge--font-weight))}.rt\:text-btn{font-size:var(--rt-text-btn);line-height:var(--tw-leading,var(--rt-text-btn--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-btn--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-btn--font-weight))}.rt\:text-c1{font-size:var(--rt-text-c1);line-height:var(--tw-leading,var(--rt-text-c1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-c1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-c1--font-weight))}.rt\:text-c2{font-size:var(--rt-text-c2);line-height:var(--tw-leading,var(--rt-text-c2--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-c2--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-c2--font-weight))}.rt\:text-c3{font-size:var(--rt-text-c3);line-height:var(--tw-leading,var(--rt-text-c3--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-c3--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-c3--font-weight))}.rt\:text-display{font-size:var(--rt-text-display);line-height:var(--tw-leading,var(--rt-text-display--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-display--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-display--font-weight))}.rt\:text-h1{font-size:var(--rt-text-h1);line-height:var(--tw-leading,var(--rt-text-h1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-h1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-h1--font-weight))}.rt\:text-h5{font-size:var(--rt-text-h5);line-height:var(--tw-leading,var(--rt-text-h5--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-h5--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-h5--font-weight))}.rt\:text-label{font-size:var(--rt-text-label);line-height:var(--tw-leading,var(--rt-text-label--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-label--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-label--font-weight))}.rt\:text-s1{font-size:var(--rt-text-s1);line-height:var(--tw-leading,var(--rt-text-s1--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-s1--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-s1--font-weight))}.rt\:text-s2{font-size:var(--rt-text-s2);line-height:var(--tw-leading,var(--rt-text-s2--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-s2--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-s2--font-weight))}.rt\:text-section{font-size:var(--rt-text-section);line-height:var(--tw-leading,var(--rt-text-section--line-height));letter-spacing:var(--tw-tracking,var(--rt-text-section--letter-spacing));font-weight:var(--tw-font-weight,var(--rt-text-section--font-weight))}.rt\:font-medium{--tw-font-weight:var(--rt-font-weight-medium);font-weight:var(--rt-font-weight-medium)}.rt\:whitespace-nowrap{white-space:nowrap}.rt\:text-alert-critical-foreground{color:var(--rt-alert-critical-foreground)}.rt\:text-chip-foreground{color:var(--rt-chip-foreground)}.rt\:text-destructive-foreground{color:var(--rt-destructive-foreground)}.rt\:text-error{color:var(--rt-error)}.rt\:text-error-icon{color:var(--rt-error-icon)}.rt\:text-foreground{color:var(--rt-foreground)}.rt\:text-foreground-strong{color:var(--rt-foreground-strong)}.rt\:text-foreground-subdued{color:var(--rt-foreground-subdued)}.rt\:text-icon{color:var(--rt-icon)}.rt\:text-inherit{color:inherit}.rt\:text-muted-foreground{color:var(--rt-muted-foreground)}.rt\:text-popover-foreground{color:var(--rt-popover-foreground)}.rt\:text-primary{color:var(--rt-primary)}.rt\:text-primary-foreground{color:var(--rt-primary-foreground)}.rt\:text-secondary-foreground{color:var(--rt-secondary-foreground)}.rt\:text-sidebar-foreground{color:var(--rt-sidebar-foreground)}.rt\:text-status-neutral-foreground{color:var(--rt-status-neutral-foreground)}.rt\:text-success{color:var(--rt-success)}.rt\:text-tab-inactive{color:var(--rt-tab-inactive)}.rt\:text-warning{color:var(--rt-warning)}.rt\:uppercase{text-transform:uppercase}.rt\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.rt\:underline{text-decoration-line:underline}.rt\:decoration-dotted{text-decoration-style:dotted}.rt\:decoration-1{text-decoration-thickness:1px}.rt\:underline-offset-4{text-underline-offset:4px}.rt\:opacity-50{opacity:.5}.rt\:shadow-ring-destructive{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:shadow-ring-hairline{--tw-shadow:inset 0 0 0 .5px var(--tw-shadow-color,var(--rt-control)), 0 0 0 .5px var(--tw-shadow-color,var(--rt-control));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:shadow-ring-strong{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-border-strong));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:shadow-ring-subtle{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-input)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (forced-colors:active){.rt\:forced-outline{outline:1px solid #0000}.rt\:forced-outline:focus-visible{outline-width:var(--rt-focus-ring-width);outline-offset:var(--rt-focus-ring-offset)}}.rt\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.rt\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.rt\:ring-fade{transition-property:color,background-color,border-color,outline-color,box-shadow;transition-timing-function:var(--rt-default-transition-timing-function);transition-duration:var(--rt-default-transition-duration)}.rt\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rt-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rt-default-transition-duration))}.rt\:outline-none{--tw-outline-style:none;outline-style:none}.rt\:select-none{-webkit-user-select:none;user-select:none}.rt\:select-text{-webkit-user-select:text;user-select:text}.rt\:not-first\:border-t:not(:first-child){border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:not-last\:border-b:not(:last-child){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.rt\:not-last\:border-divider:not(:last-child){border-color:var(--rt-divider)}.rt\:not-empty\:p-3:not(:empty){padding:calc(var(--rt-spacing) * 3)}.rt\:not-aria-disabled\:cursor-pointer:not([aria-disabled=true]){cursor:pointer}.rt\:group-first\:rounded-l-md:is(:where(.rt\:group):first-child *){border-top-left-radius:var(--rt-radius-md);border-bottom-left-radius:var(--rt-radius-md)}.rt\:group-last\:rounded-r-md:is(:where(.rt\:group):last-child *){border-top-right-radius:var(--rt-radius-md);border-bottom-right-radius:var(--rt-radius-md)}.rt\:group-aria-expanded\/accordion-trigger\:rotate-180:is(:where(.rt\:group\/accordion-trigger)[aria-expanded=true] *){rotate:180deg}.rt\:group-aria-invalid\/radio-group\:shadow-ring-invalid:is(:where(.rt\:group\/radio-group)[aria-invalid=true] *){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:group-data-empty\/combobox-content\:flex:is(:where(.rt\:group\/combobox-content)[data-empty] *){display:flex}.rt\:group-data-panel-open\:hidden:is(:where(.rt\:group)[data-panel-open] *){display:none}.rt\:group-data-panel-open\:inline:is(:where(.rt\:group)[data-panel-open] *){display:inline}.rt\:group-data-swiping\/drawer-popup\:select-none:is(:where(.rt\:group\/drawer-popup)[data-swiping] *){-webkit-user-select:none;user-select:none}.rt\:group-swipe-up\/drawer-popup\:order-last:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up]) *),.rt\:group-swipe-left\/drawer-popup\:order-last:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left]) *){order:9999}.rt\:group-swipe-x\/drawer-popup\:h-12:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left],[data-swipe-direction=right]) *){height:calc(var(--rt-spacing) * 12)}.rt\:group-swipe-x\/drawer-popup\:w-1:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left],[data-swipe-direction=right]) *){width:var(--rt-spacing)}.rt\:group-swipe-x\/drawer-popup\:w-5:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=left],[data-swipe-direction=right]) *){width:calc(var(--rt-spacing) * 5)}.rt\:group-swipe-y\/drawer-popup\:h-1:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up],[data-swipe-direction=down]) *){height:var(--rt-spacing)}.rt\:group-swipe-y\/drawer-popup\:h-5:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up],[data-swipe-direction=down]) *){height:calc(var(--rt-spacing) * 5)}.rt\:group-swipe-y\/drawer-popup\:w-12:is(:where(.rt\:group\/drawer-popup):where([data-swipe-direction=up],[data-swipe-direction=down]) *){width:calc(var(--rt-spacing) * 12)}.rt\:placeholder\:text-muted-foreground::placeholder{color:var(--rt-muted-foreground)}.rt\:after\:absolute:after{content:var(--tw-content);position:absolute}.rt\:after\:-inset-1\.25:after{content:var(--tw-content);inset:calc(var(--rt-spacing) * -1.25)}.rt\:after\:-inset-x-1\.5:after{content:var(--tw-content);inset-inline:calc(var(--rt-spacing) * -1.5)}.rt\:after\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.rt\:after\:-inset-y-1\.5:after{content:var(--tw-content);inset-block:calc(var(--rt-spacing) * -1.5)}.rt\:after\:-bottom-px:after{content:var(--tw-content);bottom:-1px}.rt\:after\:h-0\.5:after{content:var(--tw-content);height:calc(var(--rt-spacing) * .5)}.rt\:after\:bg-primary:after{content:var(--tw-content);background-color:var(--rt-primary)}.rt\:after\:opacity-0:after{content:var(--tw-content);opacity:0}.rt\:first\:rounded-l-md:first-child{border-top-left-radius:var(--rt-radius-md);border-bottom-left-radius:var(--rt-radius-md)}.rt\:last\:rounded-r-md:last-child{border-top-right-radius:var(--rt-radius-md);border-bottom-right-radius:var(--rt-radius-md)}.rt\:last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.rt\:empty\:hidden:empty{display:none}.rt\:focus-within\:shadow-ring-focus:focus-within{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-ring)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.rt\:hover\:bg-destructive-hover:hover{background-color:var(--rt-destructive-hover)}.rt\:hover\:bg-foreground-subdued:hover{background-color:var(--rt-foreground-subdued)}.rt\:hover\:bg-muted:hover{background-color:var(--rt-muted)}.rt\:hover\:bg-primary-hover:hover{background-color:var(--rt-primary-hover)}.rt\:hover\:bg-primary-tint:hover{background-color:var(--rt-primary-tint)}.rt\:hover\:text-foreground:hover{color:var(--rt-foreground)}.rt\:hover\:text-primary-hover:hover{color:var(--rt-primary-hover)}.rt\:hover\:underline:hover{text-decoration-line:underline}.rt\:not-aria-disabled\:hover\:bg-muted:not([aria-disabled=true]):hover{background-color:var(--rt-muted)}}.rt\:focus-visible\:shadow-ring-focus:focus-visible{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-ring)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:focus-visible\:focus-ring:focus-visible{outline:var(--rt-focus-ring-width) solid var(--rt-focus-ring);outline-offset:var(--rt-focus-ring-offset)}.rt\:active\:cursor-grabbing:active{cursor:grabbing}.rt\:active\:bg-destructive-hover:active{background-color:var(--rt-destructive-hover)}.rt\:active\:bg-muted:active{background-color:var(--rt-muted)}.rt\:active\:bg-primary-hover:active{background-color:var(--rt-primary-hover)}.rt\:active\:bg-primary-tint:active{background-color:var(--rt-primary-tint)}.rt\:active\:text-primary-hover:active{color:var(--rt-primary-hover)}.rt\:active\:underline:active{text-decoration-line:underline}.rt\:disabled\:pointer-events-none:disabled{pointer-events:none}.rt\:disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.rt\:disabled\:opacity-50:disabled,.rt\:has-disabled\:opacity-50:has(:disabled){opacity:.5}.rt\:has-aria-invalid\:shadow-ring-invalid:has([aria-invalid=true]),.rt\:has-aria-invalid\:focus-within\:shadow-ring-invalid:has([aria-invalid=true]):focus-within{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:aria-disabled\:cursor-default[aria-disabled=true]{cursor:default}.rt\:aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.rt\:aria-invalid\:shadow-ring-invalid[aria-invalid=true],.rt\:aria-invalid\:focus-visible\:shadow-ring-invalid[aria-invalid=true]:focus-visible{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-drag-active\:border-primary[data-drag-active]{border-color:var(--rt-primary)}.rt\:data-drag-active\:bg-primary-tint[data-drag-active]{background-color:var(--rt-primary-tint)}.rt\:data-dragging\:opacity-50[data-dragging]{opacity:.5}.rt\:data-empty\:py-0[data-empty]{padding-block:0}.rt\:data-highlighted\:bg-accent[data-highlighted]{background-color:var(--rt-accent)}.rt\:data-highlighted\:bg-destructive-hover[data-highlighted]{background-color:var(--rt-destructive-hover)}.rt\:data-highlighted\:bg-muted[data-highlighted]{background-color:var(--rt-muted)}.rt\:data-highlighted\:text-accent-foreground[data-highlighted]{color:var(--rt-accent-foreground)}.rt\:data-highlighted\:text-destructive-foreground[data-highlighted]{color:var(--rt-destructive-foreground)}.rt\:data-indeterminate\:w-1\/3[data-indeterminate]{width:33.3333%}.rt\:data-indeterminate\:loading-motion[data-indeterminate]{animation:var(--rt-loading-animation)}@media (prefers-reduced-motion:reduce){.rt\:data-indeterminate\:loading-motion[data-indeterminate]{animation:none}}.rt\:data-indeterminate\:bg-primary[data-indeterminate]{background-color:var(--rt-primary)}.rt\:data-indeterminate\:shadow-none[data-indeterminate]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.rt\:data-indeterminate\:hover\:bg-primary-hover[data-indeterminate]:hover{background-color:var(--rt-primary-hover)}}.rt\:aria-invalid\:data-indeterminate\:shadow-ring-invalid[aria-invalid=true][data-indeterminate]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--rt-muted-foreground)}.rt\:data-popup-open\:bg-accent[data-popup-open]{background-color:var(--rt-accent)}.rt\:data-pressed\:border-0[data-pressed]{border-style:var(--tw-border-style);border-width:0}.rt\:data-pressed\:px-2\.75[data-pressed]{padding-inline:calc(var(--rt-spacing) * 2.75)}.rt\:data-pressed\:font-semibold[data-pressed]{--tw-font-weight:var(--rt-font-weight-semibold);font-weight:var(--rt-font-weight-semibold)}.rt\:data-pressed\:text-primary[data-pressed]{color:var(--rt-primary)}.rt\:data-pressed\:shadow-ring-accent-hairline[data-pressed]{--tw-shadow:inset 0 0 0 .5px var(--tw-shadow-color,var(--rt-primary)), 0 0 0 .5px var(--tw-shadow-color,var(--rt-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (min-width:48rem){.rt\:md\:hidden{display:none}.rt\:md\:inline{display:inline}.rt\:md\:h-15{height:calc(var(--rt-spacing) * 15)}.rt\:md\:flex-row{flex-direction:row}.rt\:md\:px-6{padding-inline:calc(var(--rt-spacing) * 6)}}.rt\:data-checked\:justify-end:where([data-checked]:not([data-checked=false])){justify-content:flex-end}.rt\:data-checked\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--rt-primary)}.rt\:data-checked\:bg-primary-foreground:where([data-checked]:not([data-checked=false])){background-color:var(--rt-primary-foreground)}.rt\:data-checked\:shadow-none:where([data-checked]:not([data-checked=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.rt\:data-checked\:hover\:bg-primary-hover:where([data-checked]:not([data-checked=false])):hover{background-color:var(--rt-primary-hover)}}.rt\:aria-invalid\:data-checked\:shadow-ring-invalid[aria-invalid=true]:where([data-checked]:not([data-checked=false])){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-selected\:bg-muted:where([data-selected]:not([data-selected=false])){background-color:var(--rt-muted)}.rt\:data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.rt\:data-disabled\:cursor-default:where([data-disabled]:not([data-disabled=false])){cursor:default}.rt\:data-disabled\:cursor-not-allowed:where([data-disabled]:not([data-disabled=false])){cursor:not-allowed}.rt\:data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.rt\:data-active\:font-semibold:where([data-active]:not([data-active=false])){--tw-font-weight:var(--rt-font-weight-semibold);font-weight:var(--rt-font-weight-semibold)}.rt\:data-active\:text-primary:where([data-active]:not([data-active=false])){color:var(--rt-primary)}.rt\:data-active\:shadow-ring-focus:where([data-active]:not([data-active=false])){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-ring)), 0 0 0 1px var(--tw-shadow-color,var(--rt-input));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-active\:after\:opacity-100:where([data-active]:not([data-active=false])):after{content:var(--tw-content);opacity:1}.rt\:aria-invalid\:data-active\:shadow-ring-invalid[aria-invalid=true]:where([data-active]:not([data-active=false])){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rt-destructive));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.rt\:data-horizontal\:h-1\.5:where([data-orientation=horizontal]){height:calc(var(--rt-spacing) * 1.5)}.rt\:data-horizontal\:h-px:where([data-orientation=horizontal]){height:1px}.rt\:data-horizontal\:min-h-px:where([data-orientation=horizontal]){min-height:1px}.rt\:data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.rt\:data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.rt\:data-vertical\:h-full:where([data-orientation=vertical]){height:100%}.rt\:data-vertical\:w-1\.5:where([data-orientation=vertical]){width:calc(var(--rt-spacing) * 1.5)}.rt\:data-vertical\:w-px:where([data-orientation=vertical]){width:1px}.rt\:data-vertical\:shrink-0:where([data-orientation=vertical]){flex-shrink:0}.rt\:data-vertical\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.rt\:side-bottom\:inset-x-0:where([data-side=bottom]){inset-inline:0}.rt\:side-bottom\:bottom-0:where([data-side=bottom]){bottom:0}.rt\:side-bottom\:rounded-t-3xl:where([data-side=bottom]){border-top-left-radius:var(--rt-radius-3xl);border-top-right-radius:var(--rt-radius-3xl)}.rt\:side-bottom\:border-x:where([data-side=bottom]){border-inline-style:var(--tw-border-style);border-inline-width:1px}.rt\:side-bottom\:border-t:where([data-side=bottom]){border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:side-left\:inset-y-0:where([data-side=left]){inset-block:0}.rt\:side-left\:left-0:where([data-side=left]){left:0}.rt\:side-left\:w-3\/4:where([data-side=left]){width:75%}.rt\:side-left\:border-r:where([data-side=left]){border-right-style:var(--tw-border-style);border-right-width:1px}@media (min-width:40rem){.rt\:side-left\:sm\:w-96:where([data-side=left]){width:calc(var(--rt-spacing) * 96)}}.rt\:side-right\:inset-y-0:where([data-side=right]){inset-block:0}.rt\:side-right\:right-0:where([data-side=right]){right:0}.rt\:side-right\:w-3\/4:where([data-side=right]){width:75%}.rt\:side-right\:border-l:where([data-side=right]){border-left-style:var(--tw-border-style);border-left-width:1px}@media (min-width:40rem){.rt\:side-right\:sm\:w-96:where([data-side=right]){width:calc(var(--rt-spacing) * 96)}}.rt\:swipe-up\:top-0:where([data-swipe-direction=up]){top:0}.rt\:swipe-up\:rounded-b-3xl:where([data-swipe-direction=up]){border-bottom-right-radius:var(--rt-radius-3xl);border-bottom-left-radius:var(--rt-radius-3xl)}.rt\:swipe-up\:border-x:where([data-swipe-direction=up]){border-inline-style:var(--tw-border-style);border-inline-width:1px}.rt\:swipe-up\:border-b:where([data-swipe-direction=up]){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.rt\:swipe-down\:bottom-0:where([data-swipe-direction=down]){bottom:0}.rt\:swipe-down\:rounded-t-3xl:where([data-swipe-direction=down]){border-top-left-radius:var(--rt-radius-3xl);border-top-right-radius:var(--rt-radius-3xl)}.rt\:swipe-down\:border-x:where([data-swipe-direction=down]){border-inline-style:var(--tw-border-style);border-inline-width:1px}.rt\:swipe-down\:border-t:where([data-swipe-direction=down]){border-top-style:var(--tw-border-style);border-top-width:1px}.rt\:swipe-left\:left-0:where([data-swipe-direction=left]){left:0}.rt\:swipe-left\:rounded-r-3xl:where([data-swipe-direction=left]){border-top-right-radius:var(--rt-radius-3xl);border-bottom-right-radius:var(--rt-radius-3xl)}.rt\:swipe-left\:border-y:where([data-swipe-direction=left]){border-block-style:var(--tw-border-style);border-block-width:1px}.rt\:swipe-left\:border-r:where([data-swipe-direction=left]){border-right-style:var(--tw-border-style);border-right-width:1px}.rt\:swipe-right\:right-0:where([data-swipe-direction=right]){right:0}.rt\:swipe-right\:rounded-l-3xl:where([data-swipe-direction=right]){border-top-left-radius:var(--rt-radius-3xl);border-bottom-left-radius:var(--rt-radius-3xl)}.rt\:swipe-right\:border-y:where([data-swipe-direction=right]){border-block-style:var(--tw-border-style);border-block-width:1px}.rt\:swipe-right\:border-l:where([data-swipe-direction=right]){border-left-style:var(--tw-border-style);border-left-width:1px}.rt\:swipe-x\:inset-y-0:where([data-swipe-direction=left],[data-swipe-direction=right]){inset-block:0}.rt\:swipe-x\:w-3\/4:where([data-swipe-direction=left],[data-swipe-direction=right]){width:75%}.rt\:swipe-x\:flex-row:where([data-swipe-direction=left],[data-swipe-direction=right]){flex-direction:row}@media (min-width:40rem){.rt\:swipe-x\:sm\:w-96:where([data-swipe-direction=left],[data-swipe-direction=right]){width:calc(var(--rt-spacing) * 96)}}.rt\:swipe-y\:inset-x-0:where([data-swipe-direction=up],[data-swipe-direction=down]){inset-inline:0}.rt\:svg\:text-foreground-subdued svg{color:var(--rt-foreground-subdued)}.rt\:svg\:text-icon svg{color:var(--rt-icon)}@keyframes rt-spin{to{transform:rotate(360deg)}}@keyframes rt-pulse{50%{opacity:.5}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ratio-ui/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "React components for Ratio apps: one set of design tokens, one built stylesheet and accessible components, drawn to the Ratio design system",
5
5
  "private": false,
6
6
  "license": "MIT",