@symbo.ls/uikit 2.11.65 → 2.11.70

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/dist/index.cjs.js CHANGED
@@ -11415,6 +11415,7 @@ __export(domql_exports, {
11415
11415
  Animation: () => Animation,
11416
11416
  Avatar: () => Avatar,
11417
11417
  AvatarBundle: () => AvatarBundle,
11418
+ AvatarChooser: () => AvatarChooser,
11418
11419
  Block: () => Block,
11419
11420
  Box: () => Box,
11420
11421
  Button: () => Button,
@@ -11467,6 +11468,7 @@ __export(domql_exports, {
11467
11468
  List: () => List,
11468
11469
  Media: () => Media,
11469
11470
  Notification: () => Notification,
11471
+ NumberInput: () => NumberInput,
11470
11472
  Overflow: () => Overflow,
11471
11473
  P: () => P,
11472
11474
  Picture: () => Picture,
@@ -11492,6 +11494,8 @@ __export(domql_exports, {
11492
11494
  Textarea: () => Textarea,
11493
11495
  Theme: () => Theme,
11494
11496
  TimePicker: () => TimePicker,
11497
+ TimePickerItem: () => TimePickerItem,
11498
+ TimeSwitcher: () => TimeSwitcher,
11495
11499
  Timing: () => Timing,
11496
11500
  ToggleSwitch: () => ToggleSwitch,
11497
11501
  ToggleSwithWithLabel: () => ToggleSwithWithLabel,
@@ -14039,34 +14043,6 @@ var Box = {
14039
14043
  }
14040
14044
  };
14041
14045
 
14042
- // Avatar/index.js
14043
- var Avatar = {
14044
- extend: Img,
14045
- props: {
14046
- display: "block",
14047
- avatarType: "initials",
14048
- borderRadius: "100%",
14049
- boxSize: "B",
14050
- cursor: "pointer"
14051
- },
14052
- attr: {
14053
- src: ({ key, props: props7 }) => props7.src || `https://avatars.dicebear.com/api/${props7.avatarType || "adventurer-neutral"}/${props7.key || key}.svg`
14054
- }
14055
- };
14056
- var AvatarBundle = {
14057
- extend: Flex,
14058
- childExtend: {
14059
- extend: Avatar,
14060
- props: {
14061
- boxSize: "B1",
14062
- border: "0.1312em, black .85, solid",
14063
- ":not(:last-child)": {
14064
- margin: "0 -Y2 0 0"
14065
- }
14066
- }
14067
- }
14068
- };
14069
-
14070
14046
  // Icon/index.js
14071
14047
  var Icon = {
14072
14048
  extend: Svg,
@@ -14157,7 +14133,7 @@ var SquareButton = {
14157
14133
  aspectRatio: "1 / 1",
14158
14134
  justifyContent: "center",
14159
14135
  round: "Z",
14160
- style: { boxSizing: "content-box" }
14136
+ boxSizing: "content-box"
14161
14137
  }
14162
14138
  };
14163
14139
  var CircleButton = {
@@ -14169,6 +14145,74 @@ var KangorooButton = {
14169
14145
  childExtend: IconText
14170
14146
  };
14171
14147
 
14148
+ // Avatar/index.js
14149
+ var Avatar = {
14150
+ extend: Img,
14151
+ props: {
14152
+ display: "block",
14153
+ avatarType: "initials",
14154
+ borderRadius: "100%",
14155
+ boxSize: "B",
14156
+ cursor: "pointer"
14157
+ },
14158
+ attr: {
14159
+ src: ({ key, props: props7 }) => props7.src || `https://avatars.dicebear.com/api/${props7.avatarType || "adventurer-neutral"}/${props7.key || key}.svg`
14160
+ }
14161
+ };
14162
+ var AvatarBundle = {
14163
+ extend: Flex,
14164
+ childExtend: {
14165
+ extend: Avatar,
14166
+ props: {
14167
+ boxSize: "B1",
14168
+ border: "0.1312em, black .85, solid",
14169
+ ":not(:last-child)": {
14170
+ margin: "0 -Y2 0 0"
14171
+ }
14172
+ }
14173
+ }
14174
+ };
14175
+ var AvatarChooser = {
14176
+ extend: Button,
14177
+ tag: "label",
14178
+ props: {
14179
+ round: "C",
14180
+ gap: "Y",
14181
+ padding: "W2 A W2 W2",
14182
+ theme: "tertiary",
14183
+ position: "relative",
14184
+ cursor: "pointer"
14185
+ },
14186
+ Avatar: {
14187
+ boxSize: "B1",
14188
+ pointerEvents: "none"
14189
+ },
14190
+ select: {
14191
+ props: {
14192
+ outline: "none",
14193
+ pointerEvents: "all",
14194
+ appearance: "none",
14195
+ border: "none",
14196
+ width: "100%",
14197
+ height: "100%",
14198
+ background: "none",
14199
+ color: "currentColor",
14200
+ fontSize: "A",
14201
+ lineHeight: 1,
14202
+ margin: "0 0 0 -B1+X",
14203
+ padding: "0 A 0 B1+X"
14204
+ },
14205
+ attr: { name: "avatar-chooser", id: "avatar-chooser" },
14206
+ childExtend: { tag: "option", text: ({ state }) => state.text },
14207
+ $setCollection: ({ parent }) => parent.props.options,
14208
+ on: {
14209
+ change: (ev, { parent }) => {
14210
+ parent.user.update({ key: ev.target.value });
14211
+ }
14212
+ }
14213
+ }
14214
+ };
14215
+
14172
14216
  // ButtonSet/index.js
14173
14217
  var ButtonSet = {
14174
14218
  tag: "nav",
@@ -14361,10 +14405,7 @@ var DatePickerMonthsSlider = {
14361
14405
  }
14362
14406
  }
14363
14407
  },
14364
- leftButton: {
14365
- extend: Button,
14366
- props: { icon: "arrowLeft" }
14367
- },
14408
+ Button_left: { icon: "arrowLeft" },
14368
14409
  Flex: {
14369
14410
  props: {
14370
14411
  flex: "1",
@@ -14408,7 +14449,7 @@ var DatePickerMonthsSlider = {
14408
14449
  ];
14409
14450
  }
14410
14451
  },
14411
- rightButton: { extend: Button, props: { icon: "arrowRight" } }
14452
+ Button_right: { icon: "arrowRight" }
14412
14453
  };
14413
14454
  var DatePickerWeekDays = {
14414
14455
  extend: Grid,
@@ -14567,64 +14608,32 @@ var DatePicker = {
14567
14608
  };
14568
14609
  var DatePickerTwoColumns = {
14569
14610
  extend: DatePicker,
14611
+ DatePickerYears: {},
14570
14612
  Flex: {
14571
14613
  DatePickerMonthsSlider: {
14572
- maxWidth: `${544 / 16}em`
14614
+ props: {
14615
+ maxWidth: `${544 / 16}em`
14616
+ }
14573
14617
  },
14574
14618
  DatePickerWeekDays: {
14575
- maxWidth: `${544 / 16}em`
14619
+ props: {
14620
+ maxWidth: `${544 / 16}em`
14621
+ }
14576
14622
  },
14577
14623
  monthNumbersContainer: {
14578
- maxWidth: `${544 / 16}em`
14624
+ props: {
14625
+ maxWidth: `${544 / 16}em`
14626
+ }
14579
14627
  }
14580
14628
  }
14581
14629
  };
14582
14630
 
14583
- // Input/index.js
14584
- var Input = {
14585
- extend: [Focusable],
14586
- tag: "input",
14587
- props: {
14588
- border: "none",
14589
- type: "input",
14590
- theme: "quaternary",
14591
- fontSize: "A",
14592
- round: "C",
14593
- lineHeight: 1,
14594
- fontFamily: "smbls",
14595
- padding: "Z A"
14596
- },
14597
- attr: {
14598
- pattern: ({ props: props7 }) => props7.pattern,
14599
- minlength: ({ props: props7 }) => props7.minlength,
14600
- maxlength: ({ props: props7 }) => props7.maxlength,
14601
- name: ({ props: props7 }) => props7.name,
14602
- autocomplete: ({ props: props7 }) => props7.autocomplete,
14603
- placeholder: ({ props: props7 }) => props7.placeholder,
14604
- value: ({ props: props7, state }) => props7.value,
14605
- disabled: ({ props: props7 }) => props7.disabled || null,
14606
- readonly: ({ props: props7 }) => props7.readonly,
14607
- required: ({ props: props7 }) => props7.required,
14608
- type: ({ props: props7 }) => props7.type
14609
- }
14610
- };
14611
-
14612
14631
  // TimePicker/TimePickerItem.js
14613
14632
  var props2 = {
14614
14633
  align: "center center",
14615
14634
  flow: "column",
14616
14635
  gap: "X",
14617
14636
  style: {
14618
- "input[type=number]::-webkit-inner-spin-button": {
14619
- "-webkit-appearance": "none",
14620
- margin: 0
14621
- },
14622
- "input[type=number]::-webkit-outer-spin-button": {
14623
- "-webkit-appearance": "none",
14624
- margin: 0
14625
- },
14626
- "input[type=number]": { "-webkit-appearance": "textfield" },
14627
- "input:focus < button": { border: "3px solid red" },
14628
14637
  "> button": {
14629
14638
  padding: "0",
14630
14639
  background: "transparent",
@@ -14632,50 +14641,130 @@ var props2 = {
14632
14641
  fontSize: `${12 / 16}em`,
14633
14642
  display: "none"
14634
14643
  }
14635
- },
14636
- input: {
14637
- boxSize: "C C",
14638
- round: "Z",
14639
- padding: "0",
14640
- align: "center center",
14641
- textAlign: "center",
14642
- color: "white",
14643
- background: "white .15"
14644
14644
  }
14645
14645
  };
14646
14646
  var TimePickerItem = {
14647
14647
  tag: "label",
14648
14648
  extend: Flex,
14649
14649
  props: props2,
14650
- upButton: { extend: Button, props: { icon: "plus" } },
14651
- input: { extend: [Input, Flex], attr: { type: "number", min: "1", max: "24", value: "1" } },
14652
- downButton: { extend: Button, props: { icon: "minus" } }
14650
+ Button_plus: { icon: "plus" },
14651
+ NumberInput: {
14652
+ boxSize: "C C",
14653
+ round: "Z",
14654
+ padding: "0",
14655
+ align: "center center",
14656
+ textAlign: "center",
14657
+ min: 0,
14658
+ max: 24,
14659
+ placeholder: "00",
14660
+ appearance: "textfield",
14661
+ theme: "secondary",
14662
+ "::-webkit-inner-spin-button": {
14663
+ style: { appearance: "none" },
14664
+ margin: 0
14665
+ },
14666
+ "::-webkit-outer-spin-button": {
14667
+ style: { appearance: "none" },
14668
+ margin: 0
14669
+ }
14670
+ },
14671
+ Button_minus: { icon: "minus" }
14653
14672
  };
14654
14673
 
14655
- // TimePicker/index.js
14674
+ // TimePicker/TimeSwitcher.js
14656
14675
  var props3 = {
14676
+ boxSize: "C B2",
14657
14677
  flow: "column",
14658
- width: "fit-content",
14659
- background: "rgba(255, 255, 255, .15)",
14660
- padding: "A A B A",
14678
+ overflow: "hidden",
14661
14679
  round: "Z",
14662
- title: {
14680
+ theme: "secondary"
14681
+ };
14682
+ var TimeSwitcher = {
14683
+ props: props3,
14684
+ extend: Flex,
14685
+ childExtend: {
14686
+ extend: Button,
14687
+ props: ({ state, key }) => ({
14688
+ active: state.activeShift === key,
14689
+ padding: "0",
14690
+ flex: "1",
14691
+ width: "100%",
14692
+ fontSize: "Y",
14693
+ textTransform: "uppercase",
14694
+ round: "0",
14695
+ background: "transparent",
14696
+ color: "currentColor",
14697
+ lineHeight: "1",
14698
+ ".active": { theme: "primary" }
14699
+ }),
14700
+ on: {
14701
+ click: (event, element, state) => {
14702
+ state.update({ activeShift: element.key });
14703
+ }
14704
+ }
14705
+ },
14706
+ am: { text: "am" },
14707
+ pm: { text: "pm" }
14708
+ };
14709
+
14710
+ // TimePicker/index.js
14711
+ var TimePicker = {
14712
+ extend: [Dialog, Flex],
14713
+ state: {
14714
+ activeShift: "am"
14715
+ },
14716
+ props: {
14717
+ flow: "column",
14718
+ width: "fit-content",
14719
+ padding: "Z A"
14720
+ },
14721
+ Title: {
14663
14722
  fontSize: "Z1",
14664
14723
  textTransform: "capitalize",
14665
- padding: "- - B -"
14724
+ padding: "- - A -",
14725
+ text: "enter time"
14666
14726
  },
14667
- content: {
14668
- align: "center center",
14669
- gap: "A",
14670
- timePickers: {
14727
+ Flex: {
14728
+ props: {
14671
14729
  align: "center center",
14672
- gap: "Y2"
14673
- }
14730
+ gap: "A"
14731
+ },
14732
+ Flex: {
14733
+ tag: "label",
14734
+ props: {
14735
+ align: "center center",
14736
+ gap: "Y2"
14737
+ },
14738
+ TimePickerItem_hh: {
14739
+ NumberInput: {
14740
+ placeholder: "HH",
14741
+ min: "0",
14742
+ max: "11"
14743
+ }
14744
+ },
14745
+ Span: ":",
14746
+ TimePickerItem_mm: {
14747
+ NumberInput: {
14748
+ placeholder: "MM",
14749
+ min: "0",
14750
+ max: "59"
14751
+ }
14752
+ },
14753
+ Span_2: ":",
14754
+ TimePickerItem_ss: {
14755
+ NumberInput: {
14756
+ placeholder: "SS",
14757
+ min: "0",
14758
+ max: "59"
14759
+ }
14760
+ }
14761
+ },
14762
+ TimeSwitcher: {}
14674
14763
  },
14675
- footButtons: {
14764
+ DialogFooter: {
14676
14765
  align: "center flex-end",
14677
- gap: "A1",
14678
- padding: "B1 - - -",
14766
+ gap: "X",
14767
+ margin: "Z2 -Z2 -Z",
14679
14768
  childProps: {
14680
14769
  background: "transparent",
14681
14770
  padding: "0",
@@ -14683,27 +14772,6 @@ var props3 = {
14683
14772
  }
14684
14773
  }
14685
14774
  };
14686
- var TimePicker = {
14687
- extend: [Dialog, Flex],
14688
- props: props3,
14689
- title: { text: "enter time" },
14690
- content: {
14691
- extend: Flex,
14692
- timePickers: {
14693
- tag: "label",
14694
- extend: Flex,
14695
- ...[
14696
- { extend: TimePickerItem },
14697
- ":",
14698
- { extend: TimePickerItem },
14699
- ":",
14700
- { extend: TimePickerItem }
14701
- ]
14702
- },
14703
- TimeSwitcher: {}
14704
- },
14705
- DialogFooter: {}
14706
- };
14707
14775
 
14708
14776
  // Dropdown/index.js
14709
14777
  var DropdownList = {
@@ -15027,6 +15095,46 @@ var RouteLink = {
15027
15095
  extend: [Link, RouterLink]
15028
15096
  };
15029
15097
 
15098
+ // Input/index.js
15099
+ var Input = {
15100
+ extend: [Focusable],
15101
+ tag: "input",
15102
+ props: {
15103
+ border: "none",
15104
+ type: "input",
15105
+ theme: "quaternary",
15106
+ fontSize: "A",
15107
+ round: "C",
15108
+ lineHeight: 1,
15109
+ fontFamily: "smbls",
15110
+ padding: "Z A"
15111
+ },
15112
+ attr: {
15113
+ pattern: ({ props: props7 }) => props7.pattern,
15114
+ minlength: ({ props: props7 }) => props7.minlength,
15115
+ maxlength: ({ props: props7 }) => props7.maxlength,
15116
+ name: ({ props: props7 }) => props7.name,
15117
+ autocomplete: ({ props: props7 }) => props7.autocomplete,
15118
+ placeholder: ({ props: props7 }) => props7.placeholder,
15119
+ value: ({ props: props7, state }) => props7.value,
15120
+ disabled: ({ props: props7 }) => props7.disabled || null,
15121
+ readonly: ({ props: props7 }) => props7.readonly,
15122
+ required: ({ props: props7 }) => props7.required,
15123
+ type: ({ props: props7 }) => props7.type
15124
+ }
15125
+ };
15126
+ var NumberInput = {
15127
+ extend: Input,
15128
+ props: {
15129
+ type: "number"
15130
+ },
15131
+ attr: {
15132
+ step: ({ props: props7 }) => props7.step,
15133
+ min: ({ props: props7 }) => props7.min,
15134
+ max: ({ props: props7 }) => props7.max
15135
+ }
15136
+ };
15137
+
15030
15138
  // Field/node_modules/@symbo.ls/atoms/Block.js
15031
15139
  var import_scratch10 = __toESM(require_cjs());
15032
15140
 
@@ -15561,24 +15669,21 @@ var Upload = {
15561
15669
  round: "A",
15562
15670
  cursor: "pointer",
15563
15671
  border: "1.6px, dashed, white 0.1",
15564
- padding: "B B2",
15565
- input: {
15566
- position: "absolute",
15567
- inset: "0 0 0 0",
15568
- opacity: "0",
15569
- visibility: "hidden"
15570
- }
15672
+ padding: "B B2"
15571
15673
  },
15572
- input: { attr: { type: "file" } },
15573
- icon: {
15574
- extend: Icon,
15575
- props: {
15576
- name: "upload",
15577
- fontSize: `${26 / 16}em`,
15578
- opacity: ".2"
15579
- }
15674
+ Input: {
15675
+ type: "file",
15676
+ position: "absolute",
15677
+ inset: "0 0 0 0",
15678
+ opacity: "0",
15679
+ visibility: "hidden"
15680
+ },
15681
+ Icon: {
15682
+ name: "upload",
15683
+ fontSize: `${26 / 16}em`,
15684
+ opacity: ".2"
15580
15685
  },
15581
- p: {
15686
+ P: {
15582
15687
  props: {
15583
15688
  text: " or click and upload from your computer",
15584
15689
  flexFlow: "column",
@@ -15586,21 +15691,28 @@ var Upload = {
15586
15691
  opacity: ".22",
15587
15692
  margin: "0"
15588
15693
  },
15589
- span: {
15694
+ Span: {
15590
15695
  text: "Drag and drop your font file",
15591
- style: { display: "block" }
15696
+ display: "block"
15592
15697
  }
15593
15698
  }
15594
15699
  };
15595
15700
  var DragNdropUser = {
15596
15701
  extend: Flex,
15597
- props: ({ state }) => ({
15702
+ props: {
15598
15703
  flow: "column",
15599
15704
  align: "center center",
15600
15705
  gap: "A",
15601
- round: "A",
15602
- img: { boxSize: "C C", src: state.src },
15603
- buttons: {
15706
+ round: "A"
15707
+ },
15708
+ Avatar: {
15709
+ props: ({ state }) => ({
15710
+ boxSize: "C C",
15711
+ src: state.src
15712
+ })
15713
+ },
15714
+ Flex: {
15715
+ props: {
15604
15716
  gap: "Y",
15605
15717
  childProps: {
15606
15718
  padding: "0",
@@ -15610,11 +15722,7 @@ var DragNdropUser = {
15610
15722
  color: "gray6",
15611
15723
  style: { "> svg": { fontSize: `${14 / 16}em` } }
15612
15724
  }
15613
- }
15614
- }),
15615
- img: { extend: Avatar },
15616
- buttons: {
15617
- extend: Flex,
15725
+ },
15618
15726
  childExtend: SquareButton,
15619
15727
  ...[
15620
15728
  { props: { icon: "reload" } },
@@ -15645,21 +15753,19 @@ var Label = {
15645
15753
  // Pills/index.js
15646
15754
  var Pills = {
15647
15755
  extend: Flex,
15648
- props: (el, s) => ({
15649
- display: "flex",
15650
- gap: "Y2",
15651
- childProps: {
15652
- background: "gray6",
15653
- width: "Y2",
15654
- height: "Y2",
15756
+ props: {
15757
+ gap: "Y2"
15758
+ },
15759
+ childExtend: {
15760
+ props: (el, s) => ({
15761
+ active: parseInt(el.key) === (el.parent.props.active || s.active),
15762
+ theme: "tertiary",
15763
+ boxSize: "Y2",
15655
15764
  round: "A",
15656
15765
  ".active": {
15657
- background: "gray9"
15766
+ theme: "primary"
15658
15767
  }
15659
- }
15660
- }),
15661
- childExtend: {
15662
- props: (el, s) => ({ active: parseInt(el.key) === s.active })
15768
+ })
15663
15769
  }
15664
15770
  };
15665
15771