@longline/aqua-ui 1.0.302 → 1.0.304

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 (107) hide show
  1. package/controls/Chip/Chip.d.ts +41 -13
  2. package/controls/Chip/Chip.js +76 -22
  3. package/controls/Chip/index.d.ts +2 -1
  4. package/controls/Chip/index.js +1 -1
  5. package/controls/CircularProgress/CircularProgress.d.ts +38 -6
  6. package/controls/CircularProgress/CircularProgress.js +67 -17
  7. package/controls/CircularProgress/index.d.ts +1 -0
  8. package/controls/Dropzone/Dropzone.d.ts +42 -10
  9. package/controls/Dropzone/Dropzone.js +76 -16
  10. package/controls/Dropzone/index.d.ts +1 -0
  11. package/controls/Fab/Fab.d.ts +40 -15
  12. package/controls/Fab/Fab.js +76 -28
  13. package/controls/Fab/index.d.ts +2 -1
  14. package/controls/Fab/index.js +1 -1
  15. package/controls/Ghost/Ghost.d.ts +36 -0
  16. package/controls/Ghost/Ghost.js +72 -1
  17. package/controls/Ghost/index.d.ts +2 -1
  18. package/controls/Ghost/index.js +1 -1
  19. package/controls/Gradient/Gradient.d.ts +51 -5
  20. package/controls/Gradient/Gradient.js +98 -8
  21. package/controls/Gradient/index.d.ts +1 -0
  22. package/controls/Histogram/Histogram.d.ts +47 -6
  23. package/controls/Histogram/Histogram.js +84 -21
  24. package/controls/Histogram/HistogramAppearance.d.ts +2 -1
  25. package/controls/Histogram/IHistogramBin.d.ts +1 -1
  26. package/controls/Histogram/index.d.ts +5 -3
  27. package/controls/Histogram/index.js +2 -3
  28. package/controls/Icon/Icon.d.ts +50 -22
  29. package/controls/Icon/Icon.js +47 -18
  30. package/controls/Icon/index.d.ts +2 -1
  31. package/controls/Icon/index.js +1 -1
  32. package/controls/Key/Key.d.ts +39 -5
  33. package/controls/Key/Key.js +74 -8
  34. package/controls/Key/index.d.ts +2 -1
  35. package/controls/Key/index.js +1 -1
  36. package/controls/LinearChart/LinearChart.d.ts +36 -5
  37. package/controls/LinearChart/LinearChart.js +64 -6
  38. package/controls/LinearChart/index.d.ts +2 -1
  39. package/controls/LinearChart/index.js +1 -1
  40. package/controls/ListView/Column.d.ts +42 -5
  41. package/controls/ListView/Column.js +39 -3
  42. package/controls/ListView/IListViewProps.d.ts +2 -2
  43. package/controls/ListView/ListView.d.ts +58 -2
  44. package/controls/ListView/ListView.js +57 -2
  45. package/controls/ListView/index.d.ts +1 -0
  46. package/controls/Mouse/Mouse.d.ts +32 -7
  47. package/controls/Mouse/Mouse.js +60 -12
  48. package/controls/Mouse/index.d.ts +2 -1
  49. package/controls/Mouse/index.js +1 -1
  50. package/controls/PrimaryButton/PrimaryButton.d.ts +37 -9
  51. package/controls/PrimaryButton/PrimaryButton.js +70 -16
  52. package/controls/PrimaryButton/index.d.ts +2 -1
  53. package/controls/PrimaryButton/index.js +1 -1
  54. package/controls/Progress/Progress.d.ts +32 -10
  55. package/controls/Progress/Progress.js +60 -18
  56. package/controls/Progress/index.d.ts +2 -1
  57. package/controls/Progress/index.js +1 -1
  58. package/controls/SecondaryButton/SecondaryButton.d.ts +34 -8
  59. package/controls/SecondaryButton/SecondaryButton.js +64 -14
  60. package/controls/SecondaryButton/index.d.ts +1 -0
  61. package/controls/SpeechRecognizer/SpeechRecognizer.d.ts +31 -1
  62. package/controls/SpeechRecognizer/SpeechRecognizer.js +29 -1
  63. package/controls/SpeechRecognizer/index.d.ts +1 -1
  64. package/controls/SpeechRecognizer/index.js +1 -1
  65. package/controls/TabBar/Tab.d.ts +31 -1
  66. package/controls/TabBar/Tab.js +58 -1
  67. package/controls/TabBar/TabBar.d.ts +43 -5
  68. package/controls/TabBar/TabBar.js +82 -8
  69. package/controls/TabBar/index.d.ts +3 -1
  70. package/controls/TabBar/index.js +1 -1
  71. package/controls/TertiaryButton/TertiaryButton.d.ts +32 -7
  72. package/controls/TertiaryButton/TertiaryButton.js +60 -12
  73. package/controls/TertiaryButton/index.d.ts +2 -1
  74. package/controls/TertiaryButton/index.js +1 -1
  75. package/controls/ToggleButton/ToggleButton.d.ts +36 -3
  76. package/controls/ToggleButton/ToggleButton.js +69 -5
  77. package/controls/ToggleButton/index.d.ts +2 -1
  78. package/controls/ToggleButton/index.js +1 -1
  79. package/controls/View/View.d.ts +22 -8
  80. package/controls/View/View.js +40 -14
  81. package/controls/View/index.d.ts +2 -1
  82. package/controls/View/index.js +1 -1
  83. package/inputs/Dropdown/Dropdown.d.ts +2 -1
  84. package/inputs/Dropdown/index.d.ts +2 -1
  85. package/map/controls/CompassButton/CompassButton.d.ts +1 -1
  86. package/map/controls/FullscreenButton/FullscreenButton.d.ts +1 -1
  87. package/map/controls/ZoomInButton/ZoomInButton.d.ts +3 -2
  88. package/map/controls/ZoomOutButton/ZoomOutButton.d.ts +3 -2
  89. package/map/controls/base/MapButton/MapButton.d.ts +2 -1
  90. package/map/controls/base/MapButton/index.d.ts +2 -1
  91. package/map/layers/InterpolationLayer/ContoursFragmentShader.d.ts +1 -1
  92. package/map/layers/InterpolationLayer/ContoursFragmentShader.js +1 -1
  93. package/map/layers/InterpolationLayer/InterpolationLayer.d.ts +54 -5
  94. package/map/layers/InterpolationLayer/InterpolationLayer.js +52 -7
  95. package/map/layers/InterpolationLayer/index.d.ts +2 -1
  96. package/map/layers/InterpolationLayer/index.js +1 -1
  97. package/package.json +1 -1
  98. package/services/Toast/IToastMessage.d.ts +3 -3
  99. package/services/Toast/IToastProps.d.ts +1 -1
  100. package/services/Toast/Toast.d.ts +43 -5
  101. package/services/Toast/Toast.js +35 -4
  102. package/services/Toast/ToastContainer.d.ts +37 -4
  103. package/services/Toast/ToastContainer.js +75 -9
  104. package/services/Toast/ToastContext.d.ts +5 -4
  105. package/services/Toast/ToastProvider.js +16 -11
  106. package/services/Toast/useToast.d.ts +37 -1
  107. package/services/Toast/useToast.js +42 -2
