@kanso-labs/react-native-kanso-ui 0.8.0 → 0.10.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.
- package/README.md +4 -3
- package/dist/autocomplete/index.js +15 -1
- package/dist/autocomplete/index.js.map +1 -1
- package/dist/badge/index.js +9 -70
- package/dist/badge/index.js.map +1 -1
- package/dist/button/group.d.ts +5 -0
- package/dist/button/group.js +115 -0
- package/dist/button/group.js.map +1 -0
- package/dist/button/index.d.ts +4 -1
- package/dist/button/index.js +45 -23
- package/dist/button/index.js.map +1 -1
- package/dist/button/palettes.d.ts +2 -0
- package/dist/button/slots.js +2 -1
- package/dist/button/slots.js.map +1 -1
- package/dist/calendar/index.js +351 -182
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/styles.js +33 -2
- package/dist/calendar/styles.js.map +1 -1
- package/dist/carousel/arrangement.d.ts +5 -0
- package/dist/carousel/arrangement.js +123 -0
- package/dist/carousel/arrangement.js.map +1 -0
- package/dist/chequer/index.js +95 -0
- package/dist/chequer/index.js.map +1 -0
- package/dist/collection/index.d.ts +157 -0
- package/dist/collection/index.js +1331 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/color-thumb/index.js +56 -0
- package/dist/color-thumb/index.js.map +1 -0
- package/dist/components/badge/index.d.ts +48 -0
- package/dist/components/badge/index.js +122 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/{badge → components/badge}/styles.js +10 -6
- package/dist/components/badge/styles.js.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +66 -0
- package/dist/components/breadcrumbs/index.js +285 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/button/index.d.ts +4 -2
- package/dist/components/button/index.js +227 -188
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button-group/index.d.ts +87 -0
- package/dist/components/button-group/index.js +275 -0
- package/dist/components/button-group/index.js.map +1 -0
- package/dist/components/calendar/index.d.ts +11 -3
- package/dist/components/calendar/index.js +60 -45
- package/dist/components/calendar/index.js.map +1 -1
- package/dist/components/carousel/index.d.ts +72 -0
- package/dist/components/carousel/index.js +496 -0
- package/dist/components/carousel/index.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +7 -1
- package/dist/components/checkbox/index.js +183 -138
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox-group/index.d.ts +92 -0
- package/dist/components/checkbox-group/index.js +306 -0
- package/dist/components/checkbox-group/index.js.map +1 -0
- package/dist/components/code/index.d.ts +25 -0
- package/dist/components/code/index.js +87 -0
- package/dist/components/code/index.js.map +1 -0
- package/dist/components/color-area/index.d.ts +85 -0
- package/dist/components/color-area/index.js +630 -0
- package/dist/components/color-area/index.js.map +1 -0
- package/dist/components/color-field/index.d.ts +144 -0
- package/dist/components/color-field/index.js +516 -0
- package/dist/components/color-field/index.js.map +1 -0
- package/dist/components/color-picker/index.d.ts +74 -0
- package/dist/components/color-picker/index.js +317 -0
- package/dist/components/color-picker/index.js.map +1 -0
- package/dist/components/color-slider/index.d.ts +82 -0
- package/dist/components/color-slider/index.js +456 -0
- package/dist/components/color-slider/index.js.map +1 -0
- package/dist/components/color-swatch/index.d.ts +46 -0
- package/dist/components/color-swatch/index.js +127 -0
- package/dist/components/color-swatch/index.js.map +1 -0
- package/dist/components/color-swatch-picker/index.d.ts +81 -0
- package/dist/components/color-swatch-picker/index.js +287 -0
- package/dist/components/color-swatch-picker/index.js.map +1 -0
- package/dist/components/color-wheel/index.d.ts +71 -0
- package/dist/components/color-wheel/index.js +407 -0
- package/dist/components/color-wheel/index.js.map +1 -0
- package/dist/components/combo-box/index.d.ts +193 -0
- package/dist/components/combo-box/index.js +616 -0
- package/dist/components/combo-box/index.js.map +1 -0
- package/dist/components/container/index.d.ts +47 -0
- package/dist/components/container/index.js +85 -0
- package/dist/components/container/index.js.map +1 -0
- package/dist/components/date-field/index.d.ts +120 -0
- package/dist/components/date-field/index.js +111 -0
- package/dist/components/date-field/index.js.map +1 -0
- package/dist/components/date-picker/index.d.ts +130 -0
- package/dist/components/date-picker/index.js +310 -0
- package/dist/components/date-picker/index.js.map +1 -0
- package/dist/components/date-range-picker/index.d.ts +139 -0
- package/dist/components/date-range-picker/index.js +421 -0
- package/dist/components/date-range-picker/index.js.map +1 -0
- package/dist/components/disclosure/index.d.ts +94 -0
- package/dist/components/disclosure/index.js +365 -0
- package/dist/components/disclosure/index.js.map +1 -0
- package/dist/components/disclosure-group/index.d.ts +61 -0
- package/dist/components/disclosure-group/index.js +100 -0
- package/dist/components/disclosure-group/index.js.map +1 -0
- package/dist/components/drop-zone/index.d.ts +113 -0
- package/dist/components/drop-zone/index.js +304 -0
- package/dist/components/drop-zone/index.js.map +1 -0
- package/dist/components/fab/index.d.ts +80 -0
- package/dist/components/fab/index.js +246 -0
- package/dist/components/fab/index.js.map +1 -0
- package/dist/components/fab-menu/index.d.ts +120 -0
- package/dist/components/fab-menu/index.js +640 -0
- package/dist/components/fab-menu/index.js.map +1 -0
- package/dist/components/feed/index.d.ts +57 -0
- package/dist/components/feed/index.js +167 -0
- package/dist/components/feed/index.js.map +1 -0
- package/dist/components/form/index.d.ts +3 -2
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/icon-button/index.d.ts +4 -2
- package/dist/components/icon-button/index.js +204 -171
- package/dist/components/icon-button/index.js.map +1 -1
- package/dist/components/keycap/index.d.ts +27 -0
- package/dist/components/keycap/index.js +136 -0
- package/dist/components/keycap/index.js.map +1 -0
- package/dist/components/list/index.d.ts +15 -158
- package/dist/components/list/index.js +21 -1047
- package/dist/components/list/index.js.map +1 -1
- package/dist/components/list-box/index.d.ts +73 -0
- package/dist/components/list-box/index.js +82 -0
- package/dist/components/list-box/index.js.map +1 -0
- package/dist/components/loading-indicator/index.d.ts +32 -0
- package/dist/components/loading-indicator/index.js +174 -0
- package/dist/components/loading-indicator/index.js.map +1 -0
- package/dist/components/menu/index.js +1 -1
- package/dist/components/navigation-tree/index.d.ts +117 -0
- package/dist/components/navigation-tree/index.js +135 -0
- package/dist/components/navigation-tree/index.js.map +1 -0
- package/dist/components/number-field/index.js +132 -143
- package/dist/components/number-field/index.js.map +1 -1
- package/dist/components/range-calendar/index.d.ts +69 -0
- package/dist/components/range-calendar/index.js +144 -0
- package/dist/components/range-calendar/index.js.map +1 -0
- package/dist/components/search-view/index.d.ts +78 -0
- package/dist/components/search-view/index.js +570 -0
- package/dist/components/search-view/index.js.map +1 -0
- package/dist/components/select/index.d.ts +152 -0
- package/dist/components/select/index.js +419 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/separator/index.d.ts +3 -2
- package/dist/components/separator/index.js +29 -26
- package/dist/components/separator/index.js.map +1 -1
- package/dist/components/slider/index.d.ts +111 -0
- package/dist/components/slider/index.js +673 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/split-button/index.d.ts +77 -0
- package/dist/components/split-button/index.js +354 -0
- package/dist/components/split-button/index.js.map +1 -0
- package/dist/components/supporting-pane/index.d.ts +44 -0
- package/dist/components/supporting-pane/index.js +109 -0
- package/dist/components/supporting-pane/index.js.map +1 -0
- package/dist/components/tabs/index.d.ts +196 -0
- package/dist/components/tabs/index.js +1137 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/text/index.d.ts +1 -1
- package/dist/components/text/index.js +49 -21
- package/dist/components/text/index.js.map +1 -1
- package/dist/components/text-area/index.d.ts +145 -0
- package/dist/components/text-area/index.js +231 -0
- package/dist/components/text-area/index.js.map +1 -0
- package/dist/components/time-field/index.d.ts +43 -0
- package/dist/components/time-field/index.js +107 -0
- package/dist/components/time-field/index.js.map +1 -0
- package/dist/components/time-picker/index.d.ts +65 -0
- package/dist/components/time-picker/index.js +1168 -0
- package/dist/components/time-picker/index.js.map +1 -0
- package/dist/components/toolbar/index.d.ts +53 -0
- package/dist/components/toolbar/index.js +185 -0
- package/dist/components/toolbar/index.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +101 -0
- package/dist/components/tooltip/index.js +223 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tree/index.d.ts +112 -0
- package/dist/components/tree/index.js +157 -0
- package/dist/components/tree/index.js.map +1 -0
- package/dist/control/group.js +23 -0
- package/dist/control/group.js.map +1 -0
- package/dist/disclosure/chevron.js +75 -0
- package/dist/disclosure/chevron.js.map +1 -0
- package/dist/disclosure/index.js +7 -0
- package/dist/disclosure/index.js.map +1 -0
- package/dist/drop/index.d.ts +54 -0
- package/dist/drop/index.js +161 -0
- package/dist/drop/index.js.map +1 -0
- package/dist/fab/index.d.ts +19 -0
- package/dist/fab/index.js +147 -0
- package/dist/fab/index.js.map +1 -0
- package/dist/field/chevron.js +74 -0
- package/dist/field/chevron.js.map +1 -0
- package/dist/field/index.d.ts +2 -1
- package/dist/field/index.js +350 -153
- package/dist/field/index.js.map +1 -1
- package/dist/field/styles.js +27 -0
- package/dist/field/styles.js.map +1 -1
- package/dist/files/index.d.ts +18 -0
- package/dist/files/index.js +107 -0
- package/dist/files/index.js.map +1 -0
- package/dist/form/index.d.ts +6 -4
- package/dist/form/index.js +64 -85
- package/dist/form/index.js.map +1 -1
- package/dist/glyphs/index.js +92 -1
- package/dist/glyphs/index.js.map +1 -1
- package/dist/i18n/index.js +20 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/messages.js +1394 -34
- package/dist/i18n/messages.js.map +1 -1
- package/dist/index.d.ts +51 -6
- package/dist/index.js +47 -4
- package/dist/indicator/paths.js +23 -1
- package/dist/indicator/paths.js.map +1 -1
- package/dist/modal/index.js +96 -68
- package/dist/modal/index.js.map +1 -1
- package/dist/navigation/index.js +8 -5
- package/dist/navigation/index.js.map +1 -1
- package/dist/number/keyboard.js +16 -0
- package/dist/number/keyboard.js.map +1 -0
- package/dist/overlay/anchored.js +68 -38
- package/dist/overlay/anchored.js.map +1 -1
- package/dist/overlay/keyboard.js +57 -0
- package/dist/overlay/keyboard.js.map +1 -0
- package/dist/overlay/panel.js +173 -19
- package/dist/overlay/panel.js.map +1 -1
- package/dist/overlay/placement.js +16 -2
- package/dist/overlay/placement.js.map +1 -1
- package/dist/picker/index.js +322 -0
- package/dist/picker/index.js.map +1 -0
- package/dist/press/index.d.ts +2 -0
- package/dist/press/index.js +102 -100
- package/dist/press/index.js.map +1 -1
- package/dist/row/index.js +77 -69
- package/dist/row/index.js.map +1 -1
- package/dist/row/styles.js +13 -2
- package/dist/row/styles.js.map +1 -1
- package/dist/segments/field.js +277 -0
- package/dist/segments/field.js.map +1 -0
- package/dist/segments/index.js +574 -0
- package/dist/segments/index.js.map +1 -0
- package/dist/segments/styles.js +24 -0
- package/dist/segments/styles.js.map +1 -0
- package/dist/separator/index.js +7 -0
- package/dist/separator/index.js.map +1 -0
- package/dist/slider/index.js +145 -0
- package/dist/slider/index.js.map +1 -0
- package/dist/swatch/index.js +56 -0
- package/dist/swatch/index.js.map +1 -0
- package/dist/typography/size.js +14 -0
- package/dist/typography/size.js.map +1 -0
- package/package.json +11 -2
- package/dist/badge/styles.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrangement.js","names":["CarouselLayout","GAP","SMALL_MAX","SMALL_MIN","Arrangement","large","largeCount","medium","small","steps","Placement","left","width","arrange","layout","room","itemSize","count","Math","min","max","withSteps","fit","floor","most","gaps","sizes","filledOf","Omit","trailingOf","length","placements","arrangement","padding","position","Array","from","_","index","clamped","to","fraction","start","rest","end","map","placement","next","step","filled","trailing","slice","last","turned","kept","slot","first","lefts","cursor","size","push","shift","away","filter","turning"],"sources":["../../src/carousel/arrangement.ts"],"sourcesContent":["// The carousel page's layouts as numbers: which items are large, medium and\n// small at each place a carousel comes to rest, and where each is drawn as\n// it moves between two of them. Apart from the component so the arithmetic\n// can be tested without anything being laid out, and so the component's file\n// holds what it renders. Copied from kanso-ui's src/carousel/arrangement.ts\n// and kept in step with it by hand, so the two libraries draw one carousel.\n//\n// The model is MDC-Android's keylines, simplified to what the page draws.\n// At rest a multi-browse carousel shows `largeCount` large items, one medium\n// and one small, filling the room exactly; a hero carousel one large and one\n// small. Each rest is one item further along than the last, and once the\n// last item has come into view the rests that remain turn the arrangement\n// round a slot at a time — small, the large ones, medium; then small,\n// medium, the large ones — so every item is drawn large at one rest at\n// least. At rest `s` the large items are always `s` to `s + largeCount - 1`.\n// Between two rests every item's place and width are interpolated, which is\n// what makes an item grow or shrink as it moves rather than jump. Items past\n// either edge are drawn small and out of sight, so they arrive at the size\n// of the slot they enter.\n//\n// Everything is in pixels along the inline axis of the carousel's content\n// box: 0 is its start edge, inside the leading padding.\n\ntype CarouselLayout = 'hero' | 'multi-browse' | 'uncontained'\n\n/** The page's 8dp between items. */\nconst GAP = 8\n\n/** The page's small item: 40dp at the least and 56dp at the most. */\nconst SMALL_MAX = 56\nconst SMALL_MIN = 40\n\ntype Arrangement = {\n /** The large item's width, which every item is laid out at. */\n large: number\n /** How many items are large at rest. */\n largeCount: number\n /** The medium item's width, or 0 for a layout without one. */\n medium: number\n /** The small item's width, or 0 for a layout without one. */\n small: number\n /** The last place the carousel comes to rest, counting from 0. */\n steps: number\n}\n\n/** Where an item is drawn: the start of what shows of it, and its width. */\ntype Placement = { left: number; width: number }\n\n/**\n * The sizes a layout draws its items at in a content box `room` wide, for\n * `count` items and a preferred large width of `itemSize`.\n */\nfunction arrange(\n layout: CarouselLayout,\n room: number,\n itemSize: number,\n count: number,\n): Arrangement {\n if (layout === 'uncontained') {\n const large = Math.min(itemSize, room)\n return { large, largeCount: 0, medium: 0, small: 0, steps: 0 }\n }\n\n // The small item at its largest unless the room is too narrow for it.\n const small = room >= 3 * SMALL_MAX + 2 * GAP ? SMALL_MAX : SMALL_MIN\n\n if (layout === 'hero') {\n const large = Math.max(room - GAP - small, small)\n return withSteps({ large, largeCount: 1, medium: 0, small }, count)\n }\n\n // As many items at the preferred width as fit beside a medium and a small\n // one, and no more than leave a medium and a small item to fill those two\n // slots, so a short run of items still fills the room rather than leaving\n // its last slots empty. Where what is left for the medium item is not\n // between the small and the large width, the large width gives way, to\n // whatever leaves the medium item halfway between the two.\n const fit = Math.floor((room - small - GAP) / (itemSize + GAP))\n const most = Math.max(1, Math.min(fit, count - 2))\n for (let largeCount = most; largeCount >= 1; largeCount--) {\n const gaps = (largeCount + 1) * GAP\n const medium = room - largeCount * itemSize - gaps - small\n if (medium >= small && medium <= itemSize) {\n return withSteps({ large: itemSize, largeCount, medium, small }, count)\n }\n const large = (room - gaps - 1.5 * small) / (largeCount + 0.5)\n if (large >= small) {\n const sizes = { large, largeCount, medium: (large + small) / 2, small }\n return withSteps(sizes, count)\n }\n }\n // Too narrow for three: one large item and one small, as a hero draws.\n return arrange('hero', room, itemSize, count)\n}\n\n// How many of the slots are filled: all of them, unless there are fewer\n// items, which leaves the last slots empty.\nfunction filledOf(sizes: Omit<Arrangement, 'steps'>, count: number) {\n return Math.min(count, sizes.largeCount + trailingOf(sizes).length)\n}\n\n/**\n * Where every item is drawn with the carousel `position` rests along: a\n * whole number at a rest, and the fraction between two while it moves.\n * `room` is the content box's width and `padding` the space on each side of\n * it, which an item past the edge is drawn beyond.\n */\nfunction placements(\n layout: CarouselLayout,\n arrangement: Arrangement,\n room: number,\n padding: number,\n count: number,\n position: number,\n): Placement[] {\n if (layout === 'uncontained') {\n return Array.from({ length: count }, (_, index) => ({\n left: index * (arrangement.large + GAP),\n width: arrangement.large,\n }))\n }\n\n const clamped = Math.min(Math.max(position, 0), arrangement.steps)\n const from = Math.floor(clamped)\n const to = Math.min(from + 1, arrangement.steps)\n const fraction = clamped - from\n const start = rest(arrangement, room, padding, count, from)\n const end = rest(arrangement, room, padding, count, to)\n\n return start.map((placement, index) => {\n const next = end[index] ?? placement\n return {\n left: placement.left + (next.left - placement.left) * fraction,\n width: placement.width + (next.width - placement.width) * fraction,\n }\n })\n}\n\n// Where every item is drawn at one rest.\nfunction rest(\n arrangement: Arrangement,\n room: number,\n padding: number,\n count: number,\n step: number,\n) {\n const { large, largeCount, small } = arrangement\n const filled = filledOf(arrangement, count)\n const trailing = trailingOf(arrangement).slice(0, filled - largeCount)\n // The last rest drawn from the start; past it, how many trailing slots\n // have turned round to the front, the last of them first.\n const last = count - filled\n const turned = Math.max(0, step - last)\n const kept = trailing.length - turned\n const sizes = [\n ...Array.from(\n { length: turned },\n (_, slot) => trailing[trailing.length - 1 - slot] ?? small,\n ),\n ...Array.from({ length: Math.min(largeCount, filled) }, () => large),\n ...trailing.slice(0, kept),\n ]\n // The item in the first slot. Once the arrangement turns, the slots hold\n // the last items, whichever way round they are drawn.\n const first = Math.min(step, last)\n\n // The slots, laid out from the start edge.\n const lefts: number[] = []\n let cursor = 0\n for (const size of sizes) {\n lefts.push(cursor)\n cursor += size + GAP\n }\n // A turned arrangement that does not fill the room is set against the end\n // edge instead, which is where its large items belong.\n const shift = turned > 0 ? room - (cursor - GAP) : 0\n const away = small > 0 ? small : large\n\n return Array.from({ length: count }, (_, index): Placement => {\n const slot = index - first\n if (slot < 0) {\n // Past the start edge, beyond the padding, a small item per place.\n return { left: -padding + slot * (away + GAP), width: away }\n }\n if (slot >= sizes.length) {\n // Past the end edge, likewise.\n return {\n left: room + padding + GAP + (slot - sizes.length) * (away + GAP),\n width: away,\n }\n }\n return { left: (lefts[slot] ?? 0) + shift, width: sizes[slot] ?? away }\n })\n}\n\n// The widths that follow the large ones at rest: medium then small, or the\n// small alone for a hero.\nfunction trailingOf({ medium, small }: Omit<Arrangement, 'steps'>) {\n return [medium, small].filter((size) => size > 0)\n}\n\n// A rest starts at each item while every slot after it is filled, and each\n// trailing slot turning round to the front is one rest more.\nfunction withSteps(\n sizes: Omit<Arrangement, 'steps'>,\n count: number,\n): Arrangement {\n const filled = filledOf(sizes, count)\n const turning = Math.max(0, filled - sizes.largeCount)\n return { ...sizes, steps: count - filled + turning }\n}\n\nexport type { Arrangement, CarouselLayout, Placement }\n\nexport { arrange, GAP, placements }\n"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { useTheme } from "../theme/scope.js";
|
|
2
|
+
import { HIDDEN } from "../glyphs/hidden.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { StyleSheet } from "react-native";
|
|
5
|
+
import { useId } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import Svg, { Defs, Pattern, Rect } from "react-native-svg";
|
|
8
|
+
//#region src/chequer/index.tsx
|
|
9
|
+
const TILE = 16;
|
|
10
|
+
const HALF = TILE / 2;
|
|
11
|
+
function Chequer() {
|
|
12
|
+
const $ = c(15);
|
|
13
|
+
const { colors } = useTheme();
|
|
14
|
+
const id = `chequer${useId()}`;
|
|
15
|
+
let t0;
|
|
16
|
+
if ($[0] !== colors.surfaceContainerLowest) {
|
|
17
|
+
t0 = /* @__PURE__ */ jsx(Rect, {
|
|
18
|
+
fill: colors.surfaceContainerLowest,
|
|
19
|
+
height: TILE,
|
|
20
|
+
width: TILE
|
|
21
|
+
});
|
|
22
|
+
$[0] = colors.surfaceContainerLowest;
|
|
23
|
+
$[1] = t0;
|
|
24
|
+
} else t0 = $[1];
|
|
25
|
+
let t1;
|
|
26
|
+
let t2;
|
|
27
|
+
if ($[2] !== colors.surfaceContainerHighest) {
|
|
28
|
+
t1 = /* @__PURE__ */ jsx(Rect, {
|
|
29
|
+
fill: colors.surfaceContainerHighest,
|
|
30
|
+
height: HALF,
|
|
31
|
+
width: HALF
|
|
32
|
+
});
|
|
33
|
+
t2 = /* @__PURE__ */ jsx(Rect, {
|
|
34
|
+
fill: colors.surfaceContainerHighest,
|
|
35
|
+
height: HALF,
|
|
36
|
+
width: HALF,
|
|
37
|
+
x: HALF,
|
|
38
|
+
y: HALF
|
|
39
|
+
});
|
|
40
|
+
$[2] = colors.surfaceContainerHighest;
|
|
41
|
+
$[3] = t1;
|
|
42
|
+
$[4] = t2;
|
|
43
|
+
} else {
|
|
44
|
+
t1 = $[3];
|
|
45
|
+
t2 = $[4];
|
|
46
|
+
}
|
|
47
|
+
let t3;
|
|
48
|
+
if ($[5] !== id || $[6] !== t0 || $[7] !== t1 || $[8] !== t2) {
|
|
49
|
+
t3 = /* @__PURE__ */ jsx(Defs, { children: /* @__PURE__ */ jsxs(Pattern, {
|
|
50
|
+
height: TILE,
|
|
51
|
+
id,
|
|
52
|
+
patternUnits: "userSpaceOnUse",
|
|
53
|
+
width: TILE,
|
|
54
|
+
children: [
|
|
55
|
+
t0,
|
|
56
|
+
t1,
|
|
57
|
+
t2
|
|
58
|
+
]
|
|
59
|
+
}) });
|
|
60
|
+
$[5] = id;
|
|
61
|
+
$[6] = t0;
|
|
62
|
+
$[7] = t1;
|
|
63
|
+
$[8] = t2;
|
|
64
|
+
$[9] = t3;
|
|
65
|
+
} else t3 = $[9];
|
|
66
|
+
const t4 = `url(#${id})`;
|
|
67
|
+
let t5;
|
|
68
|
+
if ($[10] !== t4) {
|
|
69
|
+
t5 = /* @__PURE__ */ jsx(Rect, {
|
|
70
|
+
fill: t4,
|
|
71
|
+
height: "100%",
|
|
72
|
+
width: "100%"
|
|
73
|
+
});
|
|
74
|
+
$[10] = t4;
|
|
75
|
+
$[11] = t5;
|
|
76
|
+
} else t5 = $[11];
|
|
77
|
+
let t6;
|
|
78
|
+
if ($[12] !== t3 || $[13] !== t5) {
|
|
79
|
+
t6 = /* @__PURE__ */ jsxs(Svg, {
|
|
80
|
+
...HIDDEN,
|
|
81
|
+
height: "100%",
|
|
82
|
+
style: StyleSheet.absoluteFill,
|
|
83
|
+
width: "100%",
|
|
84
|
+
children: [t3, t5]
|
|
85
|
+
});
|
|
86
|
+
$[12] = t3;
|
|
87
|
+
$[13] = t5;
|
|
88
|
+
$[14] = t6;
|
|
89
|
+
} else t6 = $[14];
|
|
90
|
+
return t6;
|
|
91
|
+
}
|
|
92
|
+
//#endregion
|
|
93
|
+
export { Chequer };
|
|
94
|
+
|
|
95
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["useId","StyleSheet","Svg","Defs","Pattern","Rect","HIDDEN","useTheme","TILE","HALF","Chequer","$","_c","colors","id","t0","surfaceContainerLowest","t1","t2","surfaceContainerHighest","t3","t4","t5","t6","absoluteFill","_c"],"sources":["../../src/chequer/index.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { StyleSheet } from 'react-native'\nimport Svg, { Defs, Pattern, Rect } from 'react-native-svg'\n\nimport { HIDDEN } from '../glyphs/hidden'\nimport { useTheme } from '../theme/scope'\n\n// The chequer a transparent colour is drawn against, as kanso-ui's\n// src/styles/chequer.ts draws it, behind a swatch and behind a colour\n// slider's alpha track. A half-transparent red over a light surface and an\n// opaque pink are the same pixels; this is what tells them apart.\n//\n// Here rather than in either component, since both draw it and a second copy\n// would be a second density to keep in step. It is built from two surface\n// tokens, surface container highest squares on surface container lowest, so\n// it follows the theme rather than being a fixed grey. The squares are 8dp,\n// two to a 16dp tile on its diagonal, which reads as a chequer at a swatch's\n// size without turning into a texture.\n//\n// It is an svg pattern rather than a grid of views, so a track of any length\n// costs the same three rectangles. It fills the view it is placed in, behind\n// whatever comes after it there, so a colour drawn over it shows it through\n// as far as the colour is transparent. The view clips it to its own corners.\n\nconst TILE = 16\nconst HALF = TILE / 2\n\nfunction Chequer() {\n const { colors } = useTheme()\n // A pattern is found by its id, which has to be unique in the page under\n // React Native Web. React's are, and from 19.2 on hold nothing a `url()`\n // reference cannot take.\n const id = `chequer${useId()}`\n\n return (\n <Svg {...HIDDEN} height=\"100%\" style={StyleSheet.absoluteFill} width=\"100%\">\n <Defs>\n <Pattern\n height={TILE}\n id={id}\n patternUnits=\"userSpaceOnUse\"\n width={TILE}\n >\n <Rect\n fill={colors.surfaceContainerLowest}\n height={TILE}\n width={TILE}\n />\n <Rect\n fill={colors.surfaceContainerHighest}\n height={HALF}\n width={HALF}\n />\n <Rect\n fill={colors.surfaceContainerHighest}\n height={HALF}\n width={HALF}\n x={HALF}\n y={HALF}\n />\n </Pattern>\n </Defs>\n <Rect fill={`url(#${id})`} height=\"100%\" width=\"100%\" />\n </Svg>\n )\n}\n\nexport { Chequer }\n"],"mappings":";;;;;;;;AAwBA,MAAMQ,OAAO;AACb,MAAMC,OAAOD,OAAO;AAEpB,SAAAE,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACE,MAAA,EAAAC,WAAmBN,SAAS;CAI5B,MAAAO,KAAW,UAAUd,MAAM;CAAG,IAAAe;CAAA,IAAAJ,EAAA,OAAAE,OAAAG,wBAAA;EAWtBD,KAAA,oBAAC,MAAD;GACQ,MAAAF,OAAMG;GACJR,QAAAA;GACDA,OAAAA;EAAI,CAAA;EACXG,EAAA,KAAAE,OAAAG;EAAAL,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,IAAAM;CAAA,IAAAC;CAAA,IAAAP,EAAA,OAAAE,OAAAM,yBAAA;EACFF,KAAA,oBAAC,MAAD;GACQ,MAAAJ,OAAMM;GACJV,QAAAA;GACDA,OAAAA;EAAI,CAAA;EAEbS,KAAA,oBAAC,MAAD;GACQ,MAAAL,OAAMM;GACJV,QAAAA;GACDA,OAAAA;GACJA,GAAAA;GACAA,GAAAA;EAAI,CAAA;EACPE,EAAA,KAAAE,OAAAM;EAAAR,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAA;EAAAD,KAAAN,EAAA;EAAAO,KAAAP,EAAA;CAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,OAAAG,MAAAH,EAAA,OAAAI,MAAAJ,EAAA,OAAAM,MAAAN,EAAA,OAAAO,IAAA;EAvBNE,KAAA,oBAAC,MAAD,EAAA,UACE,qBAAC,SAAD;GACUZ,QAAAA;GACJM;GACS,cAAA;GACNN,OAAAA;GAJT,UAAA;IAMEO;IAKAE;IAKAC;GAhBM;EADL,CAAA,EAAA,CAAA;EAyBEP,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAM;EAAAN,EAAA,KAAAO;EAAAP,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CACK,MAAAU,KAAA,QAAQP,GAAE;CAAG,IAAAQ;CAAA,IAAAX,EAAA,QAAAU,IAAA;EAAzBC,KAAA,oBAAC,MAAD;GAAY,MAAAD;GAAsB,QAAA;GAAa,OAAA;EAAM,CAAA;EAAGV,EAAA,MAAAU;EAAAV,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAS,MAAAT,EAAA,QAAAW,IAAA;EA3B1DC,KAAA,qBAAC,KAAD;GAAI,GAAKjB;GAAe,QAAA;GAAc,OAAAL,WAAUuB;GAAqB,OAAA;GAArE,UAAA,CACEJ,IA0BAE,EA3BE;;EA4BEX,EAAA,MAAAS;EAAAT,EAAA,MAAAW;EAAAX,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OA5BNY;AA4BM"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { FlatList, HostInstance, PressableProps, ScrollViewProps, StyleProp, ViewStyle } from "react-native";
|
|
2
|
+
import { ReactElement, ReactNode, Ref } from "react";
|
|
3
|
+
import "react-stately/useListState";
|
|
4
|
+
import { Key, Selection, SelectionMode } from "react-stately";
|
|
5
|
+
import "react-stately/useTreeState";
|
|
6
|
+
//#region src/collection/index.d.ts
|
|
7
|
+
type CollectionLoadMoreProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Draws the ring in a row of its own while more items are being fetched.
|
|
10
|
+
* @default false
|
|
11
|
+
*/
|
|
12
|
+
readonly isLoading?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* What a screen reader calls the ring, and hears as it appears. Left out,
|
|
15
|
+
* it is the word for it in the `I18nProvider`'s language, or the device's
|
|
16
|
+
* outside one, "Loading more" in English.
|
|
17
|
+
*/
|
|
18
|
+
readonly label?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Called when the end of the list comes within `scrollOffset` of its
|
|
21
|
+
* visible end, while nothing is loading. Called once for each length the
|
|
22
|
+
* list reaches, so a load that adds nothing does not start another.
|
|
23
|
+
*/
|
|
24
|
+
readonly onLoadMore?: () => void;
|
|
25
|
+
/**
|
|
26
|
+
* How far past the visible end of the list the next items are asked for,
|
|
27
|
+
* as a share of the list's visible height.
|
|
28
|
+
* @default 1
|
|
29
|
+
*/
|
|
30
|
+
readonly scrollOffset?: number;
|
|
31
|
+
readonly style?: StyleProp<ViewStyle>;
|
|
32
|
+
readonly testID?: string;
|
|
33
|
+
};
|
|
34
|
+
type CollectionProps<T extends object = object> = Omit<ScrollViewProps, 'children' | 'role' | 'stickyHeaderIndices' | 'style'> & {
|
|
35
|
+
/**
|
|
36
|
+
* The rows, each an `Item`, `Section` or `LoadMore` part. With `items`, a
|
|
37
|
+
* function from an item to its part, called for each item in turn.
|
|
38
|
+
*/
|
|
39
|
+
readonly children?: ((item: T) => ReactElement) | ReactNode;
|
|
40
|
+
/** The keys selected at first, when the list keeps its own selection. */
|
|
41
|
+
readonly defaultSelectedKeys?: 'all' | Iterable<Key>;
|
|
42
|
+
/** The keys of the rows drawn disabled, which take no presses. */
|
|
43
|
+
readonly disabledKeys?: Iterable<Key>;
|
|
44
|
+
/**
|
|
45
|
+
* Keeps the last selected row selected, so a press on it changes nothing.
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
readonly disallowEmptySelection?: boolean;
|
|
49
|
+
/** The entries `children` draws a part for, when it is a function. */
|
|
50
|
+
readonly items?: Iterable<T>;
|
|
51
|
+
/**
|
|
52
|
+
* Called with a row's key when a press runs its action. A row's own
|
|
53
|
+
* `onAction` takes its place for that row.
|
|
54
|
+
*/
|
|
55
|
+
readonly onAction?: (key: Key) => void;
|
|
56
|
+
/** Called with the selected keys whenever a press changes them. */
|
|
57
|
+
readonly onSelectionChange?: (keys: Selection) => void;
|
|
58
|
+
readonly ref?: Ref<FlatList>;
|
|
59
|
+
/**
|
|
60
|
+
* What the list shows when it has no rows and nothing is loading. Left
|
|
61
|
+
* out, it is a muted row saying "No results" in the `I18nProvider`'s
|
|
62
|
+
* language, or the device's outside one, so the list keeps a row's height.
|
|
63
|
+
*/
|
|
64
|
+
readonly renderEmptyState?: () => ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* The selected keys, for a call site holding the selection itself with
|
|
67
|
+
* `onSelectionChange`.
|
|
68
|
+
*/
|
|
69
|
+
readonly selectedKeys?: 'all' | Iterable<Key>;
|
|
70
|
+
/**
|
|
71
|
+
* Whether rows can be selected: one at a time, several, or none.
|
|
72
|
+
* @default 'none'
|
|
73
|
+
*/
|
|
74
|
+
readonly selectionMode?: SelectionMode;
|
|
75
|
+
/**
|
|
76
|
+
* What selecting a row is called, for a screen reader: the accessibility
|
|
77
|
+
* action that selects a row whose press may do something else. The row's
|
|
78
|
+
* own text is what names the row. Left out, it is the word for it in the
|
|
79
|
+
* `I18nProvider`'s language, or the device's outside one, "Select" in
|
|
80
|
+
* English.
|
|
81
|
+
*/
|
|
82
|
+
readonly selectLabel?: string;
|
|
83
|
+
readonly style?: StyleProp<ViewStyle>;
|
|
84
|
+
};
|
|
85
|
+
type CollectionRowProps = Omit<PressableProps, 'children' | 'disabled' | 'id' | 'role' | 'style'> & {
|
|
86
|
+
/** The row's headline, the one thing it is mostly about. */
|
|
87
|
+
readonly children?: ReactNode;
|
|
88
|
+
/** The key the row is selected and reported by. Give one to every row. */
|
|
89
|
+
readonly id?: Key;
|
|
90
|
+
/**
|
|
91
|
+
* Draws the row disabled, and takes no presses on it, as a key in the
|
|
92
|
+
* list's `disabledKeys` does.
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
readonly isDisabled?: boolean;
|
|
96
|
+
/** Content before the headline: an avatar, an icon. */
|
|
97
|
+
readonly leading?: ReactNode;
|
|
98
|
+
/**
|
|
99
|
+
* Called when a press runs the row's action, in place of the list's
|
|
100
|
+
* `onAction` for this row.
|
|
101
|
+
*/
|
|
102
|
+
readonly onAction?: () => void;
|
|
103
|
+
/**
|
|
104
|
+
* A line above the headline, in label small and the muted role. Given
|
|
105
|
+
* beside `supporting`, it makes the row the three-line item.
|
|
106
|
+
*/
|
|
107
|
+
readonly overline?: ReactNode;
|
|
108
|
+
readonly ref?: Ref<HostInstance>;
|
|
109
|
+
readonly style?: StyleProp<ViewStyle>;
|
|
110
|
+
/** A second line under the headline, in body medium and the muted role. */
|
|
111
|
+
readonly supporting?: ReactNode;
|
|
112
|
+
/**
|
|
113
|
+
* The row's text, read off `children` when they are a plain string, so a
|
|
114
|
+
* row whose headline is an element passes it.
|
|
115
|
+
*/
|
|
116
|
+
readonly textValue?: string;
|
|
117
|
+
/** Content after the headline, such as an amount or a control. */
|
|
118
|
+
readonly trailing?: ReactNode;
|
|
119
|
+
};
|
|
120
|
+
type CollectionSectionProps = {
|
|
121
|
+
/** The rows in the section. */
|
|
122
|
+
readonly children?: ReactNode;
|
|
123
|
+
/**
|
|
124
|
+
* The section's heading, a heading to a screen reader. A section without
|
|
125
|
+
* one is its rows alone.
|
|
126
|
+
*/
|
|
127
|
+
readonly header?: ReactNode;
|
|
128
|
+
readonly id?: Key;
|
|
129
|
+
};
|
|
130
|
+
declare function loaderNode(props: CollectionLoadMoreProps): Generator<{
|
|
131
|
+
hasChildNodes: boolean;
|
|
132
|
+
props: CollectionLoadMoreProps;
|
|
133
|
+
rendered: null;
|
|
134
|
+
type: string;
|
|
135
|
+
}, void, unknown>;
|
|
136
|
+
declare function rowNode(props: CollectionRowProps): Generator<{
|
|
137
|
+
'aria-label': string | undefined;
|
|
138
|
+
hasChildNodes: boolean;
|
|
139
|
+
key: Key | undefined;
|
|
140
|
+
props: CollectionRowProps;
|
|
141
|
+
rendered: ReactNode;
|
|
142
|
+
textValue: string;
|
|
143
|
+
type: string;
|
|
144
|
+
}, void, unknown>;
|
|
145
|
+
declare function sectionNode(props: CollectionSectionProps): Generator<{
|
|
146
|
+
childNodes(): Generator<{
|
|
147
|
+
element: ReactNode;
|
|
148
|
+
}, void, unknown>;
|
|
149
|
+
hasChildNodes: boolean;
|
|
150
|
+
key: Key | undefined;
|
|
151
|
+
props: CollectionSectionProps;
|
|
152
|
+
rendered: ReactNode;
|
|
153
|
+
type: string;
|
|
154
|
+
}, void, unknown>;
|
|
155
|
+
//#endregion
|
|
156
|
+
export { type CollectionLoadMoreProps, type CollectionProps, type CollectionRowProps, type CollectionSectionProps, loaderNode, rowNode, sectionNode };
|
|
157
|
+
//# sourceMappingURL=index.d.ts.map
|