@optimum-intelligence/opti-ui 0.2.0 → 0.4.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 (136) hide show
  1. package/README.md +105 -3
  2. package/dist/components/accordion/Accordion.d.ts +12 -0
  3. package/dist/components/accordion/Accordion.js +12 -0
  4. package/dist/components/accordion/Accordion.js.map +1 -1
  5. package/dist/components/alert/Alert.d.ts +4 -0
  6. package/dist/components/alert/Alert.js.map +1 -1
  7. package/dist/components/app-shell/AppShell.d.ts +22 -0
  8. package/dist/components/app-shell/AppShell.js +6 -0
  9. package/dist/components/app-shell/AppShell.js.map +1 -1
  10. package/dist/components/avatar/Avatar.d.ts +8 -0
  11. package/dist/components/avatar/Avatar.js +2 -0
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/badge/Badge.d.ts +9 -0
  14. package/dist/components/badge/Badge.js +6 -0
  15. package/dist/components/badge/Badge.js.map +1 -1
  16. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +1 -0
  17. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
  18. package/dist/components/button/Button.d.ts +8 -0
  19. package/dist/components/button/Button.js +6 -0
  20. package/dist/components/button/Button.js.map +1 -1
  21. package/dist/components/calendar/Calendar.d.ts +3 -0
  22. package/dist/components/calendar/Calendar.js.map +1 -1
  23. package/dist/components/card/Card.d.ts +14 -1
  24. package/dist/components/card/Card.js +13 -0
  25. package/dist/components/card/Card.js.map +1 -1
  26. package/dist/components/choice/Choice.d.ts +13 -0
  27. package/dist/components/choice/Choice.js +10 -0
  28. package/dist/components/choice/Choice.js.map +1 -1
  29. package/dist/components/combobox/Combobox.d.ts +12 -0
  30. package/dist/components/combobox/Combobox.js.map +1 -1
  31. package/dist/components/command-palette/CommandPalette.d.ts +10 -0
  32. package/dist/components/command-palette/CommandPalette.js.map +1 -1
  33. package/dist/components/data-table/DataTable.d.ts +62 -96
  34. package/dist/components/data-table/DataTable.js +452 -418
  35. package/dist/components/data-table/DataTable.js.map +1 -1
  36. package/dist/components/data-table/DataTableContent.d.ts +36 -0
  37. package/dist/components/data-table/DataTableContent.js +550 -0
  38. package/dist/components/data-table/DataTableContent.js.map +1 -0
  39. package/dist/components/data-table/DataTableFilters.d.ts +18 -0
  40. package/dist/components/data-table/DataTableFilters.js +284 -0
  41. package/dist/components/data-table/DataTableFilters.js.map +1 -0
  42. package/dist/components/data-table/DataTableRow.d.ts +33 -0
  43. package/dist/components/data-table/DataTableRow.js +552 -0
  44. package/dist/components/data-table/DataTableRow.js.map +1 -0
  45. package/dist/components/data-table/context.d.ts +5 -0
  46. package/dist/components/data-table/context.js +14 -0
  47. package/dist/components/data-table/context.js.map +1 -0
  48. package/dist/components/data-table/layout.d.ts +60 -0
  49. package/dist/components/data-table/layout.js +272 -0
  50. package/dist/components/data-table/layout.js.map +1 -0
  51. package/dist/components/data-table/types.d.ts +335 -0
  52. package/dist/components/data-table/useDataTable.d.ts +9 -0
  53. package/dist/components/data-table/useDataTable.js +666 -0
  54. package/dist/components/data-table/useDataTable.js.map +1 -0
  55. package/dist/components/date-picker/DateRangePicker.d.ts +1 -0
  56. package/dist/components/date-picker/DateRangePicker.js.map +1 -1
  57. package/dist/components/date-picker/PickerField.d.ts +13 -0
  58. package/dist/components/date-picker/PickerField.js.map +1 -1
  59. package/dist/components/dialog/Dialog.d.ts +5 -0
  60. package/dist/components/dialog/Dialog.js.map +1 -1
  61. package/dist/components/drawer/Drawer.d.ts +10 -0
  62. package/dist/components/drawer/Drawer.js.map +1 -1
  63. package/dist/components/empty-state/EmptyState.d.ts +5 -0
  64. package/dist/components/empty-state/EmptyState.js.map +1 -1
  65. package/dist/components/file-upload/FileUpload.d.ts +21 -0
  66. package/dist/components/file-upload/FileUpload.js.map +1 -1
  67. package/dist/components/input/Input.d.ts +7 -0
  68. package/dist/components/input/Input.js +3 -0
  69. package/dist/components/input/Input.js.map +1 -1
  70. package/dist/components/link/Link.d.ts +1 -0
  71. package/dist/components/link/Link.js.map +1 -1
  72. package/dist/components/menu/Menu.d.ts +6 -0
  73. package/dist/components/menu/Menu.js.map +1 -1
  74. package/dist/components/number-field/NumberField.d.ts +7 -0
  75. package/dist/components/number-field/NumberField.js.map +1 -1
  76. package/dist/components/pagination/Pagination.d.ts +4 -0
  77. package/dist/components/pagination/Pagination.js.map +1 -1
  78. package/dist/components/popover/Popover.d.ts +4 -0
  79. package/dist/components/popover/Popover.js.map +1 -1
  80. package/dist/components/preview-card/PreviewCard.d.ts +4 -0
  81. package/dist/components/preview-card/PreviewCard.js.map +1 -1
  82. package/dist/components/progress/Progress.d.ts +8 -0
  83. package/dist/components/progress/Progress.js.map +1 -1
  84. package/dist/components/scroll-area/ScrollArea.d.ts +1 -0
  85. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  86. package/dist/components/search-input/SearchInput.d.ts +2 -0
  87. package/dist/components/search-input/SearchInput.js.map +1 -1
  88. package/dist/components/select/Select.d.ts +11 -0
  89. package/dist/components/select/Select.js.map +1 -1
  90. package/dist/components/separator/Separator.d.ts +1 -0
  91. package/dist/components/separator/Separator.js +1 -0
  92. package/dist/components/separator/Separator.js.map +1 -1
  93. package/dist/components/skeleton/Skeleton.d.ts +7 -0
  94. package/dist/components/skeleton/Skeleton.js +1 -0
  95. package/dist/components/skeleton/Skeleton.js.map +1 -1
  96. package/dist/components/slider/Slider.d.ts +1 -0
  97. package/dist/components/slider/Slider.js.map +1 -1
  98. package/dist/components/spinner/Spinner.d.ts +2 -0
  99. package/dist/components/spinner/Spinner.js +1 -0
  100. package/dist/components/spinner/Spinner.js.map +1 -1
  101. package/dist/components/stat-card/StatCard.d.ts +5 -1
  102. package/dist/components/stat-card/StatCard.js.map +1 -1
  103. package/dist/components/stepper/Stepper.d.ts +4 -0
  104. package/dist/components/stepper/Stepper.js.map +1 -1
  105. package/dist/components/table/Table.d.ts +23 -0
  106. package/dist/components/table/Table.js +17 -0
  107. package/dist/components/table/Table.js.map +1 -1
  108. package/dist/components/tabs/Tabs.d.ts +1 -0
  109. package/dist/components/tabs/Tabs.js.map +1 -1
  110. package/dist/components/tag/Tag.d.ts +3 -0
  111. package/dist/components/tag/Tag.js.map +1 -1
  112. package/dist/components/toast/Toast.d.ts +2 -0
  113. package/dist/components/toast/Toast.js.map +1 -1
  114. package/dist/components/toggle/Toggle.d.ts +7 -0
  115. package/dist/components/toggle/Toggle.js +1 -0
  116. package/dist/components/toggle/Toggle.js.map +1 -1
  117. package/dist/components/tooltip/Tooltip.d.ts +8 -0
  118. package/dist/components/tooltip/Tooltip.js.map +1 -1
  119. package/dist/components/typography/Typography.d.ts +5 -0
  120. package/dist/components/typography/Typography.js +2 -0
  121. package/dist/components/typography/Typography.js.map +1 -1
  122. package/dist/components.json +5375 -0
  123. package/dist/icons/index.d.ts +8 -0
  124. package/dist/icons/index.js +9 -1
  125. package/dist/icons/index.js.map +1 -1
  126. package/dist/index.d.ts +2 -0
  127. package/dist/index.js +4 -2
  128. package/dist/llms-full.txt +2590 -0
  129. package/dist/llms.txt +175 -0
  130. package/dist/opti-ui.css +494 -167
  131. package/dist/theme/ThemeProvider.d.ts +1 -0
  132. package/dist/theme/ThemeProvider.js.map +1 -1
  133. package/dist/utils/portal.d.ts +4 -0
  134. package/dist/utils/portal.js +4 -0
  135. package/dist/utils/portal.js.map +1 -1
  136. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","names":["React","cx","SpinnerProps","HTMLAttributes","HTMLSpanElement","ref","Ref","size","label","Spinner","t0","$","_c","className","props","style","t1","undefined","t2","t3","t4","t5","t6","width","height","t7","_c"],"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n ref?: React.Ref<HTMLSpanElement>;\n /** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */\n size?: number | string;\n /** Accessible label. Set to `null` when a parent already announces loading. */\n label?: string | null;\n}\n\nexport function Spinner({ size, label = 'Loading', className, style, ref, ...props }: SpinnerProps) {\n return (\n <span\n ref={ref}\n role={label ? 'status' : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n className={cx('oui-spinner', className)}\n style={size != null ? { width: size, height: size, ...style } : style}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;AAWA,SAAOS,QAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAT;CAAA,IAAAE;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAiB,CAAA,CAAAH,MAAAC,OAAAQ,IAAAH,WAAAE,OAAAV,KAAA,GAAAS,SAAAJ;EAA0EC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAN;EAAAM,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAH,YAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAN,MAAAM,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,QAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAAlE,MAAAH,QAAAQ,OAAAC,KAAAA,IAAA,YAAAD;CAIpB,MAAAE,KAAAV,QAAA,WAAAS,KAAAA;CACM,MAAAE,KAAAX,SAAAS,KAAAA;CACC,MAAAG,KAAAZ,QAAAS,KAAAA,IAAA;CAAwB,IAAAI;CAAA,IAAAV,EAAA,OAAAE,WAAA;EAC1BQ,KAAApB,GAAG,eAAeY,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,OAAAJ,QAAAI,EAAA,QAAAI,OAAA;EAChCO,KAAAf,QAAQ,OAAR;GAAAgB,OAAwBhB;GAAIiB,QAAUjB;GAAI,GAAKQ;EAAc,IAA7DA;EAA8DJ,EAAA,KAAAJ;EAAAI,EAAA,MAAAI;EAAAJ,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,QAAAG,SAAAH,EAAA,QAAAN,OAAAM,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,IAAA;EANvEG,KAAA,oBAAA,QAAA;GACOpB;GACC,MAAAa;GACM,cAAAC;GACC,eAAAC;GACF,WAAAC;GACJ,OAAAC;GAA8D,GACjER;EAAK,CAAA;EACTH,EAAA,MAAAG;EAAAH,EAAA,MAAAN;EAAAM,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,OARFc;AAQE"}
1
+ {"version":3,"file":"Spinner.js","names":["React","cx","SpinnerProps","HTMLAttributes","HTMLSpanElement","ref","Ref","size","label","Spinner","t0","$","_c","className","props","style","t1","undefined","t2","t3","t4","t5","t6","width","height","t7","_c"],"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Ref to the spinner element. */\n ref?: React.Ref<HTMLSpanElement>;\n /** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */\n size?: number | string;\n /** Accessible label. Set to `null` when a parent already announces loading. */\n label?: string | null;\n}\n\n/** Indeterminate loading indicator that follows `currentColor`. */\nexport function Spinner({ size, label = 'Loading', className, style, ref, ...props }: SpinnerProps) {\n return (\n <span\n ref={ref}\n role={label ? 'status' : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n className={cx('oui-spinner', className)}\n style={size != null ? { width: size, height: size, ...style } : style}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAOS,QAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAT;CAAA,IAAAE;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAiB,CAAA,CAAAH,MAAAC,OAAAQ,IAAAH,WAAAE,OAAAV,KAAA,GAAAS,SAAAJ;EAA0EC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAN;EAAAM,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAH,YAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAN,MAAAM,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,QAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAAlE,MAAAH,QAAAQ,OAAAC,KAAAA,IAAA,YAAAD;CAIpB,MAAAE,KAAAV,QAAA,WAAAS,KAAAA;CACM,MAAAE,KAAAX,SAAAS,KAAAA;CACC,MAAAG,KAAAZ,QAAAS,KAAAA,IAAA;CAAwB,IAAAI;CAAA,IAAAV,EAAA,OAAAE,WAAA;EAC1BQ,KAAApB,GAAG,eAAeY,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,OAAAJ,QAAAI,EAAA,QAAAI,OAAA;EAChCO,KAAAf,QAAQ,OAAR;GAAAgB,OAAwBhB;GAAIiB,QAAUjB;GAAI,GAAKQ;EAAc,IAA7DA;EAA8DJ,EAAA,KAAAJ;EAAAI,EAAA,MAAAI;EAAAJ,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,QAAAG,SAAAH,EAAA,QAAAN,OAAAM,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,IAAA;EANvEG,KAAA,oBAAA,QAAA;GACOpB;GACC,MAAAa;GACM,cAAAC;GACC,eAAAC;GACF,WAAAC;GACJ,OAAAC;GAA8D,GACjER;EAAK,CAAA;EACTH,EAAA,MAAAG;EAAAH,EAAA,MAAAN;EAAAM,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,OARFc;AAQE"}
@@ -3,12 +3,15 @@ import { type CardProps } from '../card/Card';
3
3
  export type StatTrend = 'up' | 'down' | 'flat';
4
4
  export type StatTone = 'positive' | 'negative' | 'neutral';
5
5
  export interface StatCardProps extends Omit<CardProps, 'children'> {
6
+ /** What the number measures. */
6
7
  label: React.ReactNode;
8
+ /** The headline figure. */
7
9
  value: React.ReactNode;
8
- /** Small uppercase unit under the value, e.g. "kWh" or "orders". */
10
+ /** Unit beside the value, e.g. "kWh" or "orders". */
9
11
  unit?: React.ReactNode;
10
12
  /** Change indicator, e.g. "+12.4%". */
11
13
  delta?: React.ReactNode;
14
+ /** Arrow direction shown next to `delta`. */
12
15
  trend?: StatTrend;
13
16
  /** Color of the delta. Defaults to positive for `up`, negative for `down`. */
14
17
  tone?: StatTone;
@@ -16,6 +19,7 @@ export interface StatCardProps extends Omit<CardProps, 'children'> {
16
19
  hint?: React.ReactNode;
17
20
  /** Icon tile shown in the top-right corner. */
18
21
  icon?: React.ReactNode;
22
+ /** Replaces the value with a skeleton while data loads. */
19
23
  loading?: boolean;
20
24
  }
21
25
  /** KPI tile: label, large value, optional unit and trend. */
@@ -1 +1 @@
1
- {"version":3,"file":"StatCard.js","names":["React","cx","Card","CardProps","Skeleton","TrendingDownIcon","TrendingUpIcon","StatTrend","StatTone","StatCardProps","Omit","label","ReactNode","value","unit","delta","trend","tone","hint","icon","loading","StatCard","t0","$","_c","className","props","ref","resolvedTone","t1","t2","t3","t4","t5","t6","_c","_Fragment"],"sources":["../../../src/components/stat-card/StatCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Card, type CardProps } from '../card/Card';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { TrendingDownIcon, TrendingUpIcon } from '../../icons';\n\nexport type StatTrend = 'up' | 'down' | 'flat';\nexport type StatTone = 'positive' | 'negative' | 'neutral';\n\nexport interface StatCardProps extends Omit<CardProps, 'children'> {\n label: React.ReactNode;\n value: React.ReactNode;\n /** Small uppercase unit under the value, e.g. \"kWh\" or \"orders\". */\n unit?: React.ReactNode;\n /** Change indicator, e.g. \"+12.4%\". */\n delta?: React.ReactNode;\n trend?: StatTrend;\n /** Color of the delta. Defaults to positive for `up`, negative for `down`. */\n tone?: StatTone;\n /** Supporting text under the value. */\n hint?: React.ReactNode;\n /** Icon tile shown in the top-right corner. */\n icon?: React.ReactNode;\n loading?: boolean;\n}\n\n/** KPI tile: label, large value, optional unit and trend. */\nexport function StatCard({\n label,\n value,\n unit,\n delta,\n trend,\n tone,\n hint,\n icon,\n loading,\n className,\n ref,\n ...props\n}: StatCardProps) {\n const resolvedTone: StatTone = tone ?? (trend === 'up' ? 'positive' : trend === 'down' ? 'negative' : 'neutral');\n return (\n <Card ref={ref} className={cx('oui-stat', className)} {...props}>\n <div className=\"oui-stat__header\">\n <p className=\"oui-stat__label\">{label}</p>\n {icon && <span className=\"oui-stat__icon\">{icon}</span>}\n </div>\n {loading ? (\n <div className=\"oui-stat__loading\">\n <Skeleton height=\"2.25rem\" width=\"55%\" />\n <Skeleton height=\"0.9rem\" width=\"35%\" />\n </div>\n ) : (\n <>\n <div className=\"oui-stat__body\">\n <p className=\"oui-stat__value\">{value}</p>\n {unit && <p className=\"oui-stat__unit\">{unit}</p>}\n </div>\n {(delta || hint) && (\n <div className=\"oui-stat__footer\">\n {delta && (\n <span className=\"oui-stat__delta\" data-tone={resolvedTone}>\n {trend === 'up' && <TrendingUpIcon />}\n {trend === 'down' && <TrendingDownIcon />}\n {delta}\n </span>\n )}\n {hint && <span className=\"oui-stat__hint\">{hint}</span>}\n </div>\n )}\n </>\n )}\n </Card>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StatCard.js","names":["React","cx","Card","CardProps","Skeleton","TrendingDownIcon","TrendingUpIcon","StatTrend","StatTone","StatCardProps","Omit","label","ReactNode","value","unit","delta","trend","tone","hint","icon","loading","StatCard","t0","$","_c","className","props","ref","resolvedTone","t1","t2","t3","t4","t5","t6","_c","_Fragment"],"sources":["../../../src/components/stat-card/StatCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Card, type CardProps } from '../card/Card';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { TrendingDownIcon, TrendingUpIcon } from '../../icons';\n\nexport type StatTrend = 'up' | 'down' | 'flat';\nexport type StatTone = 'positive' | 'negative' | 'neutral';\n\nexport interface StatCardProps extends Omit<CardProps, 'children'> {\n /** What the number measures. */\n label: React.ReactNode;\n /** The headline figure. */\n value: React.ReactNode;\n /** Unit beside the value, e.g. \"kWh\" or \"orders\". */\n unit?: React.ReactNode;\n /** Change indicator, e.g. \"+12.4%\". */\n delta?: React.ReactNode;\n /** Arrow direction shown next to `delta`. */\n trend?: StatTrend;\n /** Color of the delta. Defaults to positive for `up`, negative for `down`. */\n tone?: StatTone;\n /** Supporting text under the value. */\n hint?: React.ReactNode;\n /** Icon tile shown in the top-right corner. */\n icon?: React.ReactNode;\n /** Replaces the value with a skeleton while data loads. */\n loading?: boolean;\n}\n\n/** KPI tile: label, large value, optional unit and trend. */\nexport function StatCard({\n label,\n value,\n unit,\n delta,\n trend,\n tone,\n hint,\n icon,\n loading,\n className,\n ref,\n ...props\n}: StatCardProps) {\n const resolvedTone: StatTone = tone ?? (trend === 'up' ? 'positive' : trend === 'down' ? 'negative' : 'neutral');\n return (\n <Card ref={ref} className={cx('oui-stat', className)} {...props}>\n <div className=\"oui-stat__header\">\n <p className=\"oui-stat__label\">{label}</p>\n {icon && <span className=\"oui-stat__icon\">{icon}</span>}\n </div>\n {loading ? (\n <div className=\"oui-stat__loading\">\n <Skeleton height=\"2.25rem\" width=\"55%\" />\n <Skeleton height=\"0.9rem\" width=\"35%\" />\n </div>\n ) : (\n <>\n <div className=\"oui-stat__body\">\n <p className=\"oui-stat__value\">{value}</p>\n {unit && <p className=\"oui-stat__unit\">{unit}</p>}\n </div>\n {(delta || hint) && (\n <div className=\"oui-stat__footer\">\n {delta && (\n <span className=\"oui-stat__delta\" data-tone={resolvedTone}>\n {trend === 'up' && <TrendingUpIcon />}\n {trend === 'down' && <TrendingDownIcon />}\n {delta}\n </span>\n )}\n {hint && <span className=\"oui-stat__hint\">{hint}</span>}\n </div>\n )}\n </>\n )}\n </Card>\n );\n}\n"],"mappings":"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"}
@@ -17,11 +17,15 @@ export interface StepperLabels {
17
17
  error: string;
18
18
  }
19
19
  export interface StepperProps extends React.OlHTMLAttributes<HTMLOListElement> {
20
+ /** Ref to the `<ol>` element. */
20
21
  ref?: React.Ref<HTMLOListElement>;
22
+ /** The steps in order. */
21
23
  steps: StepItem[];
22
24
  /** Index of the active step. Earlier steps are complete; `steps.length` completes all of them. */
23
25
  current?: number;
26
+ /** Lay the steps out in a row or a column. */
24
27
  orientation?: 'horizontal' | 'vertical';
28
+ /** Marker and text size. */
25
29
  size?: 'sm' | 'md';
26
30
  /** Screen-reader text for each status. */
27
31
  labels?: Partial<StepperLabels>;
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper.js","names":["React","cx","CheckIcon","XIcon","StepStatus","StepItem","id","label","ReactNode","description","status","icon","StepperLabels","complete","current","upcoming","error","defaultLabels","StepperProps","OlHTMLAttributes","HTMLOListElement","ref","Ref","steps","orientation","size","labels","Partial","Stepper","t0","$","_c","className","props","t1","t2","t3","undefined","t4","text","t5","t6","t7","step","index","map","_c"],"sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { CheckIcon, XIcon } from '../../icons';\n\nexport type StepStatus = 'complete' | 'current' | 'upcoming' | 'error';\n\nexport interface StepItem {\n /** Stable key; falls back to the index. */\n id?: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n /** Overrides the status derived from `current`. */\n status?: StepStatus;\n /** Replaces the number / check mark inside the marker. */\n icon?: React.ReactNode;\n}\n\nexport interface StepperLabels {\n complete: string;\n current: string;\n upcoming: string;\n error: string;\n}\n\nconst defaultLabels: StepperLabels = {\n complete: 'Completed',\n current: 'Current',\n upcoming: 'Not started',\n error: 'Failed',\n};\n\nexport interface StepperProps extends React.OlHTMLAttributes<HTMLOListElement> {\n ref?: React.Ref<HTMLOListElement>;\n steps: StepItem[];\n /** Index of the active step. Earlier steps are complete; `steps.length` completes all of them. */\n current?: number;\n orientation?: 'horizontal' | 'vertical';\n size?: 'sm' | 'md';\n /** Screen-reader text for each status. */\n labels?: Partial<StepperLabels>;\n}\n\n/** Progress through an ordered sequence: a wizard, a checkout, a background job's phases. */\nexport function Stepper({\n steps,\n current = 0,\n orientation = 'horizontal',\n size = 'md',\n labels,\n className,\n ref,\n ...props\n}: StepperProps) {\n const text = { ...defaultLabels, ...labels };\n return (\n <ol ref={ref} className={cx('oui-stepper', className)} data-orientation={orientation} data-size={size} {...props}>\n {steps.map((step, index) => {\n const status: StepStatus =\n step.status ?? (index < current ? 'complete' : index === current ? 'current' : 'upcoming');\n return (\n <li\n key={step.id ?? index}\n className=\"oui-stepper__step\"\n data-status={status}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n <span className=\"oui-stepper__marker\" aria-hidden>\n {step.icon ?? (status === 'complete' ? <CheckIcon strokeWidth={3} /> : status === 'error' ? <XIcon strokeWidth={3} /> : index + 1)}\n </span>\n <span className=\"oui-stepper__text\">\n <span className=\"oui-stepper__label\">\n {step.label}\n <span className=\"oui-visually-hidden\"> ({text[status]})</span>\n </span>\n {step.description && <span className=\"oui-stepper__description\">{step.description}</span>}\n </span>\n </li>\n );\n })}\n </ol>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Stepper.js","names":["React","cx","CheckIcon","XIcon","StepStatus","StepItem","id","label","ReactNode","description","status","icon","StepperLabels","complete","current","upcoming","error","defaultLabels","StepperProps","OlHTMLAttributes","HTMLOListElement","ref","Ref","steps","orientation","size","labels","Partial","Stepper","t0","$","_c","className","props","t1","t2","t3","undefined","t4","text","t5","t6","t7","step","index","map","_c"],"sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { CheckIcon, XIcon } from '../../icons';\n\nexport type StepStatus = 'complete' | 'current' | 'upcoming' | 'error';\n\nexport interface StepItem {\n /** Stable key; falls back to the index. */\n id?: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n /** Overrides the status derived from `current`. */\n status?: StepStatus;\n /** Replaces the number / check mark inside the marker. */\n icon?: React.ReactNode;\n}\n\nexport interface StepperLabels {\n complete: string;\n current: string;\n upcoming: string;\n error: string;\n}\n\nconst defaultLabels: StepperLabels = {\n complete: 'Completed',\n current: 'Current',\n upcoming: 'Not started',\n error: 'Failed',\n};\n\nexport interface StepperProps extends React.OlHTMLAttributes<HTMLOListElement> {\n /** Ref to the `<ol>` element. */\n ref?: React.Ref<HTMLOListElement>;\n /** The steps in order. */\n steps: StepItem[];\n /** Index of the active step. Earlier steps are complete; `steps.length` completes all of them. */\n current?: number;\n /** Lay the steps out in a row or a column. */\n orientation?: 'horizontal' | 'vertical';\n /** Marker and text size. */\n size?: 'sm' | 'md';\n /** Screen-reader text for each status. */\n labels?: Partial<StepperLabels>;\n}\n\n/** Progress through an ordered sequence: a wizard, a checkout, a background job's phases. */\nexport function Stepper({\n steps,\n current = 0,\n orientation = 'horizontal',\n size = 'md',\n labels,\n className,\n ref,\n ...props\n}: StepperProps) {\n const text = { ...defaultLabels, ...labels };\n return (\n <ol ref={ref} className={cx('oui-stepper', className)} data-orientation={orientation} data-size={size} {...props}>\n {steps.map((step, index) => {\n const status: StepStatus =\n step.status ?? (index < current ? 'complete' : index === current ? 'current' : 'upcoming');\n return (\n <li\n key={step.id ?? index}\n className=\"oui-stepper__step\"\n data-status={status}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n <span className=\"oui-stepper__marker\" aria-hidden>\n {step.icon ?? (status === 'complete' ? <CheckIcon strokeWidth={3} /> : status === 'error' ? <XIcon strokeWidth={3} /> : index + 1)}\n </span>\n <span className=\"oui-stepper__text\">\n <span className=\"oui-stepper__label\">\n {step.label}\n <span className=\"oui-visually-hidden\"> ({text[status]})</span>\n </span>\n {step.description && <span className=\"oui-stepper__description\">{step.description}</span>}\n </span>\n </li>\n );\n })}\n </ol>\n );\n}\n"],"mappings":";;;;;;;AAwBA,IAAMiB,gBAA+B;CACnCJ,UAAU;CACVC,SAAS;CACTC,UAAU;CACVC,OAAO;AACT;;AAkBA,SAAOY,QAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAN;CAAA,IAAAO;CAAA,IAAAZ;CAAA,IAAAE;CAAA,IAAAW;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAN,EAAA,OAAAD,IAAA;EAAiB,CAAA,CAAAN,OAAAT,SAAAoB,IAAAV,aAAAW,IAAAV,MAAAW,IAAAV,QAAAM,WAAAX,KAAA,GAAAY,SAAAJ;EASTC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAJ;EAAAI,EAAA,KAAAG;EAAAH,EAAA,KAAAT;EAAAS,EAAA,KAAAP;EAAAO,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAA;EAAAJ,YAAAF,EAAA;EAAAJ,SAAAI,EAAA;EAAAG,QAAAH,EAAA;EAAAT,MAAAS,EAAA;EAAAP,QAAAO,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAAM,KAAAN,EAAA;CAAA;CAPb,MAAAhB,UAAAoB,OAAAG,KAAAA,IAAA,IAAAH;CACA,MAAAV,cAAAW,OAAAE,KAAAA,IAAA,eAAAF;CACA,MAAAV,OAAAW,OAAAC,KAAAA,IAAA,OAAAD;CAAW,IAAAE;CAAA,IAAAR,EAAA,OAAAJ,QAAA;EAMEY,KAAA;GAAA,GAAKrB;GAAa,GAAKS;EAAO;EAACI,EAAA,KAAAJ;EAAAI,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAA5C,MAAAS,OAAaD;CAAgC,IAAAE;CAAA,IAAAV,EAAA,QAAAE,WAAA;EAElBQ,KAAAvC,GAAG,eAAe+B,SAAS;EAACF,EAAA,MAAAE;EAAAF,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,QAAAhB,WAAAgB,EAAA,QAAAP,SAAAO,EAAA,QAAAS,MAAA;EAAA,IAAAG;EAAA,IAAAZ,EAAA,QAAAhB,WAAAgB,EAAA,QAAAS,MAAA;GACxCG,MAAAC,MAAAC,UAAA;IACT,MAAAlC,SACEiC,KAAIjC,WAAYkC,QAAQ9B,UAAR,aAA+B8B,UAAU9B,UAAV,YAAA;IAA4C,OAE3F,qBAAA,MAAA;KAEY,WAAA;KACGJ,eAAAA;KACC,gBAAAA,WAAW,YAAX,SAAA2B,KAAAA;KAJhB,UAAA,CAME,oBAAA,QAAA;MAAgB,WAAA;MAAsB,eAAA;MACnCM,UAAAA,KAAIhC,SAAUD,WAAW,aAAa,oBAAC,WAAD,EAAwB,aAAA,EAAC,CAAA,IAAOA,WAAW,UAAU,oBAAC,OAAD,EAAoB,aAAA,EAAC,CAAA,IAAOkC,QAAQ;KAC3H,CAAA,GACP,qBAAA,QAAA;MAAgB,WAAA;MAAhB,UAAA,CACE,qBAAA,QAAA;OAAgB,WAAA;OAAhB,UAAA,CACGD,KAAIpC,OACL,qBAAA,QAAA;QAAgB,WAAA;QAAhB,UAAA;SAAsC;SAAGgC,KAAK7B;SAAQ;QAAQ;OACzD,CAAA,CAAA;MACNiC,CAAAA,GAAAA,KAAIlC,eAAgB,oBAAA,QAAA;OAAgB,WAAA;OAA4BkC,UAAAA,KAAIlC;MAAoB,CAAA,CACpF;KACJ,CAAA,CAAA;IAfEkC,GAAAA,KAAIrC,MAAJsC,KAeF;GAAA;GAERd,EAAA,MAAAhB;GAAAgB,EAAA,MAAAS;GAAAT,EAAA,MAAAY;EAAA,OAAAA,KAAAZ,EAAA;EAtBAW,KAAAlB,MAAKsB,IAAKH,EAsBV;EAACZ,EAAA,MAAAhB;EAAAgB,EAAA,MAAAP;EAAAO,EAAA,MAAAS;EAAAT,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAN,eAAAM,EAAA,QAAAG,SAAAH,EAAA,QAAAT,OAAAS,EAAA,QAAAL,QAAAK,EAAA,QAAAU,MAAAV,EAAA,QAAAW,IAAA;EAvBJC,KAAA,oBAAA,MAAA;GAASrB;GAAgB,WAAAmB;GAAgDhB,oBAAAA;GAAwBC,aAAAA;GAAI,GAAMQ;GACxGQ,UAAAA;EAuBE,CAAA;EAAAX,EAAA,MAAAN;EAAAM,EAAA,MAAAG;EAAAH,EAAA,MAAAT;EAAAS,EAAA,MAAAL;EAAAK,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAxBLY;AAwBK"}
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
3
+ /** Ref to the `<table>`. */
3
4
  ref?: React.Ref<HTMLTableElement>;
4
5
  /** Row height. */
5
6
  density?: 'compact' | 'normal' | 'comfortable';
@@ -12,6 +13,21 @@ export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement>
12
13
  /** Props for the horizontally scrolling wrapper. */
13
14
  wrapperProps?: React.HTMLAttributes<HTMLDivElement>;
14
15
  }
16
+ /**
17
+ * Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,
18
+ * `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting
19
+ * and pagination use `DataTable` instead.
20
+ *
21
+ * @example
22
+ * <Table striped>
23
+ * <TableHeader>
24
+ * <TableRow><TableHead>Site</TableHead><TableHead align="end">kWh</TableHead></TableRow>
25
+ * </TableHeader>
26
+ * <TableBody>
27
+ * <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>
28
+ * </TableBody>
29
+ * </Table>
30
+ */
15
31
  export declare function Table({ density, striped, hoverable, stickyHeader, wrapperProps, className, ref, ...props }: TableProps): React.JSX.Element;
16
32
  export declare const TableHeader: {
17
33
  (props: import("../../utils/primitive").PrimitiveProps<"thead">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
@@ -36,18 +52,25 @@ export declare const TableCaption: {
36
52
  type Align = 'start' | 'center' | 'end';
37
53
  export type SortDirection = 'asc' | 'desc' | false;
38
54
  export interface TableHeadProps extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'align'> {
55
+ /** Ref to the `<th>`. */
39
56
  ref?: React.Ref<HTMLTableCellElement>;
57
+ /** Horizontal alignment of the header content. */
40
58
  align?: Align;
41
59
  /** Current sort of this column. Passing it (even `false`) makes the header sortable. */
42
60
  sort?: SortDirection;
61
+ /** Called when the sortable header is clicked. */
43
62
  onSort?: () => void;
44
63
  }
64
+ /** Column header cell (`<th>`), optionally a sort button. */
45
65
  export declare function TableHead({ align, sort, onSort, className, children, ref, ...props }: TableHeadProps): React.JSX.Element;
46
66
  export interface TableCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'align'> {
67
+ /** Ref to the `<td>`. */
47
68
  ref?: React.Ref<HTMLTableCellElement>;
69
+ /** Horizontal alignment. Defaults to `end` when `numeric`, else `start`. */
48
70
  align?: Align;
49
71
  /** Tabular figures for numeric columns. */
50
72
  numeric?: boolean;
51
73
  }
74
+ /** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */
52
75
  export declare function TableCell({ align, numeric, className, ref, ...props }: TableCellProps): React.JSX.Element;
53
76
  export {};
@@ -6,6 +6,21 @@ import { c } from "react/compiler-runtime";
6
6
  import "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region src/components/table/Table.tsx
9
+ /**
10
+ * Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,
11
+ * `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting
12
+ * and pagination use `DataTable` instead.
13
+ *
14
+ * @example
15
+ * <Table striped>
16
+ * <TableHeader>
17
+ * <TableRow><TableHead>Site</TableHead><TableHead align="end">kWh</TableHead></TableRow>
18
+ * </TableHeader>
19
+ * <TableBody>
20
+ * <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>
21
+ * </TableBody>
22
+ * </Table>
23
+ */
9
24
  function Table(t0) {
10
25
  const $ = c(25);
11
26
  let className;
@@ -94,6 +109,7 @@ var TableBody = createPrimitive("tbody", "oui-table__body", "TableBody");
94
109
  var TableFooter = createPrimitive("tfoot", "oui-table__footer", "TableFooter");
95
110
  var TableRow = createPrimitive("tr", "oui-table__row", "TableRow");
96
111
  var TableCaption = createPrimitive("caption", "oui-table__caption", "TableCaption");
112
+ /** Column header cell (`<th>`), optionally a sort button. */
97
113
  function TableHead(t0) {
98
114
  const $ = c(22);
99
115
  let children;
@@ -167,6 +183,7 @@ function TableHead(t0) {
167
183
  } else t5 = $[21];
168
184
  return t5;
169
185
  }
186
+ /** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */
170
187
  function TableCell(t0) {
171
188
  const $ = c(14);
172
189
  let align;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["React","cx","createPrimitive","ArrowDownIcon","ArrowUpIcon","ChevronsUpDownIcon","TableProps","TableHTMLAttributes","HTMLTableElement","ref","Ref","density","striped","hoverable","stickyHeader","wrapperProps","HTMLAttributes","HTMLDivElement","Table","t0","$","_c","className","props","t1","t2","undefined","t3","t4","t5","t6","t7","t8","t9","t10","TableHeader","TableBody","TableFooter","TableRow","TableCaption","Align","SortDirection","TableHeadProps","Omit","ThHTMLAttributes","HTMLTableCellElement","align","sort","onSort","TableHead","children","sortable","TableCellProps","TdHTMLAttributes","numeric","TableCell","_c"],"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { ArrowDownIcon, ArrowUpIcon, ChevronsUpDownIcon } from '../../icons';\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n ref?: React.Ref<HTMLTableElement>;\n /** Row height. */\n density?: 'compact' | 'normal' | 'comfortable';\n /** Alternating row background. */\n striped?: boolean;\n /** Highlight rows on hover. */\n hoverable?: boolean;\n /** Keep the header visible while the wrapper scrolls (set a max height on it). */\n stickyHeader?: boolean;\n /** Props for the horizontally scrolling wrapper. */\n wrapperProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\nexport function Table({\n density = 'normal',\n striped,\n hoverable = true,\n stickyHeader,\n wrapperProps,\n className,\n ref,\n ...props\n}: TableProps) {\n return (\n <div {...wrapperProps} className={cx('oui-table-wrap', wrapperProps?.className)}>\n <table\n ref={ref}\n className={cx('oui-table', className)}\n data-density={density}\n data-striped={striped || undefined}\n data-hoverable={hoverable || undefined}\n data-sticky-header={stickyHeader || undefined}\n {...props}\n />\n </div>\n );\n}\n\nexport const TableHeader = createPrimitive('thead', 'oui-table__header', 'TableHeader');\nexport const TableBody = createPrimitive('tbody', 'oui-table__body', 'TableBody');\nexport const TableFooter = createPrimitive('tfoot', 'oui-table__footer', 'TableFooter');\nexport const TableRow = createPrimitive('tr', 'oui-table__row', 'TableRow');\nexport const TableCaption = createPrimitive('caption', 'oui-table__caption', 'TableCaption');\n\ntype Align = 'start' | 'center' | 'end';\nexport type SortDirection = 'asc' | 'desc' | false;\n\nexport interface TableHeadProps extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'align'> {\n ref?: React.Ref<HTMLTableCellElement>;\n align?: Align;\n /** Current sort of this column. Passing it (even `false`) makes the header sortable. */\n sort?: SortDirection;\n onSort?: () => void;\n}\n\nexport function TableHead({ align = 'start', sort, onSort, className, children, ref, ...props }: TableHeadProps) {\n const sortable = sort !== undefined;\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cx('oui-table__head', className)}\n data-align={align}\n aria-sort={sort === 'asc' ? 'ascending' : sort === 'desc' ? 'descending' : undefined}\n {...props}\n >\n {sortable ? (\n <button type=\"button\" className=\"oui-table__sort\" data-active={sort ? '' : undefined} onClick={onSort}>\n {children}\n {sort === 'asc' ? <ArrowUpIcon /> : sort === 'desc' ? <ArrowDownIcon /> : <ChevronsUpDownIcon />}\n </button>\n ) : (\n children\n )}\n </th>\n );\n}\n\nexport interface TableCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'align'> {\n ref?: React.Ref<HTMLTableCellElement>;\n align?: Align;\n /** Tabular figures for numeric columns. */\n numeric?: boolean;\n}\n\nexport function TableCell({ align, numeric, className, ref, ...props }: TableCellProps) {\n return (\n <td\n ref={ref}\n className={cx('oui-table__cell', className)}\n data-align={align ?? (numeric ? 'end' : 'start')}\n data-numeric={numeric || undefined}\n {...props}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","names":["React","cx","createPrimitive","ArrowDownIcon","ArrowUpIcon","ChevronsUpDownIcon","TableProps","TableHTMLAttributes","HTMLTableElement","ref","Ref","density","striped","hoverable","stickyHeader","wrapperProps","HTMLAttributes","HTMLDivElement","Table","t0","$","_c","className","props","t1","t2","undefined","t3","t4","t5","t6","t7","t8","t9","t10","TableHeader","TableBody","TableFooter","TableRow","TableCaption","Align","SortDirection","TableHeadProps","Omit","ThHTMLAttributes","HTMLTableCellElement","align","sort","onSort","TableHead","children","sortable","TableCellProps","TdHTMLAttributes","numeric","TableCell","_c"],"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { ArrowDownIcon, ArrowUpIcon, ChevronsUpDownIcon } from '../../icons';\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Ref to the `<table>`. */\n ref?: React.Ref<HTMLTableElement>;\n /** Row height. */\n density?: 'compact' | 'normal' | 'comfortable';\n /** Alternating row background. */\n striped?: boolean;\n /** Highlight rows on hover. */\n hoverable?: boolean;\n /** Keep the header visible while the wrapper scrolls (set a max height on it). */\n stickyHeader?: boolean;\n /** Props for the horizontally scrolling wrapper. */\n wrapperProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\n/**\n * Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,\n * `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting\n * and pagination use `DataTable` instead.\n *\n * @example\n * <Table striped>\n * <TableHeader>\n * <TableRow><TableHead>Site</TableHead><TableHead align=\"end\">kWh</TableHead></TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>\n * </TableBody>\n * </Table>\n */\nexport function Table({\n density = 'normal',\n striped,\n hoverable = true,\n stickyHeader,\n wrapperProps,\n className,\n ref,\n ...props\n}: TableProps) {\n return (\n <div {...wrapperProps} className={cx('oui-table-wrap', wrapperProps?.className)}>\n <table\n ref={ref}\n className={cx('oui-table', className)}\n data-density={density}\n data-striped={striped || undefined}\n data-hoverable={hoverable || undefined}\n data-sticky-header={stickyHeader || undefined}\n {...props}\n />\n </div>\n );\n}\n\nexport const TableHeader = createPrimitive('thead', 'oui-table__header', 'TableHeader');\nexport const TableBody = createPrimitive('tbody', 'oui-table__body', 'TableBody');\nexport const TableFooter = createPrimitive('tfoot', 'oui-table__footer', 'TableFooter');\nexport const TableRow = createPrimitive('tr', 'oui-table__row', 'TableRow');\nexport const TableCaption = createPrimitive('caption', 'oui-table__caption', 'TableCaption');\n\ntype Align = 'start' | 'center' | 'end';\nexport type SortDirection = 'asc' | 'desc' | false;\n\nexport interface TableHeadProps extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'align'> {\n /** Ref to the `<th>`. */\n ref?: React.Ref<HTMLTableCellElement>;\n /** Horizontal alignment of the header content. */\n align?: Align;\n /** Current sort of this column. Passing it (even `false`) makes the header sortable. */\n sort?: SortDirection;\n /** Called when the sortable header is clicked. */\n onSort?: () => void;\n}\n\n/** Column header cell (`<th>`), optionally a sort button. */\nexport function TableHead({ align = 'start', sort, onSort, className, children, ref, ...props }: TableHeadProps) {\n const sortable = sort !== undefined;\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cx('oui-table__head', className)}\n data-align={align}\n aria-sort={sort === 'asc' ? 'ascending' : sort === 'desc' ? 'descending' : undefined}\n {...props}\n >\n {sortable ? (\n <button type=\"button\" className=\"oui-table__sort\" data-active={sort ? '' : undefined} onClick={onSort}>\n {children}\n {sort === 'asc' ? <ArrowUpIcon /> : sort === 'desc' ? <ArrowDownIcon /> : <ChevronsUpDownIcon />}\n </button>\n ) : (\n children\n )}\n </th>\n );\n}\n\nexport interface TableCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'align'> {\n /** Ref to the `<td>`. */\n ref?: React.Ref<HTMLTableCellElement>;\n /** Horizontal alignment. Defaults to `end` when `numeric`, else `start`. */\n align?: Align;\n /** Tabular figures for numeric columns. */\n numeric?: boolean;\n}\n\n/** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */\nexport function TableCell({ align, numeric, className, ref, ...props }: TableCellProps) {\n return (\n <td\n ref={ref}\n className={cx('oui-table__cell', className)}\n data-align={align ?? (numeric ? 'end' : 'start')}\n data-numeric={numeric || undefined}\n {...props}\n />\n );\n}\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ export type TabsVariant = 'underline' | 'segmented';
3
3
  export interface TabsListProps extends BaseTabs.List.Props {
4
4
  /** `underline` (default) for page sections, `segmented` for compact switchers. */
5
5
  variant?: TabsVariant;
6
+ /** Tab height and text size. */
6
7
  size?: 'sm' | 'md';
7
8
  }
8
9
  declare function TabsRoot({ className, ref, ...props }: BaseTabs.Root.Props): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","names":["Tabs","BaseTabs","withClass","TabsVariant","TabsListProps","List","Props","variant","size","TabsRoot","t0","$","_c","className","props","ref","t1","t2","TabsList","children","undefined","t3","t4","Symbol","for","t5","TabsTab","TabsPanel","Root","Tab","Panel","_c","BaseTabs","Tabs"],"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { withClass } from '../../utils/cx';\n\nexport type TabsVariant = 'underline' | 'segmented';\n\nexport interface TabsListProps extends BaseTabs.List.Props {\n /** `underline` (default) for page sections, `segmented` for compact switchers. */\n variant?: TabsVariant;\n size?: 'sm' | 'md';\n}\n\nfunction TabsRoot({ className, ref, ...props }: BaseTabs.Root.Props) {\n return <BaseTabs.Root ref={ref} className={withClass('oui-tabs', className)} {...props} />;\n}\n\nfunction TabsList({ variant = 'underline', size = 'md', className, children, ref, ...props }: TabsListProps) {\n return (\n <BaseTabs.List\n ref={ref}\n className={withClass('oui-tabs__list', className)}\n data-variant={variant}\n data-size={size}\n {...props}\n >\n {children}\n <BaseTabs.Indicator className=\"oui-tabs__indicator\" />\n </BaseTabs.List>\n );\n}\n\nfunction TabsTab({ className, ref, ...props }: BaseTabs.Tab.Props) {\n return <BaseTabs.Tab ref={ref} className={withClass('oui-tabs__tab', className)} {...props} />;\n}\n\nfunction TabsPanel({ className, ref, ...props }: BaseTabs.Panel.Props) {\n return <BaseTabs.Panel ref={ref} className={withClass('oui-tabs__panel', className)} {...props} />;\n}\n\n/** `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. */\nexport const Tabs = { Root: TabsRoot, List: TabsList, Tab: TabsTab, Panel: TabsPanel };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.js","names":["Tabs","BaseTabs","withClass","TabsVariant","TabsListProps","List","Props","variant","size","TabsRoot","t0","$","_c","className","props","ref","t1","t2","TabsList","children","undefined","t3","t4","Symbol","for","t5","TabsTab","TabsPanel","Root","Tab","Panel","_c","BaseTabs","Tabs"],"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport { withClass } from '../../utils/cx';\n\nexport type TabsVariant = 'underline' | 'segmented';\n\nexport interface TabsListProps extends BaseTabs.List.Props {\n /** `underline` (default) for page sections, `segmented` for compact switchers. */\n variant?: TabsVariant;\n /** Tab height and text size. */\n size?: 'sm' | 'md';\n}\n\nfunction TabsRoot({ className, ref, ...props }: BaseTabs.Root.Props) {\n return <BaseTabs.Root ref={ref} className={withClass('oui-tabs', className)} {...props} />;\n}\n\nfunction TabsList({ variant = 'underline', size = 'md', className, children, ref, ...props }: TabsListProps) {\n return (\n <BaseTabs.List\n ref={ref}\n className={withClass('oui-tabs__list', className)}\n data-variant={variant}\n data-size={size}\n {...props}\n >\n {children}\n <BaseTabs.Indicator className=\"oui-tabs__indicator\" />\n </BaseTabs.List>\n );\n}\n\nfunction TabsTab({ className, ref, ...props }: BaseTabs.Tab.Props) {\n return <BaseTabs.Tab ref={ref} className={withClass('oui-tabs__tab', className)} {...props} />;\n}\n\nfunction TabsPanel({ className, ref, ...props }: BaseTabs.Panel.Props) {\n return <BaseTabs.Panel ref={ref} className={withClass('oui-tabs__panel', className)} {...props} />;\n}\n\n/** `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. */\nexport const Tabs = { Root: TabsRoot, List: TabsList, Tab: TabsTab, Panel: TabsPanel };\n"],"mappings":"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"}
@@ -8,7 +8,9 @@ export type TagState = {
8
8
  disabled: boolean;
9
9
  };
10
10
  export interface TagProps extends useRender.ComponentProps<'span', TagState> {
11
+ /** Semantic color. */
11
12
  tone?: BadgeTone;
13
+ /** Tag height. */
12
14
  size?: 'sm' | 'md';
13
15
  /** Leading icon. */
14
16
  icon?: React.ReactNode;
@@ -16,6 +18,7 @@ export interface TagProps extends useRender.ComponentProps<'span', TagState> {
16
18
  onRemove?: () => void;
17
19
  /** Accessible name of the remove button. Defaults to "Remove <text>". */
18
20
  removeLabel?: string;
21
+ /** Dims the tag and disables its remove button. */
19
22
  disabled?: boolean;
20
23
  }
21
24
  /** Label for a value the user can take away again: an active filter, a recipient, a keyword. */
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","names":["React","useRender","mergeProps","XIcon","BadgeTone","TagState","tone","size","removable","disabled","TagProps","ComponentProps","icon","ReactNode","onRemove","removeLabel","Tag","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","render","children","ref","props","undefined","t10","Boolean","t11","state","t12","t13","t14","className","defaultTagName","_c","_Fragment"],"sources":["../../../src/components/tag/Tag.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { XIcon } from '../../icons';\nimport type { BadgeTone } from '../badge/Badge';\n\nexport type TagState = {\n tone: BadgeTone;\n size: 'sm' | 'md';\n removable: boolean;\n disabled: boolean;\n};\n\nexport interface TagProps extends useRender.ComponentProps<'span', TagState> {\n tone?: BadgeTone;\n size?: 'sm' | 'md';\n /** Leading icon. */\n icon?: React.ReactNode;\n /** Adds the remove button. */\n onRemove?: () => void;\n /** Accessible name of the remove button. Defaults to \"Remove <text>\". */\n removeLabel?: string;\n disabled?: boolean;\n}\n\n/** Label for a value the user can take away again: an active filter, a recipient, a keyword. */\nexport function Tag({\n tone = 'neutral',\n size = 'md',\n icon,\n onRemove,\n removeLabel,\n disabled = false,\n render,\n children,\n ref,\n ...props\n}: TagProps) {\n const state: TagState = { tone, size, removable: Boolean(onRemove), disabled };\n return useRender({\n defaultTagName: 'span',\n render,\n ref,\n state,\n props: mergeProps<'span'>(\n {\n className: 'oui-tag',\n children: (\n <>\n {icon}\n <span className=\"oui-tag__label\">{children}</span>\n {onRemove && (\n <button\n type=\"button\"\n className=\"oui-tag__remove\"\n aria-label={removeLabel ?? (typeof children === 'string' ? `Remove ${children}` : 'Remove')}\n disabled={disabled}\n onClick={onRemove}\n >\n <XIcon />\n </button>\n )}\n </>\n ),\n },\n props,\n ),\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tag.js","names":["React","useRender","mergeProps","XIcon","BadgeTone","TagState","tone","size","removable","disabled","TagProps","ComponentProps","icon","ReactNode","onRemove","removeLabel","Tag","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","render","children","ref","props","undefined","t10","Boolean","t11","state","t12","t13","t14","className","defaultTagName","_c","_Fragment"],"sources":["../../../src/components/tag/Tag.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { XIcon } from '../../icons';\nimport type { BadgeTone } from '../badge/Badge';\n\nexport type TagState = {\n tone: BadgeTone;\n size: 'sm' | 'md';\n removable: boolean;\n disabled: boolean;\n};\n\nexport interface TagProps extends useRender.ComponentProps<'span', TagState> {\n /** Semantic color. */\n tone?: BadgeTone;\n /** Tag height. */\n size?: 'sm' | 'md';\n /** Leading icon. */\n icon?: React.ReactNode;\n /** Adds the remove button. */\n onRemove?: () => void;\n /** Accessible name of the remove button. Defaults to \"Remove <text>\". */\n removeLabel?: string;\n /** Dims the tag and disables its remove button. */\n disabled?: boolean;\n}\n\n/** Label for a value the user can take away again: an active filter, a recipient, a keyword. */\nexport function Tag({\n tone = 'neutral',\n size = 'md',\n icon,\n onRemove,\n removeLabel,\n disabled = false,\n render,\n children,\n ref,\n ...props\n}: TagProps) {\n const state: TagState = { tone, size, removable: Boolean(onRemove), disabled };\n return useRender({\n defaultTagName: 'span',\n render,\n ref,\n state,\n props: mergeProps<'span'>(\n {\n className: 'oui-tag',\n children: (\n <>\n {icon}\n <span className=\"oui-tag__label\">{children}</span>\n {onRemove && (\n <button\n type=\"button\"\n className=\"oui-tag__remove\"\n aria-label={removeLabel ?? (typeof children === 'string' ? `Remove ${children}` : 'Remove')}\n disabled={disabled}\n onClick={onRemove}\n >\n <XIcon />\n </button>\n )}\n </>\n ),\n },\n props,\n ),\n });\n}\n"],"mappings":"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"}
@@ -3,7 +3,9 @@ import { Toast as BaseToast } from '@base-ui/react/toast';
3
3
  export type ToastTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';
4
4
  export type ToastPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'top-center';
5
5
  export interface ToastProviderProps extends Omit<BaseToast.Provider.Props, 'children'> {
6
+ /** App content; toasts render over it. */
6
7
  children?: React.ReactNode;
8
+ /** Screen corner or edge where toasts stack. */
7
9
  placement?: ToastPlacement;
8
10
  /** Class for the viewport (positioning container). */
9
11
  viewportClassName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","names":["React","Toast","BaseToast","cx","usePortalContainer","CircleCheckIcon","CircleXIcon","InfoIcon","TriangleAlertIcon","XIcon","ToastTone","ToastPlacement","icons","Partial","Record","ReactNode","info","success","warning","danger","ToastList","$","_c","toasts","useToastManager","t0","map","_temp","toast","id","type","actionProps","ToastProviderProps","Omit","Provider","Props","children","placement","viewportClassName","ToastProvider","props","t1","undefined","container","t2","t3","Symbol","for","t4","t5","t6","AddOptions","Parameters","ReturnType","ToneOptions","useToast","manager","options","add","options_0","options_1","options_2","options_3","priority","show","createToastManager","_c","BaseToast"],"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Toast as BaseToast } from '@base-ui/react/toast';\nimport { cx } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CircleCheckIcon, CircleXIcon, InfoIcon, TriangleAlertIcon, XIcon } from '../../icons';\n\nexport type ToastTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\n\nexport type ToastPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'top-center';\n\nconst icons: Partial<Record<string, React.ReactNode>> = {\n info: <InfoIcon />,\n success: <CircleCheckIcon />,\n warning: <TriangleAlertIcon />,\n danger: <CircleXIcon />,\n};\n\nfunction ToastList() {\n const { toasts } = BaseToast.useToastManager();\n return toasts.map((toast) => (\n <BaseToast.Root key={toast.id} toast={toast} className=\"oui-toast\">\n <BaseToast.Content className=\"oui-toast__content\">\n {toast.type && icons[toast.type] && <span className=\"oui-toast__icon\">{icons[toast.type]}</span>}\n <div className=\"oui-toast__text\">\n <BaseToast.Title className=\"oui-toast__title\" />\n <BaseToast.Description className=\"oui-toast__description\" />\n </div>\n {toast.actionProps && <BaseToast.Action className=\"oui-toast__action\" />}\n <BaseToast.Close className=\"oui-toast__close\" aria-label=\"Close\">\n <XIcon />\n </BaseToast.Close>\n </BaseToast.Content>\n </BaseToast.Root>\n ));\n}\n\nexport interface ToastProviderProps extends Omit<BaseToast.Provider.Props, 'children'> {\n children?: React.ReactNode;\n placement?: ToastPlacement;\n /** Class for the viewport (positioning container). */\n viewportClassName?: string;\n}\n\n/**\n * Mount once near the app root. Then call `useToast()` anywhere below, or pass\n * a `toastManager` from `createToastManager()` to trigger toasts outside React.\n */\nexport function ToastProvider({ children, placement = 'bottom-right', viewportClassName, ...props }: ToastProviderProps) {\n const container = usePortalContainer();\n return (\n <BaseToast.Provider {...props}>\n {children}\n <BaseToast.Portal container={container}>\n <BaseToast.Viewport className={cx('oui-toast-viewport', viewportClassName)} data-placement={placement}>\n <ToastList />\n </BaseToast.Viewport>\n </BaseToast.Portal>\n </BaseToast.Provider>\n );\n}\n\ntype AddOptions = Parameters<ReturnType<typeof BaseToast.useToastManager>['add']>[0];\ntype ToneOptions = Omit<AddOptions, 'type'>;\n\n/** Toast API with tone shortcuts: `toast.success({ title })`. */\nexport function useToast() {\n const manager = BaseToast.useToastManager();\n return {\n ...manager,\n show: (options: AddOptions & { type?: ToastTone }) => manager.add(options),\n info: (options: ToneOptions) => manager.add({ ...options, type: 'info' }),\n success: (options: ToneOptions) => manager.add({ ...options, type: 'success' }),\n warning: (options: ToneOptions) => manager.add({ ...options, type: 'warning' }),\n danger: (options: ToneOptions) => manager.add({ ...options, type: 'danger', priority: 'high' }),\n };\n}\n\nexport const createToastManager = BaseToast.createToastManager;\n"],"mappings":";;;;;;;;;AAUA,IAAMY,QAAkD;CACtDI,MAAM,oBAAC,UAAD,CAAS,CAAA;CACfC,SAAS,oBAAC,iBAAD,CAAgB,CAAA;CACzBC,SAAS,oBAAC,mBAAD,CAAkB,CAAA;CAC3BC,QAAQ,oBAAC,aAAD,CAAY,CAAA;AACtB;AAEA,SAAAC,YAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACE,MAAA,EAAAC,WAAmBrB,MAASsB,gBAAiB;CAAE,IAAAC;CAAA,IAAAJ,EAAA,OAAAE,QAAA;EACxCE,KAAAF,OAAMG,IAAKC,KAcjB;EAACN,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAdKI;AAcL;AAhBJ,SAAAE,MAAAC,OAAA;CAAA,OAGI,oBAAAuC,MAAA,MAAA;EAAsCvC;EAAiB,WAAA;EACrD,UAAA,qBAAAuC,MAAA,SAAA;GAA6B,WAAA;GAA7B,UAAA;IACGvC,MAAKE,QAASlB,MAAMgB,MAAKE,SAAU,oBAAA,QAAA;KAAgB,WAAA;KAAmBlB,UAAAA,MAAMgB,MAAKE;IAAc,CAAA;IAChG,qBAAA,OAAA;KAAe,WAAA;KAAf,UAAA,CACE,oBAAAqC,MAAA,OAAA,EAA2B,WAAA,mBAAkB,CAAA,GAC7C,oBAAAA,MAAA,aAAA,EAAiC,WAAA,yBAAwB,CAAA,CACrD;;IACLvC,MAAKG,eAAgB,oBAAAoC,MAAA,QAAA,EAA4B,WAAA,oBAAmB,CAAA;IACrE,oBAAAA,MAAA,OAAA;KAA2B,WAAA;KAA8B,cAAA;KACvD,UAAA,oBAAC,OAAD,CAAM,CAAA;IACR,CAAA;GACF;;CACF,GAZqBvC,MAAKC,EAY1B;AAAiB;;;;;AAerB,SAAOU,cAAAd,IAAA;CAAA,MAAAJ,IAAAC,EAAA,EAAA;CAAA,IAAAc;CAAA,IAAAI;CAAA,IAAAC;CAAA,IAAAH;CAAA,IAAAjB,EAAA,OAAAI,IAAA;EAAuB,CAAA,CAAAW,UAAAC,WAAAI,IAAAH,mBAAA,GAAAE,SAAAf;EAAyFJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAe;EAAAf,EAAA,KAAAmB;EAAAnB,EAAA,KAAAoB;EAAApB,EAAA,KAAAiB;CAAA,OAAA;EAAAF,WAAAf,EAAA;EAAAmB,QAAAnB,EAAA;EAAAoB,KAAApB,EAAA;EAAAiB,oBAAAjB,EAAA;CAAA;CAA7E,MAAAgB,YAAAI,OAAAC,KAAAA,IAAA,iBAAAD;CACxC,MAAAE,YAAkBvC,mBAAmB;CAAE,IAAAwC;CAAA,IAAAvB,EAAA,OAAAiB,mBAAA;EAKFM,KAAAzC,GAAG,sBAAsBmC,iBAAiB;EAACjB,EAAA,KAAAiB;EAAAjB,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,IAAAwB;CAAA,IAAAxB,EAAA,OAAAyB,OAAAC,IAAA,2BAAA,GAAA;EACxEF,KAAA,oBAAC,WAAD,CAAU,CAAA;EAAGxB,EAAA,KAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAgB,aAAAhB,EAAA,OAAAuB,IAAA;EADfI,KAAA,oBAAAmB,MAAA,UAAA;GAA+B,WAAAvB;GAA6DP,kBAAAA;GAC1FQ,UAAAA;EACF,CAAA;EAAqBxB,EAAA,KAAAgB;EAAAhB,EAAA,KAAAuB;EAAAvB,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,QAAAsB,aAAAtB,EAAA,QAAA2B,IAAA;EAHvBC,KAAA,oBAAAkB,MAAA,QAAA;GAA6BxB;GAC3BK,UAAAA;EAGF,CAAA;EAAmB3B,EAAA,MAAAsB;EAAAtB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,IAAA6B;CAAA,IAAA7B,EAAA,QAAAe,YAAAf,EAAA,QAAAmB,SAAAnB,EAAA,QAAA4B,IAAA;EANrBC,KAAA,qBAAAiB,MAAA,UAAA;GAAA,GAAwB3B;GAAxB,UAAA,CACGJ,UACDa,EAKF;;EAAqB5B,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;EAAAnB,EAAA,MAAA4B;EAAA5B,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAAA,OAPrB6B;AAOqB;;AAQzB,SAAOK,WAAA;CAAA,MAAAlC,IAAAC,EAAA,EAAA;CACL,MAAAkC,UAAgBtD,MAASsB,gBAAiB;CAAE,IAAAC;CAAA,IAAAgB;CAAA,IAAAG;CAAA,IAAAC;CAAA,IAAAG;CAAA,IAAA3B,EAAA,OAAAmC,SAAA;EAGpC/B,MAAAgC,YAAgDD,QAAOE,IAAKD,OAAO;EACnEhB,MAAAkB,cAA0BH,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;EAAO,CAAC;EAC/Dc,MAAAgB,cAA0BJ,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;EAAU,CAAC;EACrEe,MAAAgB,cAA0BL,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;EAAU,CAAC;EACtEkB,MAAAc,cAA0BN,QAAOE,IAAK;GAAA,GAAKD;GAAO3B,MAAQ;GAAQiC,UAAY;EAAO,CAAC;EAAC1C,EAAA,KAAAmC;EAAAnC,EAAA,KAAAI;EAAAJ,EAAA,KAAAoB;EAAApB,EAAA,KAAAuB;EAAAvB,EAAA,KAAAwB;EAAAxB,EAAA,KAAA2B;CAAA,OAAA;EAAAvB,KAAAJ,EAAA;EAAAoB,KAAApB,EAAA;EAAAuB,KAAAvB,EAAA;EAAAwB,KAAAxB,EAAA;EAAA2B,KAAA3B,EAAA;CAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,OAAAmC,WAAAnC,EAAA,OAAAI,MAAAJ,EAAA,OAAAoB,MAAApB,EAAA,OAAAuB,MAAAvB,EAAA,QAAAwB,MAAAxB,EAAA,QAAA2B,IAAA;EAN1FC,KAAA;GAAA,GACFO;GAAOQ,MACJvC;GAAoET,MACpEyB;GAAmExB,SAChE2B;GAAsE1B,SACtE2B;GAAsE1B,QACvE6B;EACV;EAAC3B,EAAA,KAAAmC;EAAAnC,EAAA,KAAAI;EAAAJ,EAAA,KAAAoB;EAAApB,EAAA,KAAAuB;EAAAvB,EAAA,MAAAwB;EAAAxB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,OAPM4B;AAON;AAGH,IAAagB,qBAAqB/D,MAAU+D"}
1
+ {"version":3,"file":"Toast.js","names":["React","Toast","BaseToast","cx","usePortalContainer","CircleCheckIcon","CircleXIcon","InfoIcon","TriangleAlertIcon","XIcon","ToastTone","ToastPlacement","icons","Partial","Record","ReactNode","info","success","warning","danger","ToastList","$","_c","toasts","useToastManager","t0","map","_temp","toast","id","type","actionProps","ToastProviderProps","Omit","Provider","Props","children","placement","viewportClassName","ToastProvider","props","t1","undefined","container","t2","t3","Symbol","for","t4","t5","t6","AddOptions","Parameters","ReturnType","ToneOptions","useToast","manager","options","add","options_0","options_1","options_2","options_3","priority","show","createToastManager","_c","BaseToast"],"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Toast as BaseToast } from '@base-ui/react/toast';\nimport { cx } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CircleCheckIcon, CircleXIcon, InfoIcon, TriangleAlertIcon, XIcon } from '../../icons';\n\nexport type ToastTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';\n\nexport type ToastPlacement = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'top-center';\n\nconst icons: Partial<Record<string, React.ReactNode>> = {\n info: <InfoIcon />,\n success: <CircleCheckIcon />,\n warning: <TriangleAlertIcon />,\n danger: <CircleXIcon />,\n};\n\nfunction ToastList() {\n const { toasts } = BaseToast.useToastManager();\n return toasts.map((toast) => (\n <BaseToast.Root key={toast.id} toast={toast} className=\"oui-toast\">\n <BaseToast.Content className=\"oui-toast__content\">\n {toast.type && icons[toast.type] && <span className=\"oui-toast__icon\">{icons[toast.type]}</span>}\n <div className=\"oui-toast__text\">\n <BaseToast.Title className=\"oui-toast__title\" />\n <BaseToast.Description className=\"oui-toast__description\" />\n </div>\n {toast.actionProps && <BaseToast.Action className=\"oui-toast__action\" />}\n <BaseToast.Close className=\"oui-toast__close\" aria-label=\"Close\">\n <XIcon />\n </BaseToast.Close>\n </BaseToast.Content>\n </BaseToast.Root>\n ));\n}\n\nexport interface ToastProviderProps extends Omit<BaseToast.Provider.Props, 'children'> {\n /** App content; toasts render over it. */\n children?: React.ReactNode;\n /** Screen corner or edge where toasts stack. */\n placement?: ToastPlacement;\n /** Class for the viewport (positioning container). */\n viewportClassName?: string;\n}\n\n/**\n * Mount once near the app root. Then call `useToast()` anywhere below, or pass\n * a `toastManager` from `createToastManager()` to trigger toasts outside React.\n */\nexport function ToastProvider({ children, placement = 'bottom-right', viewportClassName, ...props }: ToastProviderProps) {\n const container = usePortalContainer();\n return (\n <BaseToast.Provider {...props}>\n {children}\n <BaseToast.Portal container={container}>\n <BaseToast.Viewport className={cx('oui-toast-viewport', viewportClassName)} data-placement={placement}>\n <ToastList />\n </BaseToast.Viewport>\n </BaseToast.Portal>\n </BaseToast.Provider>\n );\n}\n\ntype AddOptions = Parameters<ReturnType<typeof BaseToast.useToastManager>['add']>[0];\ntype ToneOptions = Omit<AddOptions, 'type'>;\n\n/** Toast API with tone shortcuts: `toast.success({ title })`. */\nexport function useToast() {\n const manager = BaseToast.useToastManager();\n return {\n ...manager,\n show: (options: AddOptions & { type?: ToastTone }) => manager.add(options),\n info: (options: ToneOptions) => manager.add({ ...options, type: 'info' }),\n success: (options: ToneOptions) => manager.add({ ...options, type: 'success' }),\n warning: (options: ToneOptions) => manager.add({ ...options, type: 'warning' }),\n danger: (options: ToneOptions) => manager.add({ ...options, type: 'danger', priority: 'high' }),\n };\n}\n\nexport const createToastManager = BaseToast.createToastManager;\n"],"mappings":"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"}
@@ -3,17 +3,20 @@ import { Toggle as BaseToggle } from '@base-ui/react/toggle';
3
3
  import { ToggleGroup as BaseToggleGroup } from '@base-ui/react/toggle-group';
4
4
  export type ToggleSize = 'sm' | 'md';
5
5
  export interface ToggleProps extends BaseToggle.Props {
6
+ /** Button height. */
6
7
  size?: ToggleSize;
7
8
  }
8
9
  /** Two-state button (bold, pin, favourite…). Inside a ToggleGroup it acts as a segment. */
9
10
  export declare function Toggle({ size, className, ref, ...props }: ToggleProps): React.JSX.Element;
10
11
  export interface ToggleGroupProps extends BaseToggleGroup.Props {
12
+ /** Segment height. */
11
13
  size?: ToggleSize;
12
14
  /** `segmented` renders a pill track like a tab switcher; `outline` separate buttons. */
13
15
  variant?: 'segmented' | 'outline';
14
16
  /** Stretch segments to fill the width. */
15
17
  fullWidth?: boolean;
16
18
  }
19
+ /** Group of `Toggle` buttons that share selection state (single or multiple). */
17
20
  export declare function ToggleGroup({ size, variant, fullWidth, className, ref, ...props }: ToggleGroupProps): React.JSX.Element;
18
21
  export interface SegmentedControlOption {
19
22
  value: string;
@@ -22,9 +25,13 @@ export interface SegmentedControlOption {
22
25
  'aria-label'?: string;
23
26
  }
24
27
  export interface SegmentedControlProps extends Omit<ToggleGroupProps, 'value' | 'defaultValue' | 'onValueChange' | 'multiple' | 'children'> {
28
+ /** Segments to show. */
25
29
  options: SegmentedControlOption[];
30
+ /** Selected option `value` (controlled). */
26
31
  value?: string;
32
+ /** Initially selected option `value` when uncontrolled. */
27
33
  defaultValue?: string;
34
+ /** Called with the new `value` when the selection changes. */
28
35
  onValueChange?: (value: string) => void;
29
36
  }
30
37
  /** Single-choice switcher (e.g. Day / Week / Month). Always keeps one value selected. */
@@ -49,6 +49,7 @@ function Toggle$1(t0) {
49
49
  } else t3 = $[11];
50
50
  return t3;
51
51
  }
52
+ /** Group of `Toggle` buttons that share selection state (single or multiple). */
52
53
  function ToggleGroup$1(t0) {
53
54
  const $ = c(16);
54
55
  let className;
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","names":["React","Toggle","BaseToggle","ToggleGroup","BaseToggleGroup","withClass","ToggleSize","ToggleProps","Props","size","t0","$","_c","className","props","ref","t1","undefined","t2","t3","ToggleGroupProps","variant","fullWidth","t4","t5","SegmentedControlOption","value","label","ReactNode","disabled","SegmentedControlProps","Omit","options","defaultValue","onValueChange","SegmentedControl","internal","setInternal","useState","current","next","picked","option","map","Toggle","_c","BaseToggle","ToggleGroup","BaseToggleGroup"],"sources":["../../../src/components/toggle/Toggle.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Toggle as BaseToggle } from '@base-ui/react/toggle';\nimport { ToggleGroup as BaseToggleGroup } from '@base-ui/react/toggle-group';\nimport { withClass } from '../../utils/cx';\n\nexport type ToggleSize = 'sm' | 'md';\n\nexport interface ToggleProps extends BaseToggle.Props {\n size?: ToggleSize;\n}\n\n/** Two-state button (bold, pin, favourite…). Inside a ToggleGroup it acts as a segment. */\nexport function Toggle({ size = 'md', className, ref, ...props }: ToggleProps) {\n return <BaseToggle ref={ref} className={withClass('oui-toggle', className)} data-size={size} {...props} />;\n}\n\nexport interface ToggleGroupProps extends BaseToggleGroup.Props {\n size?: ToggleSize;\n /** `segmented` renders a pill track like a tab switcher; `outline` separate buttons. */\n variant?: 'segmented' | 'outline';\n /** Stretch segments to fill the width. */\n fullWidth?: boolean;\n}\n\nexport function ToggleGroup({\n size = 'md',\n variant = 'segmented',\n fullWidth,\n className,\n ref,\n ...props\n}: ToggleGroupProps) {\n return (\n <BaseToggleGroup\n ref={ref}\n className={withClass('oui-toggle-group', className)}\n data-size={size}\n data-variant={variant}\n data-full-width={fullWidth || undefined}\n {...props}\n />\n );\n}\n\nexport interface SegmentedControlOption {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n 'aria-label'?: string;\n}\n\nexport interface SegmentedControlProps\n extends Omit<ToggleGroupProps, 'value' | 'defaultValue' | 'onValueChange' | 'multiple' | 'children'> {\n options: SegmentedControlOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\n/** Single-choice switcher (e.g. Day / Week / Month). Always keeps one value selected. */\nexport function SegmentedControl({\n options,\n value,\n defaultValue,\n onValueChange,\n size = 'md',\n ref,\n ...props\n}: SegmentedControlProps) {\n const [internal, setInternal] = React.useState(defaultValue ?? options[0]?.value);\n const current = value ?? internal;\n return (\n <ToggleGroup\n ref={ref}\n size={size}\n value={current != null ? [current] : []}\n onValueChange={(next) => {\n const picked = next[0];\n if (picked == null) return; // keep one segment selected\n setInternal(picked);\n onValueChange?.(picked);\n }}\n {...props}\n >\n {options.map((option) => (\n <Toggle\n key={option.value}\n value={option.value}\n size={size}\n disabled={option.disabled}\n aria-label={option['aria-label']}\n >\n {option.label}\n </Toggle>\n ))}\n </ToggleGroup>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Toggle.js","names":["React","Toggle","BaseToggle","ToggleGroup","BaseToggleGroup","withClass","ToggleSize","ToggleProps","Props","size","t0","$","_c","className","props","ref","t1","undefined","t2","t3","ToggleGroupProps","variant","fullWidth","t4","t5","SegmentedControlOption","value","label","ReactNode","disabled","SegmentedControlProps","Omit","options","defaultValue","onValueChange","SegmentedControl","internal","setInternal","useState","current","next","picked","option","map","Toggle","_c","BaseToggle","ToggleGroup","BaseToggleGroup"],"sources":["../../../src/components/toggle/Toggle.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Toggle as BaseToggle } from '@base-ui/react/toggle';\nimport { ToggleGroup as BaseToggleGroup } from '@base-ui/react/toggle-group';\nimport { withClass } from '../../utils/cx';\n\nexport type ToggleSize = 'sm' | 'md';\n\nexport interface ToggleProps extends BaseToggle.Props {\n /** Button height. */\n size?: ToggleSize;\n}\n\n/** Two-state button (bold, pin, favourite…). Inside a ToggleGroup it acts as a segment. */\nexport function Toggle({ size = 'md', className, ref, ...props }: ToggleProps) {\n return <BaseToggle ref={ref} className={withClass('oui-toggle', className)} data-size={size} {...props} />;\n}\n\nexport interface ToggleGroupProps extends BaseToggleGroup.Props {\n /** Segment height. */\n size?: ToggleSize;\n /** `segmented` renders a pill track like a tab switcher; `outline` separate buttons. */\n variant?: 'segmented' | 'outline';\n /** Stretch segments to fill the width. */\n fullWidth?: boolean;\n}\n\n/** Group of `Toggle` buttons that share selection state (single or multiple). */\nexport function ToggleGroup({\n size = 'md',\n variant = 'segmented',\n fullWidth,\n className,\n ref,\n ...props\n}: ToggleGroupProps) {\n return (\n <BaseToggleGroup\n ref={ref}\n className={withClass('oui-toggle-group', className)}\n data-size={size}\n data-variant={variant}\n data-full-width={fullWidth || undefined}\n {...props}\n />\n );\n}\n\nexport interface SegmentedControlOption {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n 'aria-label'?: string;\n}\n\nexport interface SegmentedControlProps\n extends Omit<ToggleGroupProps, 'value' | 'defaultValue' | 'onValueChange' | 'multiple' | 'children'> {\n /** Segments to show. */\n options: SegmentedControlOption[];\n /** Selected option `value` (controlled). */\n value?: string;\n /** Initially selected option `value` when uncontrolled. */\n defaultValue?: string;\n /** Called with the new `value` when the selection changes. */\n onValueChange?: (value: string) => void;\n}\n\n/** Single-choice switcher (e.g. Day / Week / Month). Always keeps one value selected. */\nexport function SegmentedControl({\n options,\n value,\n defaultValue,\n onValueChange,\n size = 'md',\n ref,\n ...props\n}: SegmentedControlProps) {\n const [internal, setInternal] = React.useState(defaultValue ?? options[0]?.value);\n const current = value ?? internal;\n return (\n <ToggleGroup\n ref={ref}\n size={size}\n value={current != null ? [current] : []}\n onValueChange={(next) => {\n const picked = next[0];\n if (picked == null) return; // keep one segment selected\n setInternal(picked);\n onValueChange?.(picked);\n }}\n {...props}\n >\n {options.map((option) => (\n <Toggle\n key={option.value}\n value={option.value}\n size={size}\n disabled={option.disabled}\n aria-label={option['aria-label']}\n >\n {option.label}\n </Toggle>\n ))}\n </ToggleGroup>\n );\n}\n"],"mappings":"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"}
@@ -1,10 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';
3
3
  export interface TooltipContentProps extends BaseTooltip.Popup.Props {
4
+ /** Which side of the trigger the tooltip shows on. */
4
5
  side?: BaseTooltip.Positioner.Props['side'];
6
+ /** Alignment along that side. */
5
7
  align?: BaseTooltip.Positioner.Props['align'];
8
+ /** Distance from the trigger in px. */
6
9
  sideOffset?: BaseTooltip.Positioner.Props['sideOffset'];
10
+ /** Show a small arrow pointing at the trigger. */
7
11
  arrow?: boolean;
12
+ /** Props for the positioner element that places the popup. */
8
13
  positionerProps?: BaseTooltip.Positioner.Props;
9
14
  }
10
15
  declare function TooltipContent({ side, align, sideOffset, arrow, positionerProps, className, children, ref, ...props }: TooltipContentProps): React.JSX.Element;
@@ -13,10 +18,13 @@ export interface TooltipProps extends Omit<BaseTooltip.Root.Props, 'children'> {
13
18
  content: React.ReactNode;
14
19
  /** The trigger. Must be a single element that accepts a ref (e.g. a Button). */
15
20
  children: React.ReactElement;
21
+ /** Which side of the trigger the tooltip shows on. */
16
22
  side?: TooltipContentProps['side'];
23
+ /** Alignment along that side. */
17
24
  align?: TooltipContentProps['align'];
18
25
  /** Hover delay in ms. */
19
26
  delay?: number;
27
+ /** Props for the tooltip popup (arrow, sideOffset, className…). */
20
28
  contentProps?: Omit<TooltipContentProps, 'children'>;
21
29
  }
22
30
  declare function TooltipComponent({ content, children, side, align, delay, contentProps, ...rootProps }: TooltipProps): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","names":["React","Tooltip","BaseTooltip","withClass","usePortalContainer","TooltipContentProps","Popup","Props","side","Positioner","align","sideOffset","arrow","positionerProps","TooltipContent","t0","$","_c","children","className","props","ref","t1","t2","t3","t4","undefined","container","t5","t6","t7","t8","t9","TooltipProps","Omit","Root","content","ReactNode","ReactElement","delay","contentProps","TooltipComponent","rootProps","Object","assign","Provider","Trigger","Content","_c","BaseTooltip","Tooltip"],"sources":["../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { withClass } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\n\nexport interface TooltipContentProps extends BaseTooltip.Popup.Props {\n side?: BaseTooltip.Positioner.Props['side'];\n align?: BaseTooltip.Positioner.Props['align'];\n sideOffset?: BaseTooltip.Positioner.Props['sideOffset'];\n arrow?: boolean;\n positionerProps?: BaseTooltip.Positioner.Props;\n}\n\nfunction TooltipContent({\n side = 'top',\n align = 'center',\n sideOffset = 8,\n arrow = true,\n positionerProps,\n className,\n children,\n ref,\n ...props\n}: TooltipContentProps) {\n const container = usePortalContainer();\n return (\n <BaseTooltip.Portal container={container}>\n <BaseTooltip.Positioner\n className=\"oui-tooltip__positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n {...positionerProps}\n >\n <BaseTooltip.Popup ref={ref} className={withClass('oui-tooltip', className)} {...props}>\n {arrow && <BaseTooltip.Arrow className=\"oui-tooltip__arrow\" />}\n {children}\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n );\n}\n\nexport interface TooltipProps extends Omit<BaseTooltip.Root.Props, 'children'> {\n /** Tooltip text. */\n content: React.ReactNode;\n /** The trigger. Must be a single element that accepts a ref (e.g. a Button). */\n children: React.ReactElement;\n side?: TooltipContentProps['side'];\n align?: TooltipContentProps['align'];\n /** Hover delay in ms. */\n delay?: number;\n contentProps?: Omit<TooltipContentProps, 'children'>;\n}\n\nfunction TooltipComponent({ content, children, side, align, delay, contentProps, ...rootProps }: TooltipProps) {\n return (\n <BaseTooltip.Root {...rootProps}>\n <BaseTooltip.Trigger delay={delay} render={children} />\n <TooltipContent side={side} align={align} {...contentProps}>\n {content}\n </TooltipContent>\n </BaseTooltip.Root>\n );\n}\n\n/**\n * `<Tooltip content=\"Export\"><IconButton … /></Tooltip>`.\n * Wrap the app in `Tooltip.Provider` so adjacent tooltips open instantly.\n */\nexport const Tooltip = Object.assign(TooltipComponent, {\n Provider: BaseTooltip.Provider,\n Root: BaseTooltip.Root,\n Trigger: BaseTooltip.Trigger,\n Content: TooltipContent,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","names":["React","Tooltip","BaseTooltip","withClass","usePortalContainer","TooltipContentProps","Popup","Props","side","Positioner","align","sideOffset","arrow","positionerProps","TooltipContent","t0","$","_c","children","className","props","ref","t1","t2","t3","t4","undefined","container","t5","t6","t7","t8","t9","TooltipProps","Omit","Root","content","ReactNode","ReactElement","delay","contentProps","TooltipComponent","rootProps","Object","assign","Provider","Trigger","Content","_c","BaseTooltip","Tooltip"],"sources":["../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { withClass } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\n\nexport interface TooltipContentProps extends BaseTooltip.Popup.Props {\n /** Which side of the trigger the tooltip shows on. */\n side?: BaseTooltip.Positioner.Props['side'];\n /** Alignment along that side. */\n align?: BaseTooltip.Positioner.Props['align'];\n /** Distance from the trigger in px. */\n sideOffset?: BaseTooltip.Positioner.Props['sideOffset'];\n /** Show a small arrow pointing at the trigger. */\n arrow?: boolean;\n /** Props for the positioner element that places the popup. */\n positionerProps?: BaseTooltip.Positioner.Props;\n}\n\nfunction TooltipContent({\n side = 'top',\n align = 'center',\n sideOffset = 8,\n arrow = true,\n positionerProps,\n className,\n children,\n ref,\n ...props\n}: TooltipContentProps) {\n const container = usePortalContainer();\n return (\n <BaseTooltip.Portal container={container}>\n <BaseTooltip.Positioner\n className=\"oui-tooltip__positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n {...positionerProps}\n >\n <BaseTooltip.Popup ref={ref} className={withClass('oui-tooltip', className)} {...props}>\n {arrow && <BaseTooltip.Arrow className=\"oui-tooltip__arrow\" />}\n {children}\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n );\n}\n\nexport interface TooltipProps extends Omit<BaseTooltip.Root.Props, 'children'> {\n /** Tooltip text. */\n content: React.ReactNode;\n /** The trigger. Must be a single element that accepts a ref (e.g. a Button). */\n children: React.ReactElement;\n /** Which side of the trigger the tooltip shows on. */\n side?: TooltipContentProps['side'];\n /** Alignment along that side. */\n align?: TooltipContentProps['align'];\n /** Hover delay in ms. */\n delay?: number;\n /** Props for the tooltip popup (arrow, sideOffset, className…). */\n contentProps?: Omit<TooltipContentProps, 'children'>;\n}\n\nfunction TooltipComponent({ content, children, side, align, delay, contentProps, ...rootProps }: TooltipProps) {\n return (\n <BaseTooltip.Root {...rootProps}>\n <BaseTooltip.Trigger delay={delay} render={children} />\n <TooltipContent side={side} align={align} {...contentProps}>\n {content}\n </TooltipContent>\n </BaseTooltip.Root>\n );\n}\n\n/**\n * `<Tooltip content=\"Export\"><IconButton … /></Tooltip>`.\n * Wrap the app in `Tooltip.Provider` so adjacent tooltips open instantly.\n */\nexport const Tooltip = Object.assign(TooltipComponent, {\n Provider: BaseTooltip.Provider,\n Root: BaseTooltip.Root,\n Trigger: BaseTooltip.Trigger,\n Content: TooltipContent,\n});\n"],"mappings":"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"}
@@ -10,6 +10,7 @@ export interface HeadingProps extends useRender.ComponentProps<'h2', HeadingStat
10
10
  /** Visual size, independent of the level. */
11
11
  size?: HeadingSize;
12
12
  }
13
+ /** Heading element. `level` sets the tag (`h1`–`h6`) and the default size; `size` overrides only the look. */
13
14
  export declare function Heading({ level, size, render, ref, ...props }: HeadingProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
14
15
  export type TextTone = 'default' | 'strong' | 'muted' | 'subtle' | 'accent' | 'success' | 'warning' | 'danger';
15
16
  export type TextSize = 'xs' | 'sm' | 'md' | 'lg';
@@ -20,10 +21,14 @@ export type TextState = {
20
21
  weight?: TextWeight;
21
22
  };
22
23
  export interface TextProps extends useRender.ComponentProps<'p', TextState> {
24
+ /** Font size. */
23
25
  size?: TextSize;
26
+ /** Color role: from `strong` to `subtle`, or a status color. */
24
27
  tone?: TextTone;
28
+ /** Font weight. Inherits when omitted. */
25
29
  weight?: TextWeight;
26
30
  }
31
+ /** Body text paragraph. Use `render={<span />}` for inline text. */
27
32
  export declare function Text({ size, tone, weight, render, ref, ...props }: TextProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
28
33
  export interface EyebrowProps extends useRender.ComponentProps<'span'> {
29
34
  }