@@ -30,27 +30,15 @@ import { HistogramNoData } from './HistogramNoData';
30
30
  import { HistogramBar } from './HistogramBar';
31
31
  import { HistogramTick } from './HistogramTick';
32
32
  import { DefaultHistogramAppearance } from './HistogramAppearance';
33
- /**
34
- * @example
35
- * <Histogram
36
- * tickStyle='tick'
37
- * hoverValues
38
- * onClick={(idx: number) => console.log(`Bin ${idx} clicked.`)}
39
- * bins: {[
40
- * { count: 50, binEnd: 1000 },
41
- * { count: 70, binEnd: 2000 },
42
- * ]}/>
43
- * @todo Consider using children for bins.
44
- */
45
33
  var HistogramBase = function (p) {
46
34
  // Abort if there are no bins.
47
- if (p.bins.length == 0)
35
+ if (p.bins.length === 0)
48
36
  return React.createElement(HistogramNoData, null, p.nodata);
49
37
  // Find tallest bar. This is used to calculate the percentage height
50
38
  // of each bar.
51
39
  var maxHeight = Math.max.apply(Math, p.bins.map(function (b) { return b.count; }));
52
40
  // Abort if bins are all empty.
53
- if (maxHeight == 0)
41
+ if (maxHeight === 0)
54
42
  return React.createElement(HistogramNoData, null, p.nodata);
55
43
  return (React.createElement("div", { className: p.className },
56
44
  React.createElement(ChartArea, null,
@@ -58,7 +46,7 @@ var HistogramBase = function (p) {
58
46
  React.createElement(BarArea, null, p.bins.map(function (bin, idx) {
59
47
  return React.createElement(HistogramBar, { key: idx, values: p.values, value: bin.count, label: bin.name, height: 100 * bin.count / maxHeight, onClick: p.onClick ? function () { return p.onClick(idx); } : null, loading: p.loading, appearance: p.appearance });
60
48
  })))),
61
- p.tickStyle != 'none' && React.createElement(AxisArea, null,
49
+ p.tickStyle !== 'none' && React.createElement(AxisArea, null,
62
50
  React.createElement(Indent, null,
63
51
  p.bins.map(function (bin, idx) {
64
52
  return React.createElement(HistogramTick, { key: idx, showValue: p.tickStyle === 'value', left: 100 * idx / p.bins.length, value: bin.binStart });
@@ -74,19 +62,94 @@ var BarArea = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateO
74
62
  var Indent = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject([""], [""])));
75
63
  var HistogramStyled = styled(HistogramBase)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n // Chart elements are stacked vertically:\n display: flex;\n flex-direction: column;\n // Histogram fills available space:\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n ", " {\n position: relative;\n flex: 1;\n }\n ", " {\n position: relative;\n flex: 0;\n height: 22px;\n min-height: 22px;\n box-sizing: border-box;\n }\n ", " {\n flex: 0;\n height: 20px;\n min-height: 20px;\n font-size: 10px;\n color: #fff;\n user-select: none; \n display: flex;\n flex-direction: column;\n justify-content: end;\n align-items: center;\n }\n ", " {\n // BarArea takes up an absolute position:\n position: absolute;\n width: 100%;\n height: 100%;\n // Bars are placed using flexbox:\n display: flex;\n flex-direction: row; \n justify-content: center;\n align-items: flex-end;\n overflow-y: hidden;\n overflow-x: hidden;\n }\n ", " {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 5%;\n right: 5%;\n }\n"], ["\n // Chart elements are stacked vertically:\n display: flex;\n flex-direction: column;\n // Histogram fills available space:\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n ", " {\n position: relative;\n flex: 1;\n }\n ", " {\n position: relative;\n flex: 0;\n height: 22px;\n min-height: 22px;\n box-sizing: border-box;\n }\n ", " {\n flex: 0;\n height: 20px;\n min-height: 20px;\n font-size: 10px;\n color: #fff;\n user-select: none; \n display: flex;\n flex-direction: column;\n justify-content: end;\n align-items: center;\n }\n ", " {\n // BarArea takes up an absolute position:\n position: absolute;\n width: 100%;\n height: 100%;\n // Bars are placed using flexbox:\n display: flex;\n flex-direction: row; \n justify-content: center;\n align-items: flex-end;\n overflow-y: hidden;\n overflow-x: hidden;\n }\n ", " {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 5%;\n right: 5%;\n }\n"
76
64
  /**
77
- * A `Histogram` visualizes a number of bins, each of which has a `name`,
78
- * a `count` (number of items in the bin), and a `binStart` and `binEnd` for
79
- * the values interval contained within the bin.
65
+ * A bar chart visualization for displaying binned data distributions.
66
+ *
67
+ * Renders vertical bars representing the count/frequency of items in each bin.
68
+ * Supports interactive features like hover values, click handlers, and axis ticks.
69
+ *
70
+ * ## Usage
71
+ *
72
+ * ```tsx
73
+ * const bins = [
74
+ * { name: '0-100', count: 50, binStart: 0, binEnd: 100 },
75
+ * { name: '100-200', count: 70, binStart: 100, binEnd: 200 },
76
+ * { name: '200-300', count: 30, binStart: 200, binEnd: 300 },
77
+ * ];
78
+ *
79
+ * // Basic histogram
80
+ * <Histogram bins={bins} />
81
+ *
82
+ * // With axis ticks and values
83
+ * <Histogram bins={bins} tickStyle="value" values="hover" />
84
+ *
85
+ * // With click handler
86
+ * <Histogram
87
+ * bins={bins}
88
+ * onClick={(idx) => console.log(`Bin ${idx} clicked`)}
89
+ * />
90
+ * ```
91
+ *
92
+ * ## Display Options
93
+ *
94
+ * | Prop | Values | Description |
95
+ * |------|--------|-------------|
96
+ * | `tickStyle` | `none`, `tick`, `value` | Axis tick display mode |
97
+ * | `values` | `hide`, `show`, `hover` | Bar value label visibility |
98
+ * | `loading` | `boolean` | Shows gray placeholder bars |
99
+ *
100
+ * ## Customization
101
+ *
102
+ * Use the `appearance` prop with `IHistogramAppearance` to customize colors,
103
+ * gaps, opacity, and border radius. `DefaultHistogramAppearance` and
104
+ * `BlueHistogramAppearance` presets are available.
80
105
  */
81
106
  ])), ChartArea, AxisArea, UnitArea, BarArea, Indent);
82
107
  /**
83
- * A `Histogram` visualizes a number of bins, each of which has a `name`,
84
- * a `count` (number of items in the bin), and a `binStart` and `binEnd` for
85
- * the values interval contained within the bin.
108
+ * A bar chart visualization for displaying binned data distributions.
109
+ *
110
+ * Renders vertical bars representing the count/frequency of items in each bin.
111
+ * Supports interactive features like hover values, click handlers, and axis ticks.
112
+ *
113
+ * ## Usage
114
+ *
115
+ * ```tsx
116
+ * const bins = [
117
+ * { name: '0-100', count: 50, binStart: 0, binEnd: 100 },
118
+ * { name: '100-200', count: 70, binStart: 100, binEnd: 200 },
119
+ * { name: '200-300', count: 30, binStart: 200, binEnd: 300 },
120
+ * ];
121
+ *
122
+ * // Basic histogram
123
+ * <Histogram bins={bins} />
124
+ *
125
+ * // With axis ticks and values
126
+ * <Histogram bins={bins} tickStyle="value" values="hover" />
127
+ *
128
+ * // With click handler
129
+ * <Histogram
130
+ * bins={bins}
131
+ * onClick={(idx) => console.log(`Bin ${idx} clicked`)}
132
+ * />
133
+ * ```
134
+ *
135
+ * ## Display Options
136
+ *
137
+ * | Prop | Values | Description |
138
+ * |------|--------|-------------|
139
+ * | `tickStyle` | `none`, `tick`, `value` | Axis tick display mode |
140
+ * | `values` | `hide`, `show`, `hover` | Bar value label visibility |
141
+ * | `loading` | `boolean` | Shows gray placeholder bars |
142
+ *
143
+ * ## Customization
144
+ *
145
+ * Use the `appearance` prop with `IHistogramAppearance` to customize colors,
146
+ * gaps, opacity, and border radius. `DefaultHistogramAppearance` and
147
+ * `BlueHistogramAppearance` presets are available.
86
148
  */
87
149
  var Histogram = function (_a) {
88
150
  var _b = _a.appearance, appearance = _b === void 0 ? DefaultHistogramAppearance : _b, _c = _a.values, values = _c === void 0 ? 'show' : _c, _d = _a.tickStyle, tickStyle = _d === void 0 ? 'none' : _d, props = __rest(_a, ["appearance", "values", "tickStyle"]);
89
151
  return React.createElement(HistogramStyled, __assign({ appearance: appearance, values: values, tickStyle: tickStyle }, props));
90
152
  };
153
+ Histogram.displayName = "Histogram";
91
154
  export { Histogram };
92
155
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -19,4 +19,5 @@ interface IHistogramAppearance {
19
19
  }
20
20
  declare const DefaultHistogramAppearance: IHistogramAppearance;
21
21
  declare const BlueHistogramAppearance: IHistogramAppearance;
22
- export { IHistogramAppearance, DefaultHistogramAppearance, BlueHistogramAppearance };
22
+ export { DefaultHistogramAppearance, BlueHistogramAppearance };
23
+ export type { IHistogramAppearance };
@@ -18,4 +18,4 @@ interface IHistogramBin {
18
18
  */
19
19
  binEnd?: number;
20
20
  }
21
- export { IHistogramBin };
21
+ export type { IHistogramBin };
@@ -1,3 +1,5 @@
1
- export * from './Histogram';
2
- export * from './IHistogramBin';
3
- export * from './HistogramAppearance';
1
+ export { Histogram } from './Histogram';
2
+ export type { IHistogramProps, TValueStyle, TTickStyle } from './Histogram';
3
+ export type { IHistogramBin } from './IHistogramBin';
4
+ export { DefaultHistogramAppearance, BlueHistogramAppearance } from './HistogramAppearance';
5
+ export type { IHistogramAppearance } from './HistogramAppearance';
@@ -1,3 +1,2 @@
1
- export * from './Histogram';
2
- export * from './IHistogramBin';
3
- export * from './HistogramAppearance';
1
+ export { Histogram } from './Histogram';
2
+ export { DefaultHistogramAppearance, BlueHistogramAppearance } from './HistogramAppearance';
@@ -72,30 +72,58 @@ interface IStyledProps {
72
72
  }
73
73
  declare const IconStyled: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<IIconProps, IIconProps>, IIconProps & Partial<IStyledProps>>, IIconProps>> & string & Omit<(props: IIconProps) => React.JSX.Element, keyof React.Component<any, {}, any>>;
74
74
  /**
75
- * Displays an icon. An `Icon` is an SVG symbol taken from a sprite sheet,
76
- * with an URL of the form `spritesheet.svg#my-icon`.
75
+ * An SVG icon from a sprite sheet with support for sizing, colors, and transformations.
77
76
  *
78
- * An icon defaults to a white color unless overridden using `color`.
77
+ * Icons reference symbols from a sprite sheet using URLs like `spritesheet.svg#icon-name`.
78
+ * The `SVG` enumeration provides preset paths for all available icons.
79
79
  *
80
- * #### Size
81
- * The icon size defaults to `medium`, which corresponds to `1em`. Other
82
- * preset sizes cause the icon to shrink or grow by a growth factor of 1.2
83
- * (_minor third_).
80
+ * ## Usage
84
81
  *
85
- * * `mini`: 0.578
86
- * * `tiny`: 0.694
87
- * * `small`: 0.833
88
- * * `medium`: 1
89
- * * `large`: 1.2
90
- * * `big`: 1.44
91
- * * `huge`: 1.728
92
- * * `massive`: 2.0736
82
+ * ```tsx
83
+ * import { Icon, SVG } from '@longline/aqua-ui';
93
84
  *
94
- * For exact sizing, `size` also accepts a size in pixels. An icon is always
95
- * square.
85
+ * // Basic icon
86
+ * <Icon url={SVG.Icons.Search} />
87
+ *
88
+ * // Colored and sized
89
+ * <Icon url={SVG.Icons.Check} color="green" size="large" />
90
+ *
91
+ * // With transformations
92
+ * <Icon url={SVG.Icons.Arrow} rotated={90} mirrored />
93
+ *
94
+ * // Clickable icon
95
+ * <Icon url={SVG.Icons.Close} onClick={handleClose} />
96
+ *
97
+ * // Loading spinner
98
+ * <Icon url={SVG.Icons.Spinner} animated />
99
+ * ```
100
+ *
101
+ * ## Preset Sizes
102
+ *
103
+ * Sizes scale by a _minor third_ (1.2x) from the base `medium` size of `1em`:
104
+ *
105
+ * | Size | Scale |
106
+ * |------|-------|
107
+ * | `mini` | 0.578em |
108
+ * | `tiny` | 0.694em |
109
+ * | `small` | 0.833em |
110
+ * | `medium` | 1em (default) |
111
+ * | `large` | 1.2em |
112
+ * | `big` | 1.44em |
113
+ * | `huge` | 1.728em |
114
+ * | `massive` | 2.074em |
115
+ *
116
+ * For exact sizing, pass a number for pixel-based dimensions.
117
+ *
118
+ * ## Transformations
119
+ *
120
+ * | Prop | Description |
121
+ * |------|-------------|
122
+ * | `mirrored` | Flip horizontally |
123
+ * | `flipped` | Flip vertically |
124
+ * | `rotated` | Rotate by degrees (0-360) |
125
+ * | `animated` | Continuous rotation animation |
96
126
  */
97
- declare const Icon: {
98
- ({ size, disabled, flipped, mirrored, animated, padded, circle, color, ...props }: IIconProps): React.JSX.Element;
99
- displayName: string;
100
- };
101
- export { IconBase, Icon, IconStyled, IIconProps };
127
+ declare const Icon: ({ size, disabled, flipped, mirrored, animated, padded, circle, color, ...props }: IIconProps) => React.JSX.Element;
128
+ export { IconBase, Icon, IconStyled };
129
+ export type { IIconProps };
@@ -49,32 +49,61 @@ var IconStyled = styled(IconBase).attrs(function (p) {
49
49
  });
50
50
  })(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n position: relative;\n shape-rendering: geometricPrecision;\n box-sizing: border-box;\n\n // Circle:\n ", "\n \n // Spacing around icon:\n ", "\n\n // Clickable icons have a cursor hint:\n ", "\n\n // Disabled:\n ", "\n\n // Sizes:\n width: ", "; \n height: ", ";\n // Don't be squished when in a flex:\n min-width: ", "; \n min-height: ", ";\n\n // Transformations:\n transform-origin: center;\n transform: ", " ", " ", ";\n\n // Icon colors:\n fill: ", ";\n ", "\n\n // Animated:\n ", "\n"], ["\n position: relative;\n shape-rendering: geometricPrecision;\n box-sizing: border-box;\n\n // Circle:\n ", "\n \n // Spacing around icon:\n ", "\n\n // Clickable icons have a cursor hint:\n ", "\n\n // Disabled:\n ", "\n\n // Sizes:\n width: ", "; \n height: ", ";\n // Don't be squished when in a flex:\n min-width: ", "; \n min-height: ", ";\n\n // Transformations:\n transform-origin: center;\n transform: ", " ", " ", ";\n\n // Icon colors:\n fill: ", ";\n ", "\n\n // Animated:\n ", "\n"])), function (p) { return p.circle && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: 50%;\n border: solid 1px ", ";\n "], ["\n border-radius: 50%;\n border: solid 1px ", ";\n "])), p.color); }, function (p) { return p.padded && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["margin: 2px;"], ["margin: 2px;"]))); }, function (p) { return p.onClick && !p.disabled && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["cursor: pointer;"], ["cursor: pointer;"]))); }, function (p) { return p.disabled && css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n pointer-events: none;\n opacity: 0.6;\n "], ["\n pointer-events: none;\n opacity: 0.6;\n "]))); }, function (p) { return p.$realSize; }, function (p) { return p.$realSize; }, function (p) { return p.$realSize; }, function (p) { return p.$realSize; }, function (p) { return p.flipped ? 'scaleY(-1)' : ''; }, function (p) { return p.mirrored ? 'scaleX(-1)' : ''; }, function (p) { return p.rotated ? "rotate(".concat(p.rotated, "deg)") : ''; }, function (p) { return p.color; }, function (p) { return p.onClick && css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n transition: \n fill ", "ms ease, \n border-color ", "ms ease,\n outline-color ", "ms ease;\n &:hover {\n fill: ", ";\n border-color: ", ";\n }\n "], ["\n transition: \n fill ", "ms ease, \n border-color ", "ms ease,\n outline-color ", "ms ease;\n &:hover {\n fill: ", ";\n border-color: ", ";\n }\n "])), function (p) { return p.theme.animation.duration; }, function (p) { return p.theme.animation.duration; }, function (p) { return p.theme.animation.duration; }, lighten(0.3, p.color), lighten(0.3, p.color)); }, function (p) { return p.animated && css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n animation: ", " 2s linear infinite;\n "], ["\n animation: ", " 2s linear infinite;\n "])), rotate); });
51
51
  /**
52
- * Displays an icon. An `Icon` is an SVG symbol taken from a sprite sheet,
53
- * with an URL of the form `spritesheet.svg#my-icon`.
52
+ * An SVG icon from a sprite sheet with support for sizing, colors, and transformations.
54
53
  *
55
- * An icon defaults to a white color unless overridden using `color`.
54
+ * Icons reference symbols from a sprite sheet using URLs like `spritesheet.svg#icon-name`.
55
+ * The `SVG` enumeration provides preset paths for all available icons.
56
56
  *
57
- * #### Size
58
- * The icon size defaults to `medium`, which corresponds to `1em`. Other
59
- * preset sizes cause the icon to shrink or grow by a growth factor of 1.2
60
- * (_minor third_).
57
+ * ## Usage
61
58
  *
62
- * * `mini`: 0.578
63
- * * `tiny`: 0.694
64
- * * `small`: 0.833
65
- * * `medium`: 1
66
- * * `large`: 1.2
67
- * * `big`: 1.44
68
- * * `huge`: 1.728
69
- * * `massive`: 2.0736
59
+ * ```tsx
60
+ * import { Icon, SVG } from '@longline/aqua-ui';
70
61
  *
71
- * For exact sizing, `size` also accepts a size in pixels. An icon is always
72
- * square.
62
+ * // Basic icon
63
+ * <Icon url={SVG.Icons.Search} />
64
+ *
65
+ * // Colored and sized
66
+ * <Icon url={SVG.Icons.Check} color="green" size="large" />
67
+ *
68
+ * // With transformations
69
+ * <Icon url={SVG.Icons.Arrow} rotated={90} mirrored />
70
+ *
71
+ * // Clickable icon
72
+ * <Icon url={SVG.Icons.Close} onClick={handleClose} />
73
+ *
74
+ * // Loading spinner
75
+ * <Icon url={SVG.Icons.Spinner} animated />
76
+ * ```
77
+ *
78
+ * ## Preset Sizes
79
+ *
80
+ * Sizes scale by a _minor third_ (1.2x) from the base `medium` size of `1em`:
81
+ *
82
+ * | Size | Scale |
83
+ * |------|-------|
84
+ * | `mini` | 0.578em |
85
+ * | `tiny` | 0.694em |
86
+ * | `small` | 0.833em |
87
+ * | `medium` | 1em (default) |
88
+ * | `large` | 1.2em |
89
+ * | `big` | 1.44em |
90
+ * | `huge` | 1.728em |
91
+ * | `massive` | 2.074em |
92
+ *
93
+ * For exact sizing, pass a number for pixel-based dimensions.
94
+ *
95
+ * ## Transformations
96
+ *
97
+ * | Prop | Description |
98
+ * |------|-------------|
99
+ * | `mirrored` | Flip horizontally |
100
+ * | `flipped` | Flip vertically |
101
+ * | `rotated` | Rotate by degrees (0-360) |
102
+ * | `animated` | Continuous rotation animation |
73
103
  */
74
104
  var Icon = function (_a) {
75
105
  var _b = _a.size, size = _b === void 0 ? 'medium' : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.flipped, flipped = _d === void 0 ? false : _d, _e = _a.mirrored, mirrored = _e === void 0 ? false : _e, _f = _a.animated, animated = _f === void 0 ? false : _f, _g = _a.padded, padded = _g === void 0 ? false : _g, _h = _a.circle, circle = _h === void 0 ? false : _h, _j = _a.color, color = _j === void 0 ? "white" : _j, props = __rest(_a, ["size", "disabled", "flipped", "mirrored", "animated", "padded", "circle", "color"]);
76
106
  return React.createElement(IconStyled, __assign({ size: size, disabled: disabled, flipped: flipped, mirrored: mirrored, animated: animated, padded: padded, circle: circle, color: color }, props));
77
107
  };
78
- Icon.displayName = "Icon";
79
108
  export { IconBase, Icon, IconStyled };
80
109
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
@@ -1 +1,2 @@
1
- export * from './Icon';
1
+ export { IconBase, Icon, IconStyled } from './Icon';
2
+ export type { IIconProps } from './Icon';
@@ -1 +1 @@
1
- export * from './Icon';
1
+ export { IconBase, Icon, IconStyled } from './Icon';
@@ -13,13 +13,47 @@ interface IKeyProps {
13
13
  _fakeMac?: boolean;
14
14
  }
15
15
  /**
16
- * A `Key` displays a keyboard key. The value is the key description,
17
- * e.g. `Ctrl` or `Alt`. A key is 16x16px square, unless the key description
18
- * is longer than 1 character, in which case the width becomes 36px.
19
- * Certain keys (Ctrl on a Mac, arrows) are replaced with icons.
16
+ * A visual representation of a keyboard key for displaying shortcuts or instructions.
17
+ *
18
+ * Renders a styled key cap that matches the look of physical keyboard keys. Useful
19
+ * for documenting keyboard shortcuts, tooltips, or interactive tutorials.
20
+ *
21
+ * ## Usage
22
+ *
23
+ * ```tsx
24
+ * // Single key
25
+ * <Key value="Esc" />
26
+ *
27
+ * // Keyboard shortcut combination
28
+ * <span>
29
+ * <Key value="Ctrl" /> + <Key value="S" /> to save
30
+ * </span>
31
+ *
32
+ * // Arrow keys
33
+ * <Key value="ArrowUp" />
34
+ * <Key value="ArrowDown" />
35
+ * ```
36
+ *
37
+ * ## Special Keys
38
+ *
39
+ * Certain key values are automatically converted to icons:
40
+ *
41
+ * | Value | Display |
42
+ * |-------|---------|
43
+ * | `Ctrl` | ⌘ (Mac) or "Ctrl" (other) |
44
+ * | `ArrowUp` | ↑ icon |
45
+ * | `ArrowDown` | ↓ icon |
46
+ * | `ArrowLeft` | ← icon |
47
+ * | `ArrowRight` | → icon |
48
+ *
49
+ * ## Sizing
50
+ *
51
+ * - Single character keys: 16×16px square
52
+ * - Multi-character keys: 36px minimum width
20
53
  */
21
54
  declare const Key: {
22
55
  (props: IKeyProps): React.JSX.Element;
23
56
  displayName: string;
24
57
  };
25
- export { Key, IKeyProps };
58
+ export { Key };
59
+ export type { IKeyProps };
@@ -57,17 +57,83 @@ var KeyBase = function (props) {
57
57
  var Inner = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n height: 100%;\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n height: 100%;\n"])));
58
58
  var KeyStyled = styled(KeyBase)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: inline-block;\n color: ", ";\n fill: ", ";\n border: solid 1px ", ";\n background-color: ", ";\n border-radius: 4px;\n padding: 0 4px;\n height: 16px;\n box-sizing: border-box;\n min-width: 16px;\n font: ", ";\n"], ["\n display: inline-block;\n color: ", ";\n fill: ", ";\n border: solid 1px ", ";\n background-color: ", ";\n border-radius: 4px;\n padding: 0 4px;\n height: 16px;\n box-sizing: border-box;\n min-width: 16px;\n font: ", ";\n"
59
59
  /**
60
- * A `Key` displays a keyboard key. The value is the key description,
61
- * e.g. `Ctrl` or `Alt`. A key is 16x16px square, unless the key description
62
- * is longer than 1 character, in which case the width becomes 36px.
63
- * Certain keys (Ctrl on a Mac, arrows) are replaced with icons.
60
+ * A visual representation of a keyboard key for displaying shortcuts or instructions.
61
+ *
62
+ * Renders a styled key cap that matches the look of physical keyboard keys. Useful
63
+ * for documenting keyboard shortcuts, tooltips, or interactive tutorials.
64
+ *
65
+ * ## Usage
66
+ *
67
+ * ```tsx
68
+ * // Single key
69
+ * <Key value="Esc" />
70
+ *
71
+ * // Keyboard shortcut combination
72
+ * <span>
73
+ * <Key value="Ctrl" /> + <Key value="S" /> to save
74
+ * </span>
75
+ *
76
+ * // Arrow keys
77
+ * <Key value="ArrowUp" />
78
+ * <Key value="ArrowDown" />
79
+ * ```
80
+ *
81
+ * ## Special Keys
82
+ *
83
+ * Certain key values are automatically converted to icons:
84
+ *
85
+ * | Value | Display |
86
+ * |-------|---------|
87
+ * | `Ctrl` | ⌘ (Mac) or "Ctrl" (other) |
88
+ * | `ArrowUp` | ↑ icon |
89
+ * | `ArrowDown` | ↓ icon |
90
+ * | `ArrowLeft` | ← icon |
91
+ * | `ArrowRight` | → icon |
92
+ *
93
+ * ## Sizing
94
+ *
95
+ * - Single character keys: 16×16px square
96
+ * - Multi-character keys: 36px minimum width
64
97
  */
65
98
  ])), function (p) { return p.theme.colors.neutral[100]; }, function (p) { return p.theme.colors.neutral[100]; }, function (p) { return p.theme.colors.neutral[100]; }, function (p) { return p.theme.colors.neutral[10]; }, function (p) { return p.theme.font.labelSmall; });
66
99
  /**
67
- * A `Key` displays a keyboard key. The value is the key description,
68
- * e.g. `Ctrl` or `Alt`. A key is 16x16px square, unless the key description
69
- * is longer than 1 character, in which case the width becomes 36px.
70
- * Certain keys (Ctrl on a Mac, arrows) are replaced with icons.
100
+ * A visual representation of a keyboard key for displaying shortcuts or instructions.
101
+ *
102
+ * Renders a styled key cap that matches the look of physical keyboard keys. Useful
103
+ * for documenting keyboard shortcuts, tooltips, or interactive tutorials.
104
+ *
105
+ * ## Usage
106
+ *
107
+ * ```tsx
108
+ * // Single key
109
+ * <Key value="Esc" />
110
+ *
111
+ * // Keyboard shortcut combination
112
+ * <span>
113
+ * <Key value="Ctrl" /> + <Key value="S" /> to save
114
+ * </span>
115
+ *
116
+ * // Arrow keys
117
+ * <Key value="ArrowUp" />
118
+ * <Key value="ArrowDown" />
119
+ * ```
120
+ *
121
+ * ## Special Keys
122
+ *
123
+ * Certain key values are automatically converted to icons:
124
+ *
125
+ * | Value | Display |
126
+ * |-------|---------|
127
+ * | `Ctrl` | ⌘ (Mac) or "Ctrl" (other) |
128
+ * | `ArrowUp` | ↑ icon |
129
+ * | `ArrowDown` | ↓ icon |
130
+ * | `ArrowLeft` | ← icon |
131
+ * | `ArrowRight` | → icon |
132
+ *
133
+ * ## Sizing
134
+ *
135
+ * - Single character keys: 16×16px square
136
+ * - Multi-character keys: 36px minimum width
71
137
  */
72
138
  var Key = function (props) { return React.createElement(KeyStyled, __assign({}, props)); };
73
139
  Key.displayName = "Key";
@@ -1 +1,2 @@
1
- export * from './Key';
1
+ export { Key } from './Key';
2
+ export type { IKeyProps } from './Key';
@@ -1 +1 @@
1
- export * from './Key';
1
+ export { Key } from './Key';
@@ -21,19 +21,50 @@ interface ILinearChartProps {
21
21
  */
22
22
  color?: string;
23
23
  /**
24
- * If set, `LinearChart` is in ghost mode. If a ghosted `label is desired,
24
+ * If set, `LinearChart` is in ghost mode. If a ghosted label is desired,
25
25
  * `label` must have a value.
26
+ * @default false
26
27
  */
27
28
  ghost?: boolean;
28
29
  }
29
30
  /**
30
- * Data visualization element.
31
+ * A horizontal progress bar for visualizing percentage values.
32
+ *
33
+ * Displays a filled bar representing a value from 0-100. Optionally shows
34
+ * a text label and/or numeric percentage. Fills all available horizontal space.
35
+ *
36
+ * ## Usage
37
+ *
38
+ * ```tsx
39
+ * // Basic bar
40
+ * <LinearChart value={75} />
41
+ *
42
+ * // With label and percentage
43
+ * <LinearChart value={85} label="Progress" numbered />
44
+ *
45
+ * // Custom color
46
+ * <LinearChart value={50} color="orange" label="Warning" />
47
+ *
48
+ * // Loading state
49
+ * <LinearChart value={0} ghost label="Loading..." />
50
+ * ```
51
+ *
52
+ * ## Display Options
53
+ *
54
+ * | Prop | Description |
55
+ * |------|-------------|
56
+ * | `label` | Text or JSX shown before the bar (120px fixed width, ellipsized) |
57
+ * | `numbered` | Shows percentage value between label and bar |
58
+ * | `color` | Custom bar fill color (default: theme primary) |
59
+ * | `ghost` | Skeleton loading state |
60
+ *
61
+ * ## Accessibility
31
62
  *
32
- * The `LinearChart` will fill all horizontal space available to it.
33
- * A percentage value and a text label are optional.
63
+ * Includes `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, and `aria-valuemax`.
34
64
  */
35
65
  declare const LinearChart: {
36
66
  ({ numbered, ...props }: ILinearChartProps): React.JSX.Element;
37
67
  displayName: string;
38
68
  };
39
- export { LinearChart, ILinearChartProps };
69
+ export { LinearChart };
70
+ export type { ILinearChartProps };
@@ -44,17 +44,75 @@ var Bar = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObjec
44
44
  var GhostWrapper = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n height: 18px;\n flex: 1;\n"], ["\n position: relative;\n height: 18px;\n flex: 1;\n"])));
45
45
  var LinearChartStyled = styled(LinearChartBase)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n height: 18px;\n gap: 8px;\n min-width: 200px;\n user-select: none;\n\n font: ", ";\n color: ", ";\n line-height: 0;\n text-transform: uppercase;\n\n ", " {\n &:before {\n width: ", "%;\n background-color: ", ";\n }\n }\n"], ["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n height: 18px;\n gap: 8px;\n min-width: 200px;\n user-select: none;\n\n font: ", ";\n color: ", ";\n line-height: 0;\n text-transform: uppercase;\n\n ", " {\n &:before {\n width: ", "%;\n background-color: ", ";\n }\n }\n"
46
46
  /**
47
- * Data visualization element.
47
+ * A horizontal progress bar for visualizing percentage values.
48
48
  *
49
- * The `LinearChart` will fill all horizontal space available to it.
50
- * A percentage value and a text label are optional.
49
+ * Displays a filled bar representing a value from 0-100. Optionally shows
50
+ * a text label and/or numeric percentage. Fills all available horizontal space.
51
+ *
52
+ * ## Usage
53
+ *
54
+ * ```tsx
55
+ * // Basic bar
56
+ * <LinearChart value={75} />
57
+ *
58
+ * // With label and percentage
59
+ * <LinearChart value={85} label="Progress" numbered />
60
+ *
61
+ * // Custom color
62
+ * <LinearChart value={50} color="orange" label="Warning" />
63
+ *
64
+ * // Loading state
65
+ * <LinearChart value={0} ghost label="Loading..." />
66
+ * ```
67
+ *
68
+ * ## Display Options
69
+ *
70
+ * | Prop | Description |
71
+ * |------|-------------|
72
+ * | `label` | Text or JSX shown before the bar (120px fixed width, ellipsized) |
73
+ * | `numbered` | Shows percentage value between label and bar |
74
+ * | `color` | Custom bar fill color (default: theme primary) |
75
+ * | `ghost` | Skeleton loading state |
76
+ *
77
+ * ## Accessibility
78
+ *
79
+ * Includes `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, and `aria-valuemax`.
51
80
  */
52
81
  ])), function (p) { return p.theme.font.dataLarge; }, function (p) { return p.theme.colors.font; }, Bar, function (p) { return Math.max(0, Math.min(100, p.value)); }, function (p) { var _a; return (_a = p.color) !== null && _a !== void 0 ? _a : p.theme.colors.primary[1]; });
53
82
  /**
54
- * Data visualization element.
83
+ * A horizontal progress bar for visualizing percentage values.
84
+ *
85
+ * Displays a filled bar representing a value from 0-100. Optionally shows
86
+ * a text label and/or numeric percentage. Fills all available horizontal space.
87
+ *
88
+ * ## Usage
89
+ *
90
+ * ```tsx
91
+ * // Basic bar
92
+ * <LinearChart value={75} />
93
+ *
94
+ * // With label and percentage
95
+ * <LinearChart value={85} label="Progress" numbered />
96
+ *
97
+ * // Custom color
98
+ * <LinearChart value={50} color="orange" label="Warning" />
99
+ *
100
+ * // Loading state
101
+ * <LinearChart value={0} ghost label="Loading..." />
102
+ * ```
103
+ *
104
+ * ## Display Options
105
+ *
106
+ * | Prop | Description |
107
+ * |------|-------------|
108
+ * | `label` | Text or JSX shown before the bar (120px fixed width, ellipsized) |
109
+ * | `numbered` | Shows percentage value between label and bar |
110
+ * | `color` | Custom bar fill color (default: theme primary) |
111
+ * | `ghost` | Skeleton loading state |
112
+ *
113
+ * ## Accessibility
55
114
  *
56
- * The `LinearChart` will fill all horizontal space available to it.
57
- * A percentage value and a text label are optional.
115
+ * Includes `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, and `aria-valuemax`.
58
116
  */
59
117
  var LinearChart = function (_a) {
60
118
  var _b = _a.numbered, numbered = _b === void 0 ? false : _b, props = __rest(_a, ["numbered"]);
@@ -1 +1,2 @@
1
- export * from './LinearChart';
1
+ export { LinearChart } from './LinearChart';
2
+ export type { ILinearChartProps } from './LinearChart